
账户类(ATM)三版方案
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
《账户类(ATM)三版方案》旨在提供一套全面升级的自动取款机操作规范与用户服务流程,以增强金融交易的安全性、便捷性和用户体验。
**账户类(满分50分)**
版本1:满分10分
设计一个名为Account1的类,包含以下内容:
- 一个私有的整型数据域id,默认值为0且长度不超过6位。
- 一个私有双精度浮点类型的数据域balance,默认值设为0。
- 一个存储当前利率(默认值为0)的double类型的私有数据域annualInterestRate。假设所有账户拥有相同的利率。
- 一个用于记录开户日期的Date类型私有数据域dateCreated。
- 提供无参数构造方法以创建具有默认设置的新账户对象。
- 构造函数,允许用户通过提供特定id和初始余额来初始化一个新的Account1实例(初始余额不能为负数)。
- id、balance 和annualInterestRate的访问器与修改器方法。
- dateCreated数据域的只读访问器方法。
- 返回月利率的方法getMonthlyInterestRate()。
- 从账户中提取特定金额的方法withdraw(amount)。
- 向账户存入特定金额的方法deposit(amount)。
注意:double类型的数据保留两位小数,并且成员函数和数据领域应进行基本的合理性检验。
版本2:满分20分
扩展Account1类到名为Account2的新类,具体需求如下:
- Account2继承自Account1。
- 新增一个私有的字符串类型的密码域password。该字段只能包含字母或数字字符,并且长度限制在6至10位之间。显示时用*******代替实际值。
- 增加一个存储客户姓名的String类型私有数据属性name。
- 添加一个新的ArrayList 类型的数据成员transactions,用于保存客户的交易记录。需要创建Transaction类以实现此功能(参考教材中文版P327 或英文版P404)。
- 新增构造方法,允许用户通过提供初始余额来初始化Account2实例。账户的id值随机生成但不能与其他已存在的账户重复;如果提供的初始金额为负数,则抛出自定义异常并处理它。
- 重写withdraw() 方法以确保支取金额必须是100元的整倍数,且每日最大提取额度不超过5000元。不允许透支操作发生,并在每次交易后更新transactions 数组列表。
- 同样地,deposit方法也需要被修改,在执行存款动作时添加新的Transaction实例到数组中。
- 新增一个changePassword() 方法用于更改账户密码:只有当输入的旧密码正确且新密码符合规定(长度6至10位、仅包含字母或数字)并且两次输入一致的情况下才允许进行变更。
版本3:满分20分
基于Account2类,开发一款具有图形用户界面(GUI) 的ATM系统。模拟真实银行服务的操作流程,并实现如下功能:
- 界面设计应模仿实体键盘。
- 账户信息的存储与读取操作均通过名为accounts.dat的文件进行。
- 用户可以选择创建新账户、查询余额、提取现金、存款等基本金融服务,同时可以查看交易明细和修改密码。
- 所有用户行为的结果需要同步更新到accounts.dat 文件中对应账户的信息里。
全部评论 (0)


