精选优质文档-----倾情为你奉上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字);l 进入程序,menu1可选择登录、注册功能l 选择登录,输入账号密码,通过输入内容与文件的匹配,判断是否成功登录若登录失败,则重新选择l 选择注册,输入账号密码,写入文件中l 进入menu2,有五大功能选择,输入对应的序列号进入l 余额查询功能输出账号所对应的余额l 取款功能,需要安装要求取出格式化的金额l 存款功能,选择金额,若超过存款,自动报错存储成功后,在屏幕上显示余额并可在txt中看到对应数目的增加l 修改密码功能,输入当前密码,输入新密码,并进行确认即修改成功l 转账功能,输入对方卡号,核程序核对卡号是否存在,选择金额转账,对应存款的减少会反映在屏幕的余额上l 退出功能,任意键退出程序l 帮助功能,介绍了本程序的相关信息3)采用的主要技术(限150到200字);答:主要采用模块化管理代码使用结构体对文本信息进行操作、运用文件操作相关函数如fwrite()、fread()、fgets()、fputs()、fgetc()、fputc()、fopen()、fclose()......并使用指针操作数值。
附:程序代码#include #include #include #include#include#define N 3void enterzhanghao(); //ATM账号输入函数 void inputmima(); //密码输入函数 void menu(); //操作界面 void Withdraw(); //取款函数 void daly(); //延时函数 void yuer(); //余额查询函数 void Desposit(); //存款函数 int quit(); //退出界面函数 void change(); //密码修改 void read(); //文件读取函数 void write(); //文件写入函数void write2(float h); //流水账函数void tran_account();//转账函数void enter();//登录函数void flesh();//注册函数void help();//帮助typedef struct{ int num; int password; double accounte;}atm;atm ATM[N] = { { 10001, , 10000 }, { 10002, , 20000 }, { 10003, , 30000 } };typedef struct{ int year; int month; int day;}riqi;int k;int main(){ enterzhanghao();}//ATM账号输入函数void enterzhanghao(){ read(); printf("\t\t\t\t\t**************************************\n"); printf("\t\t\t\t\t-> 欢迎使用ATM机模拟操作的程序 <-\n"); printf("\t\t\t\t\t-> 1、登录 <-\n"); printf("\t\t\t\t\t-> 2、注册 <-\n"); printf("\t\t\t\t\t**************************************\n"); printf("请输入对应序号:"); int k; scanf("%d", &k); switch (k){ case 1:enter(); break; case 2:flesh(); break; }} void enter() { system("cls"); int user; printf("请输入账号:"); scanf("%d", &user); if (user == 0) { printf("\t\t\t\t\t* 账号错误 *\t\t\t\t\t\n"); enterzhanghao(); } else if (user != (ATM[k].num)) { for (k = 1; k < N; k++) { if (user == (ATM[k].num)) inputmima(); } system("cls"); printf("\t\t\t\t\t* 账户不存在,请从新输入 *\t\t\t\t\t\n"); enterzhanghao(); } else inputmima(); } void flesh() { system("cls"); printf("\t\t\t\t\t请输入账号:"); scanf("%f", &ATM[k].num); printf("\t\t\t\t\t请输入密码:"); scanf("%f", &ATM[k].password); write(); }//密码输入函数void inputmima(){ int code; int temp = 3; read(); system("cls"); printf("\t\t\t\t\t* 请输入密码 *\t\t\t\t\n"); scanf("%d", &code); while (code != ATM[k].password) { temp--; system("cls"); printf("\t\t\t\t\t* 密码错误,请重新输入 *\t\t\t\t\n"); printf("\t\t\t\t\t* 您还有: "); printf("%d", temp); printf(" 次机会 *\n"); scanf("%d", &code); if (temp == 1) { system("cls"); printf("\t\t\t\t\t* 您已经 3 次输入密码错误 *\t\t\t\t\n"); printf("\t\t\t\t\t* 系统将退出操作 *\t\t\t\t\n"); daly(); enterzhanghao(); } } menu();}//操作界面 void menu(){ system("cls"); int h = 1, x; while (h) { printf("\t\t\t\t\t----------------------\n"); printf("\n"); printf("\t\t\t\t\t1、\t查询余额\n "); printf("\t\t\t\t\t2、\t取款\n "); printf("\t\t\t\t\t3、\t存款\n "); printf("\t\t\t\t\t4、\t修改密码 \n "); printf("\t\t\t\t\t5、\t转账 \n "); printf("\t\t\t\t\t6、\t退出登录\n "); printf("\t\t\t\t\t7、\t帮助 \n "); printf("\n"); printf("\t\t\t\t\t----------------------\n\n "); scanf("%d", &x); switch (x) { case 1:yuer(); break; case 2:Withdraw(); break; case 3:Desposit(); break; case 4:change(); break; case 5:tran_account(); break; case 6:quit(); h = quit(); break; case 7:help(); break; } }}//取款函数 void Withdraw(){ system("cls"); float i; int y; printf("\t\t\t\t\t请输入你要取款的金额:\n"); printf("\t\t\t\t\t---------------------- \n"); printf("\n"); printf("\t\t\t\t\t1、\t100\n"); printf("\t\t\t\t\t2、\t200\n "); printf("\t\t\t\t\t3、\t500\n "); printf("\t\t\t\t\t4、\t1000\n "); printf("\t\t\t\t\t5、\t2000\n ");。