ImageVerifierCode 换一换
格式:DOC , 页数:13 ,大小:68.50KB ,
资源ID:1126048      下载积分:10 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-1126048.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易银行卡管理系统C++实现(软件工程).doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

简易银行卡管理系统C++实现(软件工程).doc

1、#include#include #include#includeusing namespace std;struct Clientchar name20; /姓名char ID_num20; /身份证号码char account20; /账号char password20; /密码double money; /金额bool IsLost; /是否挂失bool IsLock; /银行卡是否被锁定Client * link;Client(Client * ptr=NULL)link=ptr;Client(char n,char i,char a,char p,double m,bool Is,b

2、ool IL,Client * ptr=NULL) /构造函数strcpy_s(name,n);strcpy_s(ID_num,i);strcpy_s(account,a);strcpy_s(password,p);money=m;IsLost=Is;IsLock=IL;link=ptr;void Deposit() /存款 double m;coutnntt请输入存款金额:bbbbbbbbbbb;cinm;money=money+m;coutnntt*存 款 成 功 !*;coutendl;void Withdrawals() /取款double m;while(1)coutnntt请输入取

3、款金额:bbbbbbbbbbb;cinm;if(m0)if(moneym)coutnntt*对不起,您的余额不足*endl; elsemoney=money-m;coutnntt*交 易 成 功*;coutendl;break;else coutnntt*你输入的金额有误,请输入数值大于0的金额数!*endl;void ChangPassword() /修改密码char newPassword120,newPassword220;for(int i=0;i20;i+)newPassword1i=0;newPassword2i=0;while(1)coutnntt请输入新密码:bbbbbbbbb

4、bbbbbbbbbbb;cinnewPassword1;coutendl;coutnntt请再次输入密码:bbbbbbbbbbbbbbbbbbbb;cinnewPassword2;if(strcmp(newPassword1,newPassword2)=0)strcpy_s(password,newPassword1);coutnntt*密码修改成功!*endl;break;coutendl;coutnntt*两次输入的密码不一致,请重新输入!*;/* *打印分割行 */void printSeperatorLine(int FIELD_NUM,int FIELD_WIDTH)coutn;co

5、ut|;/FIELD_NUM定义为全局只读变量,表示用户信息域的数量,这里只有姓名,ID,账号,余额所以是4/FIELD_WIDTH定义为只读全局变量,用来控制输出显示表格中提供给每个域的宽度,这个可以根据自己显示器的宽度进行适当调整for(int k = 0; k FIELD_NUM; +k)for(int i = 0; i FIELD_WIDTH; +i)cout-;cout|;coutendl;void printHeadLine(int FIELD_WIDTH)cout|;/设置输出“姓名”长度为18,不够18个字符则用空格字符填补,设置为靠左对齐(没有居中对齐),如果超过18个字符,

6、那么会被截断为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_WIDTH)setfill( )setiosflags(ios:left)余额|;/* *查询个人卡中信息 */void InquiryIndividual() int y=4,FIELD_WIDTH=18,x

7、=18;printSeperatorLine(y,x);printHeadLine(x);printSeperatorLine(y,x);cout|setw(FIELD_WIDTH)setfill( )setiosflags(ios:left)name|;coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)ID_num|;coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left)account|;coutsetw(FIELD_WIDTH)setfill( )setiosflags(ios:left

8、)moneylink=NULL? true:false; /判断链表是否为空void CreatAccount(); /创建一个账号void UsersLogIn(); /用户登录void ReportTheLost(); /挂失银行卡void ResetPassword(); /重置密码void CancelUsers(); /注销用户void InquiryUsers(); /查询用户信息void Unlost(); /解除银行卡的挂失状态void UnLock(); /解除银行卡的锁定状态void Transfer(Client * &c1); /转账:从c1节点的客户转账到其他客户vo

9、id Menu(); /主菜单s;void system:makeEmpty() Client * q;while(first-link!=NULL)q=first-link;first-link=q-link;delete q;int system:Length()constClient * p=first-link;int count=0;while(p!=NULL)p=p-link;count+;return count;Client * system:Search(char h) /搜索与给定字符串相等的节点,返回节点地址,若没有搜索到,返回NULLClient * current=f

10、irst-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 k=0;while(current!=NULL&klink;k+;return current;bool system:Append(char n,char i,char a,char p,double m,bool Is,bool

11、IL) /添加一个节点到链表尾端Client * newNode=new Client(n,i,a,p,m,Is,IL);last-link=newNode;newNode-link=NULL;last=last-link;return true;void system:CreatAccount() /创建一个客户账号信息,若账号重复,则需重新输入账号;若两次密码输入不一致,则需重新输入密码char n20;char r20;char a20;for(int i=0;i20;i+)ni=0;ri=0;ai=0;coutnntt请输入姓名:bbbbbbbbbbbbbbbbbbbb;cinn; /

12、输入姓名coutendl;coutnntt请输入ID号:bbbbbbbbbbbbbbbbbbbb;cinr; /输入ID号coutendl;while(1)coutnntt请输入账户号:bbbbbbbbbbbbbbbbbbbb;cina; /输入账户号Client * current1=Search(a); /在银行卡系统链表中搜索此账户,并判断链表中是否存在此账户if(current1!=NULL) coutnntt*该账号已存在,请重新输入账号!*bbbbbbb;else break;char Password120,Password220;for(int i=0;i20;i+)Passw

13、ord1i=0;Password2i=0;while(1)coutnntt请输入新密码:bbbbbbbbbbbbbbbbbbbb;cinPassword1;coutendl;coutnntt请再次输入密码:bbbbbbbbbbbbbbbbbbbb;cinPassword2;if(strcmp(Password1,Password2)=0)break;coutendl;coutnntt*两次输入的密码不一致,请重新输入*;double m=0.0;bool Is=false;bool IL=false;Append(n,r,a,Password1,m,Is,IL); /将用户信息收集之后,加入到

14、银行卡系统链表尾端保存coutnntt*创建账户成功!*bbbbbbb;coutendl;void system:UsersLogIn() /用户登录char LogInAccount20,LogInPassword20; for(int i=0;i20;i+)LogInAccounti=0;LogInPasswordi=0;coutnnt请输入账号:bbbbbbb;cinLogInAccount;coutIsLost=false) /账号未挂失if(current-IsLock=false) /账号未被锁定int LockCount=0; /客户每输入密码错误一次LockCount加一,当L

