数据结构课程设计

来源:互联网 发布:智能手环功能原理 知乎 编辑:程序博客网 时间:2024/04/28 11:07

一、实训目的

通过课程设计,学会运用数据结构知识,针对具体应用,自己设计合理数据结构,确定存储结构,并能设计具体操作算法,选择使用具体语言进行实现。掌握C++较复杂程序的组织和设计过程,调试技巧。学习解决实际问题的能力。

题目 1.小明是一个计算机专业top student,祝贺他毕业了。并准备到银行参加工作。上班第一天,经理叫他编制一个实现一个活期储蓄处理程序,算作考查。上班第一天, 一定要给领导一个好印象,小明二话没说,就答应了。现要你是小明了,请完成如下题目功能。储户开户、销户、存入、支出活动频繁,系统设计要求:(1能比较迅速地找到储户的帐户,以实现存款、取款记账;2能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。

源代码:

</pre><pre name="code" class="cpp"><span style="font-size:14px;">#include<iostream.h>#include<iomanip.h>#include <string>using namespace std;long num[100],time[100];float money[100];char*namek[100];char*idk[100];char*telk[100];char*wplacek[100],*homek[100];float interest=0;char yes;char name[100]; int get_num( long *num  )   //获取账号{for(int j=1;j<=100;j++)if(num[j]<=0)return j;cout<<"   账户已满"<<endl;return 0;}                                //填写资料 void get_inform(  int n,long* num,char**idk, char **namek,char**wplacek,char**telk,char**homek){ cout<<"请输入  姓    名:";cin>>*(namek+n);cout<<"请输入  电话号码:";cin>>*(telk+n);cout<<"请输入  单位名称:";cin>>*(wplacek+n);cout<<"请输入  地    址:";cin>>*(homek+n); cout<<"请输入  密    码:";cin>>*(num+n);cout<<"请输入身份证号码:";cin>>*(idk+n); return;}                            //个人界面  void personal(int n,long* time,float *money,long *num,float interest) { long t;  int mtemp,ntemp,loop=0;  char temp;//loop=0  while(loop==0)              //loop=0不能放到personal外!  {cout<<"++++++++++++++++++++++++++++++++"<<endl;  cout<<"    1-存    款"<<endl;  cout<<"    2-取    款"<<endl;  cout<<"    3-转    账"<<endl;   cout<<"    4-销    户"<<endl;  cout<<"    5-返回主菜单"<<endl;  cout<<"当前的利率为:"<<endl;      scanf("%c",&temp);      fflush(stdin);  if(temp!='1'&&temp!='2'&&temp!='3'&&temp!='4'&&temp!='5') cout<<"输入错误,请重新输入\n"<<endl;  switch(temp){  case '1':  cout<<"请输入存款金额:";  cin>>mtemp;  *(money+n)+=mtemp;  cout<<"   交易成功!"<<endl;   cout<<"   当前的余额为:"<<*(money+n)<<endl;  break;  case '2':  cout<<"请输入存款时长:";  cin>>t;  *(time+n)=t;  interest+=(0.02*t*(*(money+n)));  cout<<"   获得利息为:"<<interest<<endl;          *(money+n)+=interest;  cout<<"请输入取款金额(<="<<*(money+n)<<"):";  cin>>mtemp;  if(mtemp>*(money+n))  {  cout<<"   余额不足,交易失败!";  break;  }  *(money+n)-=mtemp;  cout<<"   交易成功!"<<endl;  cout<<"   当前的余额为:"<<*(money+n)<<endl;   break;  case '3':  cout<<"请输入转入账号:";  cin>>ntemp;  if(ntemp<1||ntemp>99)  {  cout<<"   该账号不存在!"<<endl;  break;  }          if(*(num+ntemp)==0)  {  cout<<"   该账号未注册!"<<endl;  break;  }      if(*(num+ntemp)==-1)  {  cout<<"   该账户已注销!"<<endl;  break;  }  cout<<"请输入转出金额(<="<<*(money+n)<<"):";  cin>>mtemp;  if(mtemp>*(money+n))  {  cout<<"   余额不足,交易失败!";  break;  }      cout<<"   确认转账?[Y/N]:";      cin>>yes;  if(yes=='Y')  {   *(money+n)-=mtemp;  *(money+ntemp)+=mtemp;  cout<<"   交易成功!"<<endl;  }  cout<<"   当前的余额为:"<<*(money+n)<<endl;  break;  case '4':  cout<<"   确认注销?[Y/N]:";  cin>>yes;  if(yes=='Y')  {  cout<<"   已注销!"<<endl;  *(num+n)=-1;  }  loop=1;  break ;  case '5':  loop=1;  break;  }}}                                    //打印用户信息  void print(int n,char**namek,char**wplacek,char**telk,  char**homek,char**idk,float *money,long*time,float interest)                       //不能是char*namek,char*wplacek(二级指针)  {cout<<"=================================="<<endl;    cout<<"账      号:"<<setw(6)<<setfill('0')<<n<<endl;    cout<<"姓      名:"<<*(namek+n)<<endl;    cout<<"单      位:"<<*(wplacek+n)<<endl;    cout<<"电      话:"<<*(telk+n)<<endl;cout<<"地      址:"<<*(homek+n)<<endl;cout<<"余      额:"<<*(money+n)<<endl;    cout<<"时      长:"<<*(time+n)<<endl;        cout<<"利      息:"<<interest<<endl;cout<<"身份证号码:"<<*(idk+n)<<endl;     cout<<"=================================="<<endl;  }                          //查询void check(int n,char**namek,char**wplacek,char**telk,  char**homek,char**idk,float *money,long*time,float interest)     {  int i=0,k=0;char j;  //k=0 while(k==0)  {cout<<"++++++++++++++++++++++++++++++++"<<endl; cout<<"       1-按账号查询"<<endl; cout<<"       2-按姓名查询"<<endl; cout<<"       3-返回上一层"<<endl; scanf("%c",&j);     fflush(stdin); if(j!='1'&&j!='2'&&j!='3') cout<<"输入错误,请重新输入\n"<<endl; switch(j) { case '1': cout<<"请输入账号:"; cin>>n;         if(n<1||n>99) { cout<<"   该账号不存在!"<<endl; break; } if(*(num+n)==0) { cout<<"   该账号未注册!"<<endl; break; } if(*(num+n)==-1) { cout<<"   该账户已注销!"<<endl; break; }  print( n,namek,wplacek,telk,  homek,idk,money,time,interest);break; case '2':           cout<<"请输入姓名:"; cin>>name; for(j=1;j<=99;j++) { if(string(*(namek+j))==string(name)) { if(*(num+j)!=-1) { print( j,namek,wplacek,telk,           homek,idk,money,time,interest); i++; }    } } if(i==0) cout<<"   该户主不存在!"<<endl; break; case '3': k=1; break; } }  } void main(){cout<<"  欢迎进入活期储蓄账目管理 "<<endl;int r=0,i,m,n;char temp;for(i=1;i<=100;i++){num[i]=0;money[i]=0;time[i]=0;*(namek+i)=new char[100];    //*(wplacek+i)=new char[100];  //*(homek+i)=new char[100];*(idk+i)=new char[100];*(telk+i)=new char[100];}while(r==0){cout<<"********************************"<<endl;cout<<"   1-进入帐户"<<endl;cout<<"   2-开    户"<<endl;cout<<"   3-查    询"<<endl;cout<<"   4-退    出"<<endl;cout<<"********************************\n请选择:"<<endl;scanf("%c",&temp);fflush(stdin); if(temp!='1'&&temp!='2'&&temp!='3'&&temp!='4') cout<<"输入错误,请重新输入\n"<<endl; switch(temp) { case '1':   cout<<"请输入账号:";   cin>>n;   if(n<1||n>99)   {   cout<<"   该账号不存在!"<<endl;   break;   }   if(*(num+n)==0)   {   cout<<"   该账号未注册!"<<endl;   break;   }   if(*(num+n)==-1)   {   cout<<"   该账户已注销!"<<endl;   break;   }   cout<<"请输入密码:";   cin>>m;   if(*(num+n)!=m)   {   cout<<"   密码错误!";   break;   }   else    personal(n,time,money,num,interest);   break; case '2': n=get_num(  num  ); if(n==0) break; get_inform(n,num, idk,namek,wplacek,telk,homek); cout<<"   确认开户?[Y/N]:"; cin>>yes; if(yes=='Y') cout<<"   开户成功!\n"<<"   您的账号为:" <<setw(6)<<setfill('0')<<n<<endl;    else *(num+n)=-1;break; case '3': check( n,namek,wplacek,telk,homek,idk,money,time,interest);   break; case '4': r=1; cout<<"   welcome!"<<endl; break;      }  }for(i=1;i<100;i++){     delete []*(namek+i);         delete []*(wplacek+i);      delete []*(homek+i);   delete []*(idk+i);   delete []*(telk+i);} }</span>
程序实现:







0 0
原创粉丝点击