资源描述
简单的银行管理系统的C语言代码#include #include #include #include #define N 10000/储户结struct chuhu 构信息/帐号/密码/储户姓名/储户身份证号码/存款金额/储种/储户地址 /储户的联系电话 /利率char idnum9;char password7;char name11;char idnumber19; double cunkuan;int lei;char address51;char Tel15; double lilv;huN;/储户结构数组void xitong();int rrekey();void kaifa();/开发人员void cekong();int yanzheng();/验证帐号和密码void date();/显示当前日期和时间void insert();/开户函数void display();/显示查询帐户信息的函数void in(int);/存款函数void out(int);/取款函数void lilvbiao();/查看利率表void menu();int A=0,key; /A 为开户数 double jin;char ch=y;/控制是否继续的变量char id11,password7;void xitong()FILE *fkey = fopen(key.txt,w+); int k;printf(请创建原始密码:);scanf(%d,&k);fprintf(fkey,%dn,k);fclose(fkey);int main()/输出主菜单FILE *fkey = fopen(key.txt,r);int t=0;int mima; /输入的密码system(cls);system(color f0);/设置系统背景为白色date();kaifa();printf(nnnnn);n); /界面1printf(tt银行定期储蓄管理系统printf(nnnnnnnn);printf(按ENTER键进入下一界面); fflush(stdin);/功能:清空输入缓冲区scanf(%c,&ch);if(!fkey)printf(密码文件不存在,系统已自仓叽n);xitong();menu();return 0;system(cls); fscanf(fkey,%d,&key);printf(请输入管理员登录密码:n);scanf(%d,&mima); if(mima=key)t=1;system(cls);for(;t!=1;)printf(管理员密码错误,请重新输入:n);scanf(%d,&mima);if(mima=key)t=1;system(cls);/认证成功fclose(fkey);menu();return 0; void menu()int a,b;选择功能的变量doprintf(nn按ENTER键进入/返回主菜单f:); fflush(stdin);scanf(%c,&ch);system(cls);/清屏system(color f0);date();printf(ntttt 主菜单 nn);printf(tt1、开户n);/主菜单界面(界面3)printf(tt2、查询n);printf(tt3、用户密码验证n);printf(tt4、存款n);printf(tt5、取款n);printf(tt6、查看利率表n);printf(tt7、管理员修改密码n);printf(tt0、退出程序n);printf(请选择功能(0-7):-);fflush(stdin);scanf(%d,&a);switch(a)/选择功能case1:/选择功能后调用相应的函数insert();break;case 2:display();break;case 3:b=yanzheng();break;case 4:b=yanzheng();in(b);break;case 5:b=yanzheng();out(b);break;case 6:lilvbiao();break;case 7:rrekey();break;case 0:system(cls);system(color f0);date();printf(nnnt=n);printf(t IIIIn);printf(t IIIIn);printf(tIIn);printf(tIIn);printf(tI谢 谢 使 用I n);printf(tIIn);printf(tIIn);printf(tIIn);printf(tIIn);printf(tIIn);printf(t=);cekong();printf(您真的要退出吗(y/n)?);fflush(stdin);scanf(%c,&ch);system(cls);break;default:system(cls);printf(nnt您的输入有误,请正确选择功能!); break;if(a=0&(ch=y|ch=Y)system(color f0);date();kaifa();printf(nnnnt 欢迎下次再用 ! );cekong();break;while(1);/开户void insert()FILE *nchuhu = fopen(chuhu.txt,r);FILE *fchuhu = fopen(chuhu.txt,a);int i;if(nchuhu=fopen(chuhu.txt,r)=NULL)printf (文件不存在,系统将创建.n);dosystem(cls);/清屏system(color f0); /设置系统背景为白色date();printf(nntt请输入新储户的信息:);fscanf(nchuhu,%st%st%st%st%lft%st%st%dt%lfn,&huA.idnum,&huA.password,&huA.name,&huA.idnumber,&huA.cunkuan,&huA.Tel,&huA.address,&huA.lei,&huA.lil v);printf(nntt 储户存单: );fflush(stdin);gets(huA.idnum);printf(ntt 储户密码(6 位):);for(i=0;i6;i+)fflush(stdin);huA.passwordi=getch();printf(*);huA.password6=0;fflush(stdin);scanf(%c,&ch);printf(ntt 姓名:”);fflush(stdin);gets(huA.name);doprintf(ntt储户身份证号码(18位):);fflush(stdin);gets(huA.idnumber);if(strlen(huA.idnumber)!=18)printf(ntt输入错误!ntt身份证请输入18位数字或字母n); for(i=0;iA;i+)if(strcmp(huA.idnumber,hui.idnumber)=0&strcmp(huA.name,hui.name)!=0)break;if(iA)printf(nntt前面已有一个不同姓名的储户的身份证号为此号码,ntt同 一个身份证号不可以有不同的姓名, nntt 请重新输入身份证号: n);while(strlen(huA.idnumber)!=18|(strcmp(huA.idnumber,hui.idnumber)=0&str cmp(huA.name,hui.name)!=0);printf(ntt 存单金额:);fflush(stdin);scanf(%lf,&huA.cunkuan);printf(ntt 储户电话:);fflush(stdin);gets(huA.Tel);printf(ntt 储户地址: );fflush(stdin);gets(huA.address);printf(ntt 储种: );printf(nttt1、 一年定期);printf(nttt2、 两年定期);printf(nttt3、 三年定期);printf(nttt4、 四年定期);printf(nttt5、 五年定期);doprintf(ntt 请选择(1-5):);fflush(stdin);scanf(%d,&huA.lei);if(huA.lei5)printf(nntt 您选择错误,请正确选择!);while(huA.lei5);if(huA.lei=5) huA.lilv=0.0279 ;if(huA.lei=4) huA.lilv=0.0252 ;if(huA.lei=3) huA.lilv=0.0225 ;if(huA.lei=2) huA.lilv=0.0198 ;if(huA.lei=1) huA.lilv=0.0125 ;printf(ntt 利率为:f,huA.lilv);fprintf(fchuhu,%st%st%st%st%lft%st%st%dt%fn,huA.idnum,huA.password,huA.name,huA.idnumber,huA.cunkuan,huA.Tel,huA.address,huA.lei,huA.lilv);A+;printf(n 是否继续(y/n)?);fflush(stdin);scanf(%c,&ch);while(ch=y|ch=Y);printf(存入成功n);system(pause); system(cls);fclose(nchuhu); fclose(fchuhu);void display()/按存单号查询FILE *fchuhu = fopen(chuhu.txt,r);int i,n=0;char fnumb9; system(cls);for(i=0;i=100;i+) fscanf(fchuhu,%st%st%st%st%lft%st%st%dt%lfn,&hui.idnum,&hui.password,& hui.name,&hui.idnumber,&hui.cunkuan,&hui.Tel,&hui.address,&hui.lei,&hui.lilv);printf(请输入您需要查找的存单号:);scanf(%s,&fnumb);printf(ttt 存单信息:n);for(i=0;i=99;i+)if(strcmp(fnumb,hui.idnum)=0)printf(存单编号:sn密码:*(已隐藏)n用户姓名:sn身份证号:sn存入金 额 :%fn 手 机 号 码 :%sn 用 户 住 址 :%sn 储 种 :%dn 利 率 :%fnnn,hui.idnum,hui.name,hui.idnumber,hui.cunkuan,hui.Tel,hui.address,hui.le i,hui.lilv);n=1;break;if(n=0)printf(此存单不存在n);printf(nnt注:储种中数字的含义为:nntO:活期 1: 一年定期 2:两年定期 3: 三年定期 4: 五年定期);fclose(fchuhu);void in(int count)/存款FILE *fchuhu = fopen(chuhu.txt,r);FILE *achuhu = fopen(back.txt,w);char id9;int i;if(!fchuhu)printf(不能打开文件);if(!achuhu)printf(不能创建新文件);for(i=0;i=100;i+)fscanf(fchuhu,%st%st%st%st%lft%st%st%dt%lfn,&hui.idnum,&hui.password,& hui.name,&hui.idnumber,&hui.cunkuan,&hui.Tel,&hui.address,&hui.lei,&hui.lilv);if(count1)date();printf(请再次输入并确认存单:); scanf(%s,&id);for(i=0;i=100;i+)if(strcmp(id,hui.idnum)=0 )doprintf(nntt请输入存款金额:);fflush(stdin);scanf(%lf,&jin);if(jin0)printf(nnntt存款不能为负数);while(jin=0)hui.cunkuan+=jin;printf(nnttt 您存款成功!nntt 本次存入金额为:.2fn,jin);printf(存单上共有:f,hui.cunkuan);fprintf(achuhu,%st%st%st%st%ft%st%st%dt%fn,hui.idnum,hui.password,hui.name,hui.idnumber,hui.cunkuan,hui.Tel,hui.address,hui.lei,hui.lilv);fclose(fchuhu);fclose(achuhu);system(del chuhu.txt);rename(back.txt,chuhu.txt);void out(int count)/取款FILE *fchuhu = fopen(chuhu.txt,r);FILE *achuhu = fopen(back.txt,w);int i;char id9;if(!fchuhu)printf(不能打开文件);if(!achuhu)printf(不能创建新文件);for(i=0;i=100;i+)fscanf(fchuhu,%st%st%st%st%lft%st%st%dt%lfn,&hui.idnum,&hui.password,& hui.name,&hui.idnumber,&hui.cunkuan,&hui.Tel,&hui.address,&hui.lei,&hui.lilv);if(count1)date();printf(请再次输入并确认存单:);scanf(%s,&id);for(i=0;i=99;i+)if(strcmp(id,hui.idnum)=0 )hui.cunkuan+=hui.lilv*hui.lei*hui.cunkuan;printf(取出 f 元,hui.cunkuan);hui.cunkuan=0;printf(nnnt 取款成功); fprintf(achuhu,%st%st%st%st%ft%st%st%dt%fn,hui.idnum,hui.password,hui.name,hui.idnumber,hui.cunkuan,hui.Tel,hui.address,hui.lei,hui.lilv);fclose(fchuhu);fclose(achuhu);system(del chuhu.txt);rename(back.txt,chuhu.txt);void lilvbiao()/利率表system(cls);system(color f0);date();printf(nnnttt 利率对照表:n);printf(t三三三三三三三三三三三三三三三三三三三三三三三三三三三三n); printf(t HH定期II n);printf(tH 储种 1|-|IIIIIIII n);printf(t IIII一年 I 二年II 三年 II 四年II 五年 II n);pri ntf(tIIIIIIIIIIIll n);printf(t I 利率(%) II 1.25 II 1.98 II 2.25 II 2.52 II 2.79 II n); printf(t三三三三三三三三三三三三三三三三三三三三三三三三三三三三n); printf(nt说明:定期只能在储年到期时取出n);int yanzheng()/验证存单号或密码FILE *fchuhu = fopen(chuhu.txt,r);int count=0,i;char id9;for(i=0;i=100;i+)fscanf(fchuhu,%st%st%st%st%lft%st%st%dt%lfn,&hui.idnum,&hui.password,& hui.name,&hui.idnumber,&hui.cunkuan,&hui.Tel,&hui.address,&hui.lei,&hui.lilv);dosystem(cls);system(color f0);printf(存单号或密码错误将自动返回n);printf(nntt请输入您的存单号: );scanf(%s,&id);printf(nntt请输入您的密码:);for(i=0;i6;i+)fflush(stdin);passwordi=getch();printf(*);password6=0;fflush(stdin);scanf(%c,&ch);printf(nntt);for(i=0;i=99;i+)if(strcmp(id,hui.idnum)=0 &strcmp(password,hui.password)=0) fclose(fchuhu);return 0; while(count=0);fclose(fchuhu);return count;int rrekey()FILE *rekey=fopen(key.txt, r );FILE *rkey=fopen(keynew.txt, w );int mima,mima1,mima2,t;system(cls);printf(请输入原密码n密码:);scanf(%d,&mima); fscanf(rekey,%d,&key); if(mima=key) t=1; system(cls); for(;t!=1;) printf(密码错误,请重新输入n密码:);scanf(%d,&mima); if(mima=key)t=1;system(cls); /*认证成功*/printf(请输入新密码:n);scanf(%d,&mima1);system(cls);printf(请再次输入新密码:n);scanf(%d,&mima2);system(cls); if(mima1=mima2) fprintf(rkey,%d,mima1);printf(修改成功n);system(pause);elseprintf(输入错误密码,终止修改密码操作”); system(pause);system(cls);fclose(rekey);fclose(rkey);system(del key.txt);rename(keynew.txt,key.txt); return 0;void date()/显示当前日期和时间prints当前日期:);system(date/t);printfC当前时间:);system(time/t);void kaifa()printf(开发者n);void cekong()当于页脚printf(nnntt=/相感谢使用=nn);
展开阅读全文