C语言ATM机实现

合集下载

C语言ATM自动存取款机全套代码

C语言ATM自动存取款机全套代码

C语言ATM自动存取款机全套代码#include#include#include#include#include#define N 6char b[N]={'8','8','8','8','8','8'};//存放密码int money=5000;int securitytime=3;void Login();void JieMian();void SaveMoney();void GetMoney();void Query();void Return();//密码验证函数,验证成功返回1,否则返回0void Login(){char a[20],ch; //用户登录密码,用以验证int i=0,n=1,k;printf("\n\t\t欢迎使用ICBC ATM自动存取款机\n"); printf("\n请输入密码:");for(n=1;n<=5;n++){while((a[i]=getch())!=13){ i=i+1;printf("*");//将用户输入的密码以*显示}for(k=0;k<6;k++)if(a[k]!=b[k]) break;if (k==6){printf("\n密码正确,请继续!!\n");JieMian(); }else//printf("\n密码错误,请重新输入:\n");printf("\n密码错误,您还有%d次机会,请重新输入:\n",5-n);}printf("\n您已经输入5次错误,您的卡将被没收,请去相关网点办理!\n");exit(1);}// 界面设计void JieMian(){int SelectKey;//system("cls");//清屏幕函数while(1){puts("\n= = = = = = = = = = = = = = = =");puts("| 请选择相应功能: |");puts("| 1. 修改密码PassWord |");puts("| 2. 查询功能Query |");puts("| 3. 取款功能Get Money |");puts("| 4. 存款功能Save Money | ");puts("| 5. 转帐功能Trans Money | ");puts("| 6. 退出功能Return | ");puts("\n= = = = = = = = = = = = = = = = ");printf("\n请选择功能:");scanf("%d",&SelectKey);switch(SelectKey){ case 1:printf("\n修改密码功能\n");//PassWord();break;case 2:printf("\n查询功能\n");Query();break;case 3:printf("\n取款功能\n");GetMoney();break;case 4:printf("\n存款功能\n");SaveMoney();break;case 5:printf("\n转帐功能\n");//Trans();break;case 6:printf("\n退出功能\n");Return();break;}}}/*Query查询功能*/void Query(){system("cls");puts("================================== ==");printf("| Your Query balance is $%ld |\n",money);puts("| Press any key to return... |");puts("================================== ==");return;}/*GetMoney取钱功能*/void GetMoney(){char GetMoney;char kahao[20];long y;//输入待转入的相关信息//卡号,姓名do{puts("=================================");puts("| Please select GetMoney: |");puts("| 1. $100 |");puts("| 2. $200 |");puts("| 3. other |");puts("| 4. Return |");puts("=================================");GetMoney = getch();}while(GetMoney!='1'&&GetMoney!='2'&&GetMoney!='3' && GetMoney!='4');switch(GetMoney){case '1':system("cls");if(money>100){puts("================================== =========");puts("| Your GetMoney is $100,Thank you! |");puts("| Press any key to return... |");puts("===========================================");money=money-100;printf("\n您的余额为%d",money);}else printf("\n您的余额不足!");getch();break;case '2':system("cls");if(money>200){puts("================================== ======");puts("| Your GetMoney is $200,Thank you! |");puts("| Press any key to return... |");puts("================================== ======");money=money-200;printf("\n 您的余额为%d",money);}else printf("\n您的余额不足!");getch();break;case '3':system("cls");printf("please get some money:");scanf("%ld",&y);if(money>y){money=money-y;printf("\n您的余额为%d",money);}else{printf("\n您的余额不足!");printf("\n您的余额为%d",money);}getch();break;case '4': break;}return;}/*SaveMoney存钱功能*/void SaveMoney(){ char SaveMoney;long y;do{system("cls");puts("================================== ========");puts("| Please select Save Money: |");puts("| 1. $100 |");puts("| 2. $500 |");puts("| 3. $1000 |");puts("| 4. other |");puts("| 5. Return |");puts("================================== ========");SaveMoney = getch();}while(SaveMoney!='1'&&SaveMoney!='2'&& SaveMoney!='3'&&SaveMoney!='4'&&SaveMoney!='5');switch(SaveMoney){ case '1':{{system("cls");puts("================================== =========");puts("| Your save money is $100,Thank you! |");puts("| Press any key to return... |");puts("================================== ========");}money=money+100;printf("\n您的余额为%d",money);getch();}break;case '2':{system("cls");puts("================================== ============");puts("| Your Save Money is $500,Thank you! |");puts("| Press any key to return... |");puts("================================== ============");money=money+500;printf("\n您的余额为%d",money);getch();}break;case '3':{system("cls");puts("============================================");puts("| Your Save Money is $1000,Thank you! |");puts("| Press any key to return... |");puts("================================== ==========");money=money+1000;printf("\n您的余额为%d",money);getch();}break;case '4':{system("cls");puts("================================== ===========");puts("| Your Save some Money,Thank you! |");puts("| Press any key to return... |");puts("================================== ===========");puts("please save some money:");scanf("%ld",&y);if(y%100!=0)printf("该存款机只能处理整百的操作,请核查!!");else{money=money+y;printf("\n您的余额为%d",money);}getch();}break;case '5':break; }return;}/*Return,退出功能*/void Return(){system("cls");puts("================================== ==");puts("| Thank you for your using! |");puts("| RETURN! |");puts("================================== ==");exit(1);}//主函数int main(){Login();}上一页下一页。

自动取款机源代码(C and C )

自动取款机源代码(C and C  )

自动取款机源代码(C and C++).txt如果你看到面前的阴影,别怕,那是因为你的背后有阳光!我允许你走进我的世界,但绝不允许你在我的世界里走来走去。

