这次敲大作业感受良多,尽管是一个相对简单地题目(也许是我写的功能太少了...)
其中出现了很多很多的bug让我一度崩溃,各种逻辑错误层出不穷,通过反复请教度娘解决了产生bug的人后终于完成了。。
这次的C++代码使用单链表来存储,通过设置密码来限制访问。用结构体作为链表的结点,没有使用类的多态性主要是觉得没有必要。。。下面附上代码吧,把bug解决了之后还是很自豪的,希望毕业了能做个程序猿,工作个三五年之后回头看现在这个代码能好好地批评一顿现在的我,这么垃圾的代码写出来还自豪什么o(▼皿▼メ;)o
#include<iostream>
#include<string>
using namespace std;
struct account
{
 int count;        //编号
 double data;       //余额
 account *next;
 char name[20];       //帐号人姓名
 char password[20];      //密码
};
class ConsumerList
{
public:
 ConsumerList();
 ~ConsumerList();
 int Locate();       //按编号查找
 char Get();        //按名字查找
 void Add();        //入户
 void Delete();
 int PrintList();      //遍历所有人的信息
 void Print(account *p);
 int Deposit(account *p);    //存款
 int Withdrawal(account *p);    //取款
private:
 account *first;
 int count;
};
ConsumerList::ConsumerList()
{
 first=new account;
 first->next=NULL;
 first->count=0;
 first->data=0;
 strcpy(first->name,"NULL");
 strcpy(first->password,"0");
}
ConsumerList::~ConsumerList()
{
 account *q=NULL;
 while(first!=NULL)
 {
  q=first;
  first=first->next;
  delete q;
 }
}
void ConsumerList::Add()
{
 double data;
 char *p=new char[20];
 char *c=new char[20];
 cout<<"  开户人姓名: ";
 cin>>p;
 cout<<endl<<"  存款数额: ";
 cin>>data;
 cout<<endl<<"  请设置密码: ";
 cin>>c;
 account *node=new account;
 node->count=0;
 node->data=data;
 strcpy(node->name,p);
 strcpy(node->password,c);
 account *a=new account;
 account *b=new account;
 a=first;
 b=first;
 int count=0;
 while(a!=NULL)
 {
  b=a;
  a=a->next;
  node->count=++count;
 }
 node->next=b->next;
 b->next=node;
 cout<<"  您账户的编号是: "<<node->count<<endl;
}
int  ConsumerList::Locate()
{
 int x,i;
 char *a=new char [20];
 cout<<"  输入你要查找的用户的编号:";
 cin>>x;
 account *p=first;
 while(p!=NULL)
 {
  if(p->count==x)
  {
   cout<<"  请输入密码: ";
   cin>>a;
   if(strcmp(p->password,a)==0)
   {
    Print(p);
    break;
   }
   else
   {
    cout<<"  密码错误";
    return 0;
   }
  }
  else p=p->next;
 }
 if(p==NULL)
 {
 cout<<"  查找不到,请重试:";
 return 0;
 }
 else do
 {
  cout<<"  1---存款"<<endl;
  cout<<"  2---取款"<<endl;
  cout<<"  3---取消"<<endl;
  cout<<"  ";
  cin>>i;
  switch(i)
  {
  case 1:Deposit(p);break;
  case 2:Withdrawal(p);break;
  case 3:break;
  default:cout<<"  错误选择!请重选"<<endl;break;
  }
  }
  while(i!=3);
  return 0;
 
}
char ConsumerList::Get()
{
 int i;
 char *d=new char[20];
 char *e=new char[20];
 cout<<"  输入你要查找的用户的名字:";
 cin>>d;
 account *p=first;
 while(p!=NULL)
 {
  if(strcmp(p->name,d)==0)
  {
   cout<<"  请输入账户密码: ";
   cin>>e;
   if(strcmp(p->password,e)==0)
   {
    Print(p);
    break;
   }
   else
   {
    cout<<"  密码错误";
    return 0;
   }
  }
 else p=p->next;
 }
 if(p==NULL)
 {
  cout<<"  查找不到,请重试:"<<endl;;
  return 0;
 }
 else do
 {
  cout<<"  1---存款"<<endl;
  cout<<"  2---取款"<<endl;
  cout<<"  3---取消"<<endl;
  cout<<"  ";
  cin>>i;
  switch(i)
  {
  case 1:Deposit(p);break;
  case 2:Withdrawal(p);break;
  case 3:break;
  default:cout<<"  错误选择!请重选"<<endl;break;
  }
  }
  while(i!=3);
 return 0;
}
void ConsumerList::Delete()
{
 cout<<"  输入你要销户的账户编号: ";
 int x;
 char *a=new char [20];
 cin>>x;
 account *p,*q;
 q=new account;
 p=first;
 while(p->count!=x&&p!=NULL)
 {
  q=p;
  p=p->next;
 }
 cout<<"  请输入账户密码: ";
 cin>>a;
 if(strcmp(p->password,a)==0)
  if(p->next==NULL)
  {
   q->next=NULL;
   delete p;
  }
  else
  {
  q=p->next;
  cout<<"  您所删除的账户信息为:";
  Print(p);
  p->data=q->data;
  p->count=q->count;
  strcpy(p->name,q->name);
  p->next=q->next;
  delete q;
  }
 else
 {
  cout<<"  密码错误,取消销户操作";
 }
}
void ConsumerList::Print(account *p)
{
 cout<<"  编号:"<<p->count<<"   余额:"<<p->data<<"   姓名:"<<p->name<<endl;
}
int ConsumerList::PrintList()
{
 char *p=new char[20];
 cout<<"  请输入密码:";
 cin>>p;
 cout<<endl;
 if(strcmp(p,"123456789")==0);
 else
 {
  cout<<"  密码错误"<<endl;
  return 0;
 }
 account *q=new account;
 q=first;
 while(q!=NULL)
 {
  q=q->next;
  if(q==NULL)
  {
   cout<<"  本系统先阶段暂无客户开户信息,请等有客户开户后再使用本功能";
   return 0;
  }
  else
   Print(q);
 }
 return 0;
}
int ConsumerList::Deposit(account *p)
{
 int x;
 cout<<"  存入金额整数:";
 cin>>x;
 if(x<0)
 {
  cout<<"  输入错误,请存入大于0的金额数"<<endl;
  return 0;
 }
 else
 {
 p->data=p->data+x;
 return 0;
 }
}
int ConsumerList::Withdrawal(account *p)
{
 int x;
 cout<<"  取出金额整数:";
 cin>>x;
 if(x>p->data)
 {
  cout<<"  输入错误,请取出金额数目少于或等于您账户现存余额"<<endl;
   return 0;
 }
 else
 {
 p->data=p->data-x;
 return 0;
 }
}
int main()
{
 ConsumerList a;
 int i;
 cout<<"   欢迎使用自助银行"<<endl<<endl;
 cout<<"  本系统直接连接中国建设银行,拥有开户、销户、查询账户信息、存款、取款功能"<<endl<<endl;
 do
 {cout<<endl;
 cout<<"  1---入户"<<endl;
 cout<<"  2---查询名字"<<endl;
 cout<<"  3---查询编号"<<endl;
 cout<<"  4---销户"<<endl;
 cout<<"  5---显示所有人信息(内部人员使用)"<<endl;
 cout<<"  6---退出"<<endl;
 cout<<"  ";
 cin>>i;
 switch(i)
 {
 case 1:a.Add();
        break;
 case 2:a.Get();
  break;
 case 3:a.Locate();
  break;
 case 4:a.Delete();
  break;
 case 5:a.PrintList();
  break;
 case 6: break;
 default:cout<<"  错误选择!请重选";
  break;
 }
 }while(i!=6);
 cout<<"谢谢使用自助银行系统,祝您一路顺风";
 return 0;
}

