새로새록
[c++]7. 계좌 정리 본문
학생 계좌 정보를 입력받고 학생 계좌 정보들을 모두 삭제하여 삭제된 계좌들의 잔액
총합을 출력하는 프로그램을 작성하세요.
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;
}
좋아요공감
공유하기
통계
글 요소
'소프트웨어융합 > 경희대 c++ 과제' 카테고리의 다른 글
[c++]8. 상속받는 삼각형, 사각형, 원 (0) | 2020.07.16 |
---|---|
[c++]7. 로그인 정보 연속 받기 (0) | 2020.07.16 |
[c++]7. 전 재산 계좌 송금 (0) | 2020.07.16 |
[c++]7. 두 좌표 사이의 거리 (0) | 2020.07.16 |
[c++]6. 학사관리 (0) | 2020.07.16 |