#include <iostream.h>#include <fstream.h>#include <stdio.h>#include <time.h>#include <string.h>#include <windows.h>struct Acount{char name[20];int cardnu;int code;double Ban;char time[26];};struct Acount user;int i;void Welcome(){cout<<"* *"<<endl;cout<<"* 欢迎使用新利银行ATM机*"<<endl;cout<<"*****************************************\n"<<endl;cout<<"Please select your native lanuage <请选择用户语言>\n"<<endl;cout<<" 1. English\n 2. 中文\n 3. Exit <退出系统>\n"<<endl;cout<<"Enter you choice <between 1to 3>:";}char *_time (){time_t rawtime;struct tm * timeinfo;time ( &rawtime );timeinfo = localtime ( &rawtime );return asctime (timeinfo);}int find(int card){ i=-1;ifstream in("acount.dat",ios::binary|ios::nocreate);if(!in)return 0;while(!in.eof()){ i++;in.read((char * )&user,sizeof(user));if(user.cardnu==card){in.close();return 1;}}in.close();return 0;}int cardnumber2(){int n;fstream file("账号.dat",ios::binary|ios::nocreate|ios::in|ios::out); if(!file){cout<<"不能打开此文件"<<endl;return 0;}n=0;while(!n){file.read((char*)&n,sizeof(int));}int m=0;file.seekp(-4,ios::cur);file.write((char*)&m,sizeof(int));file.close();return n;}void print2(){system("cls");char time[25];strcpy(time,_time());time[24]=' ';cout<<" AUTOMATIC TELLER MACHINE - HENER BANKING SYSTEM"<<endl;cout<<" CARDHOLDER BILL COPY 持卡人存根"<<endl;cout<<"+-----------------------------------------------------------------+"<<end l;cout<<"| 终端机号 | 10203 |"<<endl;cout<<"+-----------------------------------------------------------------+"<<end l;cout<<"| 卡别 | 信用卡 |"<<endl;cout<<"| 卡号 | "<<user.cardnu<<" |"<<endl; cout<<"| | |"<<endl;cout<<"| 交易类型 | 银行卡开户 |"<<endl;cout<<"| 交易批号 | 198447 |"<<endl;cout<<"| 时间/日期 | "<<time<<" |"<<endl;cout<<"+-----------------------------------------------------------------+"<<end l;cout<<"| CAEDHOLEDER SINATURE | |"<<endl;cout<<"| 持卡人签名 | |"<<endl;cout<<"+-----------------------------------------------------------------+"<<end l;cout<<" I ACKNOWLEDGE SATISFACTORY RECEIPT OF RELATIVE SERVICES"<<endl;cout<<" 我同意以上条款"<<endl;}void print2(int x){system("cls");char time[25];strcpy(time,_time());time[24]=' ';cout<<" AUTOMATIC TELLER MACHINE - HENER BANKING SYSTEM"<<endl;cout<<" CARDHOLDER BILL COPY 持卡人存根"<<endl;cout<<"+-----------------------------------------------------------------+"<<end l;cout<<"| 终端机号 | 10203 |"<<endl;cout<<"+-----------------------------------------------------------------+"<<endcout<<"| 卡别 | 信用卡 |"<<endl;cout<<"| 卡号 | "<<user.cardnu<<" |"<<endl; cout<<"| | |"<<endl;if(x>0)cout<<"| 交易类型 | 现金存款 |"<<endl;else{ x=-x;cout<<"| 交易类型 | 现金取款|"<<endl;}cout<<"| 交易批号 | 198447 |"<<endl;cout<<"+-----------------------------------------------------------------+"<<end l;cout<<"| 时间/日期 | "<<time<<" |"<<endl;cout<<"| 交易金额 | "<<x<<" |"<<endl;cout<<"+-----------------------------------------------------------------+"<<end l;cout<<"| CAEDHOLEDER SINATURE | |"<<endl;cout<<"| 持卡人签名 | |"<<endl;cout<<"+-----------------------------------------------------------------+"<<end l;cout<<" I ACKNOWLEDGE SATISFACTORY RECEIPT OF RELATIVE SERVICES"<<endl;cout<<" 我同意以上条款"<<endl;cout<<"按任意键返回";cin.get();cin.get();}void Saving2(){char ch;int Tem;cout<<"请将现金送到指定入口 :";cin>>Tem;user.Ban+=Tem;fstream out("acount.dat",ios::in|ios::out|ios::binary);out.seekp(i*sizeof(user),ios::beg);out.write((char*)&user,sizeof(user));out.close();cout<<"\t\t\t你已存入"<<Tem<<endl;Sleep(3000);cout<<"需要打印凭条吗?(Y = 是. N = 否):"<<endl;cin>>ch;if(ch=='y'||ch=='Y')print2(Tem);}void Drawmoney2(){char ch;int Tem;cout<<"请输入所取金额(必须是100的整数倍) :";cin>>Tem;while(Tem%100){cout<<"Sorry,请重新输入";cin>>Tem;}user.Ban-=Tem;fstream out("acount.dat",ios::in|ios::out|ios::binary);out.seekp(i*sizeof(user),ios::beg);out.write((char*)&user,sizeof(user));out.close();cout<<"请在30秒内取走现金;"<<Tem<<endl;Sleep(3000);cout<<"需要打印凭条吗 ? (y = 是,n = 否):";cin>>ch;if(ch=='y'||ch=='Y')print2(-Tem);}void Change2(){int tem,j=3;cout<<"请输入你的原密码";do{cin>>tem;j--;if(tem==user.code){cout<<"请输入你的新密码:";cin>>tem;user.code=tem;fstream out("acount.dat",ios::binary|ios::in|ios::out);out.seekp(i*sizeof(user),ios::beg);out.write((char*)&user,sizeof(user));out.close();cout<<"密码修改成功,请记下此密码 "<<tem<<endl;Sleep(2000);j=0;cout<<"按任意键返回";cin.get();cin.get();}elsecout<<"密码错误请重新输入 (你还有"<<j<<"次输入机会)";}while(j);}void Select2(){int choice,code;cout<<"请输入你的密码 ";do{cin>>code;if(user.code==code)break;elsecout<<"密码错误,请重新输入 ";}while(2);do{cout<<"请选择业务功能"<<endl;cout<<" 1. 人民币存款业务\n 2. 人民币取款业务\n 3. 余额查询\n 4. 修改密码\n 5. 返回\n"<<endl;cout<<"请选择<1 到 5 > :";do{cin>>choice;switch(choice){case 1: Saving2(); break;case 2: Drawmoney2(); break;case 3: { cout<<"你卡上的余额为 :"<<user.Ban<<endl ; cout<<"按任意键返回"<<endl;getchar();break;}case 4: Change2(); break;case 5:return ;break;default:cout<<"输入不合法,请重新输入:";}}while(choice>5||choice<1);}while( choice!=5);}void TellerMach2(){int tem;char ch;do{cout<<"请插入银行卡(0 = 取消):";cin>>tem;if(tem==0)break;else{if(find(tem)==0){cout<<"对不起,本ATM机不接受你的银行卡!(按F键继续,按任意键返回上一层)"<<endl;cin>>ch;if(ch!='F'||ch=='f')break;}else Select2();}}while(1);}void Management2(){int choice;cout<<"请选择你的业务功能\n\n 1. 银行卡开户业务\n 2. 返回\n"<<endl;cout<<"请选择<1 到 2>:";do{cin>>choice;if(choice==2)return ;else if(choice==1){ofstream out("acount.dat",ios::binary|ios::app);cout<<"请输入你的姓名:";cin>>;user.cardnu=cardnumber2();cout<<"你的账号是"<<user.cardnu<<endl;int n;cout<<"\n请输入你的密码 (必须是6位):";do{cin>>n;if(n<100000)cout<<"密码位数不够,请重新输入:";if(n>999999)cout<<"密码过长,请重新输入:";}while(n<100000||n>999999);user.code=n;user.Ban=10.0;strcpy(user.time,_time());out.write((char *)& user,sizeof(user));out.close();cout<<"是否打印凭条吗?(y = 是,n = 否 ):";char ch;cin>>ch;if(ch=='y'||ch=='Y')print2();cout<<"按任意键返回上一层"<<endl;getchar();break;}elsecout<<"输入错误!请重新输入:";} while(1) ;}int cardnumber1(){int n;fstream file("账号.dat",ios::binary|ios::nocreate|ios::in|ios::out);if(!file){cout<<"Can't open the file"<<endl;return 0;}n=0;while(!n){file.read((char*)&n,sizeof(int));}int m=0;file.seekp(-4,ios::cur);file.write((char*)&m,sizeof(int));file.close();return n;}void print1(){system("cls");char time[25];strcpy(time,_time());time[24]=' ';cout<<" AUTOMATIC TELLER MACHINE - HENER BANKING SYSTEM"<<endl;cout<<" CARDHOLDER BILL COPY 持卡人存根"<<endl;cout<<"+-----------------------------------------------------------------+"<<endcout<<"| TERMINAL ID | 10203 |"<<endl;cout<<"+-----------------------------------------------------------------+"<<endl;cout<<"| CARD TYPE | CREDIT CARD OF HENRY BANK |"<<endl;cout<<"| CARD NUMBER | "<<user.cardnu<<"|"<<endl;cout<<"| | |"<<endl;cout<<"| TRENS TYPE | OPEN ACOUNT |"<<endl;cout<<"| BATCH NO. | 198447 |"<<endl;cout<<"| | |"<<endl;cout<<"| DATA/TIME | "<<time<<" |"<<endl;cout<<"+-----------------------------------------------------------------+"<<endl;cout<<"| CAEDHOLEDER SINATURE | |"<<endl;cout<<"| 持卡人签名 | |"<<endl;cout<<"+-----------------------------------------------------------------+"<<endl;cout<<" I ACKNOWLEDGE SATISFACTORY RECEIPT OF RELATIVE SERVICES"<<endl;cout<<" 我同意以上条款"<<endl;cout<<"Press any ken to exit";cin.get();cin.get();}void print1(int x){system("cls");char time[25];strcpy(time,_time());time[24]=' ';cout<<" AUTOMATIC TELLER MACHINE - HENER BANKING SYSTEM"<<endl;cout<<" CARDHOLDER BILL COPY 持卡人存根"<<endl;cout<<"+-----------------------------------------------------------------+"<<endl;cout<<"| TERMINAL ID | 10203 |"<<endl;cout<<"+-----------------------------------------------------------------+"<<endl;cout<<"| CARD TYPE | CREDIT CARD OF HENRY BANK |"<<endl;cout<<"| CARD NUMBER | "<<user.cardnu<<"|"<<endl;cout<<"| | |"<<endl;if(x>0)cout<<"| TRANS TYPE | DEPOSIT CASH |"<<endl;else{ x=-x;cout<<"| TRANS TYPE | TAKING CASH |"<<endl;}cout<<"| BATCH NO. | 198447 |"<<endl;cout<<"| | |"<<endl;cout<<"| TOTAL AMOUNT | "<<x<<" |"<<endl;cout<<"| DATA/TIME | "<<time<<" |"<<endl;cout<<"+-----------------------------------------------------------------+"<<endl;cout<<"| CAEDHOLEDER SINATURE | |"<<endl;cout<<"| 持卡人签名 | |"<<endl;cout<<"+-----------------------------------------------------------------+"<<endl;cout<<" I ACKNOWLEDGE SATISFACTORY RECEIPT OF RELATIVE SERVICES"<<endl;cout<<" 我同意以上条款"<<endl;cout<<"Press any ken to exit";cin.get();cin.get();}void Saving1(){char ch;int Tem;cout<<" Please deliver cash to appointment entrance :";cin>>Tem;user.Ban+=Tem;fstream out("acount.dat",ios::in|ios::out|ios::binary);out.seekp(i*sizeof(user),ios::beg);out.write((char*)&user,sizeof(user));out.close();cout<<"\t\t\tYou have deposit "<<Tem<<endl;Sleep(3000);cout<<"Do you want to print?(Y/N):"<<endl;cin>>ch;if(ch=='y'||ch=='Y')print1(Tem);}void Drawmoney1(){char ch;int Tem;cout<<" Please input the amount of moneey you want (it must be is the mutipleof 100) :";cin>>Tem;while(Tem%100){cout<<"Sorry,Please input again";cin>>Tem;}user.Ban-=Tem;fstream out("acount.dat",ios::in|ios::out|ios::binary);out.seekp(i*sizeof(user),ios::beg);out.write((char*)&user,sizeof(user));out.close();cout<<"Please take the cash in 30 seconds;"<<Tem<<endl;Sleep(3000);cout<<"Do you want a print ? (y\n):";cin>>ch;if(ch=='y'||ch=='Y')print1(-Tem);}void Change1(){int tem,j=3;cout<<"Please injout you original password";do{cin>>tem;j--;if(tem==user.code){cout<<"Please input you new password:";cin>>tem;user.code=tem;fstream out("acount.dat",ios::in|ios::out|ios::binary);out.seekp(i*sizeof(user),ios::beg);out.write((char*)&user,sizeof(user));out.close();cout<<"Revise the password successfully, make note of this password please "<<tem<<endl;Sleep(2000);j=0;cout<<"press any key to exit";cin.get();cin.get();}elsecout<<"password error ,input again (You still have "<<j<<" chances)";}while(j);}void Select1(){int choice,code;cout<<"Please input your password ";do{cin>>code;if(user.code==code)break;elsecout<<"Password error ,input again ";}while(2);do{cout<<"Choose the business function please"<<endl;cout<<" 1. Bank deposit of RMB\n 2. Taking RMB \n 3. inquire balance\n 4. Revise the password\n 5. exit\n"<<endl;cout<<"Please choose bettween <1 to 5 > :";do{cin>>choice;switch(choice){case 1: Saving1(); break;case 2: Drawmoney1(); break;case 3: { cout<<"Your balance of acount is :"<<user.Ban<<endl ; cout<<"press any key to exit"<<endl;getchar();break;}case 4: Change1(); break;case 5:return ;break;default:cout<<"input error ,Please input again:";}}while(choice>5||choice<1);}while( choice!=5);}void TellerMach1(){char ch;do{cout<<"Please insert the bank card(0 = cancel):";cin>>user.cardnu;if(user.cardnu==0)break;else{if(find(user.cardnu)==0){cout<<"Sorry ,your card is accepted !(Press F to continue,Press enter to exit)"<<endl;cin>>ch;if(ch!='F'||ch=='f')break;}else Select1();}}while(1);}void Management1(){int choice;cout<<"Please choose your business functions\n\n 1.Bank Card Account Business\n 2. Exit\n"<<endl;cout<<"Please choose between <1 to 2>:";do{cin>>choice;if(choice==2)return ;else if(choice==1){ofstream out("acount.dat",ios::binary|ios::app);cout<<"Please input your name:";cin>>;user.cardnu=cardnumber1();cout<<"Your acount is"<<user.cardnu<<endl;int n;cout<<"\nPlease input your password (the length must be 6):";do{cin>>n;if(n<100000)cout<<"The length of password is too short,please change again:";if(n>999999)cout<<"The length of password is too large,please change again:";}while(n<100000||n>999999);user.code=n;user.Ban=10.0;strcpy(user.time,_time());out.write((char *)& user,sizeof(user));out.close();cout<<"Do you want to print?(y/n ):";char ch;cin>>ch;if(ch=='y'||ch=='Y')print1();cout<<"Press any key to exit "<<endl;getchar();break;}elsecout<<"input error , please input again:";} while(1) ;}void Chinese(){int choice;do{cout<<"\n\n 请选择你的模式 \n"<<endl;cout<<" 1. ATM柜员机\n 2.银行业务管理\n 3. 帮助\n 4. 返回\n"<<endl;cout<<"请选择 <1 到 4>:";do{cin>>choice;switch(choice){case 1 : TellerMach2(); break;case 2 : Management2(); break;case 3 : { cout<<" 你必须先在“银行业务管理”里开户才能使用本取款机,按任意键返回";cin.get();cin.get();break;}case 4 : { return ; break;}default : cout<<"输入不合法,请重新输入 :";}if(choice==3)cout<<"\n输入你的选择:";}while(choice!=1&&choice!=2);}while(1);}void English(){int choice;do{cout<<"\n\nPlease input patten\n"<<endl;cout<<" 1. ATM\n 2.Banking Management\n 3.Help\n 4. Exit\n"<<endl;cout<<"Please choose between <1 to 4>:";do{cin>>choice;switch(choice){case 1 : TellerMach1(); break;case 2 : Management1(); break;case 3 : { cout<<" You must open a acount in 《Banking Management》before you use the ATM,Press any key to continue";cin.get();cin.get();break;}case 4 : { return ; break;}default : cout<<"input error,Please inout again";}if(choice==3)cout<<"\n Please your choice :";}while(choice!=1&&choice!=2);}while(1);}int main(){Welcome();int choice;do{cin>>choice;if(choice==3)break;else if(choice==1)English();else if(choice==2)Chinese();else cout<<"输入错误,请重新输入:";}while(choice!=1&&choice!=2);system("cls");cout<<"\n\n\n\n\t\t\t非常感谢你的使用!!\n"<<endl; cout<<"按任意键结束";cin.get();cin.get();return 0;}。

