| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:一个简单的银行账户程序以及其中的两个问题
只看楼主 加入收藏
编程2011
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:73
专家分:19
注 册:2011-3-3
结帖率:92%
收藏
已结贴  问题点数:0 回复次数:4 
一个简单的银行账户程序以及其中的两个问题
    用C++写的一个简单的账户程序
     
程序代码:
#include<iostream>
using namespace std;

class Account
{
   public:
       Account(int account)
       {
           setAccount(account);//构造函数使得最初的余额得以初始化
       }
     int setAccount(int account)
     {
         if(account>=0)//判断输入的最初的值是否有效
         {
             restAccount=account;
             return restAccount;
         }
         else
         {
             restAccount=0;
             cout<<"初始的账户余额是无效的"<<endl;//第21行
         }

    return 0;   
    
     }
    
     int credit(int newAccount)//存钱的函数
     {   
         restAccount=newAccount+restAccount;
         return restAccount;
     }
     int debit(int restofAccount)//取钱的函数
     {
         if(restAccount>=restofAccount)//判断所取的钱是否超过所存的钱
         {
             restAccount=restAccount-restofAccount;
            return restAccount;
         }
         else
         {
            // return restAccount;
             cout<<"Debit amount exceeded account balance "<<endl;return restAccount;
         }
     }
     int  getbalance( )
     {
   
        return  restAccount;
     }
   private:

       int restAccount;
};
  int main()
  {  
      int money1,money2,money3;//输入的钱数
      cout<<"请输入账户的初始余额: ";
        cin>>money1;
      Account account1(money1);
       cout<<"现在的账户余额为: "<<account1.setAccount(money1)<<endl;
      cout<<"请输入你要存入的钱: ";
       cin>>money2;
     cout<<"现在的账户余额为: "<<account1.credit(money2)<<endl;
       cout<<"请输入你要取的钱: ";
      cin>>money3;       
    cout<<"现在的账户余额为:"<< account1.debit(money3)<<endl;
   return 0;

 }
    上面我写的程序能运行但我还有两个问题,希望大虾们帮帮忙
   1.在最初输入的账户余额为非法 时程序会输出第21行后,程序会继续执行,但我希望它停下来。  
   2.好像在这个程序中我没有用到getbalance函数,希望我能用到。
     如果我没有表述明白请大虾们自己运行一下程序,谢谢了。
搜索更多相关主题的帖子: color 
2011-03-20 23:41
bccn250
Rank: 5Rank: 5
等 级:职业侠客
帖 子:154
专家分:379
注 册:2010-5-25
收藏
得分:4 
你希望它 第21行执行完以后退出程序??还是??
如果是退出程序的话,好像是用 exit(0);
应该还有其他方法

2,你说你这个程序中没用到 getbalance 函数。这点,我想说:汗!
这个函数你没有注释,但从你的函数定义来看,应该是查看余额的函数。

看看这里 cout<<"现在的账户余额为: "<<account1.setAccount(money1)<<endl; 这里就可以用啊,你却用了设置初始余额的函数
再看看这行 cout<<"现在的账户余额为: "<<account1.credit(money2)<<endl;  这行更糟,这行也可以用getbalance函数,但你用的是存钱的函数,存钱就是把余额加上存进的钱。就算这样是正确的吧,那如果我想要再看一次余额呢???你还用这样:cout<<"现在的账户余额 为: "<<account1.credit(money2)<<endl; 这样吗?这样的话,就又执行了一次存钱,这时就不 是你想看到的余额了,后面取钱那里也是一样。所以查余额用 getbalance函数,所以函数要明确他的用途,不要跨部门管不该管的事情。
这两行,你在前面都写了“现在的账户余额为:” 那就用查余额函数嘛,你可以先存完钱,再查。

所以我最上面说的其他办法退出程序,就是可以用 getbalance函数判断余额是不是和法的。,你的程序有点乱,

存钱函数和取钱函数可以不要返回余额,返回余额的事情交给 getbalance函数


