C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[55353] Re:c++로 은행시스템구현중인데 에러는안나지만 의도한대로 안되네요.
ff [] 1290 읽음    2008-12-05 17:09
밑에 소스만 대충 봤는데요
첫번째 switch문 (case1, 2, 3, 7를 가진) 이 각 case에 대한 break가 빠져 있는듯(case7제외) 합니다..

cutesangd 님이 쓰신 글 :
: c++로 은행시스템구현중인데 에러는안나지만 의도한대로 안되네요.
:
: 도움 주시면 감사하겠습니다.
:
:  
:
: 질문1.
:
: account클래스의 잔액(balance)과 checkingaccount, creditlineaccount 이 클래스들의 잔액을 서로 같게 해주고싶은데
:
: 어떻게해야하죠? 전 지금 완전따로따로 노네요..
:
: 마찬가지로 계좌주 계좌번호같은것들도요..
:
:  
:
: 질문2.
:
: 코드상으론 이상없는거 같은데 막상 실행하고 나면은 account메뉴에서 4번을 누르면 잔액조회만 되야하는데 잔액조회후 checkingaccount 메뉴로 넘어가네요.
:
: 마찬가지로 checkingaccount 메뉴에서 4번을 누르면 잔액조회만 되야하는데 잔액조회후 creditlineaccout 메뉴로 넘어가네요.
:
: checkingaccount 메뉴에서 4번을 누르면 잔액조회만 되야하는데 잔액조회후 account 메뉴로 넘어가네요.
:
: 서로 돌고도는 시스템같은데;; a->b->c->a 이런식으로. 왜 이런거죠? 코드엔 이상없는거같은데;
:
:  
:
:  
:
: p.s 추후 파일입출력도 할거구요. 이외에도 다른이상이 있는지 봐주시면 감사하겠습니다.
:
:  
:
: p.s2 account // 일반계좌클래스
:
:       checkingaccount  // 체크카드 계좌클래스
:
:       creditlineaccoumt  // 마이너스통장 계좌클래스
:
:  
:
:  
:
: #include<iostream>
: #include<fstream>
: #include<string>
: using namespace std;
:
: class account{
: public:
:  string accountno; // 계좌번호
:  string ownername; // 계좌명
:  
: public:
:  int balance; //잔액
:  int inamount;
:  int outamount;
:  string temp, temp2;
:
:  void getaccountno(string num, string name){ //계좌개설
:   accountno = num;
:   ownername = name;
:   cout<<"개설되었습니다\n";
:  }
:  string setaccoutno(){
:   return accountno ;
:  }
:  
:  void getownername(string name){
:   ownername = name;
:  }
:  string setownername(){
:   return ownername;
:  }
:
:  void deposit(int inamount){          // 입금
:   balance = balance + inamount;
:   cout<<"입금완료 \n"<<"잔액은:"<<balance<<"\n";
:  
:  }
:
:  int withdraw(int outamount){          // 출금
:   if(balance < outamount){
:   cout<<balance<< "||" << outamount<<"잔액이 부족합니다 \n";
:   }
:   else{
:   balance = balance - outamount;
:   cout<<outamount<< "출금완료 \n"<<"잔액은:"<<balance<<"\n";}
:   return outamount;
:  
:  }
:
:  void prt(){  //출력
:   cout << "계좌번호: " << accountno << " 계좌주: " << ownername << " 입금액: "
:   << inamount << " 출금액: " << outamount << " 잔액: " << balance << "\n";
:  }
:  void firstmenu(){
:  cout << "메뉴" << endl;
:  cout << "1. 일반계좌" << endl;
:  cout << "2. 체크카드" << endl;
:  cout << "3. 마이너스통장" << endl;
:  cout << "5. 종료" << endl;
:  }
:
:  void prtmenu(){
:  cout<<"=======일반입출금=======\n";
:  cout << "메뉴" << endl;
:  cout << "1. 계좌 개설" << endl;
:  cout << "2. 입금" << endl;
:  cout << "3. 출금" << endl;
:  cout << "4. 잔액조회" << endl;
:  cout << "5. 전단계" <<endl;
:  cout << "6. 종료" << endl;
:  cout<<"=====================\n";
:  }
:
:  account(){
:   balance = 20000;
:   inamount = 0;
:   outamount  = 0;}
: };
:
: class checkingaccount : public account{
: public:
:  string cardno, incardno; //카드번호
:
:  int pay(string cardno, int outamount){
:   if( (cardno != cardno) || (balance < outamount) )
:   cout<<"출금불가\n";
:   return withdraw(outamount);
:  }
:  void prt(){  //출력
:   cout << "계좌번호: " << accountno << " 계좌주: " << ownername << " 입금액: "
:   << inamount << " 출금액: " << outamount << " 잔액: " << balance << "\n";
:  }
:
:  void prtmenu(){
:  cout<<"=====체크카드입출금=====\n";
:  cout << "메뉴" << endl;
:  cout << "1. 체크카드입금" << endl;
:  cout << "2. 체크카드출금" << endl;
:  cout << "3. 체크카드지불" << endl;
:  cout << "4. 잔액조회" << endl;
:  cout << "5. 전단계" <<endl;
:  cout << "6. 종료" << endl;
:  cout<<"=====================\n";
:  }
:
:  checkingaccount(){
:   cardno="111";}
: };
:
: class creditlineaccount : public checkingaccount{
: public:
:  int creditline; //신용한도
:  
:  int withdraw(int outamount){
:   if((balance + creditline) < outamount){
:   cout<<balance<< "||" << outamount<<"잔액이 부족합니다2 \n";}
:   else{
:   balance = balance - outamount;
:   cout<<outamount<< "출금완료 \n"<<"잔액은:"<<balance<<"\n";}
:   return outamount;
:  }
:  void prt(){  //출력
:   cout << "계좌번호: " << accountno << " 계좌주: " << ownername << " 입금액: "
:   << inamount << " 출금액: " << outamount << " 잔액: " << balance << "\n";
:  }
:
:  void prtmenu(){
:  cout<<"=====마이너스통장입출금=====\n";
:  cout << "메뉴" << endl;
:  cout << "1. 마이너스통장입금" << endl;
:  cout << "2. 마이너스통장출금" << endl;
:  cout << "3. 잔액조회" << endl;
:  cout << "4. 전단계" <<endl;
:  cout << "5. 종료" << endl;
:  cout<<"=====================\n";
:  }
:
:  creditlineaccount(){
:   creditline = 5000;}
: };
:
:
: int main(){
: account obj1;
: checkingaccount obj2;
: creditlineaccount obj3;
:
:  int choice,choice2;
:  bool i = true;
:  while(i){
:   obj1.firstmenu();
:   cout << "원하는 메뉴를 선택하시오: ";
:   cin >> choice;
:   switch(choice){
:   case 1: //일반
:     cout << "일반계좌\n";
:     obj1.prtmenu();
:     cin >> choice2;
:   switch(choice2){
:     case 1:    //1번 선택시 계좌개설함수 호출
:     cout << "계좌번호입력:";
:     cin >> obj1.temp;
:     cout << "계좌명입력:";
:     cin >> obj1.temp2;
:     obj1.getaccountno(obj1.temp, obj1.temp2);
:     break;
:     case 2: //2번선택시 일반입금
:     cout << "입금액입력:";
:     cin >> obj1.inamount;
:     obj1.deposit(obj1.inamount);
:     break;
:     case 3: //3번선택시 일반출금
:     cout << "출금액입력:";
:     cin >> obj1.outamount;
:     obj1.withdraw(obj1.outamount);
:     break;
:     case 4: //4번선택시 잔액출력
:     obj1.prt();
:     break;
:     case 5:
:     obj1.firstmenu();
:     break;
:     }
:
:   case 2: //체크
:     cout << "체크카드\n";
:     obj2.prtmenu();
:     cin >> choice2;
:     switch(choice2){
:     case 1: //1번선택시 일반입금
:     cout << "입금액입력:";
:     cin >> obj1.inamount;
:     obj1.deposit(obj1.inamount);
:     break;
:     case 2: //2번선택시 일반출금
:     cout << "출금액입력:";
:     cin >> obj1.outamount;
:     obj1.withdraw(obj1.outamount);
:     break;
:     case 3://3번선택시 체크카드지불
:     cout << obj2.cardno;
:     cin >> obj2.cardno >> obj2.inamount;
:     obj2.pay(obj2.cardno,obj2.inamount);
:     break;
:     case 4: //4번선택시 잔액출력
:     obj2.prt();
:     break;
:     case 5:
:     obj1.firstmenu();
:     break;
:     }
:  
:   case 3:
:     cout << "마이너스통장\n";
:     obj3.prtmenu();
:     cin >> choice2;
:     switch(choice2){
:     case 1: //1번선택시 일반입금
:     cout << "입금액입력:";
:     cin >> obj1.inamount;
:     obj1.deposit(obj1.inamount);
:     break;
:     case 2:
:     cout << "신용한도입니다:" << obj3.creditline <<"\n";
:     cout << "출금액입력:";
:     cin >> obj3.outamount;
:     obj3.withdraw(obj3.outamount);
:     break;
:     case 3: //4번선택시 잔액출력
:     obj3.prt();
:     break;
:     case 4:
:     obj1.firstmenu();
:     break;
:     }
:
:     case 7:  //7번 선택시 while문 조건 변경종료
:     default:
:     break;
:     }
:  }
:
:
: return 0;}

+ -

관련 글 리스트
55317 c++로 은행시스템구현중인데 에러는안나지만 의도한대로 안되네요. cutesangd 1251 2008/11/30
55353     Re:c++로 은행시스템구현중인데 에러는안나지만 의도한대로 안되네요. ff 1290 2008/12/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.