银行存取款管理系统最终终极完善版.docx
- 文档编号:24270463
- 上传时间:2023-05-25
- 格式:DOCX
- 页数:24
- 大小:18.50KB
银行存取款管理系统最终终极完善版.docx
《银行存取款管理系统最终终极完善版.docx》由会员分享,可在线阅读,更多相关《银行存取款管理系统最终终极完善版.docx(24页珍藏版)》请在冰豆网上搜索。
银行存取款管理系统最终终极完善版
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"conio.h"
#include"time.h"
#defineN20
#defineM20
#defineTRUE1
#defineFALSE0
#defineMIN_INPUT''
#defineMAX_INPUT127//127即0x7e
structjilu
{floatadd;//存款金额
floatdra;//取款金额
chardname[20];//识别账号
chardnum[20];//识别姓名
charope[20];//经办人姓名
chartime[128];//系统当前时间
floatsy;//剩余金额
};
structdepositor
{charnum[20];//客户账号
charname[20];//客户姓名
charper[20];//用户身份证号
charsec[20];//用户密码
floatmon;//存款金额
charaddr[20];//储户地址
};
voidmenu();
intGetPassword(unsignedchar*pszPw,intiMaxSize);//使输入的密码显示为*
intreads(structdepositordep[N]);//从文件中读入客户信息
intreadsc(structjilujl[M]);//从文件读入存款记录
intreadsd(structjilujl[M]);//从文件读入取款记录
voidsave(structdepositordep[N],intn);//保存修改后的客户信息数据
voidadd();//开户函数
voiddel();//销户函数
voidchange();//改密函数
voidshow();//显示余额函数
voidshow1();//存款
voidshow2();//存款记录
voidshow3();//取款
voidshow4();//取款记录
voidshow5();//清屏函数
voidshow6();
voidshow7(charpanduan[20]);
voidmain()
{
intn;
system("color1e");
while
(1)
{
menu();
printf("\n请输入您要选择的操作序号,按回车键确认:
");
scanf("%d",&n);
switch(n)
{
case1:
add();break;
case2:
show();break;
case3:
del();break;
case4:
change();break;
case0:
exit(0);
case5:
show1();break;
case6:
show2();break;
case7:
show3();break;
case8:
show4();break;
case9:
show6();break;
default:
printf("\n输入错误,请输入列表中存在的序号!
\n");show5();
}
}
}
voidmenu()//菜单函数
{
printf("\n*******************************银行个人账户管理系统****************************");
printf("\n1储户开户");
printf("\n2余额查询");
printf("\n3储户销户");
printf("\n4密码修改");
printf("\n5存款");
printf("\n6个人存款记录");
printf("\n7取款");
printf("\n8个人取款记录");
printf("\n0退出");
printf("\n9查询所有客户存款记录");
printf("\n\n********************************************************************************");
}
intreads(structdepositordep[N])//读取储户内容
{
FILE*fp;
inti=0;
if((fp=fopen("account.txt","r"))==NULL)
{
printf("文件打开失败!
\n");
show5();
return0;
}
else
{for(i=0;!
feof(fp);i++)
fscanf(fp,"\n%s%s%s%s%f%s\n",dep[i].name,dep[i].num,dep[i].per,dep[i].sec,&dep[i].mon,dep[i].addr);}
fclose(fp);
returni;
}
intreadsc(structjilujl[M])//读取存款记录
{
FILE*fp;
inti=0;
if((fp=fopen("cun.txt","r"))==NULL)
{
printf("文件打开失败!
没有任何存款记录\n");
return0;
}
else
{for(i=0;!
feof(fp);i++)
fscanf(fp,"\n%s%f%s%s%s%f\n",jl[i].dnum,&jl[i].add,jl[i].dname,jl[i].ope,jl[i].time,&jl[i].sy);
fclose(fp);
returni;}
}
intreadsd(structjilujl[M])//读取取款记录
{
FILE*fp;
inti=0;
if((fp=fopen("qu.txt","r"))==NULL)
{
printf("文件打开失败!
没有任何取款记录\n");
return0;
}
else
{for(i=0;!
feof(fp);i++)
fscanf(fp,"\n%s%f%s%s%s%f\n",jl[i].dnum,&jl[i].dra,jl[i].dname,jl[i].ope,jl[i].time,&jl[i].sy);}
fclose(fp);
returni;
}
voidsave(structdepositordep[N],intn)//储户保存后信息
{
FILE*fp;
inti=0;
if((fp=fopen("account.txt","w"))==NULL)
{
printf("文件打开失败!
\n");
show5();
return;
}
else
{
for(i=0;i { fprintf(fp,"\n%s%s%s%s%f%s\n",dep[i].name,dep[i].num,dep[i].per,dep[i].sec,dep[i].mon,dep[i].addr);} } fclose(fp); } voidadd()/*储户开户*/ { FILE*fp; unsignedcharpw[99]; structdepositordep; charpanduan[20]; intiMaxSize=80; system("cls"); if((fp=fopen("account.txt","a"))==NULL)//如果文件已经存在,可以追加储户信息 { if((fp=fopen("account.txt","w"))==NULL)//文件不存在时,创建新文件,输入储户信息 { printf("用户不存在! \n"); show5(); return; } } printf("\n请依次填写储户信息,以回车键作为间隔\n"); printf("\n账号: "); scanf("%s",dep.name); strcpy(panduan,dep.name); show7(panduan); fprintf(fp,"\n%s\n",panduan); printf("\n姓名: "); scanf("%s",dep.num); fprintf(fp,"\n%s\n",dep.num); printf("\n电话: "); scanf("%s",dep.per); fprintf(fp,"\n%s\n",dep.per); printf("\n密码: "); if(GetPassword(pw,iMaxSize)==TRUE) strcpy(dep.sec,pw); fprintf(fp,"\n%s\n",dep.sec); printf("\n\n请重新输入密码,按回车键确认: "); if(GetPassword(pw,iMaxSize)==TRUE) while(strcmp(pw,dep.sec)! =0) {printf("\n\n输入的密码错误,请重新输入: "); if(GetPassword(pw,iMaxSize)==TRUE);} printf("\n\n金额: "); scanf("%f",&dep.mon); fprintf(fp,"\n%f\n",dep.mon); printf("\n住址: "); scanf("%s",dep.addr); fprintf(fp,"\n%s\n",dep.addr); if(dep.mon<10) {printf("\n储户金额低于十元,不予开户\n"); show5(); return; } printf("\n*************************************开户成功**********************************"); show5(); fclose(fp); } voidshow()//余额查询 {unsignedcharpw[99]; intiMaxSize=80; structdepositordep[N]; inti,n; chars[20]; chart[20]; system("cls"); n=reads(dep); printf("\n请用户输入账号,密码,用回车隔开,按回车键确认: \n\n"); scanf("%s",s); if(GetPassword(pw,iMaxSize)==TRUE) strcpy(t,pw); for(i=0;i if(strcmp(s,dep[i].name)==0&&strcmp(t,dep[i].sec)==0)break; if(i>=n||strcmp(t,dep[i].sec)! =0) { printf("\n输入错误\n"); show5(); return; } else {printf("\n*********************************储户余额如下***********************************"); printf("\n%.2f\n",dep[i].mon); show5(); } } voidshow1()//存款 {unsignedcharpw[99]; intiMaxSize=80; FILE*fp; inti,n; chars[20]; chart[20]; structdepositordep[N]; structjilujl; system("cls"); n=reads(dep); printf("\n请用户输入账号,密码,用回车隔开,按回车键确认: \n\n"); scanf("%s",s); if(GetPassword(pw,iMaxSize)==TRUE) strcpy(t,pw); for(i=0;i if(strcmp(s,dep[i].name)==0&&strcmp(t,dep[i].sec)==0)break; if(i>=n||strcmp(t,dep[i].sec)! =0) { printf("\n输入错误\n"); show5(); return; } else {if((fp=fopen("cun.txt","a"))==NULL)//如果文件已经存在,可以追加储户信息 { if((fp=fopen("cun.txt","w"))==NULL)//文件不存在时,创建新文件,输入储户信息 { printf("记录不存在! \n"); show5(); return; } }strcpy(jl.dnum,dep[i].num); fprintf(fp,"\n%s\n",jl.dnum); printf("\n请输入存款金额,并按回车键确认: \n\n"); scanf("%f",&jl.add); fprintf(fp,"\n%f\n",jl.add); strcpy(jl.dname,dep[i].name); fprintf(fp,"\n%s\n",jl.dname); printf("\n请输入操作员姓名,并按回车键确认: \n\n"); scanf("%s",jl.ope); fprintf(fp,"%s",jl.ope); _tzset(); _strtime(jl.time); _strdate(jl.time); fprintf(fp,"\n%s\n",jl.time); jl.sy=jl.add+dep[i].mon; fprintf(fp,"\n%f\n",jl.sy); dep[i].mon=dep[i].mon+jl.add; save(dep,n); printf("\n您已成功存款%.f\n",jl.add); printf("\n现在总金额为%.f\n",dep[i].mon); show5(); } fclose(fp); } voidshow2()//存款记录 {unsignedcharpw[99]; intiMaxSize=80; FILE*fp; inti,n,z,k,l=1; chars[20]; chart[20]; structdepositordep[N]; structjilujl[M]; system("cls"); z=readsc(jl); n=reads(dep); if((fp=fopen("cun.txt","r"))! =NULL) { printf("\n请用户输入账号,密码,用回车隔开,按回车键确认: \n\n"); scanf("%s",s); if(GetPassword(pw,iMaxSize)==TRUE) strcpy(t,pw); for(i=0;i if(strcmp(s,dep[i].name)==0&&strcmp(t,dep[i].sec)==0)break; if(i>=n||strcmp(t,dep[i].sec)! =0) { printf("\n输入错误\n"); show5(); return; } else printf("\n存款记录如下: \n\n编号存款金额存款时间剩余金额操作员\n"); for(k=0;k {if(strcmp(dep[i].name,jl[k].dname)==0) printf("\n%-8d%-12.f%-12s%-12.f%s\n",l++,jl[k].add,jl[k].time,jl[k].sy,jl[k].ope); } show5(); } else show5(); } voidshow3()//取款 {unsignedcharpw[99]; intiMaxSize=80; FILE*fp; inti,n; chars[20]; chart[20]; structdepositordep[N]; structjilujl; system("cls"); n=reads(dep); printf("\n请用户输入账号,密码,用回车隔开,按回车键确认: \n\n"); scanf("%s",s); if(GetPassword(pw,iMaxSize)==TRUE) strcpy(t,pw); for(i=0;i if(strcmp(s,dep[i].name)==0&&strcmp(t,dep[i].sec)==0)break; if(i>=n||strcmp(t,dep[i].sec)! =0) { printf("\n输入错误\n"); show5(); return; } else {if((fp=fopen("qu.txt","a"))==NULL)//如果文件已经存在,可以追加储户信息 { if((fp=fopen("qu.txt","w"))==NULL)//文件不存在时,创建新文件,输入储户信息 { printf("记录不存在! \n"); show5(); return; } }strcpy(jl.dnum,dep[i].num); fprintf(fp,"\n%s\n",jl.dnum); printf("\n请输入取款金额,并按回车键确认: \n\n"); scanf("%f",&jl.dra); if(jl.dra<=dep[i].mon) { fprintf(fp,"\n%f",jl.dra); strcpy(jl.dname,dep[i].name); fprintf(fp,"\n%s\n",jl.dname); printf("\n请输入操作员姓名,并按回车键确认: \n\n"); scanf("%s",jl.ope); fprintf(fp,"\n%s\n",jl.ope); _tzset(); _strtime(jl.time); _strdate(jl.time); fprintf(fp,"\n%s\n",jl.time); jl.sy=dep[i].mon-jl.dra; fprintf(fp,"\n%f\n",jl.sy); dep[i].mon=dep[i].mon-jl.dra; save(dep,n); printf("\n您已成功取款%.f\n",jl.dra); printf("\n现在总金额为%.f\n",dep[i].mon); show5(); } else { printf("\n取款金额大于剩余金额,取款失败\n"); show5(); } } fclose(fp); } voidshow4()//取款记录 {unsignedcharpw[99]; intiMaxSize=80; FILE*fp; inti,n,z,k,l=1; chars[20]; chart[20]; structdepositordep[N]; structjilujl[M]; system("cls"); z=readsd(jl); n=reads(dep); if((fp=fopen("qu.txt","r"))! =NULL) { printf("\n请用户输入账号,密码,用回车隔开,按回车键确认: \n\n"); scanf("%s",s); if(GetPassword(pw,iMaxSize)==TRUE) strcpy(t,pw); for(i=0;i if(strcmp(s,dep[i].name)==0&&strcmp(t,dep[i].sec)==0)break; if(i>=n||strcmp(t,dep[i].sec)! =0) { printf("\n输入错误\n"); show5(); return; } else {printf("\n取款记录如下: \n\n编号取款金额取款时间剩余金额操作员\n"); for(k=0;k if(strcmp(dep[i].name,jl[k].dname)==0) printf("\n%-8d%-12.f%-12s%-12.f%s\n",l++,jl[k].dra,jl[k].time,jl[k].sy,jl[k].ope); show5(); } } else show5(); } voiddel()//储户信息删除函数 {unsignedcharpw[99]; intiMaxSize=80; structdepositordep[N]; charnumber[20]; chart[20]; intn,i,j; system("cls"); n=reads(dep); printf("\n请输入要删除储户账号,密码,用回车隔开,按回车键确认: "); scanf("%s",number); if(GetPassword(pw,iMaxSize)==TRUE) strcpy(t,pw); for(i=0;i if(strcmp(number,dep[i].name)==0&&strcmp(t,dep[i].sec)==0)break; if(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 银行 取款 管理 系统 最终 终极 完善