Java I 实训报告

本文由用户“tiantianwlx”分享发布 更新时间:2021-03-04 13:14:24 举报文档

以下为《Java I 实训报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

成 绩





批阅教师

薛某某、杨某某



日 期

2021.1.12





实训报告

课程名称: Java I实训

专业班级: 软件1911

学 号: 20***

学生姓名: 刘某某

教 师: 薛某某、杨某某

2021 年 1 月 12 日

目录

模块一、创建程序包、Account类 1

1.1创建程序包 1

1.2创建Account类 1

1.3TestBanking1测试类 1

1.4运行结果 2

模块二、添加Customer 类 2

2.1创建Customer类 2

2.2TestBanking2测试类 2

2.3运行结果 3

模块三、修改存款、提款方法 3

3.1修改Account类 3

3.2TestBanking3测试类 3

3.3运行结果 4

模块四、用数组表示多重性 4

4.1 创建bank类 4

4.2TestBanking4测试类 4

4.3运行结果 5

模块五、Account类的两个子类 5

5.1创建子类 5

5.2TestBanking5测试类 6

5.3运行结果 6

5.4扩展练习1运行结果 6

模块六、单例模式 6

6.1创建 CustomerReport 类 6

6.2TestBanking6测试类 7

6.3运行结果 7

模块七、自定义异常 8

7.1创建OverdraftException类 8

7.2TestBanking7测试类 8

7.3运行结果 9

模块八、集合框架 9

8.1修改bank类 9

8.2TestBanking8测试类 10

8.3运行结果展示 10

模块九、增加交易记录 10

9.1创建Transaction类 10

9.2TestBanking9测试类 11

9.3运行结果 11

模块十一、模拟ATM机 11

11.1解题思路 11

11.2运行结果 11

心得体会 12

模块一、创建程序包、Account类

1.1创建程序包

首先点击file,创建好一个新项目,在这个项目里,点击新建一个名为banking的package(包),之后所写的相关类和测试类都创建在同一个包里,方便修改和访问。

1.2创建Account类



按图要求,创建该Account类。

a. 声明一个私有对象属性:balance,这个属性保留了银行帐户的当前余额。

b. 声明一个带有一个参数(init_balance)的公有构造器,这个参数为 balance 属性赋值。

c. 声明一个公有方法 getBalance,该方法用于获取经常余额。

d. 声明一个公有方法 deposit,该方法向当前余额增加金额。

e. 声明一个公有方法 withdraw 从当前余额中减去金额。

部分代码:

public Account(double init_balance) {

this.balance=init_balance;}

public double getBalance() {

return this.balance;}

public void deposit(double amt) {

this.balance=balance+amt;}

public void withdraw(double amt) {

this.balance=balance-amt;}

1.3TestBanking1测试类

在该类中,创建好一个新的账户对象,该账户不断进行取钱存钱操作,最后输出该账户余额。

部分代码:

Account account=new Account(500);

System.out.println("Creating an account with a "+account.getBalance()+"balance");

System.out.println("Withdraw 150.00");

account.withdraw(150);

System.out.println("Deposit 22.50 ");

account.deposit(22.50);

System.out.println("Withdraw 47.62");

account.withdraw(47.62);

