C语言模拟ATM机.doc_第1页
C语言模拟ATM机.doc_第2页
C语言模拟ATM机.doc_第3页
C语言模拟ATM机.doc_第4页
C语言模拟ATM机.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、一寸光阴不可轻一、实验目的通过设计一个ATM机模拟操作的程序,全面运用课程的主要知识点,巩固对模块化程序设 计、文件操作的理解,提高软件编程能力。二、实验要求要求每人独立完成设计,编写一个ATM机模拟操作程序。提交实验报告、源程序、程序运 行截图。1程序具有以下功能:1)登录系统:输入卡号(16位)、密码(6位),只有卡号、密码同时正确(帐户信息存放在文件中)才能进 入系统;2)操作功能: 查询:查询帐户的存款余额。按任意键返回主菜单; 修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存 放到帐户信息文件中。之后可返回主菜单; 取款:输入50或100的倍数模拟为取款

2、金额,请注意:取款金额不得超过帐户余额, 操作后帐户余额应相应减少。之后可返回主菜单; 存款:输入50或100的倍数模拟为存款金额,现假设存款金额不得超过XXXX0元,操 作后帐户余额应相应增加。之后可返回主菜单; 转帐:先输入一个帐户号(已保存在帐户信息文件中),然后显示一部分用户名(如:张* 山),储户确认无误后,再输入50或100的倍数模拟为转帐金额,请注意:转帐金额不 得超过帐户余额,操作后帐户余额应相应减少。之后可返回主菜单; 退出:退出系统。2. 定义如下结构体类型:"日期"结构体 Date:成员有:year(年)、month(月)、day(H);"帐

3、户"结构体Account:成员有:no(帐户号)、name(姓名)、balance(余额)"存取款记录”结构体Record,:成员有:no(帐户号)、date(H期)、number(数量,可正可 负,正表示存款,负表示取款)33.帐户信息存放在accounts.txt文件,储户存取款记录保存在records.txt中;4采用模块化程序设计方法來实现,即main()显示主菜单、调用相关函数实现相 应功能,起主控作用。5.附加功能: 储户一天内输错密码的次数不能超过3次,否则无法进入系统; 应避免输入存款金额、取款金额为负数等异常情况的出现。三、程序已经实现的功能点实验要求均已

4、实现。此外还有:1卡号、密码位数输错时,提示并返回重新输入,2. 简化取款时的输入3. 转账时,转账账户为原账户时,提示并返回重新输入4. 在多个模块中添加了退出功能,无需回到主菜单即可退出系统5. 在查询模块中加入了存取记录明细查询四、程序运行截图及说明1. 登陆模块1) 卡号不为16位时,输出提示并返回重新输入2)卡号不存在时,输出提示并返回重新输入3)密码位数输错时,输出提示并返回重新输入密码,不作为密码错误处理,也无需重新输 入卡号4)密码连续输错三次时,锁定卡号,今口无法登录一寸光阴不可轻2.登录后的系统主菜单3. 查询模块1)查询模块主菜单S3C:WI N D OW Ssyste

5、m 3 2c m d. exe-口 1JA1您的账户余额->1552.00丄-一一一一一一一一一一一一一一一1TTT1査询明细9|11+-+亠丄丄101退岀系统1亠亠 丄1返回121亠丄丄请选择服务:V一寸光阴不可轻92)查询明细4.取款模块1)当余额不足50时,无法进入取款模块2)取款模块主菜单3)便捷取款C:WINDOWSsystem32cmd.exe口 1亠亠 亠亠A111色亠亠 哼100II 2000 + 哼 蚪51 亠亠 哼亠 + 哼 亠亠 I2|<-500IT I 5000和6|+ X+丄+-+丄丄 I3I<- 亠亠 1000 I飞1 r1其它金额171亠亠一亠亠

6、一亠 哼亠T-1r.丄丄一 丁141退岀系统11返 十哼0*101+ - +-+请选择服务正在处理,请稍倏: 取款成功请按任意键继续. 微软拼音半:74)于动输入取款金额输错时,返回重新输入C:WINDOWSsystem32cmd.exeI 3 IG 1000 I+ -I亠2000*151亠一亠1rA丄丄T1+ -50001r->161 +-+I其它金额"7I+-+ - +-+冲|©退岀系统II返回和0|+ +-+请选择服务汀请输入取款金额50的倍数):-50 输入有误,请壷新辙入请按任意铤继续请输入取款金额5®的倍数):2 嘯入有误,请竜新辑入请按任意德继

