简易银行管理系统C++版_第1页
简易银行管理系统C++版_第2页
简易银行管理系统C++版_第3页
简易银行管理系统C++版_第4页
简易银行管理系统C++版_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业#include#include #include #include#includeusing namespace std;struct Clientchar name20; /姓名char ID_num20; /身份证号码 char account20; /账号char password20; /密码char address20; /住址char type20; /存款类型double money; /金额bool IsLost; bool IsLock;Client

2、 * link;Client(Client * ptr=NULL)link=ptr;Client(char n,char i,char a,char p,char q,char t,double m,Client * ptr=NULL) /构造函strcpy_s(name,n);strcpy_s(ID_num,i);strcpy_s(account,a);strcpy_s(password,p);strcpy_s(address,q);strcpy_s(type,t); money=m;link=ptr;void Deposit() /存款 double m;coutnntt请输入存款金额:b

3、bbbbbbbbbb;cinm;money=money+m;coutnntt*存 款 成 功 !*;coutnntt*;coutnnnn; coutttn; coutendl; coutttn; couttt| 姓名: |nameendl; couttt| 账号: |accountendl; couttt| 本次存款: |mendl; couttt| 可用余额: |moneyendl; coutendl;void Withdrawals() /取款double m;while(1)coutnntt请输入取款金额:bbbbbbbbbbb;cinm;if(m0)if(moneym)coutnntt

4、*对不起,您的余额不足*endl; elsemoney=money-m;coutnntt*交 易 成 功*;coutnntt*; coutnnnn; coutttn; coutendl; coutttn; couttt| 姓名: nameendl; couttt| 账号: accountendl; couttt| 本次取款: mendl; couttt| 可用余额: moneyendl;coutendl;break;else coutnntt*你输入的金额有误,请输入数值大于0的金额数!*endl;void ChangPassword() /修改密码char newPassword120,ne

5、wPassword220;for(int i=0;i20;i+)newPassword1i=0;newPassword2i=0;while(1)coutnntt请输入新密码:bbbbbbbbbbbbbbbbbbbb;cinnewPassword1;coutendl;coutnntt请再次输入密码:bbbbbbbbbbbbbbbbbbbb;cinnewPassword2;if(strcmp(newPassword1,newPassword2)=0)strcpy_s(password,newPassword1);coutnntt*密码修改成功!*endl;break;coutendl;coutnn

6、tt*两次输入的密码不一致,请重新输入!*;/* *打印分割行 */void printSeperatorLine(int FIELD_NUM,int FIELD_WIDTH)coutn;cout|;/FIELD_NUM定义为全局只读变量,表示用户信息域的数量,这里只有姓名,ID,账号,余额,存款类型,住址 所以是6/FIELD_WIDTH定义为只读全局变量,用来控制输出显示表格中提供给每个域的宽度,这个可以根据自己显示器的宽度进行适当调整for(int k = 0; k FIELD_NUM; +k)for(int i = 0; i FIELD_WIDTH; +i)cout-;cout|;co

7、utendl;void printHeadLine(int FIELD_WIDTH)cout|;/设置输出“姓名”长度为18,不够18个字符则用空格字符填补,设置为靠左对齐(没有居中对齐),如果超过18个字符,那么会被截断为18个字符coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)姓名|;coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)ID|;coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)账号|;coutsetw(FIELD_

8、WIDTH)setfill( )setiosflags(ios:left)余额|; coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)存款类型|;coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)住址|;/* *查询个人卡中信息 */void InquiryIndividual() int y=6,FIELD_WIDTH=18,x=18;printSeperatorLine(y,x);printHeadLine(x);printSeperatorLine(y,x);cout|setw(F

9、IELD_WIDTH)setfill( )setiosflags(ios:left)name|;coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)address|;coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)account|;coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)money|;coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)type|;coutsetw(FIEL

10、D_WIDTH)setfill( )setiosflags(ios:left)addresslink=NULL? true:false; /判断链表是否为空void CreatAccount(); /创建一个账号void UsersLogIn(); /用户登录void ReportTheLost(); /挂失银行卡void ResetPassword(); /重置密码void CancelUsers(); /注销用户void Transfer(Client * &c1); /转账:从c1节点的客户转账到其他客户void Menu(); /主菜单s;void system:makeEmpty()

11、 Client * q;while(first-link!=NULL)q=first-link;first-link=q-link;delete q;int system:Length()const Client * p=first-link;int count=0;while(p!=NULL)p=p-link;count+;return count;Client * system:Search(char h) /搜索与给定字符串相等的节点,返回节点地址,若没有搜索到,返回NULLClient * current=first-link;while(current!=NULL)if(strcmp

12、(h,current-ID_num)=0)break;else current=current-link;return current;Client * system:SearchA(char h)Client * current=first-link;while(current!=NULL)if(strcmp(h,current-account)=0)break;else current=current-link;return current;Client * system:Locate(int i)if(i0) return NULL;Client * current=first;int

