새로새록

[c++]7. 계좌 정리 본문

소프트웨어융합/경희대 c++ 과제

[c++]7. 계좌 정리

류지나 2020. 7. 16. 20:22

학생 계좌 정보를 입력받고 학생 계좌 정보들을 모두 삭제하여 삭제된 계좌들의 잔액
총합을 출력하는 프로그램을 작성하세요.


1. 총 학생 수를 사용자로부터 입력받습니다.
2. 학생 계좌 정보 Account class는 학번, 이름, 잔액을 멤버 변수로 가지고 있습니다.
3. Account class 배열을 동적으로 생성합니다.
4. 각 학생의 학번, 이름, 잔액을 입력받습니다. 이 때, 중복된 학번을 입력받으면 프로그램을 종료합니다.
5. 모두 입력 받은 후, Account class 배열을 delete하여 모든 학생 계좌의 잔액 총합을 출력하세요.
Hint: Account class 내 멤버 변수에서 static 변수를 사용, Account class의 소멸자를 적절히 이용

#include <iostream>
#include <string>
using namespace std;

class Account {
	string id, name;
	int balance;

	static int sum;
public:
	Account() : id(""), name(""), balance(0) {}
	void setId(string _id) { id = _id; }
	void setName(string _name) { name = _name; }
	void setBalance(int _balance) { 
		balance = _balance; 
		sum += balance;
	}
	string getId() { return id; }

	static int getSum() { return sum; }
};

int Account::sum = 0;

int main() {
	int num;
	cout << "총 학생 수 입력: ";
	cin >> num;
	Account* acnt = new Account[num];
	for (int i = 0; i < num; i++) {
		string id, name;
		int balance;
		cout << i+1 << "번째 학생 계좌 입력 : 학번 : ";
		cin >> id;
		cout << "\n이름 : ";
		cin >> name;
		cout << "\n잔액 : ";
		cin >> balance;
		cout << "==========================" << endl;
		for (int j = 0; j < i; j++) {
			if (id == acnt[j].getId()) {
				cout << "중복된 학번이 존재합니다." << endl << "프로그램을 종료합니다." << endl;
				exit(100);
			}
		}
		acnt[i].setId(id);
		acnt[i].setName(name);
		acnt[i].setBalance(balance);
	}

	cout << "회수된 금액 : " << Account::getSum() << endl;
	delete[] acnt;
	return 0;
}

좋아요공감

공유하기

통계

글 요소

저작자표시비영리