7、续微软拼音半:5)取款后的菜单6)取款完成后选择显示余额一寸光阴不可轻5.存款模块1)解决输入错误问题请选择服务亠一亠亠 亠亠一亠TT151转十丁账1+T1査+X * w W询今111+寸 1取+ 亠 款和21+-+寸 1存亠 款蚪31丄寸 丄丄 丄1Viei*退岀系统1丄 丄丄1 r1修改密码屮1A丄 丄TTr请选择服务:3请输入存款金额15®的倍数) 喻入有诔,请重新输入 请按任意键继续 后辙入存款会额(50的倍数) 辙入有误,请董薪余i入 请按任意键继续 追确入徉款金额、5®的倍数) 命人有误请車新喃人 请按任惫键继续,单次存隸金额不得超过20GG0元:-100,单次

8、存款金额不得超过2盹酿元:2,单次存款金额不得拯过2盹昶元:20001微软拱音半:3C:WINDOWSsystem32cmd.exe2)存款成功31C:WINDOWSsystem32cmd.exe-n |亠亠丄请选择服务亠 151转账1寸 1査X * w W询蚪11寸 +-+1取亠 款 f 121寸 亠 寸 1存款"31丄丄一一一一一一一丄+ 丄+-十丄 丄 lei遗出系统1亠亠丄1 r1修改密码-141亠亠一亠请选择服务:3青输入存款金额(59的倍数),单次存款金额不得il2O000元:500正在处理,请稍候存款成功6密码修改模块1)原密码输错时,返回重新输入,不提供退出功能C:W

9、INDOWSsystem32cmd.exe_ n |4A亠亠请选择服务亠 T寸151转环寸 1査X * w W询蚪11寸寸.寸 +-+1取亠 款 f 121寸 亠 寸 1存款"31丄一丄+ 丄+-十丄 丄飞1riei退岀系统1U 亠亠1 r1修改密码-141亠亠一亠请选择服务:4TT请输入原密码:123445密码有误,请互新输入请按任意键继绞 微软拼音半:7132)密码位数输错、两次输入新密码不一致时,返回重新输入一寸光阴不可轻x193)输入无误时7.转账模块1)转入卡号位数输错时,提示并返回重新输入2)未查找到该卡号时,输出提示,提供退出功能,键入除吋卜任意键重新输入C:WINDO

10、WSsystem32cmd.exe请选择服务十+151*转账1+ +亠 +询蚪11+-+f I査 + +-+I取款 f 121+I存款"31丄丄一_一丄+ 丄+-十lei色退岀系统1飞1r1修改密码蚪41十+ 话选择服务:5请输入转入卡/折号(1 6位):1234567891 23H567 未找到该卡号,谕入餐取消转账微软拱音半:3)转入卡号与当前卡号相同时,输出提示4)输岀转入卡账户的部分用户名S1C:WINDOWSsystem32cmd.exe_ n |A请选择服务亠亠 丄亠 151*转账1亠亠丄f 1査亠 询蚪11+-+1取亠 款 f 121f 亠 f 1存款"31+

11、 丄+-十丄 丄lei色退岀系统1亠亠一一_亠飞1 r1修改密码-141亠亠一亠请选择服务:5请输入转入卡/折号(1 6位):12345678901 23451汇款目标用户名为:餐尤是否确认无误?(辎入餐确认,否则退出).微软拼音半:7SiC:WINDOWSsystem32cmd.exe口 1A请选择服务亠亠 丄亠 151*转账1亠亠丄f I査亠 询蚪11+-+I取亠 款 f 121f 亠 f I存款"31丄丄一_一丄+ 丄+-十丄 丄lei色退岀系统1亠亠 丄飞1 r1修改密码-141亠亠一亠请选择服务:5请输入转入卡/折号(1 6位):12345678901 23452汇款目标用