13、k=0;while(current!=NULL&klink;k+;return current;bool system:Append(char n,char i,char a,char p,char q,char t,double m) /添加一个节点到链表尾端Client * newNode=new Client(n,i,a,p,q,t,m);last-link=newNode;newNode-link=NULL;last=last-link;return true;void system:CreatAccount() /创建一个客户账号信息,若账号重复,则需重新输入账号;若两次密码输入不一

14、致,则需重新输入密码char n20;char r20;char q20;char t20;char t120=活期;char t220=死期;for(int i=0;i20;i+)ni=0;ri=0;qi=0;ti=0;coutnntt请输入姓名:bbbbbbbbbbbbbbbbbbbb;cinn; /输入姓名coutendl;coutnntt请输入地址:bbbbbbbbbbbbbbbbbbbb;cinq; /输入地址while(1)coutnntt请输入存款类型:(死期or活期)bbbbbbbbbbbbbbbbbbbb;cint; /输入存款类型if(strcmp(t,t1)!=0)&(s

15、trcmp(t,t2)!=0)coutnntt*请选择死期或活期!*; else break;while(1)coutnntt请输入ID号:bbbbbbbbbbbbbbbbbbbb;cinr; /输入ID号Client * current1=Search(r); /在银行卡系统链表中搜索此账户,并判断链表中是否存在此账户if(current1!=NULL) coutnntt*该账号已存在,请重新输入账号!*bbbbbbb;else break;char Password120,Password220;for(int i=0;i20;i+)Password1i=0;Password2i=0;wh

16、ile(1)coutnntt请输入新密码:bbbbbbbbbbbbbbbbbbbb;cinPassword1;coutendl;coutnntt请再次输入密码:bbbbbbbbbbbbbbbbbbbb;cinPassword2;if(strcmp(Password1,Password2)=0)break;coutendl;coutnntt*两次输入的密码不一致,请重新输入*; char a20; int num,num1,ii=0,jj=0;while(jj0) num1=num%10; num=num/10; num1+=48; aii=num1; ii+; cout您的账户号为:aendl

17、;double m=0.0;Append(n,r,a,Password1,q,t,m); /将用户信息收集之后,加入到银行卡系统链表尾端保存coutnntt*创建账户成功!*bbbbbbb;coutendl;void system:UsersLogIn() /用户登录char LogInAccount20,LogInPassword20; for(int i=0;i20;i+)LogInAccounti=0;LogInPasswordi=0;coutnnt请输入账号:bbbbbbb;cinLogInAccount;coutendl;Client * current=SearchA(LogInA

18、ccount); /在银行卡系统链表中搜索此账户,并判断链表中是否存在此账户if(current!=NULL) /账号需存在int LockCount=0; /客户每输入密码错误一次LockCount加一,当LockCount=3时,银行卡被锁定,不能登录,需解除锁定才能使用while(LockCount3)coutnnt请输入密码:bbbbbbb;cinLogInPassword;if(strcmp(LogInPassword,current-password)=0)break;else LockCount+; coutIsLock=true;coutnnt输入密码错误三次,您的账号已被封锁

19、!bbbbbbb;elseint w;couttn; /客户菜单coutt| (1)存款 |n;coutt| (2)转账 |n;coutt| (3)取款 |n;coutt| (4)修改密码 |n;coutt| (5)查询个人信息 |n;coutnntt 请选择操作(1-5):bb;cinw;switch(w)case 1:current-Deposit();break;case 2:Transfer(current);break;case 3:current-Withdrawals();break;case 4:current-ChangPassword();break;case 5:curr

20、ent-InquiryIndividual();break; return;void system:ReportTheLost() /挂失银行卡,挂失后银行不能使用char LogInAccount20;for(int i=0;i20;i+)LogInAccounti=0;coutnnt请输入账号:bbbbbbb;cinLogInAccount;coutIsLost=true;coutnnt账号挂失成功!bbbbbbbendl;elsecoutnnt不存在此用户!bbbbbbbendl;return;void system:Transfer(Client * &c1) /转账char LogInAccount120,LogInAccount220;for(int i=0;i20;i+)LogInAccount1i=0;LogInAccount2i=0;while(1)coutnnt请输入需要转入的账号:bbbbbbb;cinLogInAccount1;coutnnt请再次输入需要转入的账号:bbbbbbb;cinLogInAccount2;if(strcmp(LogInAccount1,LogInAccount2)=0)break;else coutnnt两次账号输入不

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论