c语言Atm的简单实现

c语言Atm的简单实现

信息科学与工程学院《数据结构》课程设计报告课程设计名称: ATM得设计与实现专业班级:学生姓名:学号: 2指导教师:课程设计时间:2016-2017学年第二学期计算机科学与技术专业课程设计任务书目录1 需求分析 (1)1、1存款 (1)1、2取款 (1)1、3查瞧流水账 (1)1、4排序 (1)1、5修改密码 (2)1、6查瞧ATM使用情况 (2)1、7录入信息 (2)1、8恢复限额 (2)2概要设计 (3)2、1数据类型得定义 (3)2、2功能模块结构图 (4)3运行环境 (6)4开发工具与编程语言 (6)5详细设计 (6)5、1主函数 (7)5、2 录入函数 (8)5、3加载与存储函数 (8)5、4 输出流水账函数 (9)5、5 查瞧ATM使用情况函数 (9)6程序编码 (10)7运行结果 (12)8心得体会 (14)9参考文献 (14)1需求分析ATM自助机——便于储户存钱、取钱。

按功能分为两大系统:个人用户系统与银行后台系统;个人用户系统————登录(输入正确得账号或密码才能进入)、存款、取款、查瞧流水账(查瞧用户最近存取款情况)、排序(此为超级用户功能,可以查瞧所有人得余额)、修改密码(修改个人登录密码);银行后台系统————atm使用情况(便于银行人员管理atm机)、录入信息(包括录入用户及其银行卡号信息与录入atm 信息)、恢复限额(每天6点恢复所有人得取款上限)。

1、1存款输入金额,存入ATM,当前AMT以及自己得余额会增加并且自动生成流水账。

1、2取款输入取款金额,判断它就是否小于ATM总金额并且小于当天得限额,当前得ATM金额减少,自己得余额与限额也会减少。

1、3查瞧流水账输出自己近段时间内得所有操作,发生额,以及时间。

1、4排序此为超级用户功能,实现以余额对所有用户排序并且输出一些信息。

1、5修改密码修改用户登录密码。

1、6查瞧ATM使用情况查瞧每一台ATM得使用情况,输出存取款发生额及其次数。

用c语言编写的一个ATM取款机程序

用c语言编写的一个ATM取款机程序

⽤c语⾔编写的⼀个ATM取款机程序学了⼀个多星期的c语⾔了,⽼师布置来了作业,⽤C编写个ATM机的模拟程序,客户界⾯有,取款,2存款,3转账,4退出。

并且要求输⼊错误后,有三次机会重输,定义输⼊密码hellowold,⽤switch分⽀。

#include<stdio.h>#include<string.h>#define key "hellowold"//定义密码#define zhanghu "123456789"#define line "==================\n"int num;//选择类型char arr[20];//定义数组char password[20];//定义数组int money;//取款⾦额int i=0;int main(){printf(line);printf("\t1取款\n");printf("\t2存款\n");printf("\t3转账\n");printf("\t4退出\n");printf(line);printf("请选择操作类型: \n");scanf("%d",&num);switch(num){case1:{ do{printf("请输⼊密码:\n");scanf("%s",&password);if(strcmp(key,password)==0){printf("请输⼊取款⾦额:\n");scanf("%d",&money);printf("请取⾛你的%d⽑爷爷",money);break;}else{printf("密码输⼊错误");}i++;}while((strcmp(key,password)!=0)&&i<=2);}}第⼆步存款,定义账号#include<stdio.h>#include<string.h>#define key "hellowold"//定义密码#define zhanghu "#define other "ni de mao ye ye"#define line "==================\n"int num;//选择类型char arr[20];//定义数组char password[20];//定义数组char others[20];int money;//取款⾦额int num2;//存款⾦额int i=0;int main(){printf(line);printf("\t1取款\n");printf("\t2存款\n");printf("\t3转账\n");printf("\t4退出\n");printf(line);printf("请选择操作类型: \n");scanf("%d",&num);switch(num){case1:{ do{printf("请输⼊密码:\n");scanf("%s",&password);if(strcmp(key,password)==0){printf("请输⼊取款⾦额:\n");scanf("%d",&money);printf("请取⾛你的%d⽑爷爷",money);break;}else{printf("密码输⼊错误");}i++;}while((strcmp(key,password)!=0)&&i<=2);break;}今天先变到这⾥吧,作业还多着了,排版不是很好看,就将就这看吧。

c语言atm机编程代码

c语言atm机编程代码

c语言atm机编程代码下面是一个简单的C语言ATM机编程代码示例:#include <stdio.h>// ATM机账户结构体typedef struct {int account_number;float balance;} Account;// 初始化账户信息void init_account(Account *account, int acc_no, float bal) { account->account_number = acc_no;account->balance = bal;}// 存款void deposit(Account *account, float amount) {account->balance += amount;}// 取款void withdraw(Account *account, float amount) {if (account->balance >= amount) {account->balance -= amount;} else {printf("余额不足!\n");}}// 查询余额void check_balance(Account *account) {printf("当前余额:%.2f\n", account->balance); }// 主函数int main() {Account my_account;int choice;float amount;// 初始化账户信息init_account(&my_account, 123456789, 5000.0);// ATM机操作菜单printf("欢迎使用ATM机!\n");printf("请选择操作:\n");printf("1. 存款\n");printf("2. 取款\n");printf("3. 查询余额\n");printf("0. 退出\n");do {printf("请输入操作代码:");scanf("%d", &choice);switch (choice) {case 1:printf("请输入存款金额:");scanf("%f", &amount);deposit(&my_account, amount); break;case 2:printf("请输入取款金额:");scanf("%f", &amount);withdraw(&my_account, amount); break;case 3:check_balance(&my_account);break;case 0:printf("退出程序!\n");break;default:printf("无效的操作!\n");}} while (choice != 0);return 0;}。