12、户名为:畅餐眼是否确认无误?(辎入餐确认,否则退出)微软拼音半:75)解决转账金额输错的问题C:WINDOWSsystem32cmd.exe101退岀系统I+ 1取亠 +-+款121f X * w W1存款和31+亠_ +一+亠一亠-T-1修改密码"41+-+请选择服务:5是否确认无谋?辎入餐确认,否则退岀)娱请输入转入卡/折号1 6位):123H5678901 23U51 汇款目标用户名为:餐尤请输入转账金额5®的倍数):T 输入有误,请直新辙入请辙入转账金额(58的倍数):1 辙入有误,请重薪余i入请输入转账金额5®的倍数):80000 您的余额不足socoo

13、jg新输入转账金额6)转账成功31C:WINDOWSsystem32cmd.exe_ m J41#款亠131亠丄丄A亠亠丄亠丄丄181退岀系统1丄一丄丄1修改密码归41丄一一一一一丄 丄T - TTT十十请选择服务:5请输入转入卡/折号16位):1234567890123451汇畝目标用户名为:x允是否确认无误?输入x确认,否则退出)x请辙入转账金额(58的倍数):-1 输入有误,请重薪输入请输入转账金额(50的倍数):1 喻入有滾,请佥新辎入请输入转账金额5®的倍数):80000 您的余额不足80600输入转账金额请按任意铤继续请输入转账金额(50的倍数):50 转账中,请稍候.转

14、账成功请按任意键继续. 微软拼音半:V五、釆用的主要技术1宏定义:由于本程序的printf语句较多,为了便于编写,故用PR代替2. 链表:账户信息釆用链表结构,内存动态分配,使用内存无限制,可以扩展到 所有可以使用的内存3. switch多分支选择结构4. 文本文件的读写5利用time.h头文件,简便地获取系统日期6. system!)g数和fflush()函数的简单使用六. 设计心得1. 各函数的功能要相对独立,逐步求精。2. 如果函数的参数为指针,且仅作为输入参数,则应在类型前加const,以防止 该指针在函数体内被意外修改附:程序代码/* 运行本程序前,请在本程序根目录下建立文件“acc

15、ounts.txt”,格式如下:* 卡号1(16位)姓名1账户余额1密码1* 卡号2 (16位)姓名2账户余额2密码2*/include <stdio.h>/include <stdlib.h>/include <string.h> /include <time.h> #define PR printf typedef struct一寸光阴不可轻/void Transfer。;/转账char *CoverllpName(const char *name);/掩盖部分用户名void Log(double money, const char *no)

16、;将存款记录写入文件中 void Save();保存账号信息void FreeData();/释放链表空间 int main()char choose;lnitializeAccount();/ 导入账户信息Login();/ 登录dosystem(,cls11);PR(MttPR(Mtt请选择服务nH);PR(Mtt+-+PR("tt|5|33 转 账 |PR(Mtt+-+PR(MttPR(MttPR(MttPR(MttPR(MttPR(MttPR(Mtt+-+PR("tt|O|33 退出系统|PR(Mtt+-+PR(”请选择服务:“);fflush(stdin); ch

17、oose = getchar(); switch (choose)+-+n");| 查询32|l|n");+-+nn");+_+卍);| 取款32|2|n”);+-+nn");+_+卍);| 存款32|3|n“);+-+nn");+_+岸);|修改密码32|4|n");+-+nn");nH);case '1': Demand(); break;/查询 case '2': Withdrawal(); break;/取款 case '3': Depositing(); break;

