用C语言写银行ATM界面
C语言 ATM 程序设计
C语言 ATM 程序设计概述:本文将详细介绍如何使用C语言设计一个简单的ATM(自动取款机)程序。
ATM程序的主要功能包括用户登录、查询余额、取款、存款和退出等。
1. 用户登录:用户需要输入正确的账户号码和密码才干成功登录。
账户号码和密码可以存储在一个预定义的用户数据库中。
用户输入账户号码和密码后,程序将验证其有效性并赋予相应的登录状态。
2. 查询余额:用户成功登录后,可以选择查询余额。
程序将从用户数据库中获取用户的余额信息并显示在屏幕上。
3. 取款:用户成功登录后,可以选择取款。
用户需要输入取款金额,程序将验证用户账户余额是否足够。
如果余额足够,则扣除相应金额并更新用户数据库中的余额信息;如果余额不足,则提示用户余额不足。
4. 存款:用户成功登录后,可以选择存款。
用户需要输入存款金额,程序将将其加到用户账户的余额中,并更新用户数据库中的余额信息。
5. 退出:用户可以选择退出程序。
退出前,程序将提示用户是否确认退出,并根据用户的选择执行相应的操作。
6. 错误处理:程序需要对用户的输入进行错误处理。
例如,当用户输入错误的账户号码或者密码时,程序应该赋予相应的错误提示;当用户输入非法金额时,程序应该赋予相应的错误提示。
7. 数据存储:程序需要使用文件或者数据库来存储用户的账户信息和余额信息。
可以使用文本文件、二进制文件或者关系型数据库等。
8. 用户界面:程序需要提供一个友好的用户界面,以便用户能够轻松地进行操作。
可以使用控制台界面或者图形界面,根据需要选择合适的界面设计。
9. 安全性:程序需要确保用户的账户信息和余额信息的安全性。
可以使用加密算法来加密用户的密码,在存储和传输过程中保护用户的隐私。
10. 测试和调试:在完成程序的编写后,需要进行充分的测试和调试,以确保程序的稳定性和正确性。
可以编写测试用例,并对程序进行单元测试和集成测试。
总结:本文详细介绍了使用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取款机程序学了⼀个多星期的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系统
// ConsoleApplication8.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"#include "iostream"#include "stdio.h"#include "time.h"using namespace std;typedef struct Account{int No; //账号int pwd;//密码char name[10];//户主姓名char ID[18];//户主身份证号float remain; //余额}Account;int size=sizeof(Account);typedef struct Stat{int No;//账号int year;int mon;int day;int hour;int min;int sec;float money;//改变额度存入为正数,取出为负数int ToNo;//目标账号用于转账。
取款时设为0即可}Stat;int Times(char i){time_t timer;time(&timer);tm t_tm;localtime_s(&t_tm,&timer);if(i=='y') return t_tm.tm_year+1900;else if(i=='m') return t_tm.tm_mon+1;else if(i=='d') return t_tm.tm_mday;else if(i=='h') return t_tm.tm_hour;else if(i=='i') return t_tm.tm_min;else if(i=='s') return t_tm.tm_sec;};void WriteStat(int FromNo,int ToNo,float money){FILE *St;fopen_s(&St,"账户明细.txt","ab+");if(St==NULL){cout<<"打开失败"<<endl;return;};if(ToNo==0){Stat s1;s1.year=Times('y');s1.mon=Times('m');s1.day=Times('d');s1.hour=Times('h');s1.min=Times('i ');s1.sec=Times('s');s1.No=FromNo;s1.ToNo=ToNo;s1.money=money;fseek(St,0,SEEK_END);fwrite(&s1,sizeof(s1),1,St);}else{Stat s1,s2;s1.year=Times('y');s1.mon=Times('m');s1.day=Times('d');s1.hour=Times('h');s1.min=Times('i ');s1.sec=Times('s');s1.No=FromNo;s1.ToNo=ToNo;s1.money=-money;s2.year=Times('y');s2.mon=Times('m');s2.day=Times('d');s2.hour=Times('h');s2.min=Times('i ');s2.sec=Times('s');s2.No=ToNo;s2.ToNo=FromNo;s2.money=money;//写文件fseek(St,0,SEEK_END);fwrite(&s1,sizeof(s1),1,St);fseek(St,0,SEEK_END);fwrite(&s2,sizeof(s2),1,St);}//关闭文件fclose(St);cout<<"记录存储成功!"<<endl;};void CreateAccount(){//打开账号文件system("cls");FILE *fp;fopen_s(&fp,"账号信息.txt","ab+");if(fp==NULL){cout<<"打开失败"<<endl;return;}Account Ac,PreAc;int pwd,pwdcfm;fseek(fp,-size,SEEK_END);fread(&PreAc,sizeof(PreAc),1,fp);if(PreAc.No<0) PreAc.No=10000;Ac.No=PreAc.No+1;cout<<"您的账号为:"<<Ac.No<<endl;while(1){cout<<"请设置密码:"<<endl;cin>>pwd;cout<<"请重复输入密码:"<<endl;cin>>pwdcfm;if(pwd==pwdcfm) {Ac.pwd=pwd; break;}else cout<<"两次输入密码不符!"<<endl;};cout<<"请输入户主姓名:"<<endl;cin>>;while(1){cout<<"请输入户主身份证号:"<<endl;cin>>Ac.ID;if(Ac.ID[17]) break;};Ac.remain=0;cout<<"账户创建完成!"<<endl;//写入账号文件fseek(fp,0,SEEK_END);fwrite(&Ac,sizeof(Ac),1,fp);//关闭文件fclose(fp);};void transfer(int FromNo){Account From,To,t;int no,flag=0;float money;cout<<"请输入目标账号"<<endl;cin>>no;cout<<"请输入金额"<<endl;cin>>money;FILE *Fr,*fp;fopen_s(&Fr,"账号信息.txt","ab+");while(fread(&From,sizeof(From),1,Fr)){if(From.No==FromNo) {fclose(Fr);break;}};if(From.remain<money) {cout<<"余额不足,不能转账!"<<endl;return;} fopen_s(&fp,"账号信息.txt","ab+");while(fread(&To,sizeof(To),1,fp)){if(To.No==no){flag=1;fclose(fp);break;}};if(flag) {From.remain-=money;To.remain+=money;cout<<"转账成功!"<<endl;fopen_s(&Fr,"账号信息.txt","rb+");while(fread(&t,sizeof(t),1,Fr)){if(t.No==FromNo) break;};cout<<From.remain<<endl;t.remain=From.remain;fseek(Fr,-size,1);fwrite(&t,sizeof(t),1,Fr);fclose(Fr);fopen_s(&fp,"账号信息.txt","rb+");while(fread(&t,sizeof(t),1,fp)){if(t.No==no) break;};cout<<To.remain<<endl;t.remain=To.remain;fseek(fp,-size,1);fwrite(&t,sizeof(t),1,fp);fclose(fp);WriteStat(From.No,To.No,money);}else {fclose(fp);cout<<"转账失败,未找到目标账户!"<<endl;} //打开账号文件};void SaveIn(int FromNo){float deposit;Account A;Stat S;FILE* Ac;fopen_s(&Ac,"账号信息.txt","rb+");while(fread(&A,sizeof(A),1,Ac)){if(A.No==FromNo) break;};cout<<"请输入存款数额:"<<endl;cin>>deposit;cout<<"ATM机确认收到"<<deposit<<"元"<<endl;A.remain+=deposit;fseek(Ac,-size,1);fwrite(&A,sizeof(A),1,Ac);//关闭文件fclose(Ac);//打开账号文件WriteStat(FromNo,0,deposit);};void TakeOut(int FromNo){float deposit;FILE* Ac;fopen_s(&Ac,"账号信息.txt","rb+");Account A;Stat S;while(fread(&A,sizeof(A),1,Ac)){if(A.No==FromNo) break;};cout<<"请输入取款数额:"<<endl;cin>>deposit;cout<<"已取出"<<deposit<<"元"<<endl;A.remain-=deposit;fseek(Ac,-size,1);fwrite(&A,sizeof(A),1,Ac);//关闭文件fclose(Ac);//打开账号文件WriteStat(FromNo,0,-deposit);};int ChangePwd(int FromNo){FILE* Ac;int flag=0;fopen_s(&Ac,"账号信息.txt","rb+");Account A;int pwd,npwd,npwdcfm;while(fread(&A,sizeof(A),1,Ac)){if(A.No==FromNo) break;};cout<<"请输入旧密码"<<endl;cin>>pwd;if(pwd==A.pwd){while(1){cout<<"请输入新密码"<<endl;cin>>npwd;cout<<"请重复输入新密码"<<endl;cin>>npwdcfm;if(npwd==npwdcfm){A.pwd=npwd;fseek(Ac,-size,1);fwrite(&A,sizeof(A),1,Ac);cout<<"修改成功!"<<endl;flag=1;break;}else cout<<"两次密码不符!"<<endl;}}else cout<<"密码错误!"<<endl;fclose(Ac);return flag;};void queryStat(int FromNo,int op){system("cls");//打开文件FILE* St;Stat s;fopen_s(&St,"账户明细.txt","rb+");if(St==NULL){printf("打开失败\n");return;}if(!op){while(fread(&s,sizeof(s),1,St)){if(s.No==FromNo){cout<<"操作日期:"<<s.year<<"年"<<s.mon<<"月"<<s.day<<"日"<<" "<<s.hour<<"-"<<s.min<<"-"<<s.sec<<endl;cout<<"金额:"<<s.money<<endl;cout<<"交互账号"<<s.ToNo<<endl;cout<<endl;}}fclose(St);}else if (op) {while(fread(&s,sizeof(s),1,St)){if(s.No==FromNo&&s.day>=(Times('d')-op)){cout<<"操作日期:"<<s.year<<"年"<<s.mon<<"月"<<s.day<<"日"<<" "<<s.hour<<"-"<<s.min<<"-"<<s.sec<<endl;cout<<"金额:"<<s.money<<endl;cout<<"交互账号"<<s.ToNo<<endl;cout<<endl;}}fclose(St);}};void showRemain(int FromNo){Account A;char i;int op;FILE* Ac;fopen_s(&Ac,"账号信息.txt","r");while(fread(&A,sizeof(A),1,Ac)){if(A.No==FromNo) break;};cout<<"卡内余额"<<A.remain<<"元"<<endl;cout<<"输入Y查询此账户明细"<<endl;fclose(Ac);cin>>i;if(i=='Y'||i=='y'){cout<<"请输入查询天数范围,如查询全部请输入0"<<endl;cin>>op;if(op==0) queryStat(FromNo,NULL);else queryStat(FromNo,op);}};void UserLogIn(){//打开账号文件system("cls");int No,pwd,flag=0;Account Ac;while(1){cout<<"请输入账号"<<endl;cin>>No;cout<<"请输入密码"<<endl;cin>>pwd;FILE *fp;fopen_s(&fp,"账号信息.txt","ab+");if(fp==NULL){cout<<"打开失败"<<endl;return;}while(fread(&Ac,sizeof(Ac),1,fp)){if(Ac.No==No&&Ac.pwd==pwd) flag=1;}fclose(fp);if(flag){char xz;while(1){system("CLS");cout<<"\n\t\ta.查询余额及明细\n"<<endl;cout<<"\n\t\tb.实时存款\n"<<endl;cout<<"\n\t\tc.取款\n"<<endl;cout<<"\n\t\td.转账\n"<<endl;cout<<"\n\t\te.修改密码\n"<<endl;cout<<"\n\t\tf.注销\n"<<endl;fflush(stdin);//清除输入缓冲区的回车符函数cin>>xz;if(xz=='a'||xz=='A'){system("CLS");showRemain(No);system("pause");}else if(xz=='b'||xz=='B'){SaveIn(No);system("pause");}else if(xz=='c'||xz=='C'){TakeOut(No);system("pause");}else if(xz=='d'||xz=='D'){transfer(No);system("pause");}else if(xz=='e'||xz=='E'){int i=0;i=ChangePwd(No);if(i) {fclose(fp);return ;}system("pause");}else if(xz=='f'||xz=='F'){fclose(fp);return ;}}break;}else cout<<"账号或密码错误!"<<endl;}//未查询到//查询到:if(Ac.pwd==pwd) {cout<<"登录成功"<<endl; break;} //查询到但密码不符cout<<"密码错误,请重新输入!"<<endl; //功能菜单:调用:查询余额、存款、取款、转账、修改密码//注销:关闭文件,并返回上一级菜单//};int _tmain(int argc, _TCHAR* argv[]){//首页菜单:创建账户,登录账户,退出系统char xz;while(1){system("cls");cout<<"a.创建账户 b.登录账户 c.退出系统"<<endl;cin>>xz;if (xz=='a') CreateAccount();else if(xz=='b')UserLogIn();else if(xz=='c') exit(0);system("pause");};return 0;}。
模拟ATM银行自动取款系统.cpp 源代码和视图
模拟ATM银行自动取款系统.cpp 源代码和视图:#include<stdio.h>#include<conio.h>void part1();void part2();int c;void main(){part1();}void part1(){int a,b=622202;puts("********************************************************************** ***");puts(" 欢迎使用ATM银行自动取款系统!");printf("请插入您的卡!\n");scanf("%d",&a);if(a==b){ printf("请输入您的密码:");scanf("%d",&c);part2();//函数调用}else{printf("您的卡号不正确!");printf("谢谢惠顾!\n");getch();//从键盘接收一个字符,不回显;此处用作屏幕显示器缓冲关闭处理}}void part2(){int d=199092;if(c==d){printf("请输入取款金额:");scanf("%d",&c);printf("您的取款钱数为:%d RMB\n",c);printf("谢谢使用!\n");printf("************************************************************************* \n");getch();//从键盘接收一个字符,不回显;此处用作屏幕显示器缓冲关闭处理}elseprintf("您输入的密码错误!\n");getch();//从键盘接收一个字符,不回显;此处用作屏幕显示器缓冲关闭处理}。
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机代码,简单版。
C语⾔ATM机代码,简单版。
#include <stdio.h>void main(){int i,j;int code=0,flag=0;int choice1=0,choice2=0,choice3=0;int RMB=100000,WB=100000;int cash1=0,cash2=0;char instruct='n';printf("************************************************************\n");printf("* *\n");printf("* *\n");printf("* 欢迎使⽤怪精 ATM取款机 *\n");printf("* *\n");printf("* 监制: rain version number:1.0.1 *\n");printf("* *\n"); printf("* *\n"); printf("************************************************************\n");printf("请键⼊您的密码:\n"); /*密码为9527*/for(i=0;i<3;i++){scanf("%d",&code);system("cls");if(code==9527){break;}if(code!=9527){printf("密码有误!请重新输⼊:\n");flag+=1;}}if(flag==3){printf("密码错误超限,请回去⾯壁思过,再见!");return;}while(instruct=='N'|| instruct=='n' ){if(code==9527){printf("请选择您所需服务!\n");printf("1.查询余额 2.取款 3.退出");scanf("%d",&choice1);system("cls");switch(choice1){case 1:printf("1.⼈民币 2.外汇");scanf("%d",&choice2);system("cls");switch(choice2){case 1:printf("您的⼈民币账户余额:¥%d\n",RMB);break;case 2:printf("您的外币账户余额:$%d\n",WB);break;}break;case 2:printf("1.⼈民币 2.外币");scanf("%d",&choice3);system("cls");switch(choice3){case 1:printf("请输⼊取款⾦额:\n");scanf("%d",&cash1);RMB=RMB-cash1;printf("您的账户余额为:¥%d\n",RMB); break;case 2:printf("请输⼊取款⾦额:\n");scanf("%d",&cash2);WB=WB-cash2;printf("您的账户余额为:$%d\n",WB); break;}break;case 3:break;}printf("是否退出程序<y表⽰是,n表⽰否>:"); scanf("%s",&instruct);}}}。
自动取款机(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语言银行自动存取款机模拟
C语言银行自动存取款机模拟介绍本文档将介绍如何使用C语言编写一个简单的银行自动存取款机模拟程序。
该程序可以模拟银行客户进行存款和取款操作,并实时更新账户余额。
功能此银行自动存取款机模拟程序具有以下功能:•登录功能:用户可以输入账号和密码进行登录。
•存款功能:用户可以输入存款金额进行存款,存款成功后会更新账户余额。
•取款功能:用户可以输入取款金额进行取款,取款成功后会更新账户余额。
•查询余额功能:用户可以查看账户余额。
•退出功能:用户可以选择退出程序。
程序设计数据结构在程序中,需要定义一个结构体来表示银行客户的账户信息。
每个账户包含账号、密码和余额:struct Account {int accountNumber;char password[20];double balance;};登录功能首先,用户需要输入账号和密码进行登录。
可以定义一个函数来实现登录功能:int login(struct Account *accounts, int numAccounts, int accountNumber, char *password) {for (int i = 0; i < numAccounts; i++) {if (accounts[i].accountNumber == accountNumber && strcmp(accounts[i].password, password) == 0) {return i; // 返回账号在数组中的索引}}return -1; // 登录失败,返回-1}存款和取款功能存款和取款功能可以分别定义两个函数来实现。
存款函数会增加账户余额,取款函数会减少账户余额。
```c void deposit(struct Account *account, double amount) { account->balance += amount; }void withdraw(struct Account *account, double amount) { if (account->balance >= amount) { account->balance -= amount; printf(。
ATM(自动柜员机)界面设计
项目目标
知识目标 了解函数的概念,掌握函数定义与说明的方法,掌握函数调用中参数的传递方法,掌握函数的调用方法,熟悉函数的编程与使用方法。能力目标 培养学生使用集成开发环境进行软件开发、调试的综合能力。素质目标 使学生养成良好的编程习惯,具有团结协作的团队精神,具备岗位需要的职业能力。
分析:实现ATM机上的普通功能,当进入柜员机界面后,程序由main主函数、Query查询余额函数、Get Money取款函数、Save Money存款函数和返回Return函数组成。
任务三:ATM查询功能:Query()
case '1':system("cls");puts("================================");puts("| Your Query balance is$%6d |\n",x);puts("| Press any key to return... |");puts("================================");ge务一:ATM密码验证功能:PassWord()任务二:ATM自动柜员机操作主界面任务三:ATM查询功能:Query()任务四:ATM取款功能:Get Money()任务五:ATM存款功能:Save Money()任务六:ATM退出功能:Return()
任务一:ATM密码验证功能:PassWord()
分析:使用Query语句实现查询功能。
任务四:ATM取款功能:Get Money()
case '2':do{system("cls");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"); puts("======================"); puts("| Your GetMoney is $100,Thank you! |"); puts("| Press any key to return... |"); puts("======================");
C语言ATM(有文件输入输出)
{
double cun;
system("cls");
fp=fopen("银行后台.txt","rb+");
if(fp==NULL)
{
printf("打开失败\n");
return;
}
while(fread(&k,sizeof(k),1,fp))
{
if(k.zhanghao==z)
int temp=3;
system("cls");
printf("*请输入密码*\n");
scanf("%d",&code);
while(code!=k.mima)
{
temp--;
system("cls");
printf("*密码错误,请重新输入*\n");
printf("*您还有");
printf("%d",temp);
{
break;
}
}
printf("请输入您要存入的金额:");
scanf("%lf",&cun);
if(cun<0)
{
system("cls");
printf("非法存款\n");
printf("请重新输入\n");
scanf("%lf",&cun);
}
k.yu_e+=cun;
system("cls");
C语言实现ATM系统程序的完整代码
C语⾔实现ATM系统程序的完整代码实现效果如图:代码如下:#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>//开户信息typedef struct _Person{char name[20];char account[20];char password[7];float money;}Person;//结点typedef struct _Node{Person P; //客户struct _Node* next;}Node;Node* HeadNode = NULL;//链表头/*----------------函数--------------------*/void Login();void Menu();void Register();void LoginMenu(Node* pNode);void FindAccount(Node* pNode);void DrawMoney(Node* pNode);void Deposit(Node* pNode);void Transfer(Node* pNode);void LoginMenu(Node* pNode);//主菜单void Menu(){printf("\n\t\t\t欢迎进⼊ATM银⾏管理系统\n");printf("\t\t 1. 注册\n");printf("\t\t 2. 登录\n");printf("\t\t 3. 系统帮助\n");printf("\t\t 4. 查询账号\n");printf("\t\t 5. 退出\n");}//注册void Register(){Node* NewNode = (Node*)malloc(sizeof(Node));NewNode->next = NULL;NewNode->P.money = 0;printf("请输⼊您的名字:");scanf("%s", NewNode->);printf("请输⼊您的密码:");scanf("%s", NewNode->P.password);char Password[7];printf("请再次输⼊您的密码:");scanf("%s", Password);for (int i = 1; i < 4; i++){if (strcmp(NewNode->P.password, Password) != 0){printf("您输⼊的密码有误,还有%d次机会.\n", 3 - i);printf("请再次输⼊您的密码:");scanf("%s", Password);}else{srand((unsigned int)time(NULL));sprintf(NewNode->P.account, "%d%d%d%d%d", rand() % 9000 + 1000, rand() % 9000 + 1000, rand() % 9000 + 1000, rand() % 9000 + 1000, rand() % 900 + 100);//头插法if (HeadNode == NULL){HeadNode = NewNode;}else{NewNode->next = HeadNode;HeadNode = NewNode;}printf("\n\n\n\n\t\t\t\t恭喜你已经成功注册账户,以下是您的账户信息.\n");printf("\t\t\t\t姓名:%s\n", NewNode->);printf("\t\t\t\t账户:%s\n", NewNode->P.account);printf("\t\t\t\t余额:%.2f\n", NewNode->P.money);getch();return 1;}}printf("您的账号已被锁定,请稍后再试.");return 1;}//取款void DrawMoney(Node* pNode){Node* mNode = pNode;float Money = 0;printf("欢迎进⼊ATM银⾏管理系统\n");printf("请选择你取款⾦额\n");printf("100\t\t2000\n");printf("500\t\t5000\n");printf("10000\t\t其他⾦额\n");scanf("%f", &Money);mNode->P.money = mNode->P.money - Money;return mNode;}//存款void Deposit(Node* pNode){Node* mNode = pNode;float Money = 0;printf("请存取您的⾦额:");scanf("%f", &Money);mNode->P.money = mNode->P.money + Money;return mNode;}//转账void Transfer(Node* pNode){Node* TNode = HeadNode;char Account[20];printf("请输⼊转账的号码:");scanf("%s", Account);while (TNode != NULL){if (strcmp(TNode->P.account, Account) != 0){TNode = TNode->next;continue;}else{float Money = 0;printf("请输⼊您要转账的⾦额:");printf("100\t\t2000\n");printf("500\t\t5000\n");printf("10000\t\t其他⾦额\n");scanf("%f", &Money);TNode->P.money = TNode->P.money + Money;pNode->P.money = pNode->P.money - Money;return 1;}}return 1;}//登录菜单void LoginMenu(Node * pNode){while (1){printf("欢迎进⼊ATM银⾏管理系统\n");printf("请选择以下服务:\n");printf("1.取款\t\t2.查询\n");printf("3.存款\t\t4.转账\n");printf("5.修改密码\t6.退出\n");char ch = getch();switch (ch){case '1':DrawMoney(pNode);break;case '2':printf("您的账户余额为:%.2f", pNode->P.money);getch();break;case '3':Deposit(pNode);break;case '4':Transfer(pNode);break;case '5':break;case '6':return 0;break;default:break;}system("cls");}}//登录void Login(){system("cls");Node* pNode = HeadNode;char P_account[20];char P_password[7];printf("请输⼊您的卡号:");scanf("%s", P_account);while (pNode != NULL){if (strcmp(P_account,pNode->P.account) != 0){pNode = pNode->next;continue;}else{for (int i = 1; i < 4; i++){printf("请输⼊您的密码:");scanf("%s", P_password);if (strcmp(P_password, pNode->P.password) != 0){printf("您输⼊的密码有误,还有%d次机会.\n", 3 - i);}else{system("cls");LoginMenu(pNode);return 1;}}printf("\n对不起,您输⼊的密码有误,请重新登录.\n");system("pause");return 1;}}return 1;}//系统帮助信息void Help(){system("cls");printf( "\n\n\n\n\t——————————-----—---——ATM系统帮助----------------------------------------\n""\t1、初始界⾯:客户插卡前或者退卡后ATM显⽰的界⾯,提⽰客户插卡操作及银⾏⼴告.\n""\t2、⾝份认证:需要客户插⼊银⾏卡后输⼊密码来验证所有权.\n""\t3、吞卡:客服若连续输⼊密码3次错误后,则将卡吞⼊ATM内.\n""\t4、账户:账户由银⾏卡的卡号、密码、银⾏系统⽤户信息组成.\n""\t5、业务操作:由查询余额、取款、存款、转账、取卡等事项组成.\n""\t6、查询余额:显⽰该账户中剩余⾦额.\n""\t7、取款:根据客户输⼊的⾦额从账户中扣除相应的⾦额,客户可以提取相应数额的现⾦.\n""\t8、存款:客户存⼊现⾦,账户根据现⾦数额增加剩余⾦额.\n""\t9、转账:客户输⼊另外⼀个账户号码和⾦额,从本账户的余额中减去该⾦额,增加到那个账号中.\n" "\t10、打印凭条:凭条由⽇期,银⾏卡的卡号,交易流⽔号组成.\n""\t11、取卡:客户取回银⾏卡.\n""\t————————————————-------------------------------------------------------\n");getch();return 1;}//查询账号void FindAccount(Node* pNode){Node* FNode = pNode;char AccountName[7];printf("请输⼊账号姓名:");scanf("%s", AccountName);while (FNode != NULL){if (strcmp(AccountName, FNode->) != 0){FNode = FNode->next;continue;}else{printf("该姓名的账户为:%s", FNode->P.account);return 1;}}printf("抱歉!该姓名未注册账号.");return 1;}int main(){system("color b0");while (1){system("cls");Menu();char ch = _getch();switch (ch){case '1':Register();break;case '2':Login();break;case '3':Help();break;case '4':FindAccount(HeadNode);getch();break;case '5':exit(0);default:break;}}return 0;}到此这篇关于C语⾔实现ATM系统程序的完整代码的⽂章就介绍到这了,更多相关c语⾔ATM系统程序内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
C语言银行ATM系统
/** **********************************************请在vc6.0中进行编译*//*** @file ATM model.cpp* @brief 包含A TM模拟机的定义及测试** 本示例文件中包含类的定义及功能模块的划分* 以及测试模块** @author 武文良wudi911psyou@* @vertion 1.0* @date 2014*/#include"iostream"#include"stdio.h"#include"stdlib.h"#include"windows.h"#include"mmsystem.h"#include"conio.h"#include"string.h"#pragma comment(lib,"winmm.lib")using namespace std;/****************************************************【模块一:登陆前展示作者感悟以及主选择界面】****************************************** 此模块为登陆前作者的话*/class SystemLogin{public:void showWelcome();//显示欢迎界面并选择void showChoiseMenu();//显示选择菜单void showSentence();//显示作者的话};/*按照字符显示*//*显示作者的话函数实现*/void SystemLogin::showSentence(){system("title 作者的话");//灰白背景绿色字体system("color 72");//播放音乐PlaySound((".\\1.wav"),NULL, SND_FILENAME|SND_ASYNC);//mciSendString(("play .\\wav\\1.wav"),0,0,NULL);char finalsuggestion[300];printf("\n\n\n\n\n\n");strcpy(finalsuggestion, "\t◎首先放上我最喜欢的御坂美琴,◎感谢她陪我度过迷茫的时光◎\n\n\n\t◎无论是动漫还是编程,◎都将会是未来陪伴我的伙伴◎\n");for(int i=0 ; i<strlen(finalsuggestion) ; i++){Sleep(100);printf("%c",finalsuggestion[i]);}Sleep(2000);system("cls");//显示御坂美琴图片//灰色背景红色字体system("color 74");cout<<"\t:.:,:,:,:,:,:,:,:,:,:,:,:,:,,. :5UJvYL YvJvvJuvYL YL YLLLLL YU; ...vi.::.\n";Sleep(200);cout<<"\t, ......................... :jv7rvv777rLLJ777v777777777vL; 1: .. \n";Sleep(200);cout<<"\t:.:,:,:,:,:,:,:,:,:,:,:,,...iJ5YLvJJYLL Y1uLvvL YLLvuYLL YLvuu21,jS,.,,.\n";Sleep(200) ;cout<<"\t,.,:,:,,,:,:,,,,,:,,,,.,..:J1UjuvJujLLuu7v7LuLrrY2r;vj7JY5JLUNJ. .,:.\n";Sleep(200);cout<<"\t:.,,,,:,,,,,,,:,,.,......rkUuuuvuSu7Yjv7J7rjvi71j:rFSivJJk1JLLuLr..,.\n";Sleep(200);cout<<"\t:.,,,:,,,:,:,,,,...:irrY5kuuLv7UrrvuLruJ7vurrSqL7kk17vJu7.:FYLujr1:..\n";Sleep(200) ;cout<<"\t:.:,,,,,,,,,:.,,:iriii;J5uLvvvUJv,iLrX2LF7Ju5UYF1iJ5vrX2. ,1vL17.1i \n";Sleep(200);cout<<"\t,.,,,:,,,:,,,,:2XuL7L11uvL7LL2LL71Jv0quk,vquvXPi YS:.Nj . 25Yik..J \n";Sleep(200);cout<<"\t:.,,,,,,,,:,:,:.,,:iuuYvvvju5vujUSuNN5:, Y i.vUJ: .PL ... kSP:1i :,\n";Sleep(200);cout<<"\t,.,,,,,,,,,:,,.. .ruYJuL YuYLJUZS0UNE8.rqN@8NFu,:..,r,:ii::. SENj7:.:.\n";Sleep(200);cout<<"\t:.,,:,,,,,,,:,,.,UXLvLvuU77L1BOuPEEBi.@ v@@B@Y .., iv: GZGkL.,,.\n";Sleep(200);cout<<"\t,.,,,,,,,,,,,,..2N;:vuqX7L7LZM, .BLX , iBOZ ..... MB@MF :BOPJv..:.\n";Sleep(200);cout<<"\t:.:,,,,,,,,,,,.vN,.Jq1rvvu72Bi v7B,r ..i:7:;, ..,... i@B@0 X@MiY;.,,.\n";Sleep(200);cout<<"\t,.,,,,,,,:,,,,,k. uEu 7v5YJEO, ::M ....,. ..,.,.. ;80 ;@Br v.,,:.\n";Sleep(200);cout<<"\t:.:,:,,,:,,,,.:, iGL :u2SYNkEX :Li: ..........,...u...::. UkS ..:,.\n";Sleep(200);cout<<"\t,.,,,:,,,,,,,,...Fj LFNuZqXS8q..: .....,.,......,,.. :LL YJi...,:.\n";Sleep(200);cout<<"\t:.,,,,,,,,,,:,,.,X. ,E8S85:XkSZG7:J: ..............,.. 5UvuLJkL..,.\n";Sleep(200);cout<<"\t,.,:,,,,,,,,,,,,.Y. uBSOP iOFkFPZOMM: ..,...vvi,:.,.. v@LU77 :j1,,.\n";Sleep(200);cout<<"\t:.:,,,:,,,,,,,,,,..:Yk8E. qZSFkkkSPEMr. ......::.,... Y@OPXiv, uL..\n";Sleep(200);cout<<"\t,.,:,,,:,:,,,,,:,,,: OBi .M0FqNPq05X8Yiv. ...::.. rZ@M:5Mi5:. 7r..\n";Sleep(200);cout<<"\t:.:,,,:,,,,,,,,,,,,. kM :@0EFOXvPkS8u:71v:. iMjXBX iMYX,.::.,.\n";Sleep(200);cout<<"\t,.,:,,,,,:,,,:,,,,,, i2 JBN,UM.:M8OMX:iivJj7i..:JG@7 M8. :8Y7 ::.,:.\n";Sleep(200);cout<<"\t:.:,:,:,,,:,:,:,:,,,,.: rBY .Bi ;Bv2vYi;r77vJJYS@B@L 5k. Lu:.,,,,:,.\n";Sleep(200);cout<<"\t,.,:,:,:,:,:,:,:,:,:,,.rU: vP .:k: ,77vi:::::,:.:M,ii ..:7,.,,:,:,:.\n";Sleep(200);cout<<"\t: ...................... . ... .i:.i.:. . : .... ........ "<<endl;Sleep(10000);}void SystemLogin::showWelcome(){//显示个人感想并显示御坂美琴图片Sleep(1000);showSentence();system("cls");PlaySound(".\\2.wav",NULL, SND_FILENAME|SND_ASYNC);//绘制边框system("title 模拟银行ATM系统beta1.0");int i;cout<<endl;cout<<endl;for(int j=1 ; j<=39 ; j++){printf("%c",'\32');printf("%c",'\177');}cout<<endl;for(i=1 ; i<=15 ; i++){printf("%c",'\177');}printf("\178\t◎欢迎进入银行★A TM 系统◎\t\178");for(int j2=1 ; j2<=15 ; j2++){printf("%c",'\177');}for(int j3=1 ; j3<=15 ; j3++){printf("%c",'\177');}printf("\178\t←Best service ★Only for you →\t\178");for(int j4=1 ; j4<=15 ; j4++){printf("%c",'\177');}for(int j5=1 ; j5<=39 ; j5++){printf("%c",'\32');printf("%c",'\177');}//绘制完毕}void SystemLogin::showChoiseMenu(){//黑色背景红色字体system("color B4");cout<<"\n\n\n"<<endl;cout<<"★★请您选择需要的服务★★\n\n"<<endl;cout<<"\t\t1、【新用户注册】"<<endl;cout<<"\t\t2、【用户登陆】"<<endl;cout<<"\t\t3、【退出系统】"<<endl;cout<<"\n\n\t\t\t\tVersion Beta 1.0"<<endl;cout<<"\t\t\t\tcopyright 2014 Team VanTior"<<endl;cout<<"\t\t\t\tAllrights reserved"<<endl;cout<<"\n\t【请输入您需要的服务: 】";}/*** ***********************************************************【模块二:本模块用于用户注册】*********************************************************//*定义用户结构体*/typedef struct newUser{char name[20]; //姓名char gender[10]; //性别int age; //年龄char idNumber[30]; //身份证号码char phone[20]; //电话(手机或者座机)char emailAddress[30]; //电子邮箱char password[16]; //密码int accountBalance; //账户余额char LoginPassword[16]; //用于接收登陆密码输入}newUser;//定义文件指针fpnewUser newUser1;FILE *fp;/*用户注册模块*/class UserRegister{public:void showTransitionWindow();//显示过场加载动画void showUserAffirmMessage();//显示用户确认信息void newUserRegister();//新用户注册};//显示过场加载动画函数实现void UserRegister::showTransitionWindow(){system("title 欢迎您新用户");system("cls");cout<<"\n\n\n\n\n"<<endl;system("color 04");//黑色背景红色字体//显示百分比进度条int z98=0;for(int z96=0 ; z96<=100 ; z96++){cout<<"\n\n\n\n\t\t\t********【欢迎您★新用户】********\n\n\n"<<endl;cout<<"\t\t\t ▲注册系统加载中请稍后▲";//显示闪动的条形for(int z99=0 ; z99<=z98 ; z99++){printf("。
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机程序
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语言A T M程序模拟As a person, we must have independent thoughts and personality.一、课题要求1、当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM柜员机系统。
2、查询余额:初始余额为10000元。
3、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
4、ATM存款:不能出现负存款。
5、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
二、代码#include ""#include ""#include ""#include ""#include ""void gotoxy(int x,int y); 改密码 *\n");printf("* 2.查询余额 *\n");printf("* 3.取款 *\n");printf("* 4.实时存款 *\n");printf("* 5.退出 *\n");printf("********************************\n");switch(getch()){case '1': mima(); break;case '2': yu_e(); break;case '3': qukuan(); break;case '4': cunkuan(); break;case '5': exit(); break;default:printf("error\n");}}回 2.退出 *\n");printf("* *\n"); printf("* *\n"); printf("********************************\n"); switch(getch()){case '1': caozuo(); break;case '2': exit(); break;}}. *\n");printf("* *\n"); printf("* *\n");printf("********************************\n"); delay();delay();system("cls");printf("********************************\n"); printf("* *\n"); printf("* 您的余额为 *\n"); printf("* *\n"); printf(" ");printf("%d",YU_E);printf("\n* *\n"); printf("* 1.返回 2.退出 *\n"); printf("********************************\n"); switch(getch()){case '1': caozuo(); break;case '2': exit(); break;}}它 *\n");printf("* *\n"); printf("* 7.返回 8.退出 *\n"); printf("********************************\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("********************************\n");printf("* *\n");printf("* 请输入您要取款的金额 *\n");printf("* *\n");printf("* *\n");printf("* *\n");printf("* *\n");printf("********************************\n");gotoxy(14,4);scanf("%d",&temp);panduan(temp); break;case '7':caozuo(); break;case '8':exit(); break;}}回 2.退出 *\n");printf("* *\n");printf("********************************\n");switch(getch()){case '1': qukuan();case '2': exit();}}beishu=z%100;if(beishu!=0){system("cls");delay();printf("********************************\n");printf("* *\n");printf("* 本ATM机只支持 100 的人民币 *\n");printf("* 请重新操作 *\n");printf("* *\n");printf("* 1.返回 2.退出 *\n");printf("* *\n");printf("********************************\n");switch(getch()){case '1': qukuan();case '2': exit();}}if(z==5000||z>5000){system("cls");printf("********************************\n");printf("* *\n");printf("* 每次取款不能超过 5000 元 *\n");printf("* 请重新操作 *\n");printf("* *\n");printf("* 1.返回 2.退出 *\n");printf("* *\n");printf("********************************\n");switch(getch()){case '1': qukuan();case '2': exit();}}YU_E=YU_E-z;success();}. *\n");printf("* *\n"); printf("* *\n"); printf("********************************\n"); delay();delay();system("cls");printf("********************************\n"); printf("* *\n"); printf("* 操作已成功 *\n"); printf("* *\n"); printf("* 1.返回 2.退出 *\n"); printf("* *\n"); printf("* *\n"); printf("********************************\n"); switch(getch()){case '1':caozuo(); break;case '2':exit(); break;}}. *\n");printf("* *\n");printf("* *\n");printf("********************************\n");delay();delay();enter_ATM();}//================================================================/ ///============== 简单转移函数=============//void zhuangyi(){mima();}//========================================//三、部分效果截图。
ATM界面
#include<stdio.h>#include<stdlib.h>/*用于定义清屏函数的头文件*/int main(){int a,i,t,b,e,f,g,h,r,k,n;/*程序运行需要的参量*/e=0;r=0;k=0;f=10000;/*自定义的账户余额*/printf(" ******欢迎使用A_DO银行*******\n");printf("请输入您的账号,按回车键结束\n");scanf("%d,&n");system("cls");printf("请输入密码\n");scanf("%d",&a);system("cls");/*清屏函数*/if(a==9567)/*验证密码是否正确*/{L: printf(" ****请您选择语言种类*****\n");/*语言选择界面*/printf("*****1ENGLISH*****\t");printf("****2中文********\n");printf("******3.退出********\n");scanf("%d",&t);system("cls");switch(t){D:case 2:printf("***********A_DO银行*****************\n"); /*中文界面*/printf("1.存款\t");printf(" 2.转账\n");printf("3.查询余额\t");printf("4.取款\n");printf("5.退出\n");scanf("%d",&b);system("cls");switch(b){ case 1:printf("请输入存款金额\n");/*存款界面*/scanf("%d",&e);system("cls");printf("请放入现金\n");printf("按任意键进行\n");scanf("%d",&h);system("cls");printf("您的存款已经存入\n");printf("按任意键返回上界面\n");scanf("%d",&h);system("cls");goto D;/*返回上界面*/break;case 2:printf("请输入转入账号\n");/*转账界面*/scanf("%d",&g);printf("请输入转账金额\n");scanf("%d",&k);printf("正在转账,请稍后.....\n");printf("转账成功\n");printf("按任意键返回上界面\n");scanf("%d",&h);system("cls");goto D;break;case 3:printf("您的余额为%d\n",f+e-r-k);/*余额界面其中f+e-r-k用于算出账户余额的公式*/printf("按任意键返回上界面\n");scanf("%d",&h);system("cls");goto D;break;case 4:printf("请输入取款金额\n");/*取款界面*/scanf("%d",&r);system("cls");printf("请取回现金\n");printf("按任意键进行\n");scanf("%d",&h);system("cls");printf("您的存款已经取回\n");printf("按任意键返回上界面\n");scanf("%d",&h);system("cls");goto D;break;case 5:goto E;}break;case 1:A:printf("***********A_DO银行*****************\n"); /*英文界面*/ printf("1.withdraw\t");printf(" 2.Transfer accounts\n");printf("3.account balance\t");printf("4.Deposit\n");printf("5.exit");scanf("%d",&b);system("cls");switch(b){ case 1:printf("Please input the amount of deposit\n");scanf("%d",&e);system("cls");printf("Please put the cash\n");printf("Press any key to continue\n");scanf("%d",&h);system("cls");printf("Your deposit is deposited\n");printf("Press any key to return to the interface\n");scanf("%d",&h);system("cls");goto A;break;case 2:printf("Please enter the account number\n");scanf("%d",&g);printf("Please input the amount of deposit\n");scanf("%d",&k);printf("Ongoing, please wait.....\n");printf("Transfer success\n");printf("Press any key to return to the interface\n");scanf("%d",&h);system("cls");goto A;break;case 3:printf("Your balance is%d\n",f+e-r-k);printf("Press any key to return to the interface\n");scanf("%d",&h);system("cls");goto A;break;case 4:printf("Please enter the amount\n");scanf("%d",&r);system("cls");printf("Please fetch cash\n");printf("Your deposit is retrieved\n");printf("Press any key to return to the interface\n");scanf("%d",&h);system("cls");printf("Your deposit is retrieved\n");printf("Press any key to return to the interface\n");scanf("%d",&h);system("cls");goto A;break;case 5:goto E;}break;case 3:printf("您已经退出本系统\n");goto E;break;default:printf("您输入有误,请重新输入\n");goto L;break;}}else{printf("您输入的密码错误,请再次输入\n");}scanf("%d",&a);system("cls");if(a==9567){goto L;}else{printf("您输入的密码错误,请再次输入\n");}scanf("%d",&a);system("cls");if(a==9567){goto L;}else{printf("您输入的密码错误,错误超过三次,系统将自动退出\n");} E:return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#include <stdio.h>
#include <dos.h>
void main()
{
char SelectKey,CreditMoney,DebitMoney;
while(1)
{
do{
puts("=========================");
puts("| Please select key: |");
puts("| 1. Quary |");
puts("| 2. Credit |");
puts("| 3. Debit |");
puts("| 4. Return |");
puts("=========================");
SelectKey = getchar();
}while( SelectKey!='1' && SelectKey!='2' && SelectKey!='3' && SelectKey!='4' );
switch(SelectKey)
{
case '1':
puts("================================");
puts("| Your balance is $1000. |");
puts("| Press any key to return... |");
puts("================================");
getchar();
break;
case '2':
do{
puts("==================================");
puts("| Please select Credit money: |");
puts("| 1. $50 |");
puts("| 2. $100 |");
puts("| 3. Return |");
puts("==================================");
CreditMoney = getchar();
}while( CreditMoney!='1' && CreditMoney!='2' && CreditMoney!='3' );
switch(CreditMoney)
{
case '1':
puts("=========================================");
puts("| Press any key to return... |");
puts("=========================================");
getchar();
break;
case '2':
puts("==========================================");
puts("| Your Credit money is $100,Thank you! |");
puts("| Press any key to return... |");
puts("==========================================");
getchar();
break;
case '3':
break;
}
break;
case '3':
do{
puts("====================================");
puts("| Please select Debit money: |");
puts("| 1. $50 |");
puts("| 2. $100 |");
puts("| 3. $500 |");
puts("| 4. $1000 |");
puts("| 5. Return |");
puts("====================================");
DebitMoney = getchar();
}while( DebitMoney!='1' && DebitMoney!='2' && DebitMoney!='3' \ && DebitMoney!='4' && DebitMoney!='5' );
switch(DebitMoney)
{
case '1':
puts("===========================================");
puts("| Your Debit money is $50,Thank you! |");
puts("| Press any key to return... |");
puts("===========================================");
getchar();
break;
case '2':
puts("===========================================");
puts("| Press any key to return... |");
puts("===========================================");
getchar();
break;
case '3':
puts("===========================================");
puts("| Your Debit money is $500,Thank you! |");
puts("| Press any key to return... |");
puts("===========================================");
getchar();
break;
case '4':
puts("===========================================");
puts("| Your Debit money is $1000,Thank you! |");
puts("| Press any key to return... |");
puts("===========================================");
getchar();
break;
case '5':
break;
}
break;
case '4':
puts("================================");
puts("| Thank you for your using! |");
puts("| Good bye! |");
puts("================================");
return;
}
}
}。