CMap 템플렛 클래스를 사용할 때, CString을 KEY로 사용하고자 할 때는 ARG_KEY를 CString&로 쓰지 말고 LPCTSTR로 쓰십시요.
http://www.codeproject.com/cpp/cmap_howto.asp
lecture3 – MFC 프로그램 구조
연습문제 – Ex2
연습문제 Ex2 (Due by 10/5 금 22시까지) – CString, CArray 연습
1079360745.zip
연습문제 Ex2 (Due by 10/5 금 22시까지)
-cyber 강의실 (cyber.dku.edu)로 source code, executable file, solution/project VC++ 2005 file, 보고서를 학번_이름_Ex2.zip으로 묶어서 낼 것. 보고서 (30%)
[연습문제]
1. 은행 계좌를 나타내는 Account 클래스에 CString 관련 내용을 추가한다. (25%)
– 예금주이름 (accountUser)을 CString 형으로 바꿈
– 계좌명 (accountName)를 CString 형으로 매개변수를 추가함 (계좌명의 예시: 닷컴통장, 저축예금, 보통예금, 투자신탁 등을 넣을 수 있음)
– Account의 생성자에 예금주 계좌명 처리 추가함
– Account에 계좌명을 반환하는 CString GetAccountName() const 함수를 추가함
– Account의 상태출력 멤버함수 void Show()에 계좌명 처리 추가함. cout 할 때 CString 형에 맞게 (LPCSTR) 연산자를 명시적으로 적용함.
– Account의 윈도우나 메시지 박스에 문자를 바로 출력할 수 있는 상태출력 멤버함수 CString GetAccount() const 함수를 추가함. (출력 문자열 예시: “예금주: 박아무개 계좌명: 닷컴통장 계좌번호: 12345-72-34567 잔액: 5000”)
2. Account 목록을 CArray로 구성하고, Account를 입력, 출력을 관리하는 AccountManager 클래스를 작성한다. (25%)
– private 멤버로 CArray<Account, Account&> aList를 가짐
– 소멸자는 모든 Account를 리스트에서 제거함
– Add() 함수는 Account를 리스트에 추가함
– Remove(int i) 함수는 i번째 Account를 리스트에서 제거함
– RemoveAll() 함수는 모든 Account를 리스트에서 제거함
– GetSize() const 함수는 Account가 리스트에 몇 개 있는지를 알려줌
– Show() 함수는 모든 Account의 Show()를 사용하여 예금 내용을 출력함
3. main.cpp에서 AccountManager 목록에 10개의 Account를 추가하고 난 후, 다음을 수행한다. (20%)
– 먼저, 리스트에 몇 개의 Account가 있는지 출력. GetSize() 함수 사용
– 그리고, 리스트에 있는 모든 예금 내용(즉, 예금주 이름, 예금 계좌명, 계좌 번호, 잔액)을 출력. Show() 함수 사용
– 3번째 Account를 리스트에서 지우고 리스트에 있는 모든 예금 내용 (예금주 이름, 예금 계좌명, 계좌 번호, 잔고)을 출력. Remove(index)와 Show() 함수를 사용
– cin으로 예금주이름, 계좌명, 계좌번호, 잔액을 입력받고 새로운 Account를 생성 후, Account 클래스의 GetAccount() 멤버함수를 이용하여 새로 만든 은행계좌의 내용을 MessageBox(NULL, (LPCSTR)str, “CString 연습“, MB_OK)를 이용하여 출력.
유틸리티클래스와 집합클래스 예제
연습문제 – Ex0 답안예시
Account.h
[#M_ more.. | less.. |#ifndef __ACCOUNT_H__
#define __ACCOUNT_H__
class Account
{
public:
Account(char*, char*, int);
Account();
~Account();
void Show();
void Deposit(int);
void Withdraw(int);
private:
char* accountUser; // 예금주 이름
char* accountNumber; // 계좌 번호
int accountBalance; // 잔액
};
#endif
_M#]
Account.cpp
[#M_ more.. | less.. |
#include <iostream>
using namespace std;
Account::Account()
{
accountUser = new char[20];
accountNumber = new char[20];
accountBalance = 0;
strcpy(accountUser,”수애”);
strcpy(accountNumber, “27459-47-372671”);
accountBalance = 2000;
}
Account::Account(char* user, char* number, int money)
{
accountUser = new char[20];
accountNumber = new char[20];
accountBalance = 0;
strcpy(accountNumber, number);
accountBalance = money;
}
{
delete [] accountUser;
delete [] accountNumber;
}
//예금주의 이름, 계좌 번호, 잔액을 출력
void Account::Show()
{
cout<<“이 름: “<< accountUser << endl;
cout<<“계좌번호: “<< accountNumber << endl;
cout<<“잔 액: “<< accountBalance <<endl << endl;
}
void Account::Deposit(int money)
{
cout << money << “원을 입금하셨네요.” << endl;
accountBalance += money;
cout<<“잔 액: ” << accountBalance << endl << endl;
}
void Account::Withdraw(int money)
{
cout << money <<“원을 출금하셨네요.”<< endl;
accountBalance = accountBalance – money;
cout<<“잔 액: “<< accountBalance << endl << endl;
}
main.cpp
[#M_ more.. | less.. |
#include “Account.h”
{
Account a; // Default 객체를 생성
a.Show();
a.Deposit(1000);
a.Withdraw(500);
a.Show();
b.Show();
b.Deposit(1000);
b.Withdraw(500);
b.Show();
Account *c;
// 키보드로 부터 입력받은 은행 계좌 예금주 이름, 계좌번호, 잔액을 넣어서 c를 새로 생성할 것
char user[20], number[20];
int balance;
cout << “Enter account user name: “;
cin >> user;
cout << “Enter account account number: “;
cin >> number;
cout << “Enter account balance: “;
cin >> balance;
c = new Account(user, number, balance);
// 키보드로 입력받은 은행계좌에 10000을 입금할 것
c->Deposit(10000);
// 키보드로 입력받은 은행계좌에 5000을 출금할 것
c->Withdraw(5000);
// 키보드로 입력받은 은행계좌 값을 출력할 것
c->Show();
Account *d;
}
Randy Pausch 마지막 강의
Alice 프로젝트 등 HCI 분야에서 유명하고
카네기멜론대학(CMU)의 Entertainment Technology Center founder인
Randy Pausch (1960년생)가 췌장암에 걸렸다고 하네요.
지난 2007년 9월 18일에 한 마지막 강의입니다.
“Really Achieving Your Childhood Dreams”
mms://wms.andrew.cmu.edu/001/pausch.wmv