ATM机 源代码.docx
- 文档编号:9315166
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:19
- 大小:16.87KB
ATM机 源代码.docx
《ATM机 源代码.docx》由会员分享,可在线阅读,更多相关《ATM机 源代码.docx(19页珍藏版)》请在冰豆网上搜索。
ATM机源代码
ATM机源代码.txt我自横刀向天笑,笑完我就去睡觉。
你的手机比话费还便宜。
路漫漫其修远兮,不如我们打的吧。
#include
#include
#include
#include
#include
usingnamespacestd;
typedefstruct
{
intid;
charname[16];
charpassword[32];
floatmoney;
}USER;
voidcreate();
intservice();
intmain()
{
mkdir("ATM");
intchoice;
while(choice!
=3)
{
system("cls");
cout< cout< \n"< cout< cout< cout< cout< cout< cout<<"请选择: "; cin>>choice; switch(choice) { case1: create(); break; case2: service(); break; } } return0; } /////////////////////////开户//////////////////////////////////////// intgetuserid(); voidgetusername(char*); voidgetpassword(char*); floatgetmoney(USER); voidcreate() { USERuser; user.id=getuserid(); getusername(user.name); getpassword(user.password); user.money=getmoney(user); FILE*fp; fp=fopen("ATM\\user.dat","rb+"); if(fp==NULL) { fp=fopen("ATM\\user.dat","wb+"); } fseek(fp,0,SEEK_END); fwrite(&user,sizeof(USER),1,fp); fclose(fp); } //////////////////////////////////////////////////////// intgetuserid() { intlastid; FILE*fp; fp=fopen("ATM\\lastid.dat","rb+"); if(fp==NULL) { lastid=1001; fp=fopen("ATM\\lastid.dat","wb+"); fwrite(&lastid,sizeof(int),1,fp); } else { fread(&lastid,sizeof(int),1,fp); fseek(fp,-sizeof(int),SEEK_END); lastid++; fwrite(&lastid,sizeof(int),1,fp); } fclose(fp); returnlastid; } /////////////////////////// voidgetusername(charname[]) { cout<<"请输入用户名: "; cin>>name; } /////////////////////////// voidgetpsw(charpassword1[],charpassword2[],int&n1,int&n2) { cout<<"请输入密码(长度小与32位): "; for(inti=0;i<32;i++) { password1[i]=getch(); if('\x0d'==password1[i]) { n1=i+1; password1[i]='\0'; break; } cout<<"*"; } cout<<"\n请确定密码(长度小与32位): "; for(i=0;i<32;i++) { password2[i]=getch(); if('\r'==password2[i]) { n2=i+1; password2[i]='\0'; break; } cout<<"*"; } } voidgetpassword(charpassword[]) { charpassword1[32]; charpassword2[32]; intn1=0,n2=0; getpsw(password1,password2,n1,n2); while(strcmp(password1,password2)! =0) { cout<<"\n输入密码错误! "< cout<<"\n请重新输入密码: "< getpsw(password1,password2,n1,n2); } for(inti=0;i { password[i]=password1[i]; } } /////////////////////////// floatgetmoney(USERuser) { cout<<"\n创建成功,账号为"< cout<<"请输入金额: "; cin>>user.money; returnuser.money; } ////////////////////////////////服务///////////////////////////////////// voidresearch(USER&); intwithdraw(USER&); voiddeposit(USER&); inttransfer(USER&); voidsetpassword(USER&); boolcheck(USER&); intservice() { USERuser; //check(user); if(! check(user)) { return-1; } intchoice; while(choice! =6) { system("cls"); cout< cout< \n"< cout< cout< cout< cout< cout< cout< cout< cout< cout<<"请选择: "; cin>>choice; switch(choice) { case1: research(user); break; case2: withdraw(user); break; case3: deposit(user); break; case4: transfer(user); break; case5: setpassword(user); break; } } return0; } /////////////////////////////////////////////////////////////////////////////////// //////////////////////得到密码 voidgetpsw2(charpassword[],intn3) { for(inti=0;i<32;i++) { password[i]=getch(); if('\x0d'==password[i]) { n3=i; password[i]='\0'; break; } cout<<"*"; } } //////判断密码是否真确 boolcheckpassword(intid,charpassword[],USER&user) { FILE*fp; fp=fopen("ATM\\user.dat","rb+"); if(NULL==fp) { cout<<"文件打开失败! "< exit(-1); } //fseek(fp,0,SEEK_SET); while(! feof(fp)) { fread(&user,sizeof(USER),1,fp); if(user.id==id) { if(strcmp(user.password,password)==0) { fclose(fp); returntrue; } else break; } } fclose(fp); returnfalse; } boolcheck(USER&user) { intid,i=1,n3=0; charpassword[32]; cout<<"请输入账号: "; cin>>id; cout<<"请输入密码: "; getpsw2(password,n3); while(! checkpassword(id,password,user)) { if(3==i) { cout<<"\n对不起,密码错误超过三次,不能继续登录! "< cout< cout<<"\n系统将自动退出"< cout<<"请按任意键继续....."< getch(); returnfalse; } cout<<"\n密码错误! "< cout<<"请重新输入密码: "; getpsw2(password,n3); i++; } returntrue; } //////////////////////查询////////////////// voidresearch(USER&user) { cout<<"\n账号: "< cout<<"用户名: "< cout<<"余额: "< cout<<"请按任意键继续....."< getch(); } ///////////////////////取款///////////////// intwithdraw(USER&user) { USERusertemp; floatmoney; cout<<"\n请输入取款金额: "; cin>>money; if(money>user.money) { cout<<"余额不足."< cout<<"请按任意键继续....."< getch(); return-1; } else { user.money=user.money-money; FILE*fp; fp=fopen("ATM\\user.dat","rb+"); while (1) { fread(&usertemp,sizeof(USER),1,fp); if(feof(fp)) { cout<<"取款失败."< cout<<"请输入任意键继续......"< getch(); break; } elseif(usertemp.id==user.id) { fseek(fp,-sizeof(USER),SEEK_CUR); fwrite(&user,sizeof(USER),1,fp); cout<<"取款成功."< cout<<"请输入任意键继续......"< getch(); break; } } fclose(fp); } return0; } ///////////////////////存款///////////////// voiddeposit(USER&user) { USERusertemp; floatmoney; cout<<"\n请输入存款金额: "; cin>>money; user.money=user.money+money; FILE*fp; fp=fopen("ATM\\user.dat","rb+"); while (1) { fread(&usertemp,sizeof(USER),1,fp); if(feof(fp)) { cout<<"存款失败."< cout<<"请输入任意键继续......"< getch(); break; } elseif(usertemp.id==user.id) { fseek(fp,-sizeof(USER),SEEK_CUR); fwrite(&user,sizeof(USER),1,fp); cout<<"存款成功."< cout<<"请输入任意键继续......"< getch(); break; } } fclose(fp); } ///////////////////////////转账////////////// inttransfer(USER&user) { boolsign=false,sign2=false; inttoid; floatmoney; cout<<"请输入要转账的用户账号: "; cin>>toid; cout<<"请输入要转账的金额: "; cin>>money; if(user.money { cout<<"余额不足! "< sign=false; cout<<"请按任意键继续....."< getch(); return-1; } USERuser1; FILE*fp; fp=fopen("ATM\\user.dat","rb+"); while(! feof(fp)) { fread(&user1,sizeof(USER),1,fp); if(user.id==user1.id) { user.money=user.money-money; fseek(fp,-sizeof(USER),SEEK_CUR); fwrite(&user,sizeof(USER),1,fp); fclose(fp); sign=true; break; } } if(sign==true) { USERuser2; FILE*fp2; fp2=fopen("ATM\\user.dat","rb+"); while(! feof(fp2)) { fread(&user2,sizeof(USER),1,fp2); if(toid==user2.id) { sign2=true; user2.money=user2.money+money; fseek(fp2,-sizeof(USER),SEEK_CUR); fwrite(&user2,sizeof(USER),1,fp2); fclose(fp2); cout<<"转账成功! "< cout<<"请按任意键继续....."< getch(); break; } } if(sign2==false) { FILE*fp; fp=fopen("ATM\\user.dat","rb+"); while(! feof(fp)) { fread(&user1,sizeof(USER),1,fp); if(user.id==user1.id) { user.money=user.money+money; fseek(fp,-sizeof(USER),SEEK_CUR); fwrite(&user,sizeof(USER),1,fp); fclose(fp); break; } } cout<<"转账失败."< cout<<"没有该用户."< cout<<"请按任意键继续....."< getch(); } } return0; } ////////////////////////////更改密码///////////// voidsetpassword(USER&user) { charpassword[32]; getpassword(password); USERusertemp; FILE*fp; fp=fopen("ATM\\user.dat","rb+"); while (1) { fread(&usertemp,sizeof(USER),1,fp); if(usertemp.id==user.id) { strcpy(user.password,password); fseek(fp,-sizeof(USER),SEEK_CUR); fwrite(&user,sizeof(USER),1,fp); cout<<"\n修改密码成功."< cout<<"请输入任意键继续......"< getch(); break; } } fclose(fp); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ATM机 源代码 ATM