C语言程序设计报告(模拟ATM取款机).docx
《C语言程序设计报告(模拟ATM取款机).docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告(模拟ATM取款机).docx(48页珍藏版)》请在咨信网上搜索。
仲恺农业工程学院 工程实训报告 ATM取款机 课程名称C语言程序设计工程实训姓名林少烈 院(系)计算机科学与工程学院专业班级计算机113班 学号201110214317指导教师王成 仲恺农业工程学院教务处制 T 8 rinput_new_password 函数流程图 读取文件数据函数流程 lock函数流程图save_info函数流程图 10 4系统调试首先运行程序,系统提示输入账号。 (1)当输入错误账号,系统提示:用户不存在,请从新输入。, (2)当输入错误的密码时,系统提示:密码有误,请重新输入。 (3)当输入正确账号与密码时,进入主页面。 11 (4)主界面(5)在主界面选择数字1,进入查询余额界面,界面显示余额。按任意键返回。 (6)在主页面选择数字2,进入取款界面,系统提示输入取款的金额,当输入不是整百 数是,系统提示请输入正确的金额,请重新输入。 12 (8)当输入负数时,系统提示:请输入正确的金额,请重新输入。 (9)当输入超过卡里余额的数,系统会提示余额缺乏,请重新输入。 13 (10)当输入超过3000的数时,系统会提示:对不起,一次最多能取3000元,请重新 输入。 14 (11)当输入正确的金额时,系统提示:交易成功,按0返回主菜单,按9继续取款。 (12)在主菜单界面选择数字3,进入修改密码界面,首先系统会提示:请输入旧密码。 15 (13)当输入就密码正确时,系统提示:请输入新密码(6位数)。 (14)当输入的新密码含有非数字时,系统提示:请输入正确的数字。 (15)当输入的新密码缺乏六位时,系统提示:请输入六位的密码。 16 (16)当两次输入的新密码不相同时,系统会提示:两次输入的密码不同,请重新输入。 (17)当输入两次密码都正确时,系统提示:密码修改成功,请牢记新密码。 17 1需求分析12系统总框图和功能模块说明1 2.1 系统总框图1 2.2 功能模块说明13系统设计2 3.1 主要结构体2 3.2 主要功能函数2 3.3 关键函数的流程图34系统调试II 5总结216源程序清单23 6. 1头文件23 6. 2主程序23 6.3 解除被冻结用户40 6.4 用户注册41 (18)在主菜单界面选择数字4时,进入转账界面。系统提示:请输入对方的账号: (19)当输入的账号错误时,系统会提示:用户不存在,请重新输入。 (20)当输入自己的账号时,系统会提示:不能给自己转账,请重新输入账号。 18 (21)当输入正确的账号时,界面会显示对方的信息。按0返回菜单,按9确定转账。 (22)当确定转账时,系统会提示:请输入转账金额。 (23)当输入转账的金额超过3000元时,系统会提示:对不起,一次转账不能超过3000 元,请重新输入。 19 (24)当输入正确的金额时,系统提示:交易成功。按0返回主菜单,按9继续转账。 (25)在主菜单界面选择数字5,进入信息查询界面,界面将显示账号的信息。 20 (26)在主界面选择数字0,进去取款界面,系统提示:感谢您的使用,请拿回卡。 5总结 在确认了程序设计主题之后,首先第一步是画了大概的流程图,因为ATM取款机是 我们经常接触的一个机器,所以相对来说话流程图比拟容易。 在画完流程图之后,就是进行代码的编写了,我采用自顶向下的方式来规划我的整 个代码流程,首先是确定了大概需要哪些函数来实现所需的功能,在函数命名的时候, 我并不是随便命名的,而是采用书上介绍的方法,用英文来命名。在命名过程中,由于 英语功底不好的我遇到了小小的麻烦(有些单词不会拼),于是就用电子词典来解决这问 题。刚开始我是把所有的自定义函数定义为void型函数。 所有的函数申明写好之后就可以开始细化了,首先确定所需结构体,然后就是头文 件的定义,最后确定了所有函数的编写顺序。由于这次程序设计是ATM取款机,所有 要用到文件的知识,但乂没学过,所以只能先停止代码的编写来学习文件的知识。通过 了两天的学习,虽然只是略学了皮毛,但是勉强看着书可以来自己新建文件并不数据存 入文件中。 所有的准备工作完成后,真正的可以进行代码编写了,首先把所有的函数都编写出 来(内容为空),然后根据从易到难的顺序逐个功能的编写。其顺序依次是:input_num 函数(用户账号输入),input_password函数(密码输入),lock函数(冻结用户账号), read_info函数(读取文件数据),now_exit函数(检查是账号是否存在且未被冻结),existed 函数(检杳账号是否被冻结),face函数(主菜单),choose函数(功能选择),balance_refer 函数(余额查询),draw_money函数(取款),set_password函数(修改密码),21 input_new_password 函数(输入新密码),tran_account 函数(转账),info_refer 函数(查 询信息),out函数(退卡)。 在写input_password函数时,没方法实现密文的输出,所以研究了很久,最后通过 找资料和询问师兄才解决了这一难题,并从中学到了这一技巧。 在写lock函数时,刚开始只是用空字符来覆盖原有的账号,但是在测试时发现这样 冻结的方法行不通,因为这样子冻结的话虽然原账号没了,但是在输入账号时只要直接 按Enter键就可以进入输入密码的程序,所以这又是一个难题。在晚上睡觉时突然想到了 曾经在课外书上看到的产生随机数的函数(rand函数),于是,第二天这个所谓的难题也 解决了。 所有的函数编写完毕,想到了既然冻结了账号,肯定需要一个程序来解除冻结了的 账号,所以,自己又摸索了如何解决这一问题,最后想到了一个方法:再新建一个文件 (文件名为all uer information)作为后台来存储用户的信息,但这个文件存储的是所有未 被冻结前和未被冻结的账号信息(即所有原始账号信息)。而解除的方法是:先读取all user information这个文件里的信息、,然后把里面的信息覆盖到在前台操作的文件即可。当用 户被冻结后想解除的话只需运行这个程序即可解除冻结。 写了解除冻结账号的函数后,乂想到需要写一个注册账号的程序,于是也顺利的完 成了,最后,通过屡次的调试,把整个程序代码给完成了。 22 6源程序清单6.1头文件 /*头文件:user.h*/#include <stdio.h> #include <stdlib.h>#include <conio.h> #include <string.h>#include <time.h> struct User( char num[20]; char name) 10];char password[7]; float balance; );〃用户数据 void read_info();〃用户信息读取void input_num(char * num);〃输入账号 void now_exist(char * num);〃判断是否被冻结或不存在void existed(char * num); void input_password(char * p_word,char * W); 〃输入密码void face();〃界面显示 void balance_refer();〃余额查询void choose(int c);〃菜单项选择择 void draw_money();〃取款void set_password();〃设置密码 void input_new_password(char * old_password);void tran_account();〃转账 void stamp();void info_refer(); void out();void lock(); void save_info(); 〃打印单条 〃信息查询〃退出程序 〃冻结账号 〃存储信息6. 2主程序 /*主程序:main*//*模拟ATM取款机率/ #include Muser.h**#define U 8 〃自定义头文件23 struct User user[U];〃全局变量f是用来记录用户下标(即哪个用户) 〃定义账号数组变量 〃调用input_num函数,输入用户账号 〃全局变量f是用来记录用户下标(即哪个用户) 〃定义账号数组变量 〃调用input_num函数,输入用户账号 int f;int main() char number)20|; input_num(number); return 0;/*函数功能:输入用户账号号 void input_num(char num[12])( read_info();〃输入账号前先调用函数read_info读取所以用户信息,以便后面判〃断账户是否存在以及密码是否正确 system("clsM); printf(n\n\n\n\n\n\n\n\n\t\t 请输入您的账号:"); gets(num); now_exist(num);〃调用exist函数检查该账号是否存在) 信函数功能:读取用户信息力 void read_info(){ int i=0; FILE * fp; if((fp=fopen("user information.dat” Jr"))==NULL) 〃通过文件指针来读取用户数据 信息(不包括被冻结用户信息) {printf(HIt cannot open !”); exit(O); while(!feof(fp)) ( fread(&user[i],sizeof(stmct User),l,fp); i++;24 fclose(fp);/*函数功能:判断用户是否存在且未被冻结*/ void now_exist(char * num) { int s=(),i;〃s是用来判断用户是否存在的条件,如果存在s=L不存在s=0; char *w=ninput"; while(l) (for(i=0;i<12;i++) (if ( 0 == strcmp( num, user[i].num )) 〃匹配用户 ( f=i;' 〃如果用户存在那么跳出循环,并用变量f记录用户下标,以便后 面使用。 break;) else s=();) if (s==l)( input_password( user[i].password, w ); 〃如果用户存在,那么调用input_password函数〃并把用户密码传 递给它,)〃实现用户输入密码功能。 else( existed(num); 〃如果用户不存在,贝!j调用existed函数,判断是否 账号被冻结 ) ) }/*函数功能:判断账号是否被冻结 void existed(char * num) ( intI = 0,i = 0; 〃 s是用来判断用户账号是否被冻结的条件,1=1被冻结,1=0说明 用户不存在;25 FILE * fp; if (( fp=fopen(Hall userinformation.datH,Hrn)) == NULL) {printfCJt cannot open !");〃用文件指针读取所有用户数据(包括被 冻结用户)exit(O); while(!feof(fp)) (fread(&user[i],sizeof(struct User),l,fp); i++;while(l) ( for(i=0;i<12;i++)( if ( strcmp(num,user[i].num)==O )〃判断输入的账号是否存在 (1=1; break;) else 1=0;} if(l==l)( printf("\a\n\n\t\t对不起,您的账号已被冻结,请与客服联系! \n\n\n\n"); exit(O); ) else {printf("\a\n\n\t\t用户账号不存在,请重新输入! \nH); printf("\n\n\n按任意键返回! ”);getch(); system(''CLS");input_num(num); ) }) /*函数功能:输入密码*/void input_password(char * p_word,char * W ) 26 char password[20]; char ch; //ts用来统计输入密码错误的次 if (ts<=3){ i = 0;priutf(”\n\n\t\t 请输入密码:\t"); ch = getch();while ( ch != 13) 键( if (ch == 8)( printf(n%c %c*\ch,ch);if(i !=0) i-; )else (printfC'”); password[i] = ch; i++;) ch = getch();) password [i]='\0';if(() == strcmp( W, "setn )) if ((strcmp (password,**0") )==0 )单 {system「CLS"); face(); )if ( 0 == strcmp(p_word,password)) 〃输入字符Ch不为回车 隔入字符Ch为退格键 〃继续输入字符ch 〃输入0那么返回主菜 〃密码相同 27 1需求分析 所设计的A T M取款机应具备以下功能: • 插入银行卡(用账号输入的方式代替); • 密码的输入; • 用户信息查询; • 用户余额查询; • 取款; • 转账; • 修改密码; • 退卡。 2系统总框图和功能模块说明2. 1系统总框图 ATM取款机 输入用户账号 工输入账号密码 信息读取 工 冻结账号 工查询用户信息 查询账号余额 取款 转账 工修改密码 退卡 图1系统总框图 2.2功能模块说明 > 输入用户账号模块:在运行时,完成用户账号的输入(代替插卡); > 输入账号密码模块:①在输入账号之后,完成用户密码的输入;②在修改密码的过程中,完成if ( 0 == strcmp( W , "input")) { system(HCLSH);face();〃调用face函数进入主界面 ) else if ( 0 == strcmp( W, HsetH )) (input_new_password( password); )} elseif ( 0 != strcmp(p_word,pass word))〃密码不相同 (printf(n\a\n\n您输入的密码有误,请重新输入!''); ts++;printf(M\n\n\n按任意键继续! ”); getch();system(',CLSH); printf(''\n\n\n\n\n\n\n'');) )else (printf("\n\n\n\t对不起,您已输入密码错误3次,您的账号已被冻结,请 与客服联系! ”);lock();〃输入3次错误,那么提示用户账号被冻结,并调用lock 函数。 ) }while(l);/*函数功能:主菜单界面*/ void face() int ch;systemC'CLS"); printf(n\nH); An-); printf(n\t•»/ j ***■,一 一•,J*2* *2**1* *2«、 f*** f * * \ ! *** ¥苓不 不不不不不不不不不不不不不不不不不不¥不不不不不不不不¥不不不不不不不不¥芍不不不不不不不不可不不不不1* • । •printf(H\t**\t\t \t\t\t\t **\n\t**\t\t\t\t\t\t**\nH); printf(H\t**\t\t \t\t\t\t **\n\t**\t\t\t\t\t\t**\nH); 您好!欢迎使用XX银行\t\t printf( n\t**** ************************************* ****************\nH)* printf(*\n n); 28 printf("\t 叭tl.查询余额\t\N2 .取款\t\t*\n\t*\t\t\t\t\t\t\t*\n"); printf(''\t叭t\t\t\t\t\t\t*\n\t*\t\t\t\t\t\t\t*\n''); printfT\t*\t3 .修改密码\t\t\t4 .转账\t\t*\n\t*\t\t\t\t\t\t\t*\n"); printf(''\t*\t\t\t\t\t\t\t*\n\t*\t\t\t\t\t\t\t*\n”); printf("\t*\t5 .信息查询\t\t\tO .退卡\t\t*\n\t*\t\t\t\t\t\t\t*\n");• aa«£••}»«£• «1•■・、 prjn[](、[不不不不不不予不不不不予不而求不不不不不不不不不不不不不不不不不不不不不不而不不不不不不不不不淅不不不不予不不不不\n )• \n"); printf(n\t printf(M\t\t\t 请选择:”); scanf("%dH,&ch); getchar(); choose(ch);1 void choose(int c){ while(l) (switch (c) case 0: out();break;〃退卡balance_refcr();break;〃余额查询 case 1: draw_money();break;〃取款set_pass>vord();break;〃设置密码 case 2: tran_account();break;〃转账info_refer(); break;〃信息查询 default:{system, CLS”); priiUfT输入有误,请重新输入! \n按任意键返回) getch();system(,,CLS,'); face();) )break; )/*函数功能:查询余额*/ 29 void balance_refer() system(,,CLSH); printf(**\n\n\n\n\n\n\n\n\t\t\t 您的余额是:%.2fY\nH9user[f].balance); printf(”\n\n按任意键返回! \n"); getch(); system("CLSH); face();) /*函数功能:取款号 void draw_money() ( int take,q,c; do (system(nCLSH); printf( "\n\t\t\t\t\t\t\t\tO .返回菜单”);printf("\n\n\ii\n\n\ii\t\t 请输入取款金额(整百数):"); scanf(H %dn,&q);getchar();if(q) {take=q; 〃判断是否为整百数并且大 〃判断取款数是否不超 〃判断是否超过3000 if(take>=100 && take%100==0)于100的数 ( if (take <= user[fl.balance) 过余额{ if (take <= 3000){ system(”CLS");user[f].balance -=take; save_info(); 〃调用save_info函数,存储 信息 printf(**\n\n\n\n\n\n\t\t\t 交易成功,请提取现金! \nn); printf("\n\n\n\n\n\t\tO .返回菜单\t\t\t9 .继续取款”); c=getch();if(c==9)隔入9继续取款 30 system(,,CLSn);) elseif(c==*O')斶入0返回菜单 ( system(nCLSn); face(); ) elseprintfT输入错误,请重新输入! \暧); ) else{ system(MCLS**); printf( M\n\n\n\n\n\n\t\t对不起,一次最多能取3000元,请重新 输入! ”);pnntf(n\n\n\n\n\n 按任意键返回! \nH); getch();system(”CLS''); }) else( system("CLS");printf("\n\n\n\n\n\n\t\t\t您的余额缺乏,请重新输入! ”); printf(M\n\n\n\n\n 按任意键返回! \iT);getch(); system(HCLSH);else (system("CLSM); printf(”\n\n\n\n\n\n\t\t\t请输入正确的金额!请重新输入! ”);printf(H\n\n\n\n\n 按任意键返回! \nM); getch();system("CLSM); else system(nCLSH); face();31 /*函数功能:修改密码*/void set_password() { char *w=,,setM;//w是为了在调用input_password函数时区分是哪个主调函数 system(,,CLSH); printf("\n\t\t\t\t\t\t\t\tO •返回菜单”); printf(n\n\n\n\n\n\n\nn); input_password( userffl.password , w );〃调用输入密码函数) 函数功能:输入新密码9void input_new_password(char * old_password) ( int i,d;// d用来判断用户新密码是否为6位数 char new_password[2][7],ch; do{i = 0; systemf^CLS");printf("\n\t\t\t\t\t\t\t\tO.i& 回菜单”); printf("\n\n\n\n\n\n\t\t 请输入新密码(6 位数字):");ch = getch(); while ( ch != 13)〃输入字符ch不为回车键{ if (ch == 8)〃输入字符ch为退格键( printf(u%c %cM,ch,ch);if(i!=0) i-; ) else( printf(H*M);;new_passwordf01[il = ch; i++; 32 )ch = getch();〃继续输入字符ch }new_password[0][i]=*\0'; if ((strcmp (ne w_pass wor d [ 0], * * 0 ") )==0 )〃输入 0 那么返回主菜单 (system(nCLSn); face(); )for(d=0;new_password[0][d]!=0;d++) (if ((new_password[0][d]>,9,) || (new_password[0][d]<,0,))〃判断密码是否 是数字( system(HCLSM);printf("\n\n\n\n\n\n\t\t\t 请输入数字,谢谢! \nH); printf(n\n\n\n\n\n 按任意键返回! \n"); getch();input_new_password(old_passvvord); )) if(d!=6)〃判断密码是否为6位数| system(nCLSM);printf(''\n\n\n\n\n\n\t\t\t 请输入 6 位的密码,谢谢! \n0); printf(''\n\n\n\n\n 按任意键返回! \n"); getch();continue; )if ((strcmp (new_password[0],,,0H)) == 0 )〃输入 0 那么返回主菜 单( system(MCLSM); face();) else( printf("\n\n\n\n\n\n\t\t 请再次确认您的密码:\t H); i = 0; ch = getch();33 〃输入字符ch不为回车键 while ( ch != 13)if (ch == 8)〃输入字符ch为退格键 ( printf(n%c %c*\ch,ch); if(i!=O) i-; ) else ( printfC**");; new_password[l][i] = ch; i++; ) ch = getch();〃继续输入字符ch) new_password[ 1 ][i]=,\0*; if((strcmp (new_password[l],nOH) )==0 )〃输入 0 那么返回主菜单 (system(nCLSn); face(); ) else if ((stremp (new_password[0],new_password[l]) )==0 ) 〃判断输入两次密 码是否一致( strcpy(user[f].password,new_password[l]);save_info();〃调用 save_info 函数,存储 信息 printfT\ii\n\n\t\t密码修改成功,请牢记! ”); printf("\n\n按任意键返回菜单! ”); getch(); systemC'CLS''); face();) else ( system(HCLSM); printfT您输入的两次密码不同,请重新输入! ”); printf(H\n\n\n\n\n 按任意键返回! \nH); 34 getch();/*函数功能:转账*/ void tran_account() ( char other_num[20]; int i,c,q,tran; //c用来判断转账是否继续,q用来判断用户行为,tran用来存储 转账金额 system("CLS"); printfT\n\t\t\t\t\t\t\t\tO .返回菜单”); printf("\n\n\n\n\n\n\t\t\t 请输要对方的账号:**); gets(other_num);〃输入对方账号 if ( strcmp(other_num,,<0,,)==0 )〃输入 0 返回菜单face(); else if ( strcnip(other_num,user[f].num)==0 ) 〃判断是否为自身账号 (system(MCLSM); printf(''\n\n\n\n\n\n\n\n\t\t对不起,不能给自己转账,请重新输入账号! \n");printf("\n\n\n按任意键返回! ”); getch();system(nCLSn); tran_account();〃递归调用 ) elsewhile(l) (for(i=0;i<U;i++) {if ( strcmp(other_num,user[i].num)==0 ) 〃匹配用户 while(l)35 systeni(,,CLSn); printf(''\n\n\n\n\n\n\n\n\t\t 对方信息:\n\n"); 〃显 示对方 信息 printf(n\t\t\t 姓 名 : %s\n\t\t\t 账 号:%s,,,user[i].name,user[i].num);printf(' '\n\n\n\n\n\t\tO.i§ 回菜单\t\t\t9 .确认”); c=getch(); if(c==9)〃输入9确认( system(HCLSn); do ( printf(n\n\t\t\t\t\t\t\t\tO.jg 回菜单”); printf(**\n\n\n\n\n\n\t\t请输入转账金额(整百数): ”);scanf(" %du,&q);getchar(); if(q) //q为非0时进入内层条件语句 ( tran=q;if (tran>=100 && tran%100==0 ) 〃判断是否 为整百〃数并且大于100的数 { if (tran <= U3er[f].balance)〃取款数是否不超 过余额( if (tran <= 3000 ) 〃判断是否超过 3000 ( system("CLSn); user[f].balance -=tran; userfi].balance +=tran; save_info(); 〃调用 save_info,存储 信息 printf(K\n\n\n\n\n\n\t\t\t 交易成 功! \nn);printf(H\n\n\n\n\n\t\tO.返 回菜单 \t\t\t9 .继续转账”);c=getch(); if(c==9) 偷入9就行转账36 systemC^CLS"); ) else if(c ==,0*) 〃<:为0返回菜单 (system(,,CLSH); face(); ) else { printf("输入错误,请重新输 入! \nH);system(HCLSu); )) else ( system("CLSH);printf("\n\n\n\n\n\n\t\t 对不起,一次 最多能转账3000元,请重新输入! ”); printf(n\ii\n\n\n\n 按任意键返回! \nu); getch(); systemC'CLS"); ) ) else (system(nCLSH); printf(''\n\n\n\n\n\ii\t\t\t 您的余额缺乏, 请重新输入! ”); printf(H\n\n\n\n\n 按任意键返回! \iT);getch(); system(HCLSM);) ) else (system(,,CLSn); printf(''\n\n\n\n\n\n\t\t\t 请输入正确的金额! 请重新输入! ”); printf(''\n\n\n\n\n 按任意键返回! \n*');getch(); system(,,CLSn); 用户输入旧密码的功能; > 信息读取功能模块:完成用户信息的读取; > 冻结账号功能模块:当输入密码3次错误时,冻结用户账号: > 查询用户信息模块:完成用户的信息查询(不包括余额查询); > 查询余额功能模块:完成用户余额的查询; > 取款功能模块:完成取款功能模块: > 转账功能模块:完成转职功能; > 修改密码功能模块:完成用户修改密码功能; > 退卡功能模块:完成退卡功能(即:退出程序功能)。 3系统设计3.1主要结构体 用户账号、姓名、密码、余额 struct User〃用户数据f char num[20];〃用户账号 char name[ 10];〃姓名char password[7];〃密码 float balance;〃余额 );void balance_refer(); 3. 2主要功能函数 void read_info(); 〃用户信息读取 void input_num(char * num); 〃输入账号 void now_exist(char * num); 〃判断是否被冻结或不存在 void existed(char * num); void input_password(char * p_word,char * W); 〃输入密码 void face(); 〃界面显示 〃余额查询 ) else {system(HCLS,'); face(); } }while(l);) elseif (c=='0') face(); )) ){ system, CLS”);printf("\n\n\n\n\n\n\t\t\t 用户不存在!请重新输入!”); printf(M\n\n\n\n\n 按任意键返回! \nM); getch();system(rCLS''); tran_account(); 〃递归调用) )) /*函数功能:查询用户信息*/void info_refer() ( system("CLS");〃显示用户信息 printf(*AnXnXnXnXnXnXnXnXtUU 姓名:%s\n\t\t\t 账号:%s",user[f].nanie,user[f].nuin); printf(H\n\n按任意键返回! \nH); getch(); system(,,CLSH); face();) void out()( system("CLS"); printf(H\n\n\n\n\n\n\n\n\t\t\t\t 感谢您的使用! \nH); printf(°\t\t\t\t 请取回卡! \n"); getch(); exit(O);38 /木函数功能:冻结用户账号号 void Iock() { int i; FILE * fp; char random[20]; srand( (unsigned) time(NULL));〃随机器 for(i=0; i<12; i++) ( randoin[i]=rand()% 100; 〃产生 12 个随机数 } random[i]=,\0,; strcpy(user[f].num,random);〃将产生的随即数替换用户的账号实现将用户账户冻结 if ((fp=fopen(Huser information.datH,,,wbu))==NULL)〃重写数据 (printf(HIt cannot open !M); exit(O); ) for(i=0; i<U; i++)fwrite(&user[i],sizeof(struct User), 1 ,fp); fclose(fp); getch(); system("CLS"); printf(H\n\n\n\n\n\n\n\n\n\t\t\t\t请取回卡! \n\n\n\n\n\n\n"); exit(O);) void save_info()( int i; FILE * fp; if ((fp=fopen(Huser information.dat",Hwbu))==NULL) 〃将信息保存到用户文件39 printf(HIt cannot open !**); exit(O); for(i=0;i<U;i++)fwrite(& user[i],sizeof(struct User),l/p); fclose(fp); if ((fp=fopen(*'all user information.- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 报告 模拟 ATM 取款
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文