System.out.println("The account has a balance of

1.4运行结果



模块二、添加Customer 类

2.1创建Customer类



在banking包下的创建Customer类,该类中包含account对象。

a. 声明三个私有对象属性:firstName、lastName 和 account。

b. 声明一个公有构造器,这个构造器带有两个代表对象属性的参数。

c. 声明两个公有存取器来访问该对象属性,方法 getFirstName 和 getLastName 返回相应的属性。

d. 声明 setAccount 方法来对 account 属性赋值。

e. 声明 getAccount 方法以获取 account 属性。

2. 创建TestBanking2类,对Customer和Account进行测试。

部分代码:

public Customer(String f,String l) {

this.firstName=f;

this.lastName=l; }

public void setAccount(Account acct) {

this.account=acct; }

public Account getAccount() {

return account; }

2.2TestBanking2测试类

在该类中创建一个新的用户对象,在该用户对象中创建一个账户,然后不断进行取款存款操作,最后显示该用户的名字及账户所剩余额。

部分代码:

Customer customer=new Customer("smith","jane");

Account account=new Account(500);

customer.setAccount(account);

customer.getAccount().withdraw(150.00);

customer.getAccount().deposit(22.50);

customer.getAccount().withdraw(47.62);

System.out.print("Customer "+customer.getFirstName()+" "+customer.getLastName()+" has a balance of"+" "+customer.getAccount().getBalance());

2.3运行结果



模块三、修改存款、提款方法

3.1修改Account类



a. 修改 deposit 方法返回 true(意味所有存款是成功的)。

b. 修改 withdraw 方法来检查提款数目是否大于余额。如果amt小于 balance, 则从余额中扣除提款数目并返回 true,否则余额不变返回 false。

部分代码:

public boolean deposit(double amt) {

this.balance=balance+amt;

return true; }

public boolean withdraw(double amt) {

if(amt=amt) {

amt-=balance;

overdarftProtection-=amt;

this.balance=0;

return true;}

return false;} (CheckingAccount类)

public SavingAccount(double balance,double interest_rate) {

super(balance);

this.interestRate=interest_rate;}(SavingAccount类)

5.2TestBanking5测试类

部分代码:

CheckingAccount checkingAccount=new CheckingAccount(500,500);

Customer customer=new Customer("Smith","Jane");

customer.setAccount(checkingAccount);

System.out.println("Withdraw150.00:"+customer.getAccount().withdraw(500));

System.out.println("Creating["+customer.getFirstName()+","+customer.getLastName()+"]"+"has a balance of "+customer.getAccount().getBalance()+"\n");

5.3运行结果



5.4扩展练习1运行结果



模块六、单例模式

6.1创建 CustomerReport 类

a.在前面的银行项目练习中,“客户报告”嵌入在 TestBanking 应用程序的 main 方法中。在这个练习中,该代码被放在banking 包的 CustomerReport 类中。 修改TestBanking 类的代码,通过下面的代码来生成报表

report.generateReport();// Generate a report

b.修改Bank类,使其使用单一银行对象。

1.修改 Bank 类,创建名为 getBank() 的公有静态方法,它返回一个 Bank 类的实例。

2.单个的实例应是静态属性,且为私有。同样,Bank构造器也应该是私有的。



部分代码:

for (int cust_idx = 0; cust_idx < bank.getNumberOfCustomers(); cust_idx++) {

customer = bank.getCustomer(cust_idx);

System.out.println();

System.out.println("Customer: " + customer.getLastName() +",+customer.getFirstName());

for (int acct_idx = 0; acct_idx < customer.getNumOfAccounts(); acct_idx++) {

Account account = customer.gteAccount(acct_idx);

String account_type = " ";

if (account instanceof SavingAccount) {

account_type = "SavingAccount";}

if (account instanceof CheckingAccount) {

account_type = "CheckingAccount";}

System.out.println(account_type + ": current balance is "

+ currency_format.format(account.getBalance()));}

}

6.2TestBanking6测试类

部分代码:

Bank bank = Bank.getBank();

Customer customer;

CustomerReport report = new CustomerReport();

bank.addCustomers("Jane", "Simms");

customer = bank.getCustomer(0);

customer.addAccount(new SavingAccount(500.00, 0.05));

customer.addAccount(new CheckingAccount(200.00, 400.00));

report.generateReport();

6.3运行结果



模块七、自定义异常

7.1创建OverdraftException类



创建 OverdraftException 类

1.banking.domain包中建立一个公有类 OverdraftException. 这个类RuntimeException类。

2.添加一个 double 类型的私有属性 deficit.增加一个公有访问方法 getDeficit。

3 添加一个有两个参数的共有构造器。deficit 参数初始化 deficit 属性

修改 Account 类 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 stomer类以及transaction类的方法,用命令行实现查看账户余额、存款、取款、查看交易记录、退出账户等功能。

11.2运行结果



心得体会

在此次实训中,虽然时间紧凑,但还是完成了实训任务。理论和实践结合,其中的每一天都会收获一点东西。

在学习Java时,不能光听光看不去做,还是需要实践去做,毕竟实践才能出真知。第八章之前,我们学过的C语言的基本知识还能运用到Java中去做作业,但是第九章开始,对概念逐渐模糊,编程习题也不好下手去做,越来越难以理解。但是在此次实训过程中,通过实训模块要求,一点点的循序渐进,对类、继承、多态、方法重写、重载等有了新的认识。其中也遇到了不少问题,比如单例模式是怎样操作的;类的实例化,不实例化就会出现空指针异常等问题;还有异常、异常的处理等。虽然麻烦,但最后还是一一解决了。这次实训,我也初步掌握了类、继承、重写、重载等的知识,虽然还是不能去熟练的运用,但是把它学会了,也有了新的认识以及理解。

总而言之,实际操作才能对模糊的概念产生新的理解,自己也才能更好的去学习自己平时不会的东西,只有多看多练才能对这门课程越来越熟练,学的越来越好。

[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。

  1. 附3 疫情上报流程一览表
  2. 仁爱英语九年级上册Unit-2-Topic-3-Section-A
  3. 产品检验报告模板
  4. 大学英语四级考试真题 参考答案(17年6月卷1)
  5. 大学英语四级考试真题及参考答案 (3)
  6. 42号传祺(英文剧本)
  7. 课件Making the news
  8. Unit5综合能力检测卷听力答案
  9. 英语四级押题卷(A) 答案
  10. 2018年12月大学英语四级考试真题答案与详解
  11. 高二英语课件 Unit2
  12. 第四单元reading课件
  13. 必修五uint 4making the news教学设计
  14. 七年级英语试卷
  15. 4425
  16. XX新东方国外考试部雅思写作项目李某某185篇范文
  17. HLPE-Report-8_EN
  18. WHO新冠疫苗技术线路(英文)

以上为《Java I 实训报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览