大一下课程设计————银行活期储蓄系统相关推荐

  1. 《数据结构课程设计》 活期储蓄管理系统 实验报告

    <数据结构课程设计> 题目1:活期储蓄管理系统   学生姓名 胡泳行 所在专业 信息管理与信息系统专业 所在班级 信管1134班 任课老师 易学明 实习时间 2015年 1月 4 日 指导 ...

  2. 《数据结构课程设计》——活期储蓄账目管理系统

    <数据结构课程设计> 课程题目 活期储蓄账目管理系统 课程编号 j1620102 学生姓名 张瑞祺 所在专业 信息管理与信息系统 所在班级 信管1132 学号 201311671231 任 ...

  3. 家族关系查询系统程序设计算法思路_大数据结构课程设计(家族关系查询系统)要点...

    实用标准文案 精彩文档 1 课程设计介绍 1.1 课程设计项目简介 家谱是一种以表谱形式, 记载一个以血缘关系为主体的家族世 系繁衍和重要人物事迹的特殊图书载体.家谱是中国特有的文化 遗产,是中华民族 ...

  4. 银行账户管理系统c语言链表,课程设计银行储蓄管理系统Word版

    <课程设计银行储蓄管理系统Word版>由会员分享,可在线阅读,更多相关<课程设计银行储蓄管理系统Word版(22页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ...

  5. c语言编程银行排队系统,C语言_课程设计银行排队系统.doc

    C语言_课程设计银行排队系统 #include #include #include #include #include #define n 3 int vip1=0; int y,z; float s ...

  6. 飞机订票系统c语言大作业,c语言课程设计---飞机订票系统

    <c语言课程设计---飞机订票系统>由会员分享,可在线阅读,更多相关<c语言课程设计---飞机订票系统(46页珍藏版)>请在皮匠网上搜索. 1.C 语言程序设计课程设计报告设计 ...

  7. c语言排班系统设计报告,C语言课程设计关于排班系统的一些问题

    已结贴√ 问题点数:10 回复次数:5 C语言课程设计关于排班系统的一些问题 小女大一,课程设计是百度排班系统(虽然不知老师干嘛现在布置类似小系统的作业),在论坛中找到个代码,其实只要交了代码就好,但 ...

  8. 软件工程导论 银行储蓄系统_银行计算机储蓄系统

    银行计算机储蓄系统 题目:银行帐户管理,储蓄业务管理处理系统 班级:计算机科学与技术( 3 )班 设计者:易华丽 1 引言 1.1 编写目的 本报告的目的是规范化本软件的编写,旨在于提高软件开发过程中 ...

  9. javaweb课程设计共享单车租赁系统

    许多先进国家早已致力于发展自行车替代高能耗.高排放的交通工具.然而传统落后的自行车租赁管理模式仍然在很大程度上制约了推行公共自行车租赁普及化和现代化的发展,成为更深层次的"软环境" ...

最新文章

  1. 空间金字塔池化_CVPR 2018 | 旷视科技人体姿态估计冠军论文——级联金字塔网络CPN...
  2. linux5支持32,Red Hat发布RHEL5.3 可支持32颗虚拟CPU
  3. uniGUI试用笔记(四)
  4. 马云:今后数字技术是让人类能够更好的生存下去
  5. 哈工大2015秋 编译原理课程实验1:词法分析
  6. user and group
  7. 进程间通信-命名管道FIFO
  8. 绘制自己的人际关系图_绘制自己的人际关系网
  9. Java GUI实现图书管理系统
  10. 用友T3如何反结账,反记账
  11. php制作600行表格,表格排版的基本操作
  12. 冬瓜哥直播:小白一小时掌握机器学习底层原理
  13. Django之开发微信小程序后端-会话管理篇③
  14. 传奇GOM引擎——添加NPC
  15. 记一次JAVA中字符串首字母大写转化为小写的Code
  16. 大二第二次月赛--买水果
  17. 15 款 Windows 的数据恢复工具
  18. 医疗器械产品 EMC 测试与整改思路
  19. 眼图形成理论研究(关于眼图的原理、基础及测量)
  20. 过分依赖计算机的影响,技术的“两面性”过于依赖技术,会给生活带来什么影响?...

热门文章

  1. java怎么清楚项目痕迹_Windows 入侵痕迹清理技巧
  2. IDEA必备插件、阿里巴巴规范插件(代码格式化,注释模板化)的安装及使用和快捷键设置
  3. Word 表格添加行快捷键
  4. gdx 播放 sound 失败
  5. qgis自动获取建筑和道路矢量
  6. 登陆云边端,AI芯片产业打响全线战争
  7. LC200. 岛屿数量
  8. sql server 2014下载及安装步骤—图解
  9. 关于Unity的回放功能
  10. 遇到乱码问题,如何解决?