自动取款机(ATM)模拟程序(C#控制台应用程序)

自动取款机(ATM)模拟程序(C#控制台应用程序)

自动取款机(ATM)模拟程序一、需求我们需要设计一个具备如下功能的ATM模拟程序。

●开户:用户能够通过ATM来开设帐号,开户需要设置密码。

●登录:用户能够登录到已经开设的帐号上,登录需要验证密码。

●管理帐号:用户登录到帐号上后,能够进行如下的操作。

■存款:将指定的款项存到帐号中。

■取款:从帐号中取出指定的款项。

■查询余额:查询帐号的余额。

■修改密码:修改帐号的密码。

二、分析面向对象编程的第一步是进行面向对象分析。

面向对象分析的目标是建立问题领域的模型,包括如下模型。

●功能模型:即画出每一个功能要求的用例图。

●对象模型:对用例模型进行分析,把系统分解成互相协作的类,通过类图/对象图描述对象、对象的属性、对象间的关系。

●动态模型:描述系统的动态行为,通过序列图来描述对象的交互,以揭示对象间如何写作来完成每个具体的用例,单个对象的状态变化和动态行为可以通过状态图来表达。

1.功能模型根据我们的需求,可以很容易地画出A TM模拟程序的用例图:可以看出,用户可以开户和登录帐号,开户或者登录帐号之后就能管理帐号。

要管理账号,就必须首先登录帐号或者开户。

管理帐号的功能包括存款、取款、查询余额和修改密码。

2.对象模型ATM是银行相连的设备,因此银行是A TM模拟程序的相关对象,所有的操作都是针对帐号的,因此帐号是其中的核心对象。

此外,需要一个程序来启动ATM。

因此,在ATM模拟程序中,我们需要处理四个类,或者说四类对象:启动程序、A TM、银行及帐号。

1)帐号类Account帐号类Account包含所有的帐号信息负责所有的帐号操作。

基本的帐号信息包括:●帐号名name●帐号密码password●帐号余额balance主要的帐号操作包括:●登录Login●存款Deposit●取款Withdraw●查询余额Get_Balance●修改密码ChangePassword2)银行类Bank银行类Bank的本质就是一组帐号的组合,并负责管理帐号。

c语言程序设计atm自动取款机实验报告

c语言程序设计atm自动取款机实验报告

课程设计报告课程类别:本科课程名称:程序设计基础(C语言)课程代号:指导教师:银行ATM自动取款机系统课程设计姓名:学号:姓名:学号:姓名:学号:学院:班级:目录1.课程设计内容..................................................2.课程设计要求.................................................. 3.可行性研究................................................... 4.需求分析.....................................................5.概要设计......................................................5.1 功能模块图...............................................5.2 功能模块描述.............................................5.3数据结构 .................................................6.详细设计......................................................6.1 功能流程图...............................................6.2 重点设计.................................................7.测试与调试....................................................8.总结..........................................................8.1 心得体会..................................................8.2 不足与改进................................................9.参考文献......................................................1.课程设计内容模拟银行的自动取款机ATM使用过程中的界面和用户交互过程2.课程设计要求(1)要求利用面向过程的方法以及C语言的编程思想来完成系统的设计;(2)在系统的设计中,要求运用菜单和文件实现系统功能。

C语言程序设计任务驱动式教程美化详细版项目实训——ATM功能实现

C语言程序设计任务驱动式教程美化详细版项目实训——ATM功能实现
交互性
安全性
可靠性
高效性
ATM系统涉及到用户的金融信息和个人信息,因此需要保证系统的安全性,防范各种安全威胁。
ATM系统需要具备高可靠性和稳定性,确保系统的正常运行和使用。
ATM系统需要快速、准确地完成用户请求,提高系统的效率。
系统性能指标
ATM系统对用户请求的响应时间应该尽可能短,以提供更好的用户体验。
详细描述
03
atm系统的数据流程和处理
03
更新账户余额等信息并输出相应提示。
数据流程设计
01
用户输入取款或存款的金额、账号等信息。
02
系统根据输入信息进行相应处理:验证用户输入的账号和密码是否正确,检查账户余额,处理交易等。
定义结构体类型包括:用户信息、账户信息、密码等。
初始化用户信息和账户信息,将密码保存在加密文件中。
记录每次测试的结果,包括测试用例执行的通过率、错误率和异常情况等。
测试结果
根据测试结果进行分析,找出不足之处,提出改进措施和建议,为后续开发提供参考。
结果分析
通过性能测试,检测系统的响应时间、吞吐量等指标是否满足要求。
性能测试
检测系统的安全性是否可靠,是否存在漏洞和安全隐患,需要进行安全性测试。
安全性测试
总结词
取款功能是atm系统中关键的功能之一,需要考虑取款金额、账户余额以及取款操作的安全性等问题。
详细描述
设计一个取款函数,参数为取款金额和用户账号,函数内部首先读取数据库或内存中存储的用户信息,验证账户余额是否足够支付所要求取的金额,如果余额不足则无法取款。如果余额足够,则扣除相应金额并将取款记录写入日志中,同时还需要进行必要的异常处理。
06
atm系统的总结与展望

C语言编程银行ATM存取款系统实现源码

C语言编程银行ATM存取款系统实现源码

C语⾔编程银⾏ATM存取款系统实现源码⽬录⼀、课程设计的⽬的⼆、课程设计的题⽬三、设计内容银⾏ATM存取款系统实现的效果源码业务流程1、⽤户开户2、登录流程3、密码修改这⾥使⽤的运⾏⼯具是DEV C++。

⽼铁们⼀定要看仔细了。

是DEV C++仅供借鉴:这个是⼤⼀时期写的。

⼤四的时候整理了⼀下(本⼈C语⾔学的也不太好)。

肯定很多不⾜和存在漏洞的地⽅、仅供借鉴、仅供借鉴。

⼀、课程设计的⽬的掌握C语⾔程序设计的基础知识、基本理论、原理和实现技术。

⼆、课程设计的题⽬银⾏ATM存取款系统三、设计内容(主要技术关键的分析、解决思路和⽅案⽐较等)银⾏ATM存取款系统银⾏ATM存取款系统业务描述如下:银⾏ATM存取款系统能为⽤户提供存款、取款、查询、转账和修改密码的功能。

为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。

⽤户通过开户业务在本系统开⽴银⾏账户,之后可以通过该银⾏账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。

本系统各个业务有如下注意点:(1)登陆系统⽤户登陆之前,必须在登陆界⾯输⼊其银⾏账户,通过其正确输⼊的银⾏账户登陆系统。

(2)开户业务要使⽤本系统必须⾸先执⾏开户业务开⽴新的银⾏账户,并且将此新开的银⾏存储于⽂件当中。

同时,系统以⾝份证号码作为开户的充分条件,即⼀个⾝份证号码只能开⽴⼀次银⾏账户。

(3)存款业务客户登陆系统后,选择存款业务,即可以将输⼊的存款⾦额存⼊相应的账户。

(4)取款业务客户登陆系统后,选择取款业务,即可以将输⼊的取款⾦额从相应的银⾏账户取出,但是取款⾦额必须⼤于⽬前的账户余额。

(5)查询业务客户登陆系统后,可以选择查询业务,查询账户余额。

(6)转账业务客户登陆系统后,可以选择转账业务,进⾏转账。

注意的是转账的⽬的账户必须是本系统已经存在的银⾏账户。

(7)修改密码客户登陆系统后,可以选择修改密码业务,进⾏密码修改。

c语言课程设计ATM机

c语言课程设计ATM机

c语言课程设计ATM机一、教学目标本章节的教学目标是让学生掌握C语言编程的基本知识,能够运用C语言设计简单的ATM机模拟程序。

具体来说,知识目标包括:理解C语言的基本语法、数据类型、运算符、控制结构等;技能目标包括:能够使用C语言编写并调试程序,掌握基本的编程技巧;情感态度价值观目标包括:培养学生对计算机编程的兴趣,提高学生解决问题的能力。

二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等。

具体安排如下:1.第一课时:介绍C语言的基本语法和数据类型,讲解变量、常量的声明和使用。

2.第二课时:讲解运算符的用法,包括算术运算符、关系运算符、逻辑运算符等。

3.第三课时:介绍控制结构,包括条件语句(if-else)和循环语句(for、while)。

4.第四课时:讲解函数的定义和调用,包括主函数和用户自定义函数。

5.第五课时:讲解数组和字符串的基本操作,包括数组的声明和使用、字符串的输入输出等。

6.第六课时:介绍指针的概念和用法,包括指针的声明、指针与数组、指针与函数等。

7.第七课时:讲解结构体和文件的操作,包括结构体的声明和使用、文件的打开、读写等。

三、教学方法为了激发学生的学习兴趣和主动性,本章节将采用多种教学方法相结合的方式。

具体包括:1.讲授法:教师讲解C语言的基本语法、数据类型、运算符、控制结构等知识点。

2.案例分析法:通过分析实际案例,让学生理解并掌握编程技巧。

3.实验法:安排上机实验,让学生动手编写程序,巩固所学知识。

4.小组讨论法:分组进行讨论,培养学生团队合作精神和问题解决能力。

四、教学资源为了支持教学内容和教学方法的实施,本章节将准备以下教学资源:1.教材:《C语言程序设计》或《C语言入门教程》等。

2.参考书:《C语言编程实践》、《C语言深度探索》等。

3.多媒体资料:教学PPT、视频教程、在线编程练习平台等。

4.实验设备:计算机、编程软件(如Code::Blocks、Visual Studio等)。

ATM 机 C语言

ATM 机  C语言

