연습문제 – 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 “Account.h”
#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(accountUser, user);
 strcpy(accountNumber, number);
 accountBalance = money;
}

Account::~Account()
{
 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;
}
_M#]

main.cpp


[#M_ more.. | less.. | 
#include <iostream>
#include “Account.h”

using namespace std;

int main(void)
{
 Account a;  // Default 객체를 생성
 a.Show();
 a.Deposit(1000);
 a.Withdraw(500);
 a.Show();

 Account b(“Park”, “27394-27-46517”, 50000); //인자로 전달해 준 값으로 객체를 생성
 b.Show();
 b.Deposit(1000);
 b.Withdraw(500);
 b.Show();

 // account c – 키보드로 입력받아서 객체 생성하고 입금, 출금, 출력할 것
 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 – 원하는 내용을 더 추가하거나 해서 테스트해볼 것
 Account *d;

 return 0;
}
_M#]

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

사용자 삽입 이미지

-그림 자료출처: http://news.joins.com/article/aid/2007/11/23/3020495.html