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机
一、实验目的通过设计一个ATM机模拟操作的程序,全面运用课程的主要知识点,巩固对模块化程序设计、文件操作的理解,提高软件编程能力。
二、实验要求要求每人独立完成设计,编写一个ATM机模拟操作程序。
提交实验报告、源程序、程序运行截图。
1.程序具有以下功能:1)登录系统:输入卡号(16位)、密码(6位),只有卡号、密码同时正确(帐户信息存放在文件中)才能进入系统;2)操作功能:●查询:查询帐户的存款余额。
按任意键返回主菜单;●修改密码:连续输入两次新密码(两次输入结果完全相同)后,新密码取代旧密码,并存放到帐户信息文件中。
之后可返回主菜单;●取款:输入50或100的倍数模拟为取款金额,请注意:取款金额不得超过帐户余额,操作后帐户余额应相应减少。
之后可返回主菜单;●存款:输入50或100的倍数模拟为存款金额,现假设存款金额不得超过20000元,操作后帐户余额应相应增加。
之后可返回主菜单;●转帐:先输入一个帐户号(已保存在帐户信息文件中),然后显示一部分用户名(如:张*山),储户确认无误后,再输入50或100的倍数模拟为转帐金额,请注意:转帐金额不得超过帐户余额,操作后帐户余额应相应减少。
之后可返回主菜单;●退出:退出系统。
2.定义如下结构体类型:●“日期”结构体Date:成员有:year(年)、month(月)、day(日);●“帐户”结构体Account:成员有:no(帐户号)、name(姓名)、balance(余额)●“存取款记录”结构体Record,:成员有:no(帐户号)、date(日期)、number(数量,可正可负,正表示存款,负表示取款)3.帐户信息存放在accounts.txt文件,储户存取款记录保存在records.txt中;4.采用模块化程序设计方法来实现,即main()显示主菜单、调用相关函数实现相应功能,起主控作用。
5.附加功能:●储户一天内输错密码的次数不能超过3次,否则无法进入系统;●应避免输入存款金额、取款金额为负数等异常情况的出现。
用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系统课程设计一、课程目标知识目标:1. 理解C语言中基本的数据类型、语法结构及编程思想;2. 掌握ATM系统基本功能需求,如账户管理、存款、取款、查询余额等;3. 学会运用结构体、函数、文件操作等C语言知识点进行程序设计;4. 了解C语言在开发实际应用系统中的优势和局限。
技能目标:1. 能够运用所学知识编写C语言程序,实现ATM系统基本功能;2. 培养学生分析问题、设计解决方案、编写程序及调试程序的能力;3. 提高学生的逻辑思维能力和编程实践能力,为后续课程打下坚实基础。
情感态度价值观目标:1. 培养学生热爱计算机编程,增强学习C语言的兴趣和自信心;2. 培养学生具备良好的团队合作精神,学会与他人共同解决问题;3. 增强学生的创新意识,鼓励学生勇于尝试、不断探索,提高解决问题的能力;4. 通过实际项目的设计与实现,使学生认识到编程在实际生活中的应用价值,培养学生的社会责任感。
本课程针对高年级学生,在学生已具备一定C语言基础的前提下,通过设计ATM系统课程,将理论知识与实际应用紧密结合,提高学生的编程实践能力和创新意识。
课程要求学生在掌握基本知识技能的基础上,注重团队协作,充分发挥学生的主观能动性,培养具备实际编程能力的高素质人才。
二、教学内容1. C语言基础回顾:数据类型、运算符、控制语句、函数、数组、指针、结构体等;2. ATM系统需求分析:介绍ATM系统的基本功能,如用户登录、查询余额、取款、存款、转账、退出系统等;3. C语言实现ATM系统:- 设计系统框架,使用函数实现各功能模块;- 使用结构体存储和管理用户账户信息;- 文件操作实现用户账户数据的持久化存储;- 使用指针和数组处理用户操作和账户数据;- 实现用户界面交互,包括用户输入和输出处理;4. 编程实践与调试:指导学生动手编写代码,实现ATM系统各功能,并进行调试优化;5. 团队协作与项目展示:分组进行项目开发,培养学生团队协作能力,最终进行项目展示和评价。
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;}。
经典C语言版含文件的ATM银行取款机系统源代码与程序设计基础实训I文档.doc
课程设计任务书课程名称:程序设计基础课程设计设计题目:银行ATM存取款系统、个人通信录系统(任选一题)已知技术参数和设计要求:需求说明及要求题目一:银行ATM存取款系统银行ATM存取款系统业务描述如下:银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。
为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。
用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。
本系统各个业务有如下注意点:(1)登陆系统用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。
(2)开户业务要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。
同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。
(3)存款业务客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。
(4)取款业务客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。
(5)查询业务客户登陆系统后,可以选择查询业务,查询账户余额。
(6)转账业务客户登陆系统后,可以选择转账业务,进行转账。
注意的是转账的目的账户必须是本系统已经存在的银行账户。
(7)修改密码客户登陆系统后,可以选择修改密码业务,进行密码修改。
题目二:个人通信录系统个人通信录系统业务描述如下:个人通信录必须为用户提供好友管理、系统管理和帮助三个部分。
好友管理包括好友信息录入、好友信息修改、好友信息删除和好友信息查询查询的功能,在此基础上可以设置好友分组;系统管理包括密码修改、分组配置;帮助需要为用户提供系统的操作帮助。
本系统各个业务有如下注意点:(1)登陆系统用户在登陆界面输入用户名和密码,校验正确后可以登陆系统。
(2)好友管理业务新增的好友信息保存至文件,之后对好友信息的管理都是对文件中的好友信息进行处理,并且可以将好友信息进行分组。
C++模拟ATM机存取款管理系统设计
温馨提示程序语言:C、C++、C#、Python(红色字体表示本课设使用的程序设计语言)图形功能选项:Win32控制台程序(黑框、文本界面)、Win32程序、MFC、WinForm、DirectX10(黑体标明表示本课设的程序图形类别,默认为非图形界面Win32控制台程序)数据结构:基础类型、数组、链表、双向链表、搜索树(非平衡二叉树)、平衡二叉树、链表与平衡二叉树相结合、堆栈、队列、串、图(黑体标明表示本课设使用的数据结构)C++语言项:STL库(黑体标明表示使用C++的STL库)编译环境:Windows 7 64位旗舰版(Linux及其他环境请谨慎下载)集成开发环境:Visual C++ 6.0、DEVC++、CodeBlocks、Visual Studio 2015均可通过编译。
(浅蓝色字体表示需要运行修改后的版本,请用户自行选择源代码测试)分多头文件编译:否(所有代码基本都包含在一个文件内,如需试验头文件功能,请自行参考相关文献)内容说明:1、课设题目及预览内容将在第二页开始展示。
2、代码行数:241行3、目录所示内容,本文基本涵盖,如无内容,会在本页进行说明。
4、附录绝对包含用户使用手册及程序完整源代码和详细注释。
5、如需下载其他头文件(例如DirectX需另行配置),本文会在此进行说明。
6、本文撰写内容仅供学习参考,另外,由于本人水平有限,编写之处难免存在错误和纰漏,恳请各位老师或同学批评指正。
《面向对象程序设计》课程设计报告书设计题目:模拟ATM机存取款管理系统设计指导老师:学生班级:学生学号:学生姓名:同组人员:时间:2017.12.课程设计任务书第一章概述使用ATM柜员机可以节约人力资源,方便用户进行简单常用的操作,并且为用户全天候的服务,提高银行效率,给人们提供了非常大的便利。
本文就以C++语言设计一项简单的模拟ATM柜员机程序。
运行程序时,当输入给定的卡号和密码(初始卡号和密码都为123456)后,系统就能登录ATM柜员机系统,用户可以进入功能实现界面,有查询余额,取款,存款,修改密码等功能。
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(。
c课程设计atm系统
c 课程设计atm系统一、教学目标本节课的教学目标是使学生掌握ATM系统的基本原理和操作流程,培养学生运用C语言进行程序设计的能力。
具体目标如下:1.知识目标:–了解ATM系统的基本概念、工作原理和组成部分。
–掌握C语言的基本语法和编程技巧。
2.技能目标:–能够运用C语言编写简单的ATM系统程序。
–培养学生分析问题、解决问题的能力。
3.情感态度价值观目标:–培养学生对计算机科学的兴趣和好奇心。
–培养学生的团队合作意识和沟通能力。
二、教学内容本节课的教学内容主要包括ATM系统和C语言两个部分。
1.ATM系统:–介绍ATM系统的基本概念、工作原理和组成部分。
–讲解ATM系统的操作流程,包括登录、查询余额、取款、存款等功能。
2.C语言:–讲解C语言的基本语法和编程技巧。
–通过编写简单的ATM系统程序,让学生熟悉C语言的编程方法。
三、教学方法本节课采用讲授法、案例分析法和实验法相结合的教学方法。
1.讲授法:用于讲解ATM系统和C语言的基本概念、语法和编程技巧。
2.案例分析法:通过分析典型的ATM系统案例,使学生更好地理解ATM系统的工作原理和操作流程。
3.实验法:让学生动手编写简单的ATM系统程序,培养学生的编程能力和解决问题的能力。
四、教学资源1.教材:选用《C程序设计》作为主教材,辅助以《ATM系统原理与实践》等相关参考书籍。
2.多媒体资料:制作课件和教学视频,用于讲解ATM系统和C语言的相关知识点。
3.实验设备:提供计算机和编程环境,让学生进行ATM系统程序的编写和调试。
五、教学评估本节课的评估方式包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
1.平时表现:通过观察学生在课堂上的参与程度、提问回答和小组讨论等表现,评估学生的学习态度和理解能力。
2.作业:布置相关的ATM系统编程作业,评估学生对C语言编程技巧的掌握程度。
3.考试:进行期末考试,涵盖ATM系统和C语言的相关知识点,评估学生的综合运用能力。
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机存取款系统本⽂实例为⼤家分享了C语⾔实现ATM机存取款系统的具体代码,供⼤家参考,具体内容如下利⽤结构体和构造函数并且采⽤输⼊输出⽂件实现ATM机系统。
主要功能有:利⽤三种⽅法查询、开户、登陆、菜单、取款、修改密码、存款、转账、创建个⼈信息、输出、删除、增加、退出。
是⼀个功能齐全,完备的ATM机系统。
#include<stdio.h>#include<string.h>#include<stdlib.h>struct 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("*****************************\n");printf("**欢迎使⽤ATM⾃动取款机系统**\n");printf("*****************************\n");printf("——————————————\n");printf("| 1 开户 |\n");printf("——————————————\n");printf("| 2 登陆 |\n");printf("——————————————\n");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=getchar();switch(choose){case '1':chuangjian(&Phead);shuchu(Phead); //调⽤后台输出函数system("pause");system("cls");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");system("cls");break;case '0':flag=0;printf("The end.\n");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)); //开辟内存单元scanf("%s",p1->mima);p1->money=0;p1->next=NULL;printf("您的个⼈信息为");printf("姓名:%s \n卡号:%s \n余额:%4d\n",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\n");return;}if(fwrite(p1,sizeof(struct per),1,fp)!=1) //将链表信息写⼊⽂件中printf("file write error\n");fclose(fp);printf("\n");printf("恭喜您开户成功,请登录\n");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("不能打开⽂件\n"); //如不能打开,则结束程序}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(" **********************\n");printf(" ***欢迎来都建设银⾏***\n");printf(" **********************\n");for(j=1;j<4;j++) //限制卡号输⼊的次数的循环{printf("请输⼊您的卡号\n");scanf("%s",d);for(q=head;q!=NULL;q=q->next) //遍历链表{if(strcmp(q->ID,d)!=0) //核对账号{continue; //跳出循环}scanf("%s",mima);if(strcmp(q->mima,mima)!=0) //核对密码{printf("密码不正确。
C++模拟ATM机存取款管理系统设计
温馨提示程序语言:C、C++、C#、Python(红色字体表示本课设使用的程序设计语言)图形功能选项:Win32控制台程序(黑框、文本界面)、Win32程序、MFC、WinForm、DirectX10(黑体标明表示本课设的程序图形类别,默认为非图形界面Win32控制台程序)数据结构:基础类型、数组、链表、双向链表、搜索树(非平衡二叉树)、平衡二叉树、链表与平衡二叉树相结合、堆栈、队列、串、图(黑体标明表示本课设使用的数据结构)C++语言项:STL库(黑体标明表示使用C++的STL库)编译环境:Windows 7 64位旗舰版(Linux及其他环境请谨慎下载)集成开发环境:Visual C++ 6.0、DEVC++、CodeBlocks、Visual Studio 2015均可通过编译。
(浅蓝色字体表示需要运行修改后的版本,请用户自行选择源代码测试)分多头文件编译:否(所有代码基本都包含在一个文件内,如需试验头文件功能,请自行参考相关文献)内容说明:1、课设题目及预览内容将在第二页开始展示。
2、代码行数:241行3、目录所示内容,本文基本涵盖,如无内容,会在本页进行说明。
4、附录绝对包含用户使用手册及程序完整源代码和详细注释。
5、如需下载其他头文件(例如DirectX需另行配置),本文会在此进行说明。
6、本文撰写内容仅供学习参考,另外,由于本人水平有限,编写之处难免存在错误和纰漏,恳请各位老师或同学批评指正。
《面向对象程序设计》课程设计报告书设计题目:模拟ATM机存取款管理系统设计指导老师:学生班级:学生学号:学生姓名:同组人员:时间:2017.12.课程设计任务书第一章概述使用ATM柜员机可以节约人力资源,方便用户进行简单常用的操作,并且为用户全天候的服务,提高银行效率,给人们提供了非常大的便利。
本文就以C++语言设计一项简单的模拟ATM柜员机程序。
运行程序时,当输入给定的卡号和密码(初始卡号和密码都为123456)后,系统就能登录ATM柜员机系统,用户可以进入功能实现界面,有查询余额,取款,存款,修改密码等功能。
银行存取系统c语言课程设计
银行存取系统c语言课程设计一、教学目标本课程旨在通过学习银行存取系统C语言课程设计,让学生掌握C语言编程的基本知识和技能,能够运用C语言实现简单的银行存取系统。
具体目标如下:1.掌握C语言的基本语法和数据结构。
2.理解银行存取系统的业务流程。
3.能够使用C语言编写简单的程序。
4.能够运用C语言实现银行存取系统的功能。
情感态度价值观目标:1.培养学生的编程兴趣和自信心。
2.培养学生的团队协作能力和解决问题的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构以及银行存取系统的实现。
具体安排如下:1.C语言的基本语法:介绍C语言的基本语法规则,包括变量、数据类型、运算符、控制语句等。
2.数据结构:介绍常用的数据结构,如数组、链表、栈和队列等。
3.银行存取系统的实现:介绍银行存取系统的业务流程,并使用C语言实现相关的功能。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
1.讲授法:通过讲解C语言的基本语法和数据结构,使学生掌握相关的理论知识。
2.讨论法:通过小组讨论,让学生深入理解银行存取系统的业务流程和实现方法。
3.案例分析法:通过分析典型的银行存取系统案例,让学生学会解决实际问题。
4.实验法:通过编写C语言程序,实现银行存取系统的功能,提高学生的编程能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:选用合适的C语言教材,为学生提供理论知识的学习。
2.参考书:提供相关的参考书籍,供学生深入学习和参考。
3.多媒体资料:制作PPT和教学视频,帮助学生更好地理解和学习。
4.实验设备:提供计算机和相关的实验设备,让学生进行编程实践。
五、教学评估本课程的评估方式将包括平时表现、作业和考试等多个方面,以全面客观地评价学生的学习成果。
1.平时表现:通过课堂参与、提问和小组讨论等方式,评估学生在课堂上的积极性和主动性。
C语言程序设计任务驱动式教程美化详细版项目实训——ATM功能实现
安全性
可靠性
高效性
ATM系统涉及到用户的金融信息和个人信息,因此需要保证系统的安全性,防范各种安全威胁。
ATM系统需要具备高可靠性和稳定性,确保系统的正常运行和使用。
ATM系统需要快速、准确地完成用户请求,提高系统的效率。
系统性能指标
ATM系统对用户请求的响应时间应该尽可能短,以提供更好的用户体验。
详细描述
03
atm系统的数据流程和处理
03
更新账户余额等信息并输出相应提示。
数据流程设计
01
用户输入取款或存款的金额、账号等信息。
02
系统根据输入信息进行相应处理:验证用户输入的账号和密码是否正确,检查账户余额,处理交易等。
定义结构体类型包括:用户信息、账户信息、密码等。
初始化用户信息和账户信息,将密码保存在加密文件中。
记录每次测试的结果,包括测试用例执行的通过率、错误率和异常情况等。
测试结果
根据测试结果进行分析,找出不足之处,提出改进措施和建议,为后续开发提供参考。
结果分析
通过性能测试,检测系统的响应时间、吞吐量等指标是否满足要求。
性能测试
检测系统的安全性是否可靠,是否存在漏洞和安全隐患,需要进行安全性测试。
安全性测试
总结词
取款功能是atm系统中关键的功能之一,需要考虑取款金额、账户余额以及取款操作的安全性等问题。
详细描述
设计一个取款函数,参数为取款金额和用户账号,函数内部首先读取数据库或内存中存储的用户信息,验证账户余额是否足够支付所要求取的金额,如果余额不足则无法取款。如果余额足够,则扣除相应金额并将取款记录写入日志中,同时还需要进行必要的异常处理。
06
atm系统的总结与展望
atm系统c语言课程设计
atm系统 c语言课程设计一、课程目标知识目标:1. 掌握ATM系统的基础知识,理解其工作原理及功能模块;2. 学会运用C语言进行ATM系统的功能设计和实现;3. 熟悉结构体、函数、循环、条件语句等C语言基础语法在ATM系统中的应用。
技能目标:1. 能够运用结构体和函数设计ATM系统的用户界面和功能模块;2. 能够编写代码实现ATM系统的登录、查询、取款、存款和退出等功能;3. 能够对ATM系统进行测试和调试,找出并修复程序中的错误。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣和热情,提高他们运用C语言解决实际问题的能力;2. 培养学生的团队协作意识,让他们在课程设计中学会与他人合作共同完成任务;3. 培养学生严谨、细心的编程习惯,让他们认识到编程过程中规范和纪律的重要性。
分析课程性质、学生特点和教学要求,本课程旨在通过ATM系统课程设计,帮助学生巩固C语言基础知识,提高编程实践能力。
课程目标具体、可衡量,以便学生和教师能够清晰地了解课程的预期成果。
通过分解课程目标为具体的学习成果,教师可以针对性地进行教学设计和评估,确保学生在课程结束后能够独立完成一个简单的ATM系统。
二、教学内容1. ATM系统基础知识介绍:讲解ATM系统的工作原理、功能模块及其在实际生活中的应用。
- 相关教材章节:第三章《C语言编程基础》2. C语言基础语法复习:回顾结构体、函数、循环、条件语句等基础语法知识。
- 相关教材章节:第一章《C语言概述》、第二章《C语言基本语法》3. ATM系统功能设计:分析ATM系统的需求,设计相应的功能模块,如登录、查询、取款、存款和退出等。
- 相关教材章节:第四章《函数与程序结构》、第六章《结构体与共用体》4. 编写ATM系统代码:运用C语言实现ATM系统的各个功能模块,并整合成一个完整的程序。
- 相关教材章节:第五章《数组与指针》、第七章《文件操作》5. 测试与调试:教授学生如何对ATM系统进行测试和调试,找出并修复程序中的错误。
C语言基础实战训练:ATM存取款系统的改进与完善
项目实训任务书课程名称:程序设计基础实训II课程编码:JX课程类别:专业基础必修课学分数:2学时数:32开课学期:2实训题目:ATM存取款系统的改进与完善一、已知技术参数和设计要求:银行ATM存取款系统业务描述如下:银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。
为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。
用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。
本系统各个业务有如下注意点:(1)登陆系统用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。
(2)开户业务要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。
同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。
(3)存款业务客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。
(4)取款业务客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。
(5)查询业务客户登陆系统后,可以选择查询业务,查询账户余额。
(6)转账业务客户登陆系统后,可以选择转账业务,进行转账。
注意的是转账的目的账户必须是本系统已经存在的银行账户。
(7)修改密码客户登陆系统后,可以选择修改密码业务,进行密码修改。
二、各阶段具体要求:1、系统总体设计阶段(1)根据需求分析划分功能模块(2)分析并设计各个功能模块之间的关系(3)对于各个功能模块,设计相应的数据结构(必须使用链表完成全部功能)(4)设计相应的算法(必须包括排序和检索功能,且基于链表进行排序和检索)2、详细设计阶段(1)对于每个功能模块,应划分成操作层和数据层(2)对于每个操作层,应尽量考虑用户操作的简单,便捷(3)对于每个数据层,必须使用链表进行管理(4)在用链表进行管理时,必须用到链表检索和排序(5)对于数据层的操作完的数据必须保存到文件中(包括文件读、写操作)3、编码实现阶段(1)完成代码编写(2)要求代码编写规范(不得使用全局变量、所有功能模块必须使用函数封装主函数main()的行数不得超过代码总长度的25%)(3)代码必须有相应的注释(注释行数不得少于代码的10%,函数功能、变量名、算法、重要的循环、分支都必须用注释说明)4、系统测试阶段(1)完成功能调试(2)要求完成必要的测试工作5、交付实施阶段(1)提交可正常执行的系统,程序代码(2)撰写项目实训报告书(3)要求按照文档书写规范,严格地书写文档(4)注意:不允许使用代码、图片和表格填充报告空间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(k=0;k<3000;k++); } printf("\n\n"); printf("\t\t\t 欢迎使用中国银行\n"); printf("\n\n"); for(i=0;i<80;i++) {
printf(">");
for(j=0;j<3000;j++) for(k=0;k<3000;k++);
printf("\n\t\t ||===================================||");
printf("\n\t\t || 1. 查询
2.取款 ||");
printf("\n\t\t ||
||");
printf("\n\t\t || 3.存款
4.修改密码||");
printf("\n\t\t ||
/***********************************************/
/*
实训案例:ATM 存取款机管理系统
*/
/***********************************************/
#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> #include <ctype.h> #define N 3 /*用户人数*/ struct clients {
printf("\n\n");
printf("\t\t\t%s 登陆成功!请继续您的操作\n",yonghu[i].name);
j=i;
i=5;
/*登陆成功,退出循环*/
}
else {
if((times2-1)!=0) {
printf("密码输入错误!您还有%d 次尝试机会\n",times2-1); printf("\t\t\t 请输入您的密码:\n"); scanf("%d",&password); i=-1; } else { printf("尝试失败!请按任意键退出:\n"); exit(0); } times2--; } } } }
scanf("%d",&b);
}
if(b==1)
{
break;
}
else
exit(0);
}
break;
//取款
case 2:
printf("卡内金额: %f\n",m);
printf("请输入取款金额:\n");
scanf("%f",&fetched_money);
m -= fetched_money;
i=-1;
}
else
{
printf("您的磁卡已被冻结请到银行解除:\n");
exit(0);
}
times1--;
}
else
{
if(number==yonghu[i].card_number)
{
if(password==yonghu[i].card_password)
{ system("cls");
while((fetched_money<0)||(m<0))
{
system("cls");
printf("输入有误!请重新输入!\n");
m += fetched_money; printf("输入 1 重新输入,输入 0 返回!\n"); scanf("%d",&h); if(h==0) break; if(h==1) { printf("请输入取款金额:\n"); scanf("%f",&fetched_money); m -= fetched_money; if(fetched_money>0) break; else { printf("输入 1 重新输入,输入 0 返回!\n"); scanf("%d",&h); } } } while(fetched_money>0) { printf("操作成功!卡内余额为: %f\n",m); yonghu[k].money = m; save(); printf("请输入 1 继续,0 取卡\n"); scanf("%d",&b); if(b==0) { exit(0); } else break; } break; //存款 case 3: printf("卡内金额: %f\n",m); printf("请输入存款金额:\n"); scanf("%f",&saved_money); while(saved_money<0) { system("cls"); printf("输入有误!!\n"); printf("重新输入请按 1,返回请按 0\n"); scanf("%d",&h); getchar();
} fclose(fp); /*判断卡号及密码是否匹配*/ for(i=0;i<N;i++) {
if((number!=yonghu[0].card_number)&&(number!=yonghu[1].card_number)&&(number!=y
onghu[2].card_number))
{
} printf("\n"); printf("\n"); /*管理员操作新建用户*/ printf("\n\t\t 管理员操作请按 1,普通用户登入请按 2 继续:"); scanf("%d",&b); if(b==1) { printf("\n\t\t 管理员操作中,添加新卡请继续(y/n):"); ch=getch(); while(ch=='y'||ch=='Y') {
exit(0); break; } else break; } break; //改密码 case 4: while(1)
{
printf("继续请按 1,返回请按 0\n"); scanf("%d",&h); if(h==1) { printf("请输入原密码:\n"); scanf("%d",&old_password); if(old_password==yonghu[k].card_password) {
void fuction(float m,int k)//功能界面 {
float saved_money,fetched_money,payment; int bank_num,x,old_password,new_password,b,h; while(1) { system("cls");
printf("\n\t\t 请选择操作:");
while(h==1) { printf("请输入存款金额:\n"); scanf("%f",&saved_money); if(saved_money>0) {
break; } else { printf("输入有误!!\n"); printf("重新输入请按 1,返回请按 0\n"); scanf("%d",&h); if(h==1) {
||");
printf("\n\t\t || 5.转帐
6.取卡 ||");
printf("\n\t\t ||===================================||");
printf("\n\n");
/******功能实现*********/
scanf("%d",&x);
switch(x)
{
//查询余额
case 1:
printf("卡内金额: %f\n",m);
printf("返回请按 1,取卡请按 0\n");
scanf("%d",&b);
for(h=1;;h++)
{
if(b!=1&&b!=0)
{ system("cls");
printf("输入有误请重新输入!\n");
printf("返回请按 1,取卡请按 0\n");
printf("\n"); printf("\t\t\t 银行卡号"); scanf("%d",&yonghu[i].card_number); printf("\t\t\t 密码"); scanf("%d",&yonghu[i].card_password); printf("\t\t\t 用户名"); scanf("%s",yonghu[i].name); printf("\t\t\t 卡内金额"); scanf("%f",&yonghu[i].money); printf("\n"); fprintf(fp,"%d %d %s %f",yonghu[i].card_number, yonghu[i].card_password,yonghu[i].name, yonghu[i].money); putc('\n',fp); printf("\t\t 你想继续添加新卡吗?(y/n):"); ch=getch(); } } } fclose(fp); /*登录系统,输入卡号和密码*/ system("cls"); printf("\n\t\t\t||====================================||"); printf("\n\t\t\t||------------------------------------||"); printf("\n\t\t\t||--- 欢迎使用中国银行自助 ATM 机 ---||"); printf("\n\t\t\t||------------------------------------||"); printf("\n\t\t\t||====================================||"); printf("\n\n"); printf("\t\t\t 请输入您的银行卡号:"); scanf("%d",&number);