//[Y2-GS1221E23-卞治华]ATM取款机#include <stdio.h>#include <stdlib.h>#include <time.h>#include <string.h>#include <conio.h>#include <ctype.h>#define CURU 72#define CURD 80#define CURL 75#define CURR 77#define ESC 27#define N 7void zhuCe();//注册函数void dengLu();//登陆函数void save();//保存信息void choice();//选择操作void service();//服务选择void exit();//退出系统void yangZhen();//验证函数void userInterface();//用户选择界面void choiceInterface();//选择界面void serviceChoice();//服务菜单void init();//系统初始化,将用户信息写入custom.txt的文件int login(int a,char b[]);//登录密码验证int accountJudge(int a);//用户账号验证void depositAccount();//存款界面void withdrawals();//取款界面void inquireAccount();//查询界面void transfer();//转账界面void playingGame();//猜拳游戏void wanNianLi();//万年历int isLeapYear(int m);//闰年、平年判定int days(int y,int m);//天数判定int week(int y,int m,int d);//星期判定void print(int y,int m); //自定义函数, 打印万年历int getAccount();//从系统中自动获取帐号int cash;//保存存取款金额static int t;//保存登录后用户帐号的下标,方便进行存取转操作static int s;//保存成功登录后,所要转向的用户账号的下标,方便进行转账操作struct user{int account;//用户账号char name[20];//用户姓名char passwd[7];//用户密码float creid;//用户帐户金额}custom[N]={{1000,"admin","000001",500},{1001,"bianzhihua","111111",6000},{1002,"zhangtao ","222222",3566},{1003,"jiyuan","333333",24455},{1004,"wangrui","777777",12345},{1005,"liuc ong","000000",34343}};typedef struct user USER;void main()//登录函数和验证函数我将其都放在choice()中作为界面中的一个选项{userInterface();//用户选择界面choice();//选择操作}void init()//系统初始化,将用户信息写入custom.txt的文件{FILE *fp;int i;fp = fopen("e:\\custom.txt","rw");printf("系统已启动,数据入库中……\n");for( i=0; i<N; i++ ){fwrite(&custom[i],sizeof(USER),1,fp);}save();fclose(fp);}void dengLu()//登录函数{int i=0;int result;int tempaccount;//存放用户登录卡号char temppasswd[7];//存放用户登录密码system("cls");printf("**********************************************************\n");printf("* *\n");printf("* 用户登录账号验证*\n");;printf("* *\n");printf("**********************************************************\n");do{printf("请输入您的银行卡号:");scanf("%d",&tempaccount);printf("请输入您的银行密码:");scanf("%s",temppasswd);result = login(tempaccount,temppasswd);if( result==1 ){service();break;}else{printf("第%d次登录失败!\n",i+1);}i++;}while( i<3 );if( i==3 ){system("cls");printf("********************************************************************* ****\n");printf("-->三次密码错误,卡已被吞<--\n");printf("-->请带上个人身份证件到附近最近的工商银行取卡! <--\n");printf("-->如给你造成任何不便,敬请原谅<--\n");printf("********************************************************************* ****\n");system("pause");exit(0);}}void yangZhen()//验证函数{FILE *fp;int i;fp = fopen("e:\\custom.txt","r");char tempname[20];char temppasswd[7];system("cls");printf("**********************************************************\n");printf("* *\n");printf("* 用户账号验证*\n");;printf("* *\n");printf("**********************************************************\n");printf("请输入您的用户姓名:");scanf("%s",tempname);printf("请输入您的银行密码:");scanf("%s",temppasswd);for ( i=0; i<N; i++ ){fread( &custom[i],sizeof(USER),1,fp );if( strcmp(tempname,custom[i].name)==0 && strcmp(temppasswd,custom[i].passwd)==0 ){printf("*** 系统中存在该用户! ***\n");choice();break;}}if( i==N )printf("*** 系统中没有该用户! ***\n");choice();}int login( int a,char b[] )//登录密码验证{FILE *fp;int i;fp = fopen("e:\\custom.txt","rw");for ( i=0; i<N; i++ ){fread(&custom[i],sizeof(USER),1,fp);if( (a==custom[i].account) && strcmp(b,custom[i].passwd)==0 ){t = i;//保存用户帐号的下标,方便进行存取转操作break;}}if( i== N)return 0;elsereturn 1;}void service()//服务选择{int i;system("pause");system("cls");printf(" -->恭喜您已成功登录中国工商银行自动取款机系统!<-- \n");serviceChoice();printf("\t请输入操作类型:");scanf("%d",&i);switch(i){case 1: depositAccount(); break;//存款界面case 2: withdrawals(); break;//取款界面case 3: inquireAccount(); break;//查询界面case 4: transfer(); break;//转账界面case 5: playingGame(); break;//猜拳游戏case 6: wanNianLi(); break;//万年历case 7: choice(); break;//返回default:printf("\t你所输入的选择不存在,请重新输入!\n");service();}}void save()//文件打开与否判断{FILE *fp;int i;if( (fp=fopen("e:\\custom.txt","wb")) == NULL ){printf("cannot open file\n");return;}for(i=0;i<N;i++)/*二进制写*/if( fwrite(&custom[i],sizeof(USER),1,fp) != 1 )printf("file write error\n");/*出错处理*/fclose(fp); /*关闭文件*/}void userInterface()//用户界面(ATM的开始界面){printf("**********************************************************\n");printf("** **\n");printf("* 欢迎使用中国工商银行自动取款机*\n");printf("** **\n");printf("**********************************************************\n\n"); }void choiceInterface()//界面选择{printf("***********欢迎使用中国工商银行自动取款系统***************\n"); printf("* *\n"); printf("* 1.注册*\n");printf("* 2.登录*\n");printf("* 3.验证*\n");printf("* 4.取卡*\n");printf("* *\n"); printf("**********************************************************\n");}void serviceChoice()//服务菜单{printf("**********************************************************\n");printf("* 欢迎使用中国工商银行自动取款机*\n");printf("* *\n");printf("* 1:存款*\n");printf("* 2:取款*\n");printf("* 3:查询*\n");printf("* 4:转账*\n");printf("* 5:游戏*\n");printf("* 6:万年历*\n");printf("* 7:返回*\n");printf("* *\n");printf("**********************************************************\n\n"); }void choice()//选择{system("pause");system("cls");choiceInterface();int chose;printf("请选择您所要服务的类型:");scanf("%d",&chose);printf("\n");switch(chose){case 1:zhuCe();break;//注册case 2:dengLu();break;//登录case 3:yangZhen();//验证case 4:exit();//退出default:printf("\t您所输入的数据非法,请重新选择!\n");choice();}}void exit()//退出{system("cls");printf("**********************************************************\n");printf("* *\n");printf("* 用户退出*\n");;printf("* *\n");printf("**********************************************************\n");printf("--》欢迎您下次再次使用本自动取款机《--\n");exit(0);}int getAccount()//从系统中自动获取帐号{static int account = 1005;account++;return account;}void zhuCe()//注册函数{FILE *fp;int count = 0;//记录用户密码错误次数char temppasswd2[7];fp = fopen( "e:\\custominformation.txt","a" );//向文件尾追加用户数据system("cls");printf("**********************************************************\n");printf("* *\n");printf("* 欢迎新用户注册*\n");;printf("* *\n");printf("**********************************************************\n");custom[6].account=getAccount();printf("系统自动分配给你的用户帐号为:%d\n",custom[6].account);printf("请输入你要注册帐号的用户姓名:");scanf("%s",custom[6].name);do{if( count>=1){printf("--注册账号前后密码不一致,请重新输入--\n");}printf("请输入您要注册账号的用户密码:");scanf("%s",custom[6].passwd);printf("请再次输入您要注册账号的用户密码:");scanf("%s",temppasswd2);count++;}while( strcmp(custom[6].passwd,temppasswd2)!=0 );custom[6].creid = 0;//初始帐户存款金额为0元init();choice();}void depositAccount()//存款界面{FILE *fp;int cash;fp = fopen( "e:\\custominformation.txt","rw" );system("cls");printf("**********************************************************\n");printf("* *\n");printf("* 欢迎用户存款*\n");;printf("* *\n");printf("**********************************************************\n");printf("\t请输入你所要存款的金额(元):");scanf("%d",&cash);custom[t].creid += cash;if( cash%50==0 ){printf("->存款成功:尊敬的用户%s,您账户现有余额:%.2f元<-\n",custom[t].name ,custom[t].creid);}else{system("cls");printf("*******************存款提示界面***********************\n");printf("* *\n");printf("-->本取款机只能识别并接收100元面额的人民币! <--\n");printf("* *\n");printf("******************************************************\n");system("pause");system("cls");depositAccount();}service();}void withdrawals()//取款界面{FILE *fp;fp = fopen( "e:\\custominformation.txt","w" );system("cls");printf("**********************************************************\n");printf("* *\n");printf("* 欢迎用户取款*\n");;printf("* *\n");printf("**********************************************************\n");printf("\t请输入你所要取款的金额(元):");scanf("%d",&cash);custom[t].creid -= cash;if( cash%100==0 && custom[t].creid > 0 )printf("->取款成功:尊敬的用户%s,您账户现有余额:%.2f元<-\n",custom[t].name,custom[t].creid);else if( custom[t].creid<=0 ){printf("-->您的账户余额不足,取款失败,请见谅!<--\n");custom[t].creid += cash;}else{system("cls");printf("********************取款提示界面**********************\n");printf("* *\n");printf("-->本取款机仅能取出若干100元面额的人民币<--\n");printf("* *\n");printf("******************************************************\n");system("pause");system("ClS");serviceChoice();withdrawals();}service();}void inquireAccount()//查询界面{system("cls");printf("**********************************************************\n");printf("* *\n");printf("* 账户金额查询*\n");;printf("* *\n");printf("**********************************************************\n");printf("\t尊敬的用户,你的卡上剩余金额为:%.2f元\n",custom[t].creid );service();}void transfer()//转账界面{int i = 0;int result = 0;system("cls");printf("**********************************************************\n");printf("* *\n");printf("* 转帐*\n");;printf("* *\n");printf("**********************************************************\n");do{int tempaccount1;int tempaccount2;printf("\t请输入你所要转向的账户用户编号:");scanf("%d",&tempaccount1);printf("\t请再次输入你所要转向的账户用户编号:");scanf("%d",&tempaccount2);if( tempaccount1 != tempaccount2 ){printf("\t两次输入的用户帐户不一样,请重新输入!\n");}else{result = accountJudge( tempaccount1 );//用户账号验证if( result == 1 ){while(1){printf("\t请输入您所要转帐金额:");scanf("%d",&cash);custom[t].creid -= cash;if( custom[t].creid>0 ){FILE *fp;fp = fopen( "e:\\custominformation.txt","w" );custom[s].creid += cash;printf("转账成功,你已成功向%s用户转入%d元,你账户现有余额为:%.2f元\n",custom[s].name,cash,custom[t].creid);service();}else{printf("\t您的账户余额不足,转账失败,请见谅!\n");custom[t].creid += cash;}}}else{printf("-->对不起,您所输入的用户帐号不存在!<--\n");}}i++;}while( i < 3 );if( i==3 ){printf("-->三次转账用户帐号错误,请仔细核对用户帐号后,再重新选择操作!<--\n");system("pause");}service();}int accountJudge( int a )//用户账号验证{FILE *fp;int i;fp = fopen("e:\\custom.txt","rw");for ( i=0; i<N; i++ ){fread(&custom[i],sizeof(USER),1,fp);if( a == custom[i].account ){s = i;//保存所要转向的用户账号的下标,方便进行转账操作break;}}if( i== N)//判断用户账户在不在:1-存在0-不存在return 0;elsereturn 1;}void playingGame()//猜拳游戏{system("PAUSE");//暂停system("CLS");//清屏int user;//用户出拳int machine;//机器出拳int count;//统计比赛场数int uWin; //用户出拳胜int mWin; //机器出拳胜int tie;//平局int n;//比赛场数int m;//几局胜int score[2]={0,0};//积分统计count = 0;srand( (unsigned)time( NULL ) );machine = rand()%3;printf(" *******************************\n");printf(" * 猜拳游戏*\n");printf(" * 0:剪刀1:石头2:布*\n");printf(" * 胜者:3分失败:0分平局:1分*\n");printf(" ********************************\n");printf("\n\n\t用户自定义比赛体制:\n");printf("\t比赛场数:");scanf("%d",&n);while( !(n>0) ){printf("/*所输数据非法,请重新输入比赛场数*/\n\t比赛场数:");scanf("%d",&n);}m = n/2+1;printf("\t您选择实行%d局%d胜制:\n",n,m);while( count<n ){printf("\t学生出拳:");scanf("%d",&user);while( !(user>=0 && user<=2) ){printf("/*所输数据非法,请学生重新出拳*/\n\t学生出拳:");scanf("%d",&user);}printf("\t机器出拳:%d\n",machine);if( user == machine ){printf("\t第%d局为平局!\n",count+1);score[0]++;score[1]++;}else if( user == 0 && machine == 2 || user == 1 && machine == 0 || user == 2 && machine == 1 ){printf("\t第%d局为用户赢!\n",count+1);score[0] += 3;uWin ++;}else{printf("\t第%d局为机器赢!\n",count+1);score[1] += 3;mWin ++;}count++;}if( uWin<mWin )printf("赛制(%d局%d胜制):最后胜利者是-->机器\n",n,m);else if ( uWin > mWin )printf("赛制(%d局%d胜制):最后胜利者是-->用户\n",n,m);elseprintf("赛制(%d局%d胜制):双方都是胜利者-->平局\n",n,m);printf("最后积分结果--用户:%d分,机器:%d分\n",score[0],score[1]);service();}void wanNianLi()//万年历{int month;//月份int year;//年char ch;int m[12]={0};printf("请输入所要查询的年份:");scanf("%d",&year);printf("请输入所要查询的月份:");scanf("%d",&month);do{system("cls"); //调用DOS清屏命令print(year,month); //自定义函数, 打印万年历ch = getch(); //获得无回显控制台输入字符if(ch == ESC) //ESC键,退出循环,结束程序break;else if(ch == 0) //若值为零,则用户敲了功能键,继续获取后续代码。

