C语言ATM程序模拟.doc
C语言编制模拟ATM取款机密码输入过程(第三天)
C语⾔编制模拟ATM取款机密码输⼊过程(第三天)---恢复内容开始---//// main.c// whilexu//// Created by mac on 18/7/17.// Copyright © 2018年 111. All rights reserved.//#include <stdio.h>int main(int argc, const char * argv[]) {/*初始密码12341、提⽰欢迎光临2、提⽰请输⼊密码:do while循环语句控制能输⼊⼏次密码if语句来判断输⼊的密码是否正确失败:密码错误请重新输⼊(还有⼏次机会)成功:显⽰新的操作界⾯密码正确*/int password = 0;int time = 3;//提⽰⽤户操作printf("*****欢迎光临!*****\n");printf("请输⼊您的密码:");do{scanf("%d",&password);//判断密码是否正确if(password ==1234){printf("密码正确\n");break;}else{time--;if(time==0){printf("错误次数过多,退出\n");break;}printf("密码错误,请重新输⼊密码(还有%d次机会):\n",time);}}while (time>0);return0;}//1、总结:理清要实现的操作有哪些;2、分析要⽤哪些语句来实现;3、根据提⽰的错误来修正错误;4、运⾏---恢复内容结束---。
ATM取款机模拟系统-程序设计-报告(完成版).doc
目录三、编程题部分(银行ATM模拟存取系统)1、设计内容 (2)2、设计 (2)(1)数据分析 (2)(2)程序流程分析 (3)3、编码及调试 (13)4、程序运行截图 (32)四、总结与体会 (37)五、参考文献 (39)三、编程题部分1、设计内容完成一个管理类的综合型设计:银行ATM模拟存取系统。
要求学生进行数据结构的设计、对函数进行模块化结构化设计、并灵活运用数组、结构体、指针、文件等多种数据类型设计开发系统。
通过写程序,学生应掌握用计算机程序设计语言解决实际问题的方法、步骤。
该系统应该具有以下功能:1)账户管理功能a) 开户:完成账户注册的功能。
即输入账户的相关信息。
要求账户号长度12位,密码长度不得低于6位,必须使用暗码,账户信息保存到数组中,账户信息最后保存到相关文件中;b) 账户登录:输入账户、密码,验证是否能够登录该系统;c)密码修改:输入两次相同的密码方可修改。
2)账务管理功能a) 存款:每笔存款金额大于0元小于等于1000元,以50元为基本单位。
需记录交易日期和时间。
b) 取款:每笔取款金额大于等于100元小于等于2000元,以50元为基本单位。
需记录交易日期和时间。
c) 转账:每笔转账金额大于等于100元小于等于5000元。
需记录交易日期和时间。
3)查询功能a) 存款记录查询b) 取款记录查询c) 转账记录查询d) 余额查询4)文件功能及其它功能:数据都应保存在相关文件中。
2、设计(1)数据分析(描述定义的各主要变量的作用及意义);char zhanghao[16];/*用户账号*/char xingming[9];/*用户姓名*/char mima[7];/*账户密码*/char shengfenzheng[19];/*用户身份证号*/float yue;/*账户余额*/char kaihushijian[50];/*开户时间*/char zhanghao[16];/*交易的账号*/char jiaoyishijian[50];/*交易时间*/char leixing[5];/*交易类型*/float jiaoyijine;/*交易金额*/float jiaoyiyue;/*交易后的余额*/char duifangzhanghao[12];/*交易时的对方账号*/int zhanghuxuhao=0,jiaoyixuhao=0,dangqianxiabiao=0,duifangzhanghuxiabiao=0;/*账户序号,交易序号,当前登录的账户下标,转账时对方的账户下标*/注册函数:int baiwei,shiwei,gewei,len;/*定义账号的后三位*/char mima2[7];/*注册时第二次输入的密码*/登录函数:char zhanghao[16],mima[7];/*登录时输入的账号和密码*/装载和保存文件函数:FILE *fp;/*定义文件指针*/char wenjianming[13];/*定义输入的文件名*/存、取款,转账函数:float jine;/*输入的存、取款,转账金额*/char t[30];/*把取得的存、取款,转账时间赋给该数组*/转账函数:char duifangzhanghao[16],c;/*输入的对方账号赋给该数组。
【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,有五大功能选择,输入对应的序列号进入。
●余额查询功能输出账号所对应的余额。
●取款功能,需要安装要求取出格式化的金额。
(2020年7月整理)C语言ATM程序模拟.doc
一、课题要求1、当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录A TM柜员机系统。
2、查询余额:初始余额为10000元。
3、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
4、ATM存款:不能出现负存款。
5、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
二、代码#include "stdafx.h"#include "stdio.h"#include "windows.h"#include "stdlib.h"#include "conio.h"void gotoxy(int x,int y); //光标位置函数void enter_ATM(); //账号输入函数void input_code(); //密码输入函数void caozuo(); //基本操作界面void qukuan(); //取款函数void success(); //操作成功函数void delay(); //延时函数void yu_e(); //余额查询函数void cunkuan(); //存款函数void panduan(long int z); //判断取款是否合法函数void exit(); //退出界面函数void mima(); //密码修改void zhuangyi();long int CODE=123456,YU_E=10000;//=========================主函数========================//main(){enter_ATM();caozuo();}//======================================================////==================================柜台机账号输入函数=======================================//void enter_ATM(){system("cls");printf("********************************\n");printf("* *\n");printf("* 欢迎使用A TM 柜台机*\n");printf("* 请输入卡号*\n");printf("* *\n");printf("* *\n");printf("********************************\n");long int user;gotoxy(14,4);scanf("%d",&user);while(user!=123456){system("cls");printf("********************************\n");printf("* *\n");printf("* 账户不存在,请从新输入*\n");printf("* *\n");printf("* *\n");printf("* 取消确定*\n");printf("* *\n");printf("********************************\n");gotoxy(13,3);scanf("%d",&user);}input_code();}//========================================================================= =================////=======================================密码输入函数========================================//void input_code(){long int code;int temp=3,time;system("cls");printf("********************************\n");printf("* *\n");printf("* 请输入密码*\n");printf("* *\n");printf("* *\n");printf("* 取消确定*\n");printf("* *\n");printf("********************************\n");gotoxy(14,3);scanf("%d",&code);while(code!=CODE){temp--;if(temp==0){{system("cls");printf("********************************\n");printf("* *\n");printf("* 您已经3 次输入密码*\n");printf("* 系统将退出操作*\n");printf("* *\n");printf("* ");printf("%d",time);printf(" *\n");printf("* *\n");printf("********************************\n");delay();}enter_ATM();}system("cls");printf("********************************\n");printf("* *\n");printf("* 密码错误,请重新输入*\n");printf("* 您还有");printf("%d",temp);printf(" 次机会*\n");printf("* *\n");printf("* 取消确定*\n");printf("* *\n");printf("********************************\n");gotoxy(14,4);scanf("%d",&code);}caozuo();}//========================================================================= ============////============================================主操作界面函数========================================//void caozuo(){system("cls");printf("********************************\n");printf("* 请选择一下业务*\n");printf("* 1.修改密码*\n");printf("* 2.查询余额*\n");printf("* 3.取款*\n");printf("* 4.实时存款*\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");}}//========================================================================= =========================////==============================密码修改函数==============================// void mima(){long int mm1,mm2,mm3;char temp;system("cls");printf("********************************\n");printf("* *\n");printf("* 旧密码: *\n");printf("* *\n");printf("* 新密码: *\n");printf("* 确认新密码: *\n");printf("* *\n");printf("********************************\n");gotoxy(15,2);scanf("%d",&mm1);gotoxy(15,4);scanf("%d",&mm2);gotoxy(15,5);scanf("%d",&mm3);if(mm1!=CODE){system("cls");printf("********************************\n");printf("* *\n");printf("* 旧密码错误*\n");printf("* *\n");printf("* 请重新输入!*\n");printf("* *\n");printf("* *\n");printf("********************************\n");delay();if(mm2!=mm3){system("cls");printf("********************************\n"); printf("* *\n"); printf("* 确认密码不一致*\n"); printf("* *\n"); printf("* 请重新输入!*\n"); printf("* *\n"); printf("* *\n"); printf("********************************\n"); delay();delay();zhuangyi();}if(mm2<100000){system("cls");printf("********************************\n"); printf("* *\n"); printf("* 密码必须大于或等于6位数*\n"); printf("* *\n"); printf("* 请重新输入!*\n"); printf("* *\n"); printf("* *\n"); printf("********************************\n"); delay();delay();zhuangyi();}temp=mm2%111111;if(temp==0){system("cls");printf("********************************\n"); printf("* *\n"); printf("* 密码过于简单*\n"); printf("* *\n"); printf("* 请重新输入!*\n"); printf("* *\n"); printf("* *\n"); printf("********************************\n"); delay();CODE=mm2;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;}}//======================================================================// //==========================余额查询函数============================//void yu_e(){system("cls");printf("********************************\n");printf("* *\n");printf("* *\n");printf("* 系统正在查询*\n");printf("* 请稍候... *\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 '2': exit(); break;}}//==================================================================////===================================取款函数====================================//void qukuan(){long int temp;system("cls");printf("********************************\n");printf("* 请选择您要取款的金额*\n");printf("* 1.100 2.200 *\n");printf("* 3.500 4.800 *\n");printf("* 5.1000 6.其它*\n");printf("* *\n");printf("* 7.返回8.退出*\n");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;}}//========================================================================= =======////======================================判断取款是否合法函数void panduan(long int z){int beishu;if(z>YU_E){system("cls");printf("********************************\n"); printf("* *\n"); printf("* 余额不足!*\n"); printf("* 请重新操作*\n"); printf("* *\n"); printf("* 1.返回 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("* 1.返回 2.退出*\n");printf("* *\n");printf("********************************\n");switch(getch()){case '1': qukuan();case '2': exit();}}YU_E=YU_E-z;success();}//========================================================================= =================////==============================================存款函数=============================================//void cunkuan(){long int temp;system("cls");printf("********************************\n");printf("* *\n");printf("* 请放入人民币*\n");printf("* *\n");printf("* 取消确定*\n");printf("* *\n");printf("* *\n");printf("********************************\n");gotoxy(14,3);scanf("%d",&temp);while(temp<0){system("cls");printf("********************************\n");printf("* *\n");printf("* 非法存款*\n");printf("* 请重新放入人民币*\n");printf("* *\n");printf("* 取消确定*\n");printf("* *\n");printf("********************************\n");gotoxy(14,4);scanf("%d",&temp);}success();}//========================================================================= ========================////===================================光标位置函数=========================================//void gotoxy(int x,int y){COORD coord;coord.X=x;coord.Y=y;SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );}//========================================================================= ==============////===========================================简答延时函数===========================================//void delay(){long int bl1;int bl2;for(bl1=655356;bl1>0;bl1--){for(bl2=410;bl2>0;bl2--);}}//========================================================================= ==========================////=======================操作成功函数===========================//void success(){system("cls");printf("********************************\n");printf("* *\n");printf("* *\n");printf("* 系统正在处理*\n");printf("* 请稍候... *\n");printf("* *\n");printf("* *\n");printf("********************************\n");delay();delay();system("cls");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;}}//==============================================================// //==========================系统退出函数===========================// void exit(){system("cls");printf("********************************\n");printf("* *\n");printf("* *\n");printf("* 欢迎您的再次使用*\n");printf("* 系统正在退出... *\n");printf("* *\n");printf("* *\n");printf("********************************\n");delay();delay();enter_ATM();}//================================================================// //============== 简单转移函数=============//void zhuangyi(){mima();}//========================================//三、部分效果截图。
C语言-模仿ATM
2.7.1.4 练习4 模仿A TM模仿ATM取款程序,包括清空、存钱、取钱、查询余额、计算利息、有界面//atm.c#include<stdi o.h>#include<stdlib.h>float total=0;//全¨?局?变À?量¢?,ê?用®?于®¨²所¨´有®D函¡¥数ºyvoid clear(void){total=0;}void save(void){printf("Input Save Amount:");float amount;scanf("%f",&amount);scanf("%*c");total+=amount;}void get(void){printf("Input Get Amount:");int amount;scanf("%d",&amount);scanf("%*c");if(amount>total){printf("Amount Error!\n");get();}elsetotal-=amount;}void inquiry(void){printf("You balance is: %f.\n",total);}void menu(){printf("+------------------------------+\n");printf(" Welcome to Bank of Set \n");printf("+------------------------------+\n");printf("[1]Press 1 to Save money.\n");printf("[2]Press 2 to inquiry balance.\n");printf("[3]Press 3 to get money.\n");printf("[4]Press 4 to clear account.\n");printf("C hoose:");int i;scanf("%d",&i);scanf("%*c");switch(i){case 1:save();break;case 2:inquiry();break;case 3:get();break;case 4:clear();break;default:printf("Press Error!\n");menu();break;}}void Exit(){printf("Press <R> to return menu.\n");printf("Press <Q> to quit.\n");char ch;scanf("%c",&ch);scanf("%*c");//去除缓冲区里面输入的回车键if(ch=='Q'||ch=='q')exit(0);}int main(){while(1){menu();Exit();system("cls");//清屏}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终端模拟
printf(" *>>>>>>>> 2:用户登录 <<<<<<<<*\n\n");
switch(getch()) //选择语句,进行选择哪一种方式
{
case '1':guanli();break;
case '2':enter_ATM();break;
case '3':jia();break;
case '4':printf("\n正在退出.........\n\n\t请稍等!\n");exit(0);break; //显示提示信息后,调用exit()函数终止程序的执行
int mima;
double yu_e;
}atm;
atm k;
long int z;
FILE *fp;
//>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>主函数
int main()
{
welcome();
xuanze();
经典C语言版含文件的ATM银行取款机系统源代码与程序设计基础实训I文档.doc
课程设计任务书课程名称:程序设计基础课程设计设计题目:银行ATM存取款系统、个人通信录系统(任选一题)已知技术参数和设计要求:需求说明及要求题目一:银行ATM存取款系统银行ATM存取款系统业务描述如下:银行ATM存取款系统能为用户提供存款、取款、查询、转账和修改密码的功能。
为了模拟真实的ATM业务环境,本系统必须实现存款、取款、查询、转账、修改密码以及开户的功能。
用户通过开户业务在本系统开立银行账户,之后可以通过该银行账户登陆ATM系统,在系统中实现存款、取款、查询账户信息、修改密码的操作。
本系统各个业务有如下注意点:(1)登陆系统用户登陆之前,必须在登陆界面输入其银行账户,通过其正确输入的银行账户登陆系统。
(2)开户业务要使用本系统必须首先执行开户业务开立新的银行账户,并且将此新开的银行存储于文件当中。
同时,系统以身份证号码作为开户的充分条件,即一个身份证号码只能开立一次银行账户。
(3)存款业务客户登陆系统后,选择存款业务,即可以将输入的存款金额存入相应的账户。
(4)取款业务客户登陆系统后,选择取款业务,即可以将输入的取款金额从相应的银行账户取出,但是取款金额必须大于目前的账户余额。
(5)查询业务客户登陆系统后,可以选择查询业务,查询账户余额。
(6)转账业务客户登陆系统后,可以选择转账业务,进行转账。
注意的是转账的目的账户必须是本系统已经存在的银行账户。
(7)修改密码客户登陆系统后,可以选择修改密码业务,进行密码修改。
题目二:个人通信录系统个人通信录系统业务描述如下:个人通信录必须为用户提供好友管理、系统管理和帮助三个部分。
好友管理包括好友信息录入、好友信息修改、好友信息删除和好友信息查询查询的功能,在此基础上可以设置好友分组;系统管理包括密码修改、分组配置;帮助需要为用户提供系统的操作帮助。
本系统各个业务有如下注意点:(1)登陆系统用户在登陆界面输入用户名和密码,校验正确后可以登陆系统。
(2)好友管理业务新增的好友信息保存至文件,之后对好友信息的管理都是对文件中的好友信息进行处理,并且可以将好友信息进行分组。
ATM自动取款机模拟程序
银行ATM自动取款机模拟程序本程序需要两个文件,ATM程序文件及系统管理员管理,两个文件必须在同一个文件或同一路径下!1.ATM程序文件://////CUser.h //////////#include<fstream>using namespace std;struct user{int Money;int User;int Password;};class CAtm{public:int Login();//登陆void GetBalance();//查询余额void ChangePassword();//修改密码void DrawMoney();//取款void TranserAccounts();//转账void BankSaving();//存款int Exit();//退出系统private:int Position;//数据位置user us[5];//保存文件内容user us[20];user s;};///////////User.cpp /////////////#include<iostream>#include<fstream>#include"CUser.h"using namespace std;int CAtm::Login() //登录{ int save[5];//保存被吃卡的用户的账号bool flag;int i,j,k,num;fstream iofile("atm.dat",ios::in|ios::binary);iofile.read((char*)&us,sizeof(us));fstream in("jiesuo.dat",ios::in|ios::out|ios::binary);in.read((char*)&save,sizeof(save));cout<<"请输入你的账号:";cin>>num;flag=true;for(i=0;i<5;i++){ if(us[i].User==num) {flag=false;j=i;}}if(flag==true) { cout<<"账号不存在!"<<endl;return 0;}for(k=0;k<5;k++)//判断账号是否已经被锁{if(save[k]==num){ cout<<"你的账号已锁,请寻系统管理员解锁!"<<endl;return 0;}}k=0;cout<<"请输入密码:";cin>>num;for(i=1;i<=3;i++){ k++;if(us[j].Password!=num){ if(k==3){ cout<<"你的卡被锁定了,请找系统管理员解锁!"<<endl;save[j]=us[j].User;in.close();fstream out("jiesuo.dat",ios::out|ios::binary);out.write((char*)&save,sizeof(save));out.close();return 0;}else { cout<<"请重新输入密码:";cin>>num;}}}cout<<"密码正确,进入系统!"<<endl;er=us[j].User;s.Money=us[j].Money;s.Password=us[j].Password;Position=j;iofile.close();return 1;}void CAtm::GetBalance()//查询余额{ cout<<"您的账户余额:"<<s.Money<<endl;}void CAtm::ChangePassword()// 修改密码{ fstream iofile("atm.dat",ios::in|ios::out|ios::binary);cout<<"请输入新密码:";cin>>s.Password;iofile.seekp((Position+1)*sizeof(s),ios::beg);iofile.write((char*)&s,sizeof(s));iofile.close();}void CAtm::DrawMoney()//取款{int j;cout<<"请输入取款金额:";cin>>j;while(j>s.Money){cout<<"金额不足,请重新输入取款金额:";cin>>j;}s.Money=s.Money-j;fstream iofile("atm.dat",ios::in|ios::out|ios::binary);iofile.seekp((Position+1)*sizeof(s),ios::beg);iofile.write((char*)&s,sizeof(s));cout<<"取款金额是:"<<j<<" "<<"取款成功!!"<<endl;iofile.close();}void CAtm::TranserAccounts()//转账{ int s1,p,i;cout<<"请输入要转入的账号:";cin>>s1;bool flag=true;for(i=0;i<5;i++){ if(us[i].User==s1) {flag=false; p=i;}}if(flag==true)cout<<"账号不存在!"<<"请重新输入账号:";cout<<"请输入要转入的金额:";cin>>s1;while(s1>s.Money){cout<<"请重新输入转入金额:";cin>>s1;}us[p].Money=s1;s.Money=s.Money-s1;us[Position].Money=s.Money;fstream iofile("atm.dat",ios::in|ios::out|ios::binary);iofile.write((char*)&us,sizeof(us));iofile.close();cout<<"转账成功!"<<endl;}void CAtm::BankSaving()//存款缴费{ int k;cout<<"请输入要存款的金额:";cin>>k;s.Money=s.Money+k;fstream iofile("atm.dat",ios::in|ios::out|ios::binary);iofile.seekp((Position+1)*sizeof(s),ios::beg);iofile.write((char*)&s,sizeof(s));iofile.close();}int CAtm::Exit()//退出系统{cout<<" 谢谢使用本程序!!!"<<endl;return 0;}//////////////main.cpp ////////////////#include<iostream>#include"CUser.h "using namespace std;int main(){ cout<<" 欢迎使用银行ATM自动取款机模拟程序!"<<endl;cout<<endl;cout<<" 首次使用本程序,请先运行系统管理员程序!"<<endl;cout<<endl;cout<<" 说明:账号,密码,金额相同"<<endl;cout<<endl;cout<<" 文件中定义为5个账户,分别为1.2.3.4.5 "<<endl;cout<<endl;cout<<" 初始化时,请注意这些!!!"<<endl;cout<<endl;CAtm atm;if(atm.Login()==1){ cout<<" 1 查询余额"<<endl;cout<<" 2 修改密码"<<endl;cout<<" 3 取款"<<endl;cout<<" 4 转账"<<endl;cout<<" 5 存款"<<endl;cout<<" 0 退出系统"<<endl;int n;cout<<"请选择操作:";while(cin>>n){if(n==0) return atm.Exit();//退出系统if(n==1) atm.GetBalance();//查询余额if(n==2) atm.ChangePassword();//修改密码if(n==3) atm.DrawMoney();//取款if(n==4) atm.TranserAccounts();//转账if(n==5) atm.BankSaving();//存款cout<<"请继续选择操作:";}}return 0;}2.系统管理员程序:#include<iostream>#include<fstream>using namespace std;struct user{int Money;int User;int Password;};int main(){ int a[5]={0,0,0,0,0};int n;user us[20];cout<<" 欢迎使用系统管理员程序"<<endl;cout<<endl;cout<<" 说明:本程序只能建立5个账户!"<<endl;cout<<endl;cout<<" 请输入相应数字选择操作:"<<endl;cout<<endl;cout<<"----------------------------"<<endl;cout<<"- 0 结束操作-"<<endl;cout<<"- 1 用户信息-"<<endl;cout<<"- 2 吃卡解锁-"<<endl;cout<<"- 3 系统初始化-"<<endl;cout<<"----------------------------"<<endl;cout<<endl;cout<<"说明:用户信息的操作是进行开户操作!"<<endl;cout<<" 系统初始化是采用已定义好的5个账户,即原始系统初始化!"<<endl;while(cin>>n){ if(n==1){ user u[5];int i;fstream iofile("..\\ATM自动取款机\\atm.dat",ios::in|ios::out|ios::binary);if(!iofile){cerr<<"打开文件失败!";return -1;}cout<<"请输入数据:"<<endl;cout<<"账号密码金额"<<endl;for(i=0;i<5;i++){cin>>u[i].User>>u[i].Password>>u[i].Money;}iofile.write((char*)&u,sizeof(u));iofile.close();cout<<endl;cout<<"数据输入结束!"<<endl;cout<<endl;continue;}if(n==2){ fstream iofile("..\\ATM自动取款机\\atm.dat",ios::in|ios::binary);iofile.read((char*)&us,sizeof(us));fstream in("..\\ATM自动取款机\\jiesuo.dat",ios::in|ios::out|ios::binary);int i,j,p;bool flag;cout<<"请输入要解锁的账号:";cin>>j;flag=true;while(flag==true){for(i=0;i<5;i++){ if(j==us[i].User) { flag=false;p=i; break; }if(flag==true) { cout<<"账号不存在!"<<endl;cout<<"请重新输入账号:"; }cin>>j;}}a[p]=0;cout<<"解锁成功"<<endl;in.write((char*)&a,sizeof(a));in.close();continue;}if(n==3){ cout<<"系统初始化"<<endl;fstream out("..\\ATM自动取款机\\jiesuo.dat",ios::out|ios::binary);out.write((char*)&a,sizeof(a));user u[5];int i;fstream iofile("..\\ATM自动取款机\\atm.dat",ios::out|ios::binary);if(!iofile){cerr<<"打开文件失败!";return -1;}for(i=0;i<5;i++){u[i].User=i+1;u[i].Password=i+1;u[i].Money=i+1;}iofile.write((char*)&u,sizeof(u));iofile.close();cout<<"初始化成功!!!"<<endl;continue;}if(n==0){ return 0;}}return 0;}。
自动取款机(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(。
C语言课程计…………银行自动存取款机模拟
作者:周鸣需求分析:本程序设计的任务为银行自助存取款机,程序要求实现atm机的基本功能,如开户.查询.存款.取款.转账.容而生成操作日志。
2.概要设计:数据类型:int,char,FILE.主程序流程:int main ()1:进入dl()函数。
2:核对输入账户与密码。
3.核对成功则进入dljm()函数。
4.选择操作功能。
5.完成操作,回到功能选择一栏。
6.可选择退卡以结束所有操作。
标准函数名称和自定义名称:Void dl ()V oid dljm ()V oid cx()V oid ck()V oid qk()V oid zz()3.主程序的流程及各函数之间的流程关系。
(用图来描述)进入dl函数输入账号输入密码进入dljm函数选择atm机功能1 2 34 5进入cx函数进入qk函数进入ck函数进入zz函数进入tk函数开始程序#include<stdio.h>#include<stdlib.h>int x,k;void dl();int dljm();void cx();void qk();void zz();void ck();void tk();FILE *fp;FILE *fg;struct atm{char name[10];int account;short password;float money;}at[10]={{"AA",1,1,4000},{"BB",2,2,4000},{"CC",3,3,4000},{"DD",4,4,4000},{"EE",5,5,4000},{"GG",6,6,4000},{"HH",7,7,4000},{"II",8,8,4000},{"JJ",9,9,4000},{"kk",10,10,4000}};void main(){char filename[]="zhouming.txt";char mode[]="w",b[]="AA 1 1 4000 BB 2 2 4000 CC 3 3 4000 DD 4 4 4000 EE 5 5 4000 GG 6 6 4000 HH 7 7 4000 II 8 8 4000 JJ 9 9 4000 KK 10 10 4000";clrscr();if((fg=fopen("x.txt","a+"))==NULL){printf("cannot open the file zhouming!strike any exit");getch();exit(1);}dl();if((fp=fopen(filename,mode))!=NULL){fputs(b,fp);fclose(fp);} }void dl(){int account,i,j;short password;printf("please enter the card number:");fprintf(fg,"please enter the card number:\n");scanf("%d",&account);fprintf(fg,"%d\n",account);if(account>10)dl();for(k=0;k<=9;k++){if(account==at[k].account){ x=k;fprintf(fp,"please enter the card number:%d\n"); printf("please enter password:");fprintf(fg,"please enter password:\n");scanf("%d",&password);fprintf(fg,"%d\n",password);for(i=1;i<4;i++){if(password==at[k].password){ fprintf(fg,"please enter the password:%d\n");printf("log in successfully,please select operation\n"); fprintf(fg,"log in successfully,please select operation\n"); dljm();break;}else{printf("password input error\n");printf("enter password again!");fprintf(fg,"password input error\n");fprintf(fg,"enter password again!\n");scanf("%d",&password);fprintf(fg,"%d\n",password);while(i==3){system("cls");main(); } } }}}}int dljm(){int z;printf("query balance-----------1\n");printf("withdrawals-----------2\n");printf("deposit----------3\n");printf("transfer----------4\n");printf("take the card--------5\n");fprintf(fg,"query balance-----------1\n");fprintf(fg,"withdrawals-----------2\n");fprintf(fg,"deposit------------3\n");fprintf(fg,"transfer---------4\n");fprintf(fg,"take the card-----------5\n");while(1){printf("\n\n please enter serial number:");fprintf(fg,"\n\n please enter sercial number:");scanf("%d",&z);fprintf(fg,"%d\n",z);switch(z){case 1:{fprintf(fg,"query balance\n");cx();break;}case 2:{fprintf(fg,"withdrawals\n");qk();break;}case 3:{fprintf(fg,"deposit \n");ck();break;}case 4:{fprintf(fg,"transfer\n");zz();break;}case 5:{fprintf(fg,"take the card\n");tk();break;}default:{fprintf(fg,"operation sequence number is illegal");printf("operation sequence number is illeagal!");}return; } }}void cx(){printf("%s your card balance:%7.2f yuan",at[k].name,at[k].money); fprintf(fg,"%s your card balance:%7.2f yuan",at[k].name,at[k].money);}void qk(){float a;printf("please enter withdrawal amount:");fprintf(fg,"please enter withdrawal amount:");scanf("%f",&a);fprintf(fg,"%f\n",a);if(a>at[k].money){printf("lack of balance");fprintf(fg,"lack of banlance");}else{printf("you have taken out %7.2f yuan ",a);fprintf(fg,"you have taken out %7.2f yuan",a);at[k].money=at[k].money-a;} }void zz(){float a;int t,account,i=1;printf("please enter transfer amount:");fprintf(fg,"please enter transfer amount:");scanf("%f",&a);fprintf(fg,"%\nf",a);if(a>at[k].money){printf("lack of money,please input again!");fprintf(fg,"lack of money,please input again!");scanf("%f",&a);fprintf(fg,"%f\n",a);}printf("please enter the transfered bank account:");fprintf(fg,"please enter the transfered bank account:");scanf("%d",&account);fprintf(fg,"%d\n",account);while(i!=3){ for(t=0;t<=9;t++){ if(account==at[t].account){ x=t;at[k].money=at[k].money-a;at[t].money=at[t].money+a;printf("transfer success !");fprintf(fg,"transfer success!");dljm();}if(t>9)break;}i=i+1;printf("error! input again!\n");fprintf(fg,"error!input again!\n");scanf("%d",&account);fprintf(fg,"%d\n",account);if(i==3){ system("cls");main();}}}void ck(){int a;int i;printf("please put the money into the slot\n");fprintf(fg,"please put the money into the slot\n");for(i=0;i<1000000000000000;i++);scanf("%d",&a);fprintf(fg,"%d\n",a);printf("please make sure the number of bill !\n");fprintf(fg,"please make sure the number of bill!\n");at[k].money=at[k].money+a;fprintf(fg,"operation is successful");printf("operation is successful"); }void tk(){ int i,j;printf("please get back your card \n");fprintf(fg,"please get back your card\n");for(i=0;i<1000000000000000;i++);system("cls");main();printf("enter ,if you want go out ");scanf("%d",&j);if(j==100)exit(1);}4.调试分析:(1)调试发现许多语法或逻辑错误,然都已搞定。
C语言程序设计报告(模拟ATM取款机)
仲恺农业工程学院工程实训报告ATM取款机课程名称C语言程序设计工程实训姓名林少烈院(系)计算机科学与工程学院专业班级计算机113班学号 4317指导教师王成仲恺农业工程学院教务处制目录1 需求分析........................................................... 错误!未定义书签。
2 系统总框图和功能模块说明........................................... 错误!未定义书签。
系统总框图...................................................... 错误!未定义书签。
功能模块说明.................................................... 错误!未定义书签。
3 系统设计........................................................... 错误!未定义书签。
主要结构体....................................................... 错误!未定义书签。
主要功能函数...................................................... 错误!未定义书签。
关键函数的流程图................................................. 错误!未定义书签。
4 系统调试........................................................... 错误!未定义书签。
5 总结............................................................... 错误!未定义书签。
6 源程序清单......................................................... 错误!未定义书签。
c语言银行自动存取款机模拟
XX航空航天大学课程设计任务书学院:自动化学院专业:测控技术与仪器班级:04070101 学号:21 题目:自动存取款机模拟一、课程设计时间2011~12第1学期第4周,共计1周,20学时。
二、课程设计内容请你模仿自动存取款机系统,用C语言编写软件完成以下任务:1.登陆功能:某个用户输入账户名和密码,可以登陆ATM。
注意:应有多个用户,并把信息保存在文件中。
2.查询功能:登陆后,可以查询存款余额。
3.存款功能:登陆后,可以向账户中存款。
4.取款功能:登陆后,可以取款。
注意:取款金额不能超过存款金额。
提示:用户(账号、密码、存款余额、利率、开户银行)三、课程设计要求1.程序质量:✧贯彻结构化的程序设计思想。
✧用户界面友好,功能明确,操作方便。
✧用户界面中的菜单至少应包括、“数据输入”、“数据保存”、“信息查询”、“数据修改”、“退出”5项。
✧代码应适当缩进,并给出必要的注释,以增强程序的可读性。
2.课程设计说明书:课程结束后,上交课程设计说明书和源程序。
课程设计说明书的内容参见提供的模板。
四、指导教师和学生签字指导教师:学生签名:五、成绩六、教师评语目录一、需求分析1二、设计分析2三、主要界面截图4四、技术要点5五、个人总结7六、参考文献8七、源程序8一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。
该系统是一个较典型的银行存取款模拟系统,其使用者被假定为银行信用卡用户,系统应该具有安全、稳定、功能齐全的特点。
1. 安全性分析银行存取款机的数据涉及到取款机内储存的所有用户,数据量较大且对XX性的需求很高,所以要通过设置密码等手段确保数据不能被随意的删减和修改。
2. 稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。
3.主要功能分析(1)账号及密码输入:允许用户输入账号、密码,对用户由于疏忽录入的非法数据,能够及时提示并更正。
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)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、课题要求1、当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录A TM柜员机系统。
2、查询余额:初始余额为10000元。
3、ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。
4、ATM存款:不能出现负存款。
5、修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。
二、代码#include "stdafx.h"#include "stdio.h"#include "windows.h"#include "stdlib.h"#include "conio.h"void gotoxy(int x,int y); //光标位置函数void enter_ATM(); //账号输入函数void input_code(); //密码输入函数void caozuo(); //基本操作界面void qukuan(); //取款函数void success(); //操作成功函数void delay(); //延时函数void yu_e(); //余额查询函数void cunkuan(); //存款函数void panduan(long int z); //判断取款是否合法函数void exit(); //退出界面函数void mima(); //密码修改void zhuangyi();long int CODE=123456,YU_E=10000;//=========================主函数========================//main(){enter_ATM();caozuo();}//======================================================////==================================柜台机账号输入函数=======================================//void enter_ATM(){system("cls");printf("********************************\n");printf("* *\n");printf("* 欢迎使用A TM 柜台机*\n");printf("* 请输入卡号*\n");printf("* *\n");printf("* 取消确定*\n");printf("* *\n");printf("********************************\n");long int user;gotoxy(14,4);scanf("%d",&user);while(user!=123456){system("cls");printf("********************************\n");printf("* *\n");printf("* 账户不存在,请从新输入*\n");printf("* *\n");printf("* *\n");printf("* 取消确定*\n");printf("* *\n");printf("********************************\n");gotoxy(13,3);scanf("%d",&user);}input_code();}//========================================================================= =================////=======================================密码输入函数========================================//void input_code(){long int code;int temp=3,time;system("cls");printf("********************************\n");printf("* *\n");printf("* 请输入密码*\n");printf("* *\n");printf("* *\n");printf("* 取消确定*\n");printf("* *\n");printf("********************************\n");gotoxy(14,3);scanf("%d",&code);while(code!=CODE){temp--;if(temp==0){for(time=5;time>0;time--){system("cls");printf("********************************\n");printf("* *\n");printf("* 您已经3 次输入密码*\n");printf("* 系统将退出操作*\n");printf("* *\n");printf("* ");printf("%d",time);printf(" *\n");printf("* *\n");printf("********************************\n");delay();}enter_ATM();}system("cls");printf("********************************\n");printf("* *\n");printf("* 密码错误,请重新输入*\n");printf("* 您还有");printf("%d",temp);printf(" 次机会*\n");printf("* *\n");printf("* 取消确定*\n");printf("* *\n");printf("********************************\n");gotoxy(14,4);scanf("%d",&code);}caozuo();}//========================================================================= ============////============================================主操作界面函数========================================//void caozuo(){system("cls");printf("********************************\n");printf("* 请选择一下业务*\n");printf("* 1.修改密码*\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");}}//========================================================================= =========================////==============================密码修改函数==============================// void mima(){long int mm1,mm2,mm3;char temp;system("cls");printf("********************************\n");printf("* *\n");printf("* 旧密码: *\n");printf("* *\n");printf("* 新密码: *\n");printf("* 确认新密码: *\n");printf("* *\n");printf("********************************\n");gotoxy(15,2);scanf("%d",&mm1);gotoxy(15,4);scanf("%d",&mm2);gotoxy(15,5);scanf("%d",&mm3);if(mm1!=CODE){system("cls");printf("********************************\n"); printf("* *\n"); printf("* 旧密码错误*\n"); printf("* *\n"); printf("* 请重新输入!*\n"); printf("* *\n"); printf("* *\n"); printf("********************************\n"); delay();delay();zhuangyi();}if(mm2!=mm3){system("cls");printf("********************************\n"); printf("* *\n"); printf("* 确认密码不一致*\n"); printf("* *\n"); printf("* 请重新输入!*\n"); printf("* *\n"); printf("* *\n"); printf("********************************\n"); delay();delay();zhuangyi();}if(mm2<100000){system("cls");printf("********************************\n"); printf("* *\n"); printf("* 密码必须大于或等于6位数*\n"); printf("* *\n"); printf("* 请重新输入!*\n"); printf("* *\n"); printf("* *\n"); printf("********************************\n"); delay();delay();zhuangyi();}temp=mm2%111111;if(temp==0){system("cls");printf("********************************\n");printf("* *\n");printf("* 密码过于简单*\n");printf("* *\n");printf("* 请重新输入!*\n");printf("* *\n");printf("* *\n");printf("********************************\n");delay();delay();zhuangyi();}CODE=mm2;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;}}//======================================================================////==========================余额查询函数============================//void yu_e(){system("cls");printf("********************************\n");printf("* *\n");printf("* *\n");printf("* 系统正在查询*\n");printf("* 请稍候... *\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;}}//==================================================================////===================================取款函数====================================//void qukuan(){long int temp;system("cls");printf("********************************\n");printf("* 请选择您要取款的金额*\n");printf("* 1.100 2.200 *\n");printf("* 3.500 4.800 *\n");printf("* 5.1000 6.其它*\n");printf("* *\n");printf("* 7.返回8.退出*\n");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;}}//========================================================================= =======////======================================判断取款是否合法函数==================================//void panduan(long int z){int beishu;if(z>YU_E){system("cls");printf("********************************\n");printf("* *\n");printf("* 余额不足!*\n");printf("* 请重新操作*\n");printf("* *\n");printf("* 1.返回 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("* 本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();}//========================================================================= =================////==============================================存款函数=============================================//void cunkuan(){long int temp;system("cls");printf("********************************\n");printf("* *\n");printf("* 请放入人民币*\n");printf("* 取消确定*\n");printf("* *\n");printf("* *\n");printf("********************************\n");gotoxy(14,3);scanf("%d",&temp);while(temp<0){system("cls");printf("********************************\n");printf("* *\n");printf("* 非法存款*\n");printf("* 请重新放入人民币*\n");printf("* *\n");printf("* 取消确定*\n");printf("* *\n");printf("********************************\n");gotoxy(14,4);scanf("%d",&temp);}YU_E=YU_E+temp;success();}//========================================================================= ========================////===================================光标位置函数=========================================//void gotoxy(int x,int y){COORD coord;coord.X=x;coord.Y=y;SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), coord );}//========================================================================= ==============////===========================================简答延时函数===========================================//void delay(){int bl2;for(bl1=655356;bl1>0;bl1--){for(bl2=410;bl2>0;bl2--);}}//========================================================================= ==========================////=======================操作成功函数===========================//void success(){system("cls");printf("********************************\n");printf("* *\n");printf("* *\n");printf("* 系统正在处理*\n");printf("* 请稍候... *\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;}}//==============================================================////==========================系统退出函数===========================//void exit(){printf("********************************\n");printf("* *\n");printf("* *\n");printf("* 欢迎您的再次使用*\n");printf("* 系统正在退出... *\n");printf("* *\n");printf("* *\n");printf("********************************\n");delay();delay();enter_ATM();}//================================================================////============== 简单转移函数=============//void zhuangyi(){mima();}//========================================//三、部分效果截图。