18、/存款 case '4': Modifiy(); break;修改密码 case '5': Transfer); break;/转账 case 'O': FreeData(); return 0;/退出 default:printf(”输入错误,请重新选择n“); 解决用户可能的输入错误 system(,pause,);(while (1);return 0;*穴*导入账户信息*穴*穴*宣*穴*/35void lnitializeAccount() FILE *fp;Acco unt temp;PR(“系统初始化中,请稍侯.n");if

19、 (!(fp = fopenf'accounts.txt", "r")PR("07"); 响铃PR(”读取帐户信息失败,请在本程序根目录建立帐户信息文件(accounts.txt)o格式 如下:n”);PR(”卡号1(16位)姓名1账户余额1密码ln");PR(”卡号2 (16位)姓名2账户余额2密码2n");PR("n");exit(O);while (fscanf(fp, "%s %s %lf %s", temp.no, , &temp.balan

20、ce, temp.password) = 4)/读入账户信息Account *t = head;head = (Account*)malloc(sizeof(Account);*head = temp; head->next = t;fclose(fp);system(“cls”);清除"系统初始化中,请稍侯.”提示 void Login() *#* * *dochar no17;system(,clsl,);PR(Hnnnnttt 请输入 16 位卡号:”); fflush(stdin);gets(no);if (strlen(no) != 16)PR(”卡号应为16位n”)

21、;system(npausen);system("cls");continue;if (LockAccountTopic(no)/当该卡号被锁定时PR("O7“); 响铃PR("nn您的登陆密码今口连续输错三次,已被临时锁定,次口将自动解锁, 或当日持本人有效证件到柜台办理密码重置。nn“);system("pause"); continue;if (!(now_acc = FindbyNo(no)/将卡号对应信息在链表的地址赋给now_acc/当卡号不存在时PR("nn此卡号不存在,请重新输入! nn");sys

22、tem("pause"); continue;char a = 2;计算剩余可输错密码次数dochar password7;system("cls");PR("nnnnttt 请输入 16 位卡号:%sn", now_acc->no);PR("nnttt 请输入 6 位密码:");fflush(stdin);scanf("%s", password);if (strlen(password) != 6)PR(”密码应为6位n“);system("pause");syst

23、emf'cls");continue;if (!strcmp(now_acc->password, password)return;/密码正确,回到主函数if (a = '0')/输错密码三次,锁定账户PR("nn您的登陆密码今日连续输错三次,已被临时锁定,次口将自动解 锁,或当口持本人有效证件到柜台办理密码重置。nn");LockAccount( no);break;PR("07“); 响铃PR(”密码输入错误,您还可以尝试c次nn”,a-); system(,pausen); while (1);(while (1);

24、char LockAccountTopic(const char *no)被锁定则返回 0*检测账户是否被锁定*/FILE *fp;char CruuentTimell; 当前口期char ArchiveTime(ll);/ 锁卡档案日期char t17;if (!(fp = fopen(,LockAccount.txt,z ”a+“)课本上讲以“a”方式打开文件,若文件不存在, 会出错。VSXXXX实测,并不会出错,而是新建。为免第一次使用本程序时,根目录下没有 LockAccount.txt而导致出错,故此处不采用“r”方式。PR("07"); 响铃PRCLockAcc

25、ount.txt 无法打开nn"); exit(O);rewind(fp);获取当前口期time_t rawtime;struct tm * timeinfo;time(&rawtime);/获取时间,以秒计,从1970年1月一口起算,存于rawtime timeinfo = localtime(&rawtime);转为当地时间,tm 时间结构 strftimefCruuentTime, 11,timeinfo);/格式化时间fgetsfArchiveTime, llz fp);获取锁卡档案时间if (strcmp(ArchiveTime, CruuentTime)若

26、无锁卡档案,或锁卡档案口期与当前口期不同,则无账户被锁定fclose(fp);return 0;while (fscanf(fp, 's", t) = 1)if (!strcmp(t, no)锁卡档案中,包含此卡号,返回1 fclose(fp);return 1;fclose(fp);return 0;锁卡档案中,不含此卡号,返回0/*查找卡号对应账户信息在链表中的地址*/Account* FindbyNo(const char *no)for (Account *i = head; i; i = i>next)if (!strcmp(i->no, no)retu

27、rn i;return NULL;*/void LockAccount(const char So)FILE *fp;char CruuentTimell;/ 当前 口期char ArchiveTimell;/ 锁卡档案口期if (!(fp = fopen("LockAccount.txt"z "r")PR(”07”); 响铃PR(Herror on open LockAccount.txt file!nnH);exit(O);/获取当前口期time_t rawtime;struct tm * timeinfo;time(&rawtime);/获

28、取时间,以秒计,从1970年1月1 口起算,存于rawtime timeinfo = localtime(&rawtime);转为当地时间,tm 时间结构 strftime(CruuentTime/11,timeinfo);/格式化时间fgets(ArchiveTime, 11, fp);fclose(fp);if (strcmp(ArchiveTimez CruuentTime)若档案口期与当前口期不同,则说明档案已过期或无档案,新建记录。if (!(fp = fopen(,LockAccount.txt,/ "w")PR("07“); 响铃PR(Her

29、ror on open LockAccount.txt file!nnH);exit(O); fprintf(fp, "%sn蔦 CruuentTime);else/若记录口期与当前口期相同,则追加记录if (!(fp = fopenC'LockAccount.txt", "a")PR("O7“); 响铃PR(Herror on open LockAccount.txt file!nnH); exit(O);添加记录fprintf(fp,吆sn: no); fclose(fp); void Demand() *查询函数主菜单char c

30、hoose;dosystem(,clsH);PrintBalance();PR("ttttt+-+n“);PR("ttttt| 查询明细321 l|n");PR(Mttttt+-+nnM);PR(ntt+-H+-+nH)/PR("tt|O|33 退出系统| 返回 32|2|n");PR(Mtt+-+-+nnJ;PR(”请选择服务:“);fflush(stdin);choose = getchar();switch (choose)case '1': Printetail(); break;查询明细case l2l: return

31、;/返回case 'O': FreeData(); exit(O);/退岀系统default:printfl"输入错误,请重新选择n“); 解决用户可能的输入错误 system(,pausen); (while (1);承宣穴* * *)(彳彳寸 |jj *void PrintBalance()system(,lclsn);PR("nnnnnnnnntt+n");PR("tt| 您的账户余额 32|%-15.2f|n", now_acc->balance);PR('、tt+nnnnnnnH);承宣穴* * *)(彳

32、彳» t|j yj r|J|void Printetail()FILE *fp;Record temp;int flag = 1;/当有记录时,置0if (!(fp = fopen(,records.txt,/ "r")PR(“无存取记录,请进行存取后再使用本功能rin11); system(,pause,);return;system(,lclsn);P R ( +n );PRC'I日期|存取金额|n”);PR( +n );while (fscanf(fp, ,%s%d-%d-%d%lf,/ temp.no, & temp. date, year

33、; & temp.date.month, &temp.date.day, &temp.number) = 5)if (!(strcmp(temp.no, now_acc->no)flag = 0;PR(" |%d-%d-%d |%-14.2f|n"z temp.date.year, temp.date.month, temp.date.day, temp, nu mber);PR("+n”);PRC'I口期| 存取金额|n”);未免记录太多看不到表头,在最后加个表头PR( +n );if (flag)system(,cls,)

34、;/无记录时,清除表头 PR(“该卡号未有任何存取记录nn"); system(,pause,);return;system(Hpause,1);/当有存取记录时,输出后等待*将存款记录写入文件中*/void Log(double money, const char *no)FILE *fp;Date CruuentTime;当前 口 期 if (!money)/存取为零时return;if (!(fp = fopen("records.txt"f "a")PR(”07”); 响铃PR(Herror on open records.txt fi

35、le!11); exit(O);/获取当前口期time_t rawtime;struct tm * timeinfo;time(&rawtime);/获取时间,以秒计,从1970年1.月1 口起算,存于rawtime timeinfo = localtime(&rawtime);转为当地时间,tm 时间结构CruuentTime.year = timeinfo->tm_year +1900,Cruue ntTime. month=timeinfo->tm_mon + 1, CruuentTime.day = timeinfo->tm_mday;fprintf(

36、fp,"%s n%dddn%frV:no, CruuentTime.year, CruuentTime.month,CruuentTime.day, money);fclose(fp); void Withdrawal!)*承电取勃主 界面电p* *char choose;if (now_acc->balanee < 50.0)当余额不足50时,无法取款PR("07”); 响铃PR(”您的余额不足50,无法取款nn"); system(,pause,);return;system(,clsH);PRC'W);PR(Mtt+-+PR(Mtt|l|

37、33 100|PR(Mtt+-+PR(Mtt+-+PR(Htt|2|33 500|PR(Mtt+-+PR(Mtt+-+PR(Htt|3|331000|PR(Mtt+-+PR(Mtt+-+PR(”tt|4|33 退出系统|PR(Mtt+-+PR(”请选择服务:“); fflush(stdin);scanf(,%c,/ &choose);switch (choose)case '1': WithdrawalOt(lOO); break;case '21: WithdrawalOt(500); break;case '31: WithdrawalOt(lOOO

38、); break;case '4': FreeData(); exit(O);case '51: WithdrawalOt(XXXX); break;case '6': Withdrawal0t(5000); break; case '71:do+rT);| XXXX 32|5|nM);-+-+nn”);+n“);|5000 32|6|nH);十十nnj;+-+n");|其它金额32|7|nM);+nnj;+n“);| 返回 32|0|nH);+-+nnH);long money;PR(”请输入取款金额(50的倍数):");f

39、flush(stdin);scanf("%lcT: &money);if (money < 0 11 money % 50)解决输入金额为负数、不是50的倍数的情况 PR(”输入有误,请重新输入n”); systemC'pause11);conti nue;WithdrawalOt(money);break;解决用户可能的输入错误+_+n");I继续取款32|l|n");+-+nn”);+_+卍);I显示余额32|2|n");+-+nn");nH);nH);nn“);+_+卍);| 返 回 32|3|n");+-

40、+nn"); while (1); break;case 'O': return;default:PR("O7”); 响铃 printf("输入错误,请重新选择n"); system("pause");continue;/取款完成后的菜单char choose;system("cls");PR(“nn”);PR("ttPR("ttPR("ttPR("ttPR("ttPR("ttPR("ttPR("ttPR("t

41、tPR(“tt+-+PR("tt|O|33 退出系统|PR(“tt+-+PR(“请选择服务:”); fflush(stdin);scanf("%c", &choose);switch (choose) case '1': continue;/继续取款case 2: PrintBalance(); system("pause"); break;/输出余额case '3': return;返回主函数case 'O': FreeData(); exit(O);/退出系统default:PR(&q

42、uot;O7“); 响铃printfC输入错误,请重新选择n“); 解决用户可能的输入错误 system("pause"); while (1);* :* * *void WithdrawalOt(long money)if (now_acc->balance < money)PR(”07”); 响铃PR("您的余额不足%ldnn", money); system(,pauseH);return;PR(”正在处理,请稍候n”);now_acc->balance -= money;Save();Log(-money, now_acc>

43、;no);PR("取款成功nnn);system(,lpauseH);void Deposit!ng()long money; doPR(“请输入存款金额(50的倍数),单次存款金额不得超过XXXXO元:“); fflush(stdin);scanf(,%ld,/ &money);讦(money < 0 11 money > XXXXO 11 money % 50)解决输入金额为负数、超过XXXXO、不是50的倍数的情况PR("07“); 响铃PR(”输入有误,请重新输入n“);system(Mpausen);continue;PR(”正在处理,请稍候.

44、n”);no w_acc->balance += mon ey;Save();/保存账户数据Logfmoney, now_acc->no);/保存存取数据PR(”存款成功nn");system(,pauseH);break;(while (1);*保存账户信息""HP*/void Save()FILE *fp;int i = 1;char ch;if (!(fp = fopenf'accounts.txt", "w")PR("07“); 响铃PR("读取帐户信息失败laccounts.txt无法

45、打开n"); exit(O);for (Account *i = head; i; i = i->next)/写入账户信息fprintf(fp, "%s %s %f %sn,/ i->no, i->name, imbalance, i->password); fclose(fp); void Modifiy()末修改密码*/char oldpass7, newpassl7, newpass27;doPR(”请输入原密码:“);fflush(stdin);gets(oldpass);if (strlen(oldpass) != 6)PR(”密码应为6位

46、n“);system(,pausen);continue;讦(strcmp(oldpass” now_acc->password)解决密码输入有误,出于安全性的考虑,原密码输入错误时不提供返回功能PR(”密码有误,请重新输入nn");system(,pausen); continue;elsebreak;(while (1);doPR(,f请输入六位新密码:J; fflush(stdin);scanf(,%s,/ newpassl);if (strlen(newpassl) != 6)PR(”密码应为6位n“);systemCpause"); continue;PR(

47、”请再次输入新密码:”);fflush(stdin);seanf(”sj newpass2);if (strcmpfnewpassl, newpass2)两次输入密码不一致时PR(“密码不一致(输入*取消修改)n“); fflush(stdin);if (getchar() = '*')break;else输入一致时strcpy(now_acc->password/ newpassl);/修改密码 Save();/保存用户数据 PR("密码修改成功! nn");systemCpause");break;(while (1);*/void Transfer()Account* aimsite;/转入卡号在链表中的地址 long money;/转账金额if (now_acc->balanee < 50)当账户余额不足50时

温馨提示

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

评论

0/150

提交评论