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语言】课程设计-ATM机模拟操作(附源码)

C语言-ATM机模拟操作程序实现功能点:a.查询:查询帐户的存款余额。
按任意键返回主菜单;b.取款:输入100、500、1000、2000、5000、其它金额为取款金额,取款金额不超过帐户余额,操作后帐户余额应相应减少,之后可返回主菜单;c.存款:输入100、500、1000、2000、5000、其它金额为存款金额,存款金额不超过20000元,操作后帐户余额应相应增加。
之后可返回主菜单;d.转帐:输入一个帐户号,程序判断与文件信息是否相符,储户确认无误后,再输入100、500、1000、2000、5000、其它金额为转帐金额,转帐金额不得超过帐户余额,操作后帐户余额应相应减少。
之后可返回主菜单;e.修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放到帐户信息文件中。
之后可返回主菜单;f.退出:退出系统;g.帮助:增加趣味性;h.存款时,可正可负,正表示存款,负表示取款;i.帐户信息存放在accounts.txt文件,储户存取款记录保存在records.txt中;(在目录下创建这两个文件)j.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用;k.储户一天内输错密码的次数不能超过3次,否则无法进入系统;l.有效避免输入存款金额、取款金额为负数等异常情况的出现。
较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。
是否超过余额,是否不符合格式,是否为冲突操作。
(2)程序运行截图及说明(每图限50到100字);●进入程序,menu1可选择登录、注册功能。
●选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。
若登录失败,则重新选择。
●选择注册,输入账号密码,写入文件中。
●进入menu2,有五大功能选择,输入对应的序列号进入。
●余额查询功能输出账号所对应的余额。
●取款功能,需要安装要求取出格式化的金额。
自动取款机源代码(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取款机程序学了⼀个多星期的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机的编写程序#include <stdio.h>void main(){long int a,b,c,d,e,f,g,k,l,m,n,o,p,h;n=0;h=10000;k=123456;loop0: printf("\t\t\t欢迎使用中国邮政ATM取款机!\n\n");printf("请插入你的银行卡,并输入你的密码,三次密码输入错误,将终止程序:\n");scanf("%ld",&l);if(k==l){loop1: printf("请输入你选择的操作类型:\n");printf("请输入0-4进行选择:\n");printf("1:<转账>\t2:<查询>\t3:<取款>\t4:<修改密码>\t0:<取卡>\n");scanf("%ld",&a);switch(a){case 1: printf("请输入转账账号:\n");scanf("%d",&o);printf("请输入你需要转账的金额:\n");scanf("%d",&p);printf("请输入你选择的操作类型:\n");printf("请输入0或1进行选择:\n");printf("1:<确认>\t0:<返回>\n");h=10000-p;scanf("%ld",&b);switch(b){case 1:printf("\n转账%d元人民币成功!\n\n",p);goto loop1;break;case 0:goto loop1;break;default :printf("\n无此操作项!\n\n");goto loop1;}break;loop4:case 2:printf("请输入你选择的操作类型:\n");printf("请输入0-2进行选择:\n");printf("1:<查询余额>\t2:<查询明细>\t0:<返回>\n");scanf("%ld",&c);switch(c){case 1:printf("\n你的余额为:%5d\n\n",h);goto loop1;break;case 2:printf("\n你的账单为:******。
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;}。
经典C语言版含文件的ATM银行取款机系统源代码与程序设计基础实训I文档.doc