15、ockCount=3时,银行卡被锁定,不能登录,需解除锁定才能使用while(LockCount3)coutnnt请输入密码:bbbbbbb;cinLogInPassword;if(strcmp(LogInPassword,current-password)=0)break;else LockCount+; coutIsLock=true;coutnnt输入密码错误三次,您的账号已被封锁!bbbbbbb;elseint w;couttn; /客户菜单coutt| (1)存款 |n;coutt| (2)转账 |n;coutt| (3)取款 |n;coutt| (4)修改密码 |n;coutt|

16、(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:current-InquiryIndividual();break;else coutnnt您的账号密码输入错误已三次,禁止输入!bbbbbbbendl;else coutnnt您的账号已被挂失!bbbbbbbendl

17、;else coutnnt不存在此用户bbbbbbbendl;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:ResetPassword() /重置密码char LogInAcco

18、unt20;for(int i=0;i20;i+)LogInAccounti=0;coutnnt请输入账号:bbbbbbb;cinLogInAccount;coutendl;Client * current=Search(LogInAccount);if(current!=NULL)char newPassword120,newPassword220;for(int j=0;j20;j+)newPassword1j=0;newPassword2j=0;while(1)coutnnt请输入新密码:bbbbbbb;cinnewPassword1;coutendl;coutnnt请再次输入密码:bb

19、bbbbb;cinnewPassword2;if(strcmp(newPassword1,newPassword2)=0)strcpy_s(current-password,newPassword1);coutnnt密码重置成功!bbbbbbbendl;break;coutendl;coutnnt两次密码输入不一致,请重新输入!bbbbbbb;elsecoutnnt不存在此用户!bbbbbbbendl;return;void system:CancelUsers() /注销用户char LogInAccount20;for(int i=0;i20;i+)LogInAccounti=0;cout

20、nnt请输入账号:bbbbbbb;cinLogInAccount;coutlink;while(current!=NULL)if(strcmp(LogInAccount,current-account)=0)break;else current=current-link;p=p-link;if(current!=NULL)p-link=current-link;delete current;coutnnt注销用户成功!bbbbbbbendl;elsecoutnnt不存在此用户!bbbbbbbendl;return;void system:InquiryUsers() /查询用户信息char L

21、ogInAccount20;for(int i=0;i20;i+)LogInAccounti=0;coutnnt请输入账号:bbbbbbb;cinLogInAccount;coutprintSeperatorLine(y,x);cout|;/设置输出“姓名”长度为18,不够18个字符则用空格字符填补,设置为靠左对齐(没有居中对齐),如果超过18个字符,那么会被截断为18个字符coutsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)姓名|;coutsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)ID|;c

22、outsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)账号|;coutsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)余额|;coutsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)IsLost|;coutsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)IsLockprintSeperatorLine(y,x);cout|setw(FIELDWIDTH)setfill( )setiosflags(ios:left

23、)name|;coutsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)ID_num|;coutsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)account|;coutsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)money|;coutsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)IsLost|;coutsetw(FIELDWIDTH)setfill( )setiosflags(ios:left)IsLock

24、printSeperatorLine(y,x);elsecoutnnt不存在此用户!bbbbbbbendl;return;void system:Unlost() /解除银行卡的挂失状态char LogInAccount20;for(int i=0;i20;i+)LogInAccounti=0;coutnnt请输入账号:bbbbbbb;cinLogInAccount;coutIsLost=true)current-IsLost=false;coutnnt账号解除挂失成功!bbbbbbbendl;else coutnnt账号尚未挂失!bbbbbbbendl;elsecoutnnt不存在此用户!b

25、bbbbbbendl;return;void system:UnLock() /解除银行卡的锁定状态char LogInAccount20;for(int i=0;i20;i+)LogInAccounti=0;coutnnt请输入账号:bbbbbbb;cinLogInAccount;coutIsLock=true)current-IsLock=false;coutnnt账号解除锁定成功!bbbbbbbendl;else coutnnt账号尚未锁定!bbbbbbbendl;elsecoutnnt不存在此用户!bbbbbbbendl;return;void system:Transfer(Clie

26、nt * &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两次账号输入不一致,请重新输入!bbbbbbbendl;coutendl;Clien

27、t * c2=Search(LogInAccount1);if(c2!=NULL)double output;while(1)coutnnt请输入需要转出的金额:bbbbbbb;cinoutput;if(output=0)coutnnt请输入金额大于0的数!bbbbbbbc1-money) cout您卡中当前余额为:money 余额不足!请重新输入!money=c1-money-output;c2-money=c2-money+output;coutnnt转账成功!bbbbbbbendl;elsecoutnnt不存在此用户!bbbbbbbendl;return;void system:Menu() /主菜单int v;coutnnnn;coutttn;coutendl;coutttn;couttt| (1)创建新用户 |n;couttt| (2)用户

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922