C语言程序设计报告(模拟ATM取款机)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
仲恺农业工程学院工程实训报告
ATM取款机
课程名称C语言程序设计工程实训
姓名林少烈
院(系)计算机科学与工程学院
专业班级计算机113班
学号************
指导教师王成
仲恺农业工程学院教务处制
目录
1 需求分析 (1)
2 系统总框图和功能模块说明 (1)
2.1 系统总框图 (1)
2.2 功能模块说明 (1)
3 系统设计 (2)
3.1 主要结构体 (2)
3.2主要功能函数 (2)
3.3 关键函数的流程图 (3)
4 系统调试 (11)
5 总结 (21)
6 源程序清单 (23)
6.1头文件 (23)
6.2主程序 (23)
6.3 解除被冻结用户 (40)
6.4 用户注册 (41)
1 需求分析
所设计的ATM取款机应具备以下功能:
●插入银行卡(用账号输入的方式代替);
●密码的输入;
●用户信息查询;
●用户余额查询;
●取款;
●转账;
●修改密码;
●退卡。
2 系统总框图和功能模块说明
2.1 系统总框图
图1 系统总框图
2.2 功能模块说明
➢输入用户账号模块:在运行时,完成用户账号的输入(代替插卡);
➢输入账号密码模块:①在输入账号之后,完成用户密码的输入;②在修改密码的过程中,完成
用户输入旧密码的功能;
➢信息读取功能模块:完成用户信息的读取;
➢冻结账号功能模块:当输入密码3次错误时,冻结用户账号:
➢查询用户信息模块:完成用户的信息查询(不包括余额查询);
➢查询余额功能模块:完成用户余额的查询;
➢取款功能模块:完成取款功能模块:
➢转账功能模块:完成转职功能;
➢修改密码功能模块:完成用户修改密码功能;
➢退卡功能模块:完成退卡功能(即:退出程序功能)。
3 系统设计
3.1 主要结构体
用户账号、姓名、密码、余额
struct User //用户数据
{
char num[20]; //用户账号
char name[10]; //姓名
char password[7]; //密码
float balance; //余额
};
3.2主要功能函数
void read_info(); //用户信息读取
void input_num(char * num); //输入账号
void now_exist(char * num); //判断是否被冻结或不存在void existed(char * num);
void input_password(char * p_word,char * W); //输入密码
void face(); //界面显示
void balance_refer(); //余额查询
void choose(int c); //菜单选择void draw_money(); //取款
void set_password(); //修改密码void input_new_password(char * old_password); //设置新密码void tran_account(); //转账
void stamp(); //打印单条void info_refer(); //信息查询void out(); //退出程序void lock(); //冻结账号void save_info(); //存储信息
3.3 关键函数的流程图
N
now_exited 函数流程图
input_password 流程图
choose 函数流程图
draw_money 函数流程图
int i=0;
打开文件
printf("It cannot open !");
!feof(fp)
读取文件
关闭文件
读取文件数据函数流程input_new_password 函数流程图
int i;
i=0
i<12
产生随机数
i++
random[i]='\0';
打开文件进行写入
printf("It cannot open !");
i=0
i
i++
fclose(fp);
lock 函数流程图save_info 函数流程图
4 系统调试
首先运行程序,系统提示输入账号。
(1)当输入错误账号,系统提示:用户不存在,请从新输入。,(2)当输入错误的密码时,系统提示:密码有误,请重新输入。(3)当输入正确账号与密码时,进入主页面。
(4)主界面
(5)在主界面选择数字1,进入查询余额界面,界面显示余额。按任意键返回。
(6)在主页面选择数字2,进入取款界面,系统提示输入取款的金额,当输入不是整百数是,系统提示请输入正确的金额,请重新输入。
(8)当输入负数时,系统提示:请输入正确的金额,请重新输入。(9)当输入超过卡里余额的数,系统会提示余额不足,请重新输入。
2
(10)当输入超过3000的数时,系统会提示:对不起,一次最多能取3000元,请重新输入。