北京交通大学JAVA期末考试_JAVA考试题求助

本博客主要介绍了一项编程任务,涉及设计一个银行管理系统,包括Bank、Customer、Account、SavingsAccount和CheckingAccount类。系统需管理储户与账号,处理存款、取款业务,以及异常处理。此外,还需要实现用户界面和文件存储用户信息,并提供一个报表功能,显示每个储户的账号类别和余额。
摘要由CSDN通过智能技术生成

《Java程序设计教程》清华大学出版社北京交通大学出版社杨文军董玉涛主编第八章课后练习第7题某银行有许多储户,每个储户可以拥有一个或多个账号。现请你开发一个软件,管理银行储户与...

《Java程序设计教程》清华大学出版社 北京交通大学出版社 杨文军 董玉涛 主编

第八章 课后练习第7题

某银行有许多储户,每个储户可以拥有一个或多个账号。现请你开发一个软件,管理银行储户与账号业务。要求如下:

Bank类中有一个customers集合,用来存储所有的Customer(储户)对象,addCustomer()方法用语向该集合中添加储户,getCustomer()方法根据下标值获取某个储户,getNumOfCustomer()方法获取储户总数,getCustomers()方法返回储户列表,以便获得每个储户对象‘

Customer类有一个accounts集合,用来存储某个储户的所有Account(账号)对象,addAccount()方法用于向该集合中添加账号,getAccount()方法根据下标值获取该储户的某个账号,getNumOfAccounts()方法获取该储户的账号总数,getAccounts()方法返回该储户的账号Iterator,以便获得每个账号对象。

Account类是抽象类,有一个balance属性,代表余额。Deposit()方法表示存款,amount参数是存款额,Withdraw()方法表示取款,取款额amount如果超出了余额就会抛出透支异常,我们需要定义一个OverdraftException类来表示这个异常,当抛出异常时,不进行取款交易,并报告用户此项错误。

SavingsAccount类表示大额存款账号,继承Account,新增一个属性interestRate,代表利率。

CheckingAccount类表示大额存款账号,也继承Account,它有一个叫canOverdraft的属性,是一个boolean值,代表该账号能否透支(true——能,false——否);它还有一个叫maxOverdraft的属性,表示该账号允许的最大透支额。这个类的withdraw()方法(取款)需要考虑的因素比较多:在发生透支时,如果账号不允许透支(canOverdraft=false),则抛出异常并退出交易;如果允许透支(canOverdraft=true),但透支额(amount-balance)超出最大透支额的话,也抛出异常并退出交易;只有在不发生透支或透支额小于最大透支额时,交易才能正常进行。另外,在每次进行透支交易时,最大透支额(maxOverdraft)应作调整,以便使该账号的最大透支额随透支次数的增加而不断减少,从而避免透支的滥用,阻止信用膨胀。CheckingAccount类有两个构造方法,只带一个参数的构造方法用来初始化balance,同时设定canOverdraft=false,maxOverdraft=0.00.

CustomReport类用来显示每个储户的姓名及他所有的账号的类别和余额,以报表的形式输出。

根据以上描述,创建一个TestBanking类,并在其main方法中添加若干储户和账号,然后模拟存款,取款业务,并最终输出一张完整的报表。

要求:

1. 用文件来存储用户的所有信息。

2. 有用户图形界面。(最基本的:存钱、取钱、新增账号、新增账户,可以使用菜单来实现,也可以使用按钮来实现)。

采用以下表格进行模拟:

储户姓名 账号

Saving Account Checking Account

Jane Simms SavingsAccount(500.00,0.05) CheckingAccount(200.00,true,400.00)

Owen Bryant 无 CheckingAccount(200.00)

Tim Soley SavingsAccout(1500.00,0.05) CheckingAccount(300.00)

Maria Soley SavingsAccount(160.00,0.05) 与Tim Soley共享一个CheckingAccount

输出报表格式如下:

CUSTOMERS REPORT

储户姓名:Jane Simms

Savings Account:当前余额是¥****

Checking Account:当前余额是¥****

储户姓名:Owen Bryant

Checking Account:当前余额是¥****

储户姓名:Tim Soley

Savings Account:当前余额是¥****

Checking Account :当前余额是¥****

储户姓名:Maria Soley

Savings Account :当前余额是¥****

Checking Account :当前余额是¥****

展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值