C++程序设计 统计银行存款

假设某储户在工行,建行,中行都有可能有存款,请设计并实现如下功能:
1)储户可以在上述三家银行中的任意一家进行存款或者取款的操作
2)按月或年统计储户在三家银行的存款数
3)按月或年显示储户在三家银行的存款数
最新回答
是该放手了

2024-09-10 00:16:02

  //vc++6.0下调试通过
  #include<iostream>
  #include<cstdlib>
  using namespace std;

  class Bank{
  private:
  double timeMoney[30][12];//二维数组,最多三十年
  public:
  Bank(){
  for(int i=0;i<30;i++)
  for(int j=0;j<12;j++)
  timeMoney[i][j]=0.0;
  }
  void getMoney(double money,int year,int month);
  void inputMoney(double money,int year,int month);
  void sumitMoney(char choice);
  void main_menu();
  };
  void Bank::getMoney(double money,int y,int m)
  {
  --y;--m;
  if(timeMoney[y][m]-money>=0.0)
  {
  timeMoney[y][m]-=money;
  cout<<"操作成功!"<<endl;
  }
  else
  cout<<"余额不足!"<<endl;

  }
  void Bank::inputMoney(double money,int y,int m)
  {
  --y;--m;
  timeMoney[y][m]+=money;
  cout<<"操作成功!\n"<<endl;

  }
  void Bank::sumitMoney(char choice)
  {
  if(choice=='y')
  {
  cout<<"按年统计:"<<endl;
  for(int i=0;i<30;i++)
  {
  double sum=0.0;
  for(int j=0;j<12;j++)
  sum+=timeMoney[i][j];

  cout<<"第"<<i+1<<"年:"<<sum<<"元"<<endl;
  }
  }
  else if(choice=='m')
  {
  cout<<"按月统计:\n请输入一个需要统计的年份(1--30)";
  int yy;
  cin>>yy;
  yy-=1;
  for(int i=0;i<12;i++)
  cout<<i+1<<"月:"<<timeMoney[yy][i]<<"元"<<endl;
  }

  }

  void Bank::main_menu()
  {
  int choice;
  int y,m,ch;
  double money;
  cout<<"1、取款\t2、存款\t3、统计\t4、返回\n请选择:";
  cin>>choice;
  switch(choice)
  {
  case 1:
  cout<<"\n请输入年份(1-30)月份(1-12)及钱数:\n";
  cin>>y>>m>>money;
  getMoney(money,y,m);
  break;
  case 2:
  cout<<"\n请输入年份(1-30)月份(1-12)及钱数:\n";
  cin>>y>>m>>money;
  inputMoney(money,y,m);
  break;
  case 3:
  cout<<"\n1、按年统计\t2、按月统计\n请选择:";
  cin>>ch;
  if(ch==1)
  sumitMoney('y');
  else if(ch==2)
  sumitMoney('m');
  else
  cout<<"非法操作!!\n";
  break;
  case 4:
  break;
  default:
  cout<<"非法操作!!\n";
  break;
  }

  }
  int main()
  {
  Bank zhong,jian,gong;
  int choice=0;
  while(1)
  {
  cout<<"请选择要操作的银行"<<endl;
  cout<<"1、工行\t2、建行\t3、中行\t4、退出\n请选择:";
  cin>>choice;
  switch(choice)
  {
  case 1:
  gong.main_menu();
  break;
  case 2:
  jian.main_menu();
  break;
  case 3:
  zhong.main_menu();
  break;
  case 4:
  exit(0);
  break;
  default:
  cout<<"非法操作!\n";
  break;
  }
  }
  return 0;
  }
哥的名称亮瞎你的狗眼

2024-09-10 00:27:45

我看了一下

你可以用一个虚基类,包含三个纯虚函数:存款,取款,统计(月份或年份的存取款数)
下设三个继承类,工行,建行,中行,分别重写三个虚函数
可用数组按月保存存款数 ,最好用文件处理

我就不写了,只提示一下,这种东西需要自己多练
蓝雨希

2024-09-10 00:50:04

有想法
我咋那么萌捏

2024-09-10 00:38:33

期待