课程设计任务书课程名称:程序设计基础课程设计设计题目:银行ATM存取款系统、个人通信录系统(任选一题)已知技术参数和设计要求:需求说明及要求题目一:银行ATM存取款系统银行ATM存取款系统业务描述如下:银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。
为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。
用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。
本系统各个业务有如下注意点:(1)登陆系统用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。
(2)开户业务要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。
同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。
(3)存款业务客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。
(4)取款业务客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。
(5)查询业务客户登陆系统后,可以选择查询业务,查询账户余额。
(6)转账业务客户登陆系统后,可以选择转账业务,进行转账。
注意的是转账的目的账户必须是本系统已经存在的银行账户。
(7)修改密码客户登陆系统后,可以选择修改密码业务,进行密码修改。
题目二:个人通信录系统个人通信录系统业务描述如下:个人通信录必须为用户提供好友管理、系统管理和帮助三个部分。
好友管理包括好友信息录入、好友信息修改、好友信息删除和好友信息查询查询的功能,在此基础上可以设置好友分组;系统管理包括密码修改、分组配置;帮助需要为用户提供系统的操作帮助。
本系统各个业务有如下注意点:(1)登陆系统用户在登陆界面输入用户名和密码,校验正确后可以登陆系统。
(2)好友管理业务新增的好友信息保存至文件,之后对好友信息的管理都是对文件中的好友信息进行处理,并且可以将好友信息进行分组。
[VIP专享]C语言课程设计…………银行自动存取款机模拟
![[VIP专享]C语言课程设计…………银行自动存取款机模拟](https://img.taocdn.com/s3/m/bcf188a987c24028905fc30d.png)
需求分析: 本程序设计的任务为银行自助存取款机,程序要求实 现 atm 机的基本功能,如 开户.查询.存款.取款.转账. 容而生成操作日志。 2.概要设计: 数据类型:int,char,FILE. 主程序流程:int main () 1:进入 dl()函数。 2:核对输入账户与密码。 3.核对成功则进入 dljm()函数。 4.选择操作功能。 5.完成操作,回到功能选择一栏。 6.可选择退卡以结束所有操作。 标准函数名称和自定义名称:
Void dl ()
Void dljm ()
int level(BinTreeNodlesevt}r*Beutsl,icnBt(rtrTuiontrcaoTetgtert,_eyapNnpetg)oy;oeN_pddinoeeodtd;fde*esreafc*ttrphsB*au{l)ti;cilrn/duh/tT;ciB/lr/tdo1eiTt;u1ea//NcnrNgoto_loiu(fdn(dtnbe*oetpivdlt{(roe(e}TbidpEititrcfrl(ero!-pbmu>tintrTvritgaey-l(>hlpbulteeie,rtrf=xdt)e,=apr{xkextta,)rt;ru{;k,kr)sd+n;tra+;u1t;ac}0txyBpieTNxv},ooidi{ndet&m*lkac)hi}nil(de)}l;s/e/ js+tr}+uj;cBf+BtoB.+Bid.r.L(;+adikTe+taanN=;t[agojB]e[tdkh=l.se+L+eA1e*+]nr.i;dfc=g(d.-[d;{aiB]1a/it;f/a.;t(dkaA[}ia[]>.kBtdB<}=a];aii.T[BLjt+;aNke.+d[Loni;-]aed-g>t)netahg,B[jt*]+h.)wBd+]{avhi;T=otilareiAedi[n(Be.i{dtm;.<Laive=etAoarngi.0[dLgie],e;jt2Ch=n(o{Sg-0ut9q1h,n/kAL])/t)/iL/[;2s1/e1AtA…aABBmf"…,.S(h+Bq"mniLT6m+irsnet8]e&mhBTen),amidn+dtn&a2Ot*acx(7o10u)n+t)0x{11*ixf=0( nT+o1)d*{ex2i_1f c(+(o!uT2/xn/-*10>tx+l2+cxh=1il;+dnx)o&2/d/h&e=tt_(pn!c:To0o//-duw>1enrw*_c2t/wchx-oi0.1ldu;xon)/)1c*t;cinx6o42.1ucleonfmtt+d/+5ap;t-a5//r7iLg9Cihs4ot8lNuet5nmof9ttdreLp4iegme.=h*ap3tMfAmBol(a[aTrTlit]ex(-;(><i2)nAlccetl[ha0i]}ise=l=ds1,0}A…Tc;[yoine2pu<-nT6ein=-yH>12tp)(]Te;v;enn[Co1-A-ti1o3m1d[u]nA)pHin-[/;in(tv-kL21]ene;]1reyais=A+)nef=[+(t-nm(k1Ta])eAT-p){y>nyA;r-p%c2eh…1iAld3e[2,1]3c,2e1oi20Vn0(u3e=bt×n4i{)n3t1a5)B0);,5b20A}{7,B(2ce[2a150,(l0)ds0cn(a20e,a)]×ie[13j1)1cnr2,a17Af2e0A4,i58g2jtB]b1u(B03}(a5r4,21[En)]06a1B;=07A51([}{0]b937S<A/3)56/HaL([06C0c,sT1b3)]uo[A.>81A0c5u,493]cBn<B0.]=taC5H[L8(0,A1De(4g]k/,Aa5>2EBef0,[)Fy,<]*4C[G)G]b[=2B1,,DHk)g+[]e>,I1AEJy,/[<(,81%C1c]-[8,a5bD1)]C>3C]B,D1<[D1]2Bd62,GFc3E>=41A,V5</1I5EdH475,Gf1231>01+0*J5,91<420G4+0e*30G241,7W1d+*787>13P031,4*9<1L74=41f=0+,515a24953>**/546,17<5+15=0g37413,2*0c5572>/4+517,5<6451*g524,0d+3>956,*5<0315f9+2,3e5W12>14P,12*<3L157g+=56,52f13053>105*693}64*1,{73+80217+9596510*77046873+1*71249264+*9503182+79012*176208590=*2092+8123169831731237*793}W2+531P352L5*0313173+s3T3125158*,21T2052=5,2…915W063…303P5,LTS Tini k1i(2i={a1b,2c,d…e…fg}S0)1,1k10in1i011k11k10n+1kk1Pn21>r+0ikm…00…11+1k0s1=0n11+n21K…ru…snkas1l ns,s=nk,nk a11a121a02K1)aru2s2kaa=2l203*:9(a1i+03/1jA2-03aB(3a131+Aa12=3B+42[…0+]3A…+a3aij1+n3inn149-+iH10-41au+jnfi84+fnm4+16a5B8n+58F1544):52=5706305306.986,2T76:0150,D811:00148110683171,F10ST6:06D413S024H515,1H12:007412101402H*1291u60+22f{f7m4*63a2+n58307*71836+21102*72306+722774*0674128+493}*()4+86*312=513219 5:13/5671(130+7822+6261+p03a1+341352+401143,41)p0=83,21a.8425,913,,p66331:121,0A1a24B13G,,CP4pJ9AD3KG21EHD12AFDaJ3GBH,EPaDHKBApGIBM3J2HEKIF1AJMCKCAEFCMFIIM
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言-ATM机模拟操作程序实现功能点:a.查询:查询帐户的存款余额。
按任意键返回主菜单;b.取款:输入100、500、1000、2000、5000、其它金额为取款金额,取款金额不超过帐户余额,操作后帐户余额应相应减少,之后可返回主菜单;c.存款:输入100、500、1000、2000、5000、其它金额为存款金额,存款金额不超过20000元,操作后帐户余额应相应增加。
之后可返回主菜单;d.转帐:输入一个帐户号,程序判断与文件信息是否相符,储户确认无误后,再输入100、500、1000、2000、5000、其它金额为转帐金额,转帐金额不得超过帐户余额,操作后帐户余额应相应减少。
之后可返回主菜单;e.修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放到帐户信息文件中。
之后可返回主菜单;f.退出:退出系统;g.帮助:增加趣味性;h.存款时,可正可负,正表示存款,负表示取款;i.帐户信息存放在文件,储户存取款记录保存在中;(在目录下创建这两个文件)j.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用;k.储户一天内输错密码的次数不能超过3次,否则无法进入系统;l.有效避免输入存款金额、取款金额为负数等异常情况的出现。
较为突出的功能是注册、登录时账号密码的核对验证;存款转出转入金额的核对。
是否超过余额,是否不符合格式,是否为冲突操作。
(2)程序运行截图及说明(每图限50到100字);进入程序,menu1可选择登录、注册功能。
选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录。
若登录失败,则重新选择。
选择注册,输入账号密码,写入文件中。
进入menu2,有五大功能选择,输入对应的序列号进入。
余额查询功能输出账号所对应的余额。
取款功能,需要安装要求取出格式化的金额。
存款功能,选择金额,若超过存款,自动报错。
存储成功后,在屏幕上显示余额并可在txt中看到对应数目的增加。
修改密码功能,输入当前密码,输入新密码,并进行确认。
即修改成功。
转账功能,输入对方卡号,核程序核对卡号是否存在,选择金额转账,对应存款的减少会反映在屏幕的余额上。
退出功能,任意键退出程序。
帮助功能,介绍了本程序的相关信息。
(3)采用的主要技术(限150到200字);答:主要采用模块化管理代码。
使用结构体对文本信息进行操作、运用文件操作相关函数如fwrite()、fread()、fgets()、fputs()、fgetc()、fputc()、fopen()、fclose()......并使用指针操作数值。
附:程序代码#include<>#include<>#include<>#include<>#include<>#define N 3void enterzhanghao(); um)){for (k = 1; k < N; k++){if (user == (ATM[k].num))inputmima();}system("cls");printf("\t\t\t\t\t* 账户不存在,请从新输入*\t\t\t\t\t\n");enterzhanghao();}elseinputmima();}void flesh(){system("cls");printf("\t\t\t\t\t请输入账号:");scanf("%f", &ATM[k].num);printf("\t\t\t\t\t请输入密码:");scanf("%f", &ATM[k].password);write();}assword){temp--;system("cls");printf("\t\t\t\t\t* 密码错误,请重新输入*\t\t\t\t\n");printf("\t\t\t\t\t* 您还有: ");printf("%d", temp);printf(" 次机会 *\n");scanf("%d", &code);if (temp == 1){system("cls");printf("\t\t\t\t\t* 您已经 3 次输入密码错误*\t\t\t\t\n");printf("\t\t\t\t\t* 系统将退出操作*\t\t\t\t\n");daly();enterzhanghao();}}menu();}ccounte&&i != 0){ATM[k].accounte = ATM[k].accounte - i;printf("\t\t\t\t\t取款成功!你的余额为:");printf("%f", ATM[k].accounte);i = i*(-1);write2(i);}elseprintf("\t\t\t\t\t余额不足!");write();}lf\n\n\n\n\n", ATM[k].num, ATM[k].accounte);}ccounte = i + ATM[k].accounte;printf("%f", ATM[k].accounte);write();write2(i);}assword){loop:printf("\t\t\t\t\t请输入新的密码:");scanf("%d", &password2);printf("\n");printf("\t\t\t\t\t请再次输入新的密码:");scanf("%d", &password3);if (password2 == password3){ATM[k].password = password2;printf("\t\t\t\t\t\n密码修改成功!\n");}else{printf("\t\t\t\t\t\n密码不一致!\n");printf("\t\t\t\t\t请重新输入!!\n");goto loop;}}else{printf("\t\t\t\t\t输入错误\n");change();}write();}um));fscanf(fp, "%d", &(ATM[i].password));fscanf(fp, "%lf\n", &(ATM[i].accounte));}fclose(fp);}um);fprintf(fp, "%-8d", ATM[i].password);fprintf(fp, "%lf\n", ATM[i].accounte);}fclose(fp);}回菜单");printf("\n\n\n\n\n\n\t\t\t请输要对方的账号: ");scanf("%d", other_num[10]); um) um) um); 回菜单\t\t\t9.确认");scanf("%d", &c);回菜单");printf("\n\n\n\n\n\n\t\t请输入转账金额(整百数):");scanf("%d", &q); getchar();if (q) ccounte)ccounte -= tran;ATM[k].accounte += tran;menu(); 回菜单\t\t\t9.继续转账");c = _getch();if (c == '9') //输入9就行转账{system("CLS");}elseif (c == '0') //c为0返回菜单{system("CLS");menu();}else{printf("输入错误,请重新输入!\n");system("CLS");}}else{system("CLS");printf("\n\n\n\n\n\n\t\t对不起,一次最多能转账3000元,请重新输入!");printf("\n\n\n\n\n按任意键返回!\n");_getch();system("CLS");}}else{system("CLS");printf("\n\n\n\n\n\n\t\t\t您的余额不足,请重新输入!");printf("\n\n\n\n\n按任意键返回!\n");_getch();system("CLS");}}else{system("CLS");printf("\n\n\n\n\n\n\t\t\t请输入正确的金额!请重新输入!");printf("\n\n\n\n\n按任意键返回!\n");_getch();system("CLS");}}else{system("CLS");menu();}} while (1);}elseif (c == '0')menu();}}}{system("CLS");printf("\n\n\n\n\n\n\t\t\t用户不存在!请重新输入!");printf("\n\n\n\n\n按任意键返回!\n");_getch();system("CLS");tran_account(); //递归调用}}}//帮助void help(){system("CLS");printf("\t\t\t\t\t**************************************\n") ;printf("\t\t\t\t\t->码字不易,我可以在你心里跑一圈吗<-\n");printf("\t\t\t\t\t-> 1、可以<-\n");printf("\t\t\t\t\t-> 2、当然可以<-\n");printf("\t\t\t\t\t**************************************\n") ;printf("\t\t\t\t\t-> 你要选哪个 <-\n");int k;scanf("%d", &k);switch (k){case 1:{printf("蟹蟹你~~~!\n"); _getch(); menu();}; break;case 2:{printf("等下我,第十圈了!\3n"); _getch(); menu();}break;}}。