C语言如何实现ATM机存取款系统

C语言如何实现ATM机存取款系统

C语言如何实现ATM机存取款系统C语言如何实现ATM机存取款系统C语言利用结构体和构造函数并且采用输入输出文件实现ATM机系统。

下面是店铺为大家带来的关于C语言如何实现ATM机存取款系统的知识,欢迎阅读。

C语言如何实现ATM机存取款系统利用结构体和构造函数并且采用输入输出文件实现ATM机系统。

主要功能有:利用三种方法查询、开户、登陆、菜单、取款、修改密码、存款、转账、创建个人信息、输出、删除、增加、退出。

是一个功能齐全,完备的ATM机系统。

#include#include#includestruct per //定义结构体{char name[20];char ID[20];int money;char mima[6];struct per * next;};typedef struct person //定义另一结构体{struct per kehu;struct person *next;}L;void chaxun(struct per *head); //各个函数的声明void kaihu(struct per *head);void denglu(struct per *head);void caidan(struct per *head);void qukuan(struct per *head);void xgmm(struct per *head);void cunkuan(struct per *head);void zhuanzhang(struct per *head);void chuangjian(struct person **Phead);void shuchu(struct person *Phead);void shanchu(struct person **Phead);void zengjia(struct person **Phead);void chaxun1(struct person *Phead);void chaxun2(struct person *Phead);void chaxun3(struct person *Phead);void tuichu();void menu();/*主函数*///////////////////////////////////////////////////void main(){char x;char choose; //choose为定义输入选择的变量int flag=1;struct person *Phead=NULL; //Phead为定义二层头指针struct per *head=NULL; //head为定义一层头指针printf("***************************** ");printf("**欢迎使用ATM自动取款机系统** ");printf("***************************** ");printf("—————————————— ");printf("| 1 开户 | ");printf("—————————————— ");printf("| 2 登陆 | ");printf("—————————————— "); printf("| 3 前台客户信息查询中心| ");printf("—————————————— "); printf("| 4 请选择您的需求 | ");printf("—————————————— "); scanf("%s",&x);system("cls");switch(x){case '1':system("cls");kaihu(head); //调用开户函数break;case '2':system("cls");denglu(head); //调用登陆函数break;case '3':system("cls");menu(); //调用后台菜单函数break;}while(flag){system("cls");menu(); //调用后台菜单函数choose=get);switch(choose){case '1':chuangjian(&Phead);shuchu(Phead); //调用后台输出函数system("pause");break;case '2':chaxun1(Phead); //调用后台卡号查询函数system("pause");system("cls");break;case '3':chaxun2(Phead); //调用后台姓名查询函数system("pause");system("cls");break;case '4':chaxun3(Phead); //调用后台余额查询函数system("pause");system("cls");break;case '5':shanchu(&Phead); //调用后台删除用户函数system("pause");system("cls");break;case '6':zengjia(&Phead); //调用后台增加用户函数system("pause");system("cls");break;case '7':shuchu(Phead); //调用后台输出函数函数system("pause");system("cls");break;case '8':shuchu(Phead);system("pause");break;case '0':flag=0;printf("The end. ");break;}}}/*开户函数*/////////////////////////////////////////////////////////void kaihu(struct per *head){head=NULL;FILE *fp; //定义文件指针struct per *p1=NULL,*p2=NULL; //p1,p2为定义链表指针p1=(struct per*)malloc(sizeof(struct per)); //开辟内存单元printf("请输入您的姓名: "); //请数据输入链表中scanf("%s",p1->name);printf("请设置您的卡号: ");scanf("%s",p1->ID);printf("请设置您银行卡密码: ");scanf("%s",p1->mima);p1->money=0;p1->next=NULL;printf("您的个人信息为");printf("姓名:%s 卡号:%s 余额:%4d ",p1->name,p1->ID,p1->money);if(NULL==head) //为新用户开辟内存单元{head=(struct per *)malloc(sizeof(struct per));head->next=p1; //进行头插法,将其作为第一个节点}else //为新增客户开辟内存单元{for(p2=head;p2->next!=NULL;p2=p2->next); //进行尾插p2->next=p1;}if((fp=fopen("save.txt","ab+"))==NULL) //打开文件{printf("cannot poen file ");return;}if(fwrite(p1,sizeof(struct per),1,fp)!=1) //将链表信息写入文件中printf("file write error ");fclose(fp);printf(" ");printf("恭喜您开户成功,请登录 ");system("pause");system("cls");denglu(head);}//登陆函数/////////////////////////////////////////////////////void denglu(struct per *head){char d[20];char mima[20];int i,j;FILE *fp; //定义文件指针struct per *p,*q=NULL;if((fp=fopen("save.txt","rb+"))==NULL) //打开一个二进制文件,为读方式{printf("不能打开文件 "); //如不能打开,则结束程序}p=(struct per*)malloc(sizeof(struct per)); //申请空间head=p;while(!feof(fp)) //循环读数据直到文件尾结束{if(1!=fread(p,sizeof(struct per),1,fp))break; //如果没读到数据,跳出循环p->next=(struct per *)malloc(sizeof(struct per)); //为下一个结点申请空间q=p; //保存当前节点的指针,作为下一结点的前驱p=p->next; //指针后移,新读入数据链到当前表尾}q->next=NULL; //最后一个结点的后继指针为空fclose(fp);printf(" ********************** ");printf(" ***欢迎来都建设银行*** ");printf(" ********************** ");for(j=1;j<4;j++) //限制卡号输入的次数的循环{printf("请输入您的卡号 ");scanf("%s",d);for(q=head;q!=NULL;q=q->next) //遍历链表{if(strcmp(q->ID,d)!=0) //核对账号{continue; //跳出循环}else{for(i=1;i<4;i++) //限制密码输入的次数的循环{printf(" 请输入您的密码 ");scanf("%s",mima);if(strcmp(q->mima,mima)!=0) //核对密码{printf("密码不正确。