[ 本帖最后由 bccn250 于 2011-3-21 01:53 编辑 ]
2011-03-21 01:47
编程2011
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:73
专家分:19
注 册:2011-3-3
收藏
得分:0 
回复 2楼 bccn250
谢谢你的指正,下面是改了后程序,但是exit(0),没学过 不知道怎么用,他属于哪个库函数或头文件?谢谢
   
程序代码:
#include<iostream>
using namespace std;

class Account
{
   public:
       Account(int account)
       {
           setAccount(account);//构造函数使得最初的余额得以初始化
       }
     void setAccount(int account)
     {
         if(account>=0)//判断输入的最初的值是否有效
         {
             restAccount=account;
            
         }
         else
         {
             restAccount=0;
             cout<<"初始的账户余额是无效的"<<endl;//第21行
         }

 
   
    
     }
    
     void credit(int newAccount)//存钱的函数
     {   
         restAccount=newAccount+restAccount;
        
     }
     void debit(int restofAccount)//取钱的函数
     {
         if(restAccount>=restofAccount)//判断所取的钱是否超过所存的钱
         {
             restAccount=restAccount-restofAccount;
   
         }
         else
         {
       
             cout<<"Debit amount exceeded account balance "<<endl;
         }
     }
     int  getbalance( )//显示余额
     {
         cout<<"现在的用户余额是: ";
          return  restAccount;
     }
   private:

       int restAccount;
};
  int main()
  {  
      int money1,money2,money3;//输入的钱数
      cout<<"请输入账户的初始余额: ";
        cin>>money1;
      Account account1(money1);
       cout<<account1.getbalance()<<endl;//显示余额
      cout<<"请输入你要存入的钱: ";
         cin>>money2;
         account1.credit(money2);
          cout<<account1.getbalance()<<endl;;//显示余额


      cout<<"请输入你要取的钱: ";
      cin>>money3;       
     account1.debit(money3);
    cout<<account1.getbalance()<<endl;//显示余额
     return 0;
  }
2011-03-21 22:27
编程2011
Rank: 2
来 自:湖南
等 级:论坛游民
帖 子:73
专家分:19
注 册:2011-3-3
收藏
得分:0 
会使用exit了,再次感谢
程序代码:
#include<iostream>
   
#include<stdlib.h>
using namespace std;

class Account
{
   public:
       Account(int account)
       {
           setAccount(account);//构造函数使得最初的余额得以初始化
       }
     void setAccount(int account)
     {
         if(account>=0)//判断输入的最初的值是否有效
         {
             restAccount=account;
            
         }
         else
         {
             restAccount=0;
             cout<<"初始的账户余额是无效的"<<endl;exit(0);//跳出程序
         }

 
   
    
     }
    
     void credit(int newAccount)//存钱的函数
     {   
         restAccount=newAccount+restAccount;
        
     }
     void debit(int restofAccount)//取钱的函数
     {
         if(restAccount>=restofAccount)//判断所取的钱是否超过所存的钱
         {
             restAccount=restAccount-restofAccount;
   
         }
         else
         {
       
             cout<<"Debit amount exceeded account balance "<<endl;
         }
     }
     int  getbalance( )//显示余额
     {
         cout<<"现在的用户余额是: ";
          return  restAccount;
     }
   private:

       int restAccount;
};
  int main()
  {  
      int money1,money2,money3;//输入的钱数
      cout<<"请输入账户的初始余额: ";
        cin>>money1;
      Account account1(money1);
       cout<<account1.getbalance()<<endl;//显示余额
      cout<<"请输入你要存入的钱: ";
         cin>>money2;
         account1.credit(money2);
          cout<<account1.getbalance()<<endl;

      cout<<"请输入你要取的钱: ";
      cin>>money3;       
     account1.debit(money3);
    cout<<account1.getbalance()<<endl;//显示余额
     return 0;
  }
2011-03-22 22:41
ylcjb
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2011-12-1
收藏
得分:0 
求简化点··
2011-12-01 11:00
快速回复:一个简单的银行账户程序以及其中的两个问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020722 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved