C语言模拟ATM机

更新时间:2023-12-07 09:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

一、 实验目的

通过设计一个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次,否则无法进入系统; ? 应避免输入存款金额、取款金额为负数等异常情况的出现。

三、 程序已经实现的功能点

实验要求均已实现。此外还有:

1. 卡号、密码位数输错时,提示并返回重新输入, 2. 简化取款时的输入

3. 转账时,转账账户为原账户时,提示并返回重新输入 4. 在多个模块中添加了退出功能,无需回到主菜单即可退出系统 5. 在查询模块中加入了存取记录明细查询

四、 程序运行截图及说明

1. 登陆模块

1) 卡号不为16位时,输出提示并返回重新输入

2) 卡号不存在时,输出提示并返回重新输入

3) 密码位数输错时,输出提示并返回重新输入密码,不作为密码错误处理,也无需重新输入卡号

4) 密码连续输错三次时,锁定卡号,今日无法登录

2. 登录后的系统主菜单

3. 查询模块

1) 查询模块主菜单

2) 查询明细

4. 取款模块

1) 当余额不足50时,无法进入取款模块

本文来源:https://www.bwwdw.com/article/nq7t.html

Top