C语言模拟ATM提款机

C语言模拟ATM提款机

C语言模拟ATM提款机1.运用结构体2.运用文件调用源代码:#include "stdio.h"#include "stdlib.h"#include "conio.h"#define N 200void zhanghao(); //账号void xuanzhe(); //选择函数void enter_ATM(); //账号输入函数void input_code(); //密码输入函数void caozuo(); //基本操作界面void qukuan(); //取款函数void success(); //操作成功函数void delay(); //延时函数void YU_E(); //余额查询函数void cunkuan(); //存款函数void panduan(double z); //判断取款是否合法函数void exit(); //退出界面函数void mima(); //密码修改void zhuanzhang(); //转账函数void read(); //文件写入函数void write(); //文件读取函数void guanli(); //管理员函数void tequancode(); //管理员密码void hu(); //户void xinxi(); //信息void gmima(); //管理员改密void CAOZUO(); //管理员操作函数void yinghang(); //银行账户查询函数void jia(); //账户添加函数void shanchu(); //账户删除函数typedef struct{long int zhanghao;int mima;double yu_e;}atm;atm guan[N];int k;////////////////////////////////////////////////////////////主函数void main(){xuanzhe();}////////////////////////////////////////////////////////////功能选择函数void xuanzhe(){system("cls");printf("* 请选择功能*\n");printf("* 1.管理员 2.用户*\n");switch(getch()){case '1':tequancode();break;case '2':enter_ATM();break;default:{printf("\a非法输入");delay();system("cls");xuanzhe();};break;}}///////////////////////////////////////////////////////////柜台机账号输入函数void enter_ATM(){delay();system("cls");read();printf("* 欢迎使用ATM 柜台机*\n");printf("* 请输入卡号*\n");long int user;scanf("%d",&user);if(user==0){printf("* 账号错误*\n");enter_ATM();}else if(user!=(guan[k].zhanghao)){for(k=1;k<N;k++){if(user==(guan[k].zhanghao))input_code( );}system("cls");printf("* 账户不存在,请从新输入*\n");enter_ATM();}elseinput_code( );}////////////////////////////////////////////////////////////////密码输入函数void input_code( ){long int code;int temp=3;read();system("cls");printf("* 请输入密码*\n");scanf("%d",&code);while(code!=guan[k].mima){temp--;system("cls");printf("* 密码错误,请重新输入*\n");printf("* 您还有");printf("%d",temp);printf(" 次机会*\n");scanf("%d",&code);if(temp==1){system("cls");printf("* 您已经3 次输入密码*\n");printf("* 系统将退出操作*\n");delay();enter_ATM();}}caozuo();}//////////////////////////////////////////////////////////////////主操作界面函数void caozuo( ){system("cls");printf("********************************\n");printf("* 1.修改密码*\n");printf("* 2.查询余额*\n");printf("* 3.取款*\n");printf("* 4.存款*\n");printf("* 5.转账*\n");printf("* 6.退出*\n");printf("********************************\n");switch(getch( )){case '1': mima(); break;case '2': YU_E(); break;case '3': qukuan(); break;case '4': cunkuan(); break;case '5': zhuanzhang();break;case '6': exit(); break;default:{printf("\a非法操作\n");caozuo();};}}//////////////////////////////////////////////////////////////////////密码修改函数void mima(){long int mm1,mm2,mm3;int temp;system("cls");printf("旧密码:");scanf("%d",&mm1);printf("\n");if(mm1!=guan[k].mima){system("cls");printf("旧密码错误,请重新输入\n");delay();mima();}printf("新密码:");scanf("%d",&mm2);if(mm2<100000||mm2>999999){system("cls");printf(" 密码必须等于6位数\n");delay();mima();}temp=mm2%111111;if(temp==0){system("cls");printf(" 密码过于简单\n");printf(" 请重新输入!\n");delay( );mima( );}printf("\n");printf("确认新密码:");scanf("%d",&mm3);if(mm2!=mm3){system("cls");printf("确认密码不一致,请重新输入\n");delay( );mima();}if(mm3=mm2){guan[k].mima=mm3;write();success();}}////////////////////////////////////////////////////////////////////余额查询函数void YU_E(){read();system("cls");printf("你的余额为:%lf\n",(guan[k].yu_e));printf("1.返回 2.退出\n");switch(getch()){case '1': caozuo(); break;case '2': exit(); break;}}/////////////////////////////////////////////////////////////////////////取款函数void qukuan(){double temp;system("cls");printf(" 请选择您要取款的金额\n");printf(" 1.100 2.200 \n");printf(" 3.500 4.800 \n");printf(" 5.1000 6.其它\n");printf(" \n");printf(" 7.返回8.退出\n");switch(getch()){case '1': panduan(100); break;case '2': panduan(200); break;case '3': panduan(500); break;case '4': panduan(800); break;case '5': panduan(1000); break;case '6':system("cls");printf("请输入您要取款的金额:");scanf("%lf",&temp);panduan(temp); break;case '7':caozuo(); break;case '8':exit(); break;}}///////////////////////////////////////////////////////////////////判断取款是否合法函数void panduan(double z){int beishu;if(z>(guan[k].yu_e)){system("cls");printf(" 余额不足!\n");printf(" 请重新操作\n");printf(" 1.返回 2.退出\n");switch(getch()){case '1': qukuan();case '2': exit();}}beishu=(int)z%100;if(beishu!=0){system("cls");delay( );printf(" 本ATM机只支持100 的人民币\n");printf(" 请重新操作\n");printf(" \n");printf(" 1.返回 2.退出\n");switch(getch()){case '1': qukuan();case '2': exit();}}if(z==5000.00||z>5000.00){system("cls");printf(" 每次取款不能超过5000 元\n");printf(" 请重新操作\n");printf(" \n");printf(" 1.返回 2.退出\n");switch(getch()){case '1': qukuan();case '2': exit();}}(guan[k].yu_e)-=z;write();success();}/////////////////////////////////////////////////////////////////存款函数void cunkuan( ){double cun;system("cls");printf(" 请放入人民币:");scanf("%lf",&cun);while(cun<0){system("cls");printf(" 非法存款\n");printf(" 请重新放入人民币\n");scanf("%lf",&cun);}(guan[k].yu_e)+=cun;write();success();}/////////////////////////////////////////////////////////////////转账号函数void zhuanzhang(){int i,hao;double money;long int a=2109999999;system("cls");delay();read();printf("* 请输入账号*\n");scanf("%d",&hao);printf("* 请输入金额*\n");scanf("%lf",&money);if(hao<1000000000||hao>a){printf("* 账号错误,操作取消*\n");delay();delay();caozuo();}else if(money>guan[k].yu_e||money<0){printf("* 金额错误,操作取消*\n");delay();delay();caozuo();}else{read();for(i=1;i<N;i++){if(guan[i].zhanghao==hao)break;}guan[k].yu_e-=money;guan[i].yu_e+=money;write();success();}}///////////////////////////////////////////////////////延时函数void delay( ){long int bl1;int bl2;for(bl1=600000;bl1>0;bl1--){for(bl2=300;bl2>0;bl2--);}}/////////////////////////////////////////////////操作成功函数void success( ){system("cls");printf(" 操作已成功\n");printf(" \n");printf(" 1.返回 2.退出\n");switch(getch()){case '1':caozuo(); break;case '2':exit(); break;}}//////////////////////////////////////////////系统退出函数void exit(){system("cls");printf("* 欢迎您的再次使用*\n");printf("* 系统正在退出... *\n");delay();xuanzhe();}////////////////////////////////////////////////////文件读取函数void read(){int i;FILE *fp;fp=fopen("xinxi.txt","r");if(fp==NULL){printf("打开文件失败\n");return;}for(i=0;i<N;i++){fscanf(fp,"%d ",&(guan[i].zhanghao));fscanf(fp,"%d ",&(guan[i].mima));fscanf(fp,"%lf\n",&(guan[i].yu_e));}fclose(fp);}/////////////////////////////////////////////////////////////文件写入函数void write(){int i;FILE *fp;fp=fopen("xinxi.txt","w");if(fp==NULL){printf("打开文件失败\n");return;}for(i=0;i<N;i++){fprintf(fp,"%d ",guan[i].zhanghao);fprintf(fp,"%d ",guan[i].mima);fprintf(fp,"%lf\n",guan[i].yu_e);}fclose(fp);}void tequancode( ){long int code;int temp=2;read();system("cls");printf("* 请输入管理员密码*\n");scanf("%d",&code);while(code!=guan[0].mima){system("cls");printf("* 密码错误,请重新输入*\n");printf("* 您还有");printf("%d",temp);printf(" 次机会*\n");scanf("%d",&code);temp--;if(temp==0){system("cls");printf("*\a 您已经3 次输入密码*\n");printf("* 系统将退出操作*\n");delay();xuanzhe();}}guanli();}////////////////////////////////////////////////////////////////管理员函数void guanli(){system("cls");delay();printf("* 1.信息查询*\n");printf("* 2.操作*\n");printf("* 3.退出*\n");switch(getch()){case '1':zhanghao();break;case '2':CAOZUO();break;case '3':exit();break;default:{printf("\a非法操作");guanli();};}}/////////////////////////////////////账号void zhanghao(){system("cls");read();printf(" 请输入账号\n");long int user;scanf("%d",&user);if(user!=(guan[k].zhanghao)){for(k=1;k<N;k++){if(user==(guan[k].zhanghao))hu();}system("cls");printf("* 账户不存在,请从新输入*\n");delay();guanli();}else{delay();hu( );}}////////////////////////////////////////////////账户void hu(){system("cls");printf("* 1.信息 2.改密码*\n");printf("* 3.返回 4.退出*\n");switch(getch()){case '1':xinxi();break;case '2':gmima();break;case '3':zhanghao();break;case '4':guanli();break;default:{printf("\a非法操作\n");hu();};}}///////////////////////////////////////////////信息void xinxi(){system("cls");read();printf("*账号密码余额*\n");printf("%d ",guan[k].zhanghao);printf("%d ",guan[k].mima);printf("%lf \n",guan[k].yu_e);printf("* 1.返回 2.退出*\n");switch(getch()){case '1':hu();break;case '2':guanli();break;}}///////////////////////////////////////////管理员改密void gmima(){long int mm1,mm2,mm3;char temp;system("cls");printf("旧密码:");scanf("%d",&mm1);printf("\n");if(mm1!=guan[k].mima){system("cls");printf("旧密码错误,请重新输入\n");delay();gmima();}printf("新密码:");scanf("%d",&mm2);if(mm2<100000||mm2>999999){system("cls");printf(" 密码必须等于6位数\n");printf(" 请重新输入!\n");delay();gmima();}temp=mm2%111111;if(temp==0){system("cls");printf(" 密码过于简单\n");printf(" 请重新输入!\n");delay( );gmima( );}printf("\n");printf("确认新密码:");scanf("%d",&mm3);if(mm2!=mm3){system("cls");printf("确认密码不一致,请重新输入\n");delay( );gmima();}if(mm3=mm2){guan[k].mima=mm3;write();hu();}}///////////////////////////////////////////管理员操作函数void CAOZUO(){system("cls");delay();printf("* 1.查询所有账户*\n");printf("* 2.添加账户*\n");printf("* 3.删除账户*\n");printf("* 4.返回 5.退出*\n");switch(getch()){case '1':yinghang();break;case '2':jia();break;case '3':shanchu();break;case '4':guanli();break;case '5':xuanzhe();break;default:{printf("\a非法操作\n");CAOZUO();};}}//////////////////////////////////////////银行账户查询函数void yinghang(){system("cls");delay();read();printf("*账号密码余额*\n");for(;k<N;k++){if(guan[k].zhanghao!=0&&guan[k].zhanghao>0){printf("%d ",guan[k].zhanghao);printf("%d ",guan[k].mima);printf("%lf\n",guan[k].yu_e);}}printf("* 1.返回 2.退出*\n");switch(getch()){case '1':CAOZUO();break;case '2':guanli();break;}}//////////////////////////////////////////账户添加函数void jia(){int mm1,mm2;int temp;system("cls");delay();read();printf("* 请输入密码*\n");scanf("%d",&mm1);if(mm1<100000||mm1>999999){system("cls");printf(" 密码必须等于6位数\n");printf(" 请重新输入: \n");delay();scanf("%d",&mm1);}temp=mm1%111111;if(temp==0){system("cls");printf(" 密码过于简单\n");printf(" 请重新输入: \n");delay( );scanf("%d",&mm1);}printf("\n");printf("确认密码:\n");scanf("%d",&mm2);if(mm1!=mm2){system("cls");printf("确认密码不一致,操作取消\n");delay( );CAOZUO();}if(mm1=mm2){for(;k<N;k++){if(guan[k].zhanghao==0){guan[k].zhanghao=guan[k-1].zhanghao+1;guan[k].mima=mm2;write();break;}}printf("账号创建成功!\n");printf("您的账号是%d,请妥善保管!\n",guan[k].zhanghao);printf("* 1.返回 2.退出*\n");switch(getch()){case '1':CAOZUO();break;case '2':guanli();break;}}}/////////////////////////////////////////账户删除函数void shanchu(){system("cls");delay();read();printf("* 请输入账号*\n");long int user;scanf("%d",&user);if(user==0){printf("* 账号错误,操作取消*\n");CAOZUO();}else if(user!=(guan[k].zhanghao)){for(k=1;k<N;k++){if(user==(guan[k].zhanghao)){for(;k<N;k++){guan[k].zhanghao=guan[k+1].zhanghao;guan[k].mima=guan[k+1].mima;guan[k].yu_e=guan[k+1].yu_e;write();}printf("账号删除成功!\n");printf("* 1.返回 2.退出*\n");switch(getch()){case '1':CAOZUO();break;case '2':guanli();break;}}}system("cls");printf("* 账户不存在*\n");delay();CAOZUO();}else{for(;k<N;k++){guan[k].zhanghao=guan[k+1].zhanghao;guan[k].mima=guan[k+1].mima;guan[k].yu_e=guan[k+1].yu_e;write();}printf("账号删除成功!\n");printf("* 1.返回 2.退出*\n");switch(getch()){case '1':CAOZUO();break;case '2':guanli();break;}}}。

c语言模拟ATM机程序

c语言模拟ATM机程序
case 3: Zhuanzhang(&Y,&a[6]);break;
case 4: Xiugai(&a[6]);break;
case 5: Cunkuan(&Y);break;
case 6: exit(0);break;
default:printf("输入错误,请重新输入\n");
}
lp2:printf("继续操作请按1,退卡请按2\n");
else
{printf("非法操作,强制退出\n");
}
}
void Qukuan()
{
int i,j;
printf("1、100\t2、200\t3、500\t4、800\t5、请输入金额\n");
scanf("%d",&i);
switch(i)
{
case 1: panduan(100);break;
printf请选择服务项目n1取款t2查询服务t3转账服务t4修改密码t5存款t6退卡n
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
long int Y=100000;int c=0;char a[6]={'1','2','3','4','5','6'};
else
lp4:{
printf("请输入新密码:\n");
k=getch();
while(k!='\r'&&l<6)

C语言编制模拟ATM取款机密码输入过程(第三天)

C语言编制模拟ATM取款机密码输入过程(第三天)

C语⾔编制模拟ATM取款机密码输⼊过程(第三天)---恢复内容开始---//// main.c// whilexu//// Created by mac on 18/7/17.// Copyright © 2018年 111. All rights reserved.//#include <stdio.h>int main(int argc, const char * argv[]) {/*初始密码12341、提⽰欢迎光临2、提⽰请输⼊密码:do while循环语句控制能输⼊⼏次密码if语句来判断输⼊的密码是否正确失败:密码错误请重新输⼊(还有⼏次机会)成功:显⽰新的操作界⾯密码正确*/int password = 0;int time = 3;//提⽰⽤户操作printf("*****欢迎光临!*****\n");printf("请输⼊您的密码:");do{scanf("%d",&password);//判断密码是否正确if(password ==1234){printf("密码正确\n");break;}else{time--;if(time==0){printf("错误次数过多,退出\n");break;}printf("密码错误,请重新输⼊密码(还有%d次机会):\n",time);}}while (time>0);return0;}//1、总结:理清要实现的操作有哪些;2、分析要⽤哪些语句来实现;3、根据提⽰的错误来修正错误;4、运⾏---恢复内容结束---。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include<stdio.h>
//提供了strcmp()函数
#include<string.h>
struct student
{
char xm[20];//姓名
char mm[10];//密码
int je;//金额
int zh;//帐号
};
void main()
{
int i;
int k=0;
int count=1000;
int f;
student st[10]={"","",0,0};
bool flag=false;
do
{
printf("1--注册2--登录3--取款4--存款5--查询0--退出\n");
scanf("%d",&i);
if (i==1)
{
printf("输入姓名:");
scanf("%s",&st[k].xm);
printf("输入密码");
scanf("%s",&st[k].mm);
st[k].zh=count++;
printf("你的帐号为%d\n",st[k].zh);
k++;
}
else if (i==2)
{
int zh;
char mm[20];
printf("输入卡号");
scanf("%d",&zh);
printf("输入密码");
scanf(" %s",&mm);
for(int j=0;j<10;j++)
{
if(st[j].zh==zh && strcmp(st[j].mm,mm)==0)
{
flag=true;
printf("找到了");
f=j;
break;
}
}
}
else if (i==4)
{
if (flag!=true)
{
printf("您还没有登录");
}
else
{
printf("输入存款金额");
int je;
scanf("%d",&je);
st[f].je=st[f].je+je;
printf("存款成功");
}
}
else if (i==3)
{
if (flag!=true)
{
printf("您还没有登录");
}
else
{
printf("输入取款金额");
int je;
scanf("%d",&je);
if (je>st[f].je)
{
printf("余额不足");
}
else
{
st[f].je=st[f].je-je;
printf("取款成功");
}
}
}
else if (i==5)
{
printf("您的余额为%d\n",st[f].je);
}
}
while(i!=0);
}。

相关文档
最新文档