天津理工大学Java实验3实验报告
java语言程序设计实验报告
![java语言程序设计实验报告](https://img.taocdn.com/s3/m/5c1a344fbb1aa8114431b90d6c85ec3a86c28b43.png)
java语言程序设计实验报告
《Java语言程序设计实验报告》
实验目的:通过本次实验,学生将学会使用Java语言进行程序设计,掌握Java
语言的基本语法和编程技巧,并能够编写简单的Java程序。
实验内容:本次实验主要包括以下内容:1. Java语言的基本语法和数据类型;2. Java程序的输入输出;3. Java程序的流程控制;4. Java程序的函数和类的定义;
5. Java程序的异常处理等。
实验步骤:1. 阅读相关的Java语言教材和资料,了解Java语言的基本概念和
语法规则;2. 编写简单的Java程序,包括输入输出、流程控制、函数和类的定
义等;3. 调试和运行编写的Java程序,查看程序的运行结果;4. 对程序进行优
化和改进,提高程序的效率和性能。
实验结果:通过本次实验,学生将能够熟练掌握Java语言的基本语法和编程技巧,能够编写简单的Java程序,并能够运用Java语言解决实际的问题。
实验总结:通过本次实验,学生将对Java语言有了更深入的了解,掌握了Java
语言的基本概念和编程技巧,能够独立编写简单的Java程序。
同时,学生也将
培养了良好的编程习惯和解决问题的能力,为今后的学习和工作打下了良好的
基础。
结语:通过本次实验,学生将能够熟练掌握Java语言的基本语法和编程技巧,
为今后的学习和工作打下了良好的基础。
同时,也希望学生能够在今后的学习
和工作中不断提高自己的编程能力,为科技创新和社会发展做出更大的贡献。
Java实验三实验报告1
![Java实验三实验报告1](https://img.taocdn.com/s3/m/358690eda1116c175f0e7cd184254b35eefd1aed.png)
Java实验三实验报告1一、实验目的本次 Java 实验的主要目的是深入理解和掌握 Java 中的面向对象编程概念,通过实际的编程实践,提高对类、对象、继承、多态等特性的运用能力,同时培养良好的编程习惯和代码规范。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers三、实验内容1、设计一个名为`Shape` 的抽象类,其中包含一个抽象方法`calculateArea()`用于计算图形的面积。
2、分别创建`Circle`(圆形)、`Rectangle`(矩形)和`Triangle`(三角形)类继承自`Shape` 类,并实现各自的`calculateArea()`方法来计算具体图形的面积。
3、创建一个测试类`TestShapes`,在其中创建不同图形的对象,并调用其计算面积的方法,输出结果。
四、实验步骤1、创建`Shape` 抽象类```javaabstract class Shape {abstract double calculateArea();}```2、创建`Circle` 类继承自`Shape` 类```javaclass Circle extends Shape {private double radius;public Circle(double radius) {thisradius = radius;}@Overridedouble calculateArea(){return MathPI radius radius;}}```3、创建`Rectangle` 类继承自`Shape` 类```javaclass Rectangle extends Shape {private double length;private double width;public Rectangle(double length, double width) {thislength = length;thiswidth = width;}@Overridedouble calculateArea(){return length width;}}```4、创建`Triangle` 类继承自`Shape` 类```javaclass Triangle extends Shape {private double base;private double height;public Triangle(double base, double height) {thisbase = base;thisheight = height;}@Overridedouble calculateArea(){return 05 base height;}}```5、创建测试类`TestShapes````javapublic class TestShapes {public static void main(String args) {Circle circle = new Circle(50);Rectangle rectangle = new Rectangle(40, 60);Triangle triangle = new Triangle(30, 80);Systemoutprintln("圆形的面积:"+ circlecalculateArea());Systemoutprintln("矩形的面积:"+ rectanglecalculateArea());Systemoutprintln("三角形的面积:"+trianglecalculateArea());}}```五、实验结果运行测试类`TestShapes` 后,输出结果如下:```圆形的面积:78539816矩形的面积:240三角形的面积:120```六、实验中遇到的问题及解决方法1、在编写抽象类和子类的代码时,一开始对于抽象方法的定义和实现理解不够清晰,导致代码出现错误。
java实验三报告模板
![java实验三报告模板](https://img.taocdn.com/s3/m/84b352aa650e52ea541898ad.png)
本文档如对你有帮助,请帮忙下载支持!计算机科学与技术系实验报级 15 软工2班号06孙魏东同组人员 实验日期、实验目的与要求(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要 求。
)目的:1. 掌握Java 类的结构、类的定义、方法和属性的定义以及对象的实现。
2. 掌握类及其成员修饰符的使用;掌握构造函数的使用;方法的参数传 递和返回值的用法。
3. 掌握类变量与实例变量,以及类方法与实例方法的区别。
要求: 1. 2. 3.4. 区别5. 应用程序中的其它类提供一些实用工具所用, 在Java 的类库中大量的静态方 法正是出于此目的而定义的。
)6. 程序应包括各个被调用方法的执行结果的显示。
7. 写出实验报告。
要求记录编译和执行Java 程序当中的系统错误信息提示,并给出解决办法。
(附运行界面、源代码) 。
专业名称 软件工程 课程名称面向对象程序设计项目名称实验三 类和对象 正确地定义类、方法和属性,要求属性均定义成私有的( Private )学会方法的参数传递和返回值的用法 熟练使用类及其成员修饰符类变量与实例变量,以及类方法与实例方法的使用(静态方法常常为二、实验内容(根据本次实验项目的具体任务和要求,完成相关内容,可包括:实验目的、原理、算法描述或流程图、源代码、实验运行步骤、关键技术分析、测试数据与实验结果、其他 )实验目的1:定义一个高校人员类School_Property,包含姓名、出生年月、性别、身份证号、手机号码,所在学校,入校时间,家庭地址等私有属性,以及访问属性的方法。
编写程序,创建一个高校人员类的对象,设置属性值,然后打印出该对象的各项属性信息。
原理:编写一个高校学生类School_Property,类里存放姓名name出生年月dateofbirth、性别sex、身份证号id、手机号码tel,所在学校school,入校时间entertime,家庭地址address 等私有属性,以及访问属性的方法getName(),getSex() 等。
JAVA实验报告三
![JAVA实验报告三](https://img.taocdn.com/s3/m/875089cd360cba1aa811da3f.png)
Java语言程序设计实验报告三班级:姓名:学号:一、实验教学目的与基本要求Java程序设计的实验是Java程序设计课程重要的实践教学环节。
实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。
充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。
本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java 语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。
本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。
(1)掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。
(2)具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。
(3)具有分析、寻找和排除程序中常见问题的能力。
二、实验内容与收获(5)Java图形界面的设计(AWT事件处理,使用Graphics类绘图,创建菜单)a)程序代码:package com;import java.awt.Button;import java.awt.Dimension;import java.awt.Frame;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;public class TestFram {public static void main(String[] args){Frame f=new Frame("测试程序");//创建一个窗口实例,标题为UGI应用程序f.setSize(500,500);f.setVisible(true);f.addWindowListener(new MyWindowListener());//注册事件监听器//f.addWindowListener(new MyWindowAdapter());//注册事件适配器}}/*-------事件监听器---------*/package com;import java.awt.Window;import java.awt.event.WindowEvent;import java.awt.event.WindowListener;public class MyWindowListener implements WindowListener{@Overridepublic void windowActivated(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowClosed(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowClosing(WindowEvent e) {// TODO Auto-generated method stube.getWindow().setVisible(false);//隐藏窗口((Window)e.getComponent()).dispose();//关闭窗口//另一种方式://((Window)e.getSource()).dispose();System.out.println("已经关闭窗口! ");System.exit(0);//关闭程序}@Overridepublic void windowDeactivated(WindowEvent e) { // TODO Auto-generated method stub}@Overridepublic void windowDeiconified(WindowEvent e) { // TODO Auto-generated method stub}@Overridepublic void windowIconified(WindowEvent e) {// TODO Auto-generated method stub}@Overridepublic void windowOpened(WindowEvent e) {// TODO Auto-generated method stub}}/*--------事件适配器-------*/package com;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;public class MyWindowAdapter extends WindowAdapter {public void windowClosing(WindowEvent e){System.out.println("事件适配器,已经执行!");e.getWindow().dispose();//关闭窗口System.exit(0);}}运行截图:图5.1 Frame打开图图5.2 利用事件监听器处理关闭事件图5.3利用事件适配器程序代码:package io;import java.awt.*;import java.awt.event.*;public class io{Frame f=new Frame("DrawLine");public void init(){f.setSize(500,500);f.setVisible(true);f.addMouseListener(new MouseAdapter(){public void mouseReleased(MouseEvent e){Graphics g=f.getGraphics();Graphics h=f.getGraphics();h.setColor(Color.red);g.setColor(Color.red);g.drawString(new String("(100,100)"),100,100);h.drawString(new String("(300,300)"),300,300);g.drawLine(100,100,300,300);}});}public static void main(String[] args){new io().init();}}运行截图:图5.4 左击鼠标画出直线图运行截图:图5.5Menu图b)调试课件中GUI和IO文件夹下的程序;心得体会:本次实验是关于JAVA的GUI,通过学习,我了解了如何使用AWT进行事件处理,并且学习了简单的用户图形界面设计。
Java实三报告
![Java实三报告](https://img.taocdn.com/s3/m/5244733cb90d6c85ec3ac666.png)
浙江万里学院实验报告课程名称: 面向对象程序设计实验名称: 数据库的连接:JDBC* 专业班级: 电子商务112班 姓名: 陈依丽 学号: 2011014732 实验日期: 2013.12 实验3 数据库的连接:JDBC*一、实验目的了解JDBC 核心API ,利用JDBC 核心API ,建立数据库连接、执行SQL 语句、取得查询集、数据类型支持等功能。
二、实验要求了解JDBC 的概念和工作原理。
掌握使用JDBC 实现简单的数据库管理。
三、实验内容(一)配置ODBC 数据源1. 从开始菜单中,选择设置|控制面板。
2. 在控制面板中选择"32位 ODBC"。
3. 打开"32位 ODBC"后,看到的应该是一个卡片式对话框,上面一排有多个卡片标签,其中包括"用户DSN"、"系统DSN"、"文件DSN"等等。
选择"系统DSN"。
4. 单击"系统DSN"中的"添加…"按钮,弹出一个对话框。
5. 在对话框中,列出了当前系统支持的ODBC 数据源的驱动程序,选择"Microsoft Access Driver",单击"完成"按钮,弹出一个对话框。
6. 在对话框中,向"数据源"文本框内输入数据源的名字,这个名字可以任取,在这个例子中,我们输入的名字是"vfox"。
然后,单击"创建"按钮。
7. 在对话框中,选择数据库存放的目录,然后向"数据库名"文本框内输入数据库的名字,这个名字可以任取,在这个例子中,我们输入的名字是"vfox"。
然后,8. 单击"确定"按钮,会弹出显示"数据库创建成功"的对话框。
JAVA程序设计实验报告
![JAVA程序设计实验报告](https://img.taocdn.com/s3/m/5a759586ab00b52acfc789eb172ded630b1c98aa.png)
JAVA程序设计实验报告实验报告一、实验目的本次实验的主要目的是熟悉并掌握JAVA程序设计的基本知识和技能,通过实验来加深对JAVA的理解和应用。
二、实验内容本次实验主要是设计一个简单的学生信息管理系统,实现学生信息的添加、查找、修改和删除功能。
三、实验步骤1. 首先,创建一个名为Student的类,用于存储学生的信息。
该类需要包含学生的姓名、年龄和学号等信息的私有变量,并提供对应的get和set方法。
2. 接下来,创建一个名为StudentManager的类,用于实现学生信息的管理功能。
该类需要包含一个存储学生信息的List,并提供添加、查找、修改和删除学生信息的方法。
3. 在StudentManager类中,实现添加学生信息的方法。
该方法需要先实例化一个Student对象,然后通过调用Student对象的set方法设置学生信息,并将该学生信息添加到List中。
4. 实现查找学生信息的方法。
该方法需要输入一个学生的学号,并在List中查找对应的学生信息,然后返回该学生的相关信息。
5. 实现修改学生信息的方法。
该方法需要输入一个学生的学号和需要修改的信息,并在List中找到对应的学生信息,然后调用Student对象的set方法修改学生信息。
6. 实现删除学生信息的方法。
该方法需要输入一个学生的学号,并在List中找到对应的学生信息,然后将该学生信息从List中删除。
7. 在主函数中,创建一个StudentManager对象,然后可以通过调用StudentManager对象的方法来实现学生信息的管理。
四、实验结果通过运行程序,可以实现对学生信息的添加、查找、修改和删除等功能,可以有效地管理学生的信息。
五、实验总结通过本次实验,我进一步加深了对JAVA程序设计的理解和应用。
学会了如何创建类、定义变量、编写方法以及使用集合等技能。
同时,我也体会到了实验的重要性,通过实验加深了对理论知识的掌握,提高了解决问题的能力。
java项目实验报告
![java项目实验报告](https://img.taocdn.com/s3/m/f1380c77effdc8d376eeaeaad1f34693daef100e.png)
java项目实验报告Java项目实验报告一、引言在计算机科学领域,Java是一种广泛应用的编程语言,具有跨平台的特性,被广泛用于开发各种类型的软件和应用程序。
本实验旨在通过一个具体的Java项目,探索和实践Java编程的基本原理和技术。
二、项目背景本项目是一个学生信息管理系统,旨在帮助学校管理学生的个人信息、课程成绩和课程安排等相关信息。
该系统的主要功能包括学生信息的录入、查询和修改,课程成绩的录入和查询,以及课程安排的管理等。
三、项目架构1. 数据库设计为了存储学生信息、课程成绩和课程安排等数据,我们使用了MySQL数据库。
通过设计合理的数据表结构,我们能够高效地存储和检索数据。
其中,学生信息表包括学生ID、姓名、性别和年龄等字段;课程成绩表包括学生ID、课程名称和成绩等字段;课程安排表包括课程名称、上课时间和地点等字段。
2. 后端开发为了处理前端页面的请求和与数据库的交互,我们使用了Java的Spring框架。
Spring框架提供了丰富的功能和工具,使得后端开发更加高效和便捷。
通过使用Spring框架,我们能够实现学生信息的增删改查功能,以及课程成绩和课程安排的管理功能。
3. 前端开发为了展示学生信息、课程成绩和课程安排等数据,我们使用了HTML、CSS和JavaScript等前端技术。
通过设计美观的页面和交互效果,我们能够提供良好的用户体验。
同时,我们还使用了Bootstrap框架来简化前端开发的过程,使得页面的布局和样式更加统一和美观。
四、实验过程1. 数据库设计与搭建首先,我们根据项目需求设计了合理的数据库表结构,并使用MySQL数据库进行搭建。
通过创建表、定义字段和设置主键等操作,我们成功地创建了学生信息表、课程成绩表和课程安排表。
2. 后端开发与接口设计接下来,我们使用Spring框架进行后端开发。
通过创建Java类和定义接口,我们实现了学生信息的增删改查功能,以及课程成绩和课程安排的管理功能。
java实验实验报告
![java实验实验报告](https://img.taocdn.com/s3/m/3336c07d2379168884868762caaedd3382c4b505.png)
java实验实验报告Java 实验实验报告一、实验目的本次 Java 实验的主要目的是通过实际操作和编程实践,深入理解和掌握 Java 编程语言的基本概念、语法结构、面向对象编程的思想以及常用类库的使用。
同时,培养我们解决实际问题的能力和编程思维,提高代码的质量和可读性。
二、实验环境1、操作系统:Windows 102、开发工具:IntelliJ IDEA3、 JDK 版本:18三、实验内容(一)基本语法练习1、数据类型与变量在 Java 中,我们学习了不同的数据类型,如整数类型(`int`、`long`)、浮点数类型(`float`、`double`)、字符类型(`char`)和布尔类型(`boolean`)。
通过定义和使用这些变量,我们能够存储和操作各种类型的数据。
```javaint age = 25;double salary = 500050;char grade ='A';boolean isStudent = true;```2、控制结构包括条件语句(`ifelse`、`switch`)和循环语句(`for`、`while`、`dowhile`)。
这些控制结构使我们能够根据不同的条件执行不同的代码块,或者重复执行一段代码。
```javaint num = 10;if (num > 5) {Systemoutprintln("Number is greater than 5");} else {Systemoutprintln("Number is less than or equal to 5");}switch (num) {Systemoutprintln("One");break;case 10:Systemoutprintln("Ten");break;default:Systemoutprintln("Unknown");}for (int i = 0; i < 5; i++){Systemoutprintln(i);}int count = 0;while (count < 3) {Systemoutprintln("Count: "+ count);count++;}count = 0;Systemoutprintln("Count: "+ count);count++;} while (count < 3);```(二)面向对象编程1、类与对象创建了自定义的类来表示现实世界中的实体。
《Java程序设计》实验报告 --实验3
![《Java程序设计》实验报告 --实验3](https://img.taocdn.com/s3/m/dec9690252d380eb62946db6.png)
else if(e.getSource()==buttontwo){//按键2操作
tf.setText(tf.getText()+"2");
flag1=Double.parseDouble(tf.getText());
}
else if(e.getSource()==buttonthree){//按键3操作
buttondevision=new JButton("/");
buttonsin=new JButton("sin");
buttontozero=new JButton(">0");
paneleast.setLayout(new GridLayout(3,1));//设置西边的布局为3行1列
//将操作按钮"+""-""*""/""sin"">0"添加到西边的面板中
JButton buttonplus,buttonminus,buttonmultiple,buttondevision,
buttonsin,buttontozero;//新建按钮"+""-""*""/""sin"和归零按钮
JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix,
panelcenter.add(buttonthree);
panelcenter.add(buttonfour);
panelcenter.add(buttonfive);
java设计实验报告
![java设计实验报告](https://img.taocdn.com/s3/m/d90ade09ce84b9d528ea81c758f5f61fb7362805.png)
java设计实验报告Java设计实验报告一、引言Java是一种广泛应用于软件开发的编程语言,具有跨平台、面向对象、可移植等特点。
本文将介绍一项基于Java的设计实验,并分析实验过程中的问题和解决方案。
二、实验目标本次实验的目标是设计一个简单的学生管理系统,实现学生信息的录入、查询、修改和删除功能。
通过这个实验,旨在加深对Java编程语言的理解和应用。
三、实验过程1. 设计数据结构在开始编写代码之前,我们需要先设计好数据结构。
在这个学生管理系统中,我们需要存储学生的姓名、学号、年龄、性别等信息。
可以使用类来表示学生对象,每个学生对象包含相应的属性和方法。
2. 编写代码根据设计好的数据结构,我们开始编写代码。
首先,我们需要创建一个学生类,包含学生的属性和方法。
然后,我们可以在主类中创建学生对象,并对学生信息进行操作。
3. 实现录入功能在学生管理系统中,我们需要实现学生信息的录入功能。
可以通过在控制台上输入学生的姓名、学号、年龄、性别等信息,并将其存储到学生对象中。
4. 实现查询功能学生管理系统还需要实现学生信息的查询功能。
可以通过输入学生的学号或姓名等关键字,在学生对象中进行查找,并输出相应的学生信息。
5. 实现修改功能学生信息可能会发生变化,因此我们需要实现学生信息的修改功能。
可以通过输入学生的学号或姓名等关键字,找到对应的学生对象,并修改其相应的属性。
6. 实现删除功能在一些情况下,我们可能需要删除某个学生的信息。
可以通过输入学生的学号或姓名等关键字,在学生对象中进行查找,并将其删除。
四、实验结果经过实验,我们成功实现了学生管理系统的基本功能。
我们可以通过控制台进行学生信息的录入、查询、修改和删除操作,并获得相应的结果。
五、实验问题与解决方案在实验过程中,我们遇到了一些问题,但通过不断尝试和调试,最终找到了解决方案。
1. 数据结构设计问题在设计数据结构时,我们需要考虑到学生信息的存储和查找效率。
java实验报告
![java实验报告](https://img.taocdn.com/s3/m/a77e4fed690203d8ce2f0066f5335a8102d266af.png)
java实验报告Java 实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解和掌握Java 语言的基本语法、面向对象编程的概念和方法,以及常用类库的使用。
同时,培养我们的问题解决能力、逻辑思维能力和代码规范意识,为今后的软件开发工作打下坚实的基础。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers3、 JDK 版本:JDK 18三、实验内容本次实验共包括以下三个部分:1、 Java 基本语法练习变量与数据类型运算符与表达式控制流语句(ifelse、for、while、dowhile)数组2、面向对象编程实践类与对象的定义和使用构造函数与方法重载封装、继承与多态抽象类与接口3、 Java 常用类库应用String 类与字符串操作集合框架(ArrayList、HashMap)文件输入输出(File、FileReader、FileWriter)四、实验步骤及代码实现1、 Java 基本语法练习变量与数据类型:```javapublic class VariableDataType {public static void main(String args) {int age = 20;double salary = 50005;String name ="张三";boolean isStudent = true;Systemoutprintln("年龄:"+ age);Systemoutprintln("工资:"+ salary);Systemoutprintln("姓名:"+ name);Systemoutprintln("是否是学生:"+ isStudent);}}```运算符与表达式:```javapublic class OperatorExpression {public static void main(String args) {int num1 = 10;int num2 = 5;int sum = num1 + num2;int difference = num1 num2;int product = num1 num2;int quotient = num1 / num2;int remainder = num1 % num2; Systemoutprintln("和:"+ sum);Systemoutprintln("差:"+ difference);Systemoutprintln("积:"+ product);Systemoutprintln("商:"+ quotient);Systemoutprintln("余数:"+ remainder);}}```控制流语句:```javapublic class ControlFlowStatement {public static void main(String args) {// ifelse 语句int score = 80;if (score >= 90) {Systemoutprintln("优秀");} else if (score >= 80) {Systemoutprintln("良好");} else if (score >= 70) {Systemoutprintln("中等");} else if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}// for 循环for (int i = 1; i <= 5; i++){Systemoutprintln("第" + i +"次循环");}// while 循环int j = 1;while (j <= 5) {Systemoutprintln("第" + j +"次 while 循环");j++;}// dowhile 循环int k = 1;do {Systemoutprintln("第" + k +"次 dowhile 循环");k++;} while (k <= 5);}}```数组:```javapublic class ArrayExample {public static void main(String args) {//一维数组int numbers ={1, 2, 3, 4, 5};for (int num : numbers) {Systemoutprintln(num);}//二维数组int matrix ={{1, 2, 3},{4, 5, 6},{7, 8, 9}};for (int row : matrix) {for (int num : row) {Systemoutprint(num +"");}Systemoutprintln();}}}```2、面向对象编程实践类与对象的定义和使用:```javapublic class Person {private String name;private int age;public Person(String name, int age) {thisname = name;thisage = age;}public void showInfo(){Systemoutprintln("姓名:"+ name +",年龄:"+ age);}public static void main(String args) {Person person1 = new Person("张三", 20);person1showInfo();}}```构造函数与方法重载:```javapublic class ConstructorOverloading {private String name;private int age;public ConstructorOverloading(String name) {thisname = name;}public ConstructorOverloading(String name, int age) {thisname = name;thisage = age;}public void showInfo(){if (age == 0) {Systemoutprintln("姓名:"+ name);} else {Systemoutprintln("姓名:"+ name +",年龄:"+ age);}}public static void main(String args) {ConstructorOverloading person1 = new ConstructorOverloading("张三");person1showInfo();ConstructorOverloading person2 = new ConstructorOverloading("李四", 25);person2showInfo();}}```封装、继承与多态:```java//父类class Animal {private String name;public Animal(String name) {thisname = name;}public void eat(){Systemoutprintln(name +"正在吃东西");}}//子类继承父类class Dog extends Animal {public Dog(String name) {super(name);}public void bark(){Systemoutprintln(name +"在叫");}}public class InheritancePolymorphism {public static void main(String args) {Animal animal = new Dog("小黑");animaleat();//向下转型为 Dog 类型调用 bark 方法if (animal instanceof Dog) {Dog dog =(Dog) animal;dogbark();}}}```抽象类与接口:```java//抽象类abstract class Shape {abstract void draw();}//实现抽象类的子类class Circle extends Shape {@Overridevoid draw(){Systemoutprintln("画一个圆");}}//接口interface Moveable {void move();}//实现接口的类class Car implements Moveable {@Overridepublic void move(){Systemoutprintln("汽车在移动");}}public class AbstractInterfaceExample {public static void main(String args) {Shape shape = new Circle();shapedraw();Moveable car = new Car();carmove();}}```3、 Java 常用类库应用String 类与字符串操作:```javapublic class StringOperation {public static void main(String args) {String str1 ="Hello, ";String str2 ="World!";String str3 = str1 + str2;Systemoutprintln(str3);int length = str3length();Systemoutprintln("字符串长度:"+ length);char charAt = str3charAt(5);Systemoutprintln("第 5 个字符:"+ charAt);boolean contains = str3contains("World");Systemoutprintln("是否包含 World:"+ contains);}}```集合框架(ArrayList、HashMap):```javaimport javautilArrayList;import javautilHashMap;import javautilMap;public class CollectionFramework {public static void main(String args) {// ArrayListArrayList<String> names = new ArrayList<>();namesadd("张三");namesadd("李四");namesadd("王五");for (String name : names) {Systemoutprintln(name);}// HashMapHashMap<String, Integer> ages = new HashMap<>();agesput("张三", 20);agesput("李四", 25);agesput("王五", 30);for (MapEntry<String, Integer> entry : agesentrySet()){Systemoutprintln(entrygetKey()+"的年龄是" +entrygetValue());}}}```文件输入输出(File、FileReader、FileWriter):```javaimport javaioFile;import javaioFileReader;import javaioFileWriter;import javaioIOException;public class FileIOExample {public static void main(String args) {//写入文件try (FileWriter writer = new FileWriter("outputtxt")){writerwrite("这是写入文件的内容");} catch (IOException e) {eprintStackTrace();}//读取文件try (FileReader reader = new FileReader("outputtxt")){int character;while ((character = readerread())!=-1) {Systemoutprint((char) character);}} catch (IOException e) {eprintStackTrace();}}}```五、实验结果与分析1、 Java 基本语法练习变量与数据类型:能够正确定义和使用各种数据类型的变量,并进行基本的运算和输出。
JAVA实验三
![JAVA实验三](https://img.taocdn.com/s3/m/479d789b6bec0975f465e2eb.png)
天津理工大学实验报告1.源代码:import java.awt.*;import java.awt.event.*;import javax.swing.*;public class oyf10_3{public static void main(String args[]){ ComputerFrame fr=new ComputerFrame();fr.setTitle("计算");}}class ComputerFrame extends JFrame implements ActionListener{ JTextField text1,text2,text3;JButton button1,button2,button3,button4;JLabel label;public ComputerFrame(){setLayout(new FlowLayout());text1=new JTextField(10);text2=new JTextField(10);text3=new JTextField(10);label=new JLabel(" ",JLabel.CENTER);label.setBackground(Color.green);add(text1);add(label);add(text2);add(text3);button1=new JButton("加");button2=new JButton("减");button3=new JButton("乘");button4=new JButton("除");add(button1);add(button2);add(button3);add(button4);button1.addActionListener(this);button2.addActionListener(this);button3.addActionListener(this);button4.addActionListener(this);setSize(300,320);setVisible(true);addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);}});validate();}public void actionPerformed(ActionEvent e){ double n;if(e.getSource()==button1){ double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1+n2;text3.setText(String.valueOf(n));label.setText("+");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button2){ double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1-n2;text3.setText(String.valueOf(n));label.setText("-");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button3){double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1*n2;text3.setText(String.valueOf(n));label.setText("*");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}else if(e.getSource()==button4){double n1,n2;try{ n1=Double.parseDouble(text1.getText());n2=Double.parseDouble(text2.getText());n=n1/n2;text3.setText(String.valueOf(n));label.setText("/");}catch(NumberFormatException ee){ text3.setText("请输入数字字符");}}validate();}}运行结果:2.源代码:import javax.swing.*;import java.awt.event.*;import java.awt.*;import java.io.*;public class oyf10_4{public static void main(String args[]){new ReadFileWindow();}}class ReadFileWindow extends JFrame implements ActionListener{JMenuBar menubar;JMenu menu;JMenuItem openFile;JTextArea showText;ReadFileWindow(){menubar=new JMenuBar();menu=new JMenu("文件");openFile=new JMenuItem("打开文件");menu.add(openFile);menubar.add(menu);setJMenuBar(menubar);showText=new JTextArea(12,12);add(new JScrollPane(showText));validate();openFile.addActionListener(this);setBounds(120,120,500,370);setVisible(true);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);}public void actionPerformed(ActionEvent e){String fileName="Openfile.txt";File readFile=new File(fileName);showText.setText(null);try{ FileReader inOne=new FileReader(readFile);BufferedReader inTwo= new BufferedReader(inOne);String s=null;int i=0;while((s=inTwo.readLine())!=null)showText.append("\n"+s);inOne.close();inTwo.close();}catch(IOException ex){showText.setText(ex.toString());}}}运行结果:源代码:import javax.swing.*;import java.util.StringTokenizer;import java.awt.*;import java.awt.event.*;import javax.swing.event.*;public class oyf10_5{ public static void main(String args[]){ ComputerFrame fr=new ComputerFrame();fr.setTitle("计算的窗口");}}class ComputerFrame extends JFrame implements DocumentListener{ JTextArea text1,text2;int count=1;double sum=0,aver=0;public ComputerFrame(){ setLayout(new FlowLayout());text1=new JTextArea(6,20);text2=new JTextArea(6,20);add(new JScrollPane(text1));add(new JScrollPane(text2));text2.setEditable(false);(text1.getDocument()).addDocumentListener(this);setSize(300,320);setVisible(true);addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0);}});validate();}public void changedUpdate(DocumentEvent e){hangdleText();}public void removeUpdate(DocumentEvent e){changedUpdate(e);}public void insertUpdate(DocumentEvent e){changedUpdate(e);}public void hangdleText(){String s=text1.getText();sum=0;aver=0;StringTokenizer fenxi=new StringTokenizer(s," ,'\n'");int n=fenxi.countTokens();count=n;double a[]=new double[n];for(int i=0;i<=n-1;i++){ String temp=fenxi.nextToken();try { a[i]=Double.parseDouble(temp);sum=sum+a[i];}catch(Exception ee){ count--;}}aver=sum/count;text2.setText(null);text2.append("\n和:"+sum);text2.append("\n平均值:"+aver);}}运行结果:源代码:import java.awt.event.*;import java.awt.*;import javax.swing.*;import java.io.*;public class oyf10_8{ public static void main(String args[]){ new Dwindow();}}class Dwindow extends JFrame implements ActionListener { JTextField inputNumber;JTextArea show;Dwindow(){inputNumber=new JTextField(22);inputNumber.addActionListener(this);show=new JTextArea();add(inputNumber,BorderLayout.NORTH);add(show,BorderLayout.CENTER);setBounds(60,60,300,300);setVisible(true);validate();setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public void actionPerformed(ActionEvent e){ boolean boo=false;if(e.getSource()==inputNumber){ String s=inputNumber.getText();for(int i=0;i<s.length();i++){ char c=s.charAt(i);if(!(Character.isDigit(c)))boo=true;}if(boo==true){ JOptionPane.showMessageDialog(this,"字符非法","警告对话框",JOptionPane.W ARNING_MESSAGE);inputNumber.setText(null);}else if(boo==false){ int number=Integer.parseInt(s);if(number>=1000){int n=JOptionPane.showConfirmDialog(this,"数字大于1000了,确认保存该数字到文件?","确认",JOptionPane.YES_NO_OPTION );if(n==JOptionPane.YES_OPTION){ saveNumber(number);}else if(n==JOptionPane.NO_OPTION){ inputNumber.setText(null);}}elsesaveNumber(number);}}}void saveNumber(int n){RandomAccessFile out=null;try{ out=new RandomAccessFile("结果.txt","rw");out.seek(out.length());out.writeUTF(" The number is:"+n);out.writeInt(n);out.close();}catch(Exception e){}}}运行结果:3.经验与体会:(1)前三个实验难度不是很大,但是第四个实验的输出最开始的时候无法查看,最后将文件后缀改成了TXT,但是输出结果是乱码,于是我将out.writeUTF(" The number is:");改成了out.writeUTF(" The number is:"+n);虽然在输出结果的前后有些乱码,但是输出的结果都是正常的,我自己在网上查询了一下说是编码的问题,我也没有研究明白。
java实验三报告模板
![java实验三报告模板](https://img.taocdn.com/s3/m/fa8121eacaaedd3383c4d395.png)
计算机科学与技术系实验报告专业名称软件工程课程名称面向对象程序设计项目名称实验三类和对象班级 15软工2班学号 06姓名孙魏东同组人员无实验日期一、实验目的与要求(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。
)目的:1.掌握Java类的结构、类的定义、方法和属性的定义以及对象的实现。
2.掌握类及其成员修饰符的使用;掌握构造函数的使用;方法的参数传递和返回值的用法。
3.掌握类变量与实例变量,以及类方法与实例方法的区别。
要求:1. 正确地定义类、方法和属性,要求属性均定义成私有的(private)2. 学会方法的参数传递和返回值的用法3. 熟练使用类及其成员修饰符4. 使用构造函数创建类的对象,掌握默认构造函数和自定义构造函数的区别5. 类变量与实例变量,以及类方法与实例方法的使用(静态方法常常为应用程序中的其它类提供一些实用工具所用,在Java的类库中大量的静态方法正是出于此目的而定义的。
)6. 程序应包括各个被调用方法的执行结果的显示。
7. 写出实验报告。
要求记录编译和执行Java程序当中的系统错误信息提示,并给出解决办法。
(附运行界面、源代码)。
二、实验内容(根据本次实验项目的具体任务和要求,完成相关内容,可包括:实验目的、原理、算法描述或流程图、源代码、实验运行步骤、关键技术分析、测试数据与实验结果、其他)实验目的1:定义一个高校人员类School_Property,包含姓名、出生年月、性别、身份证号、手机号码,所在学校,入校时间,家庭地址等私有属性,以及访问属性的方法。
编写程序,创建一个高校人员类的对象,设置属性值,然后打印出该对象的各项属性信息。
原理:编写一个高校学生类School_Property,类里存放姓名name、出生年月dateofbirth、性别sex、身份证号id、手机号码tel,所在学校school,入校时间entertime,家庭地址address等私有属性,以及访问属性的方法getName(),getSex()等。
JAVA实验报告
![JAVA实验报告](https://img.taocdn.com/s3/m/ba023bbe6e1aff00bed5b9f3f90f76c661374c24.png)
JAVA实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解 Java 语言的基本语法、面向对象编程的概念以及常用类库的使用。
同时,培养自己解决实际问题的能力,提高编程的熟练程度和代码质量。
二、实验环境操作系统:Windows 10开发工具:EclipseJDK 版本:18三、实验内容及步骤(一)基本语法练习1、数据类型与变量定义不同类型的变量,如整数型(int)、浮点数型(float、double)、字符型(char)和字符串型(String),并进行赋值和输出操作。
了解不同数据类型的取值范围和精度,以及在实际编程中的应用场景。
2、控制结构编写使用 ifelse 语句、switch 语句进行条件判断的程序。
运用 for 循环、while 循环和 dowhile 循环实现重复执行的操作。
3、数组与字符串声明和初始化一维数组和二维数组,对数组元素进行访问和操作。
进行字符串的拼接、截取、查找等常见操作。
(二)面向对象编程实践1、类与对象定义一个简单的类,包含属性和方法。
创建该类的对象,并调用对象的方法来操作属性。
2、继承与多态建立父类和子类,实现继承关系。
在子类中重写父类的方法,展示多态性。
3、封装与抽象将类的属性设置为私有,并提供公共的访问方法(getter 和 setter),实现封装。
定义抽象类和抽象方法,体会抽象的概念和作用。
(三)常用类库的使用1、 Java 输入输出(IO)使用 Scanner 类实现从控制台读取用户输入的数据。
运用 File 类和相关的输入输出流类,实现文件的读取和写入操作。
2、集合框架熟悉 ArrayList、LinkedList 等线性集合的使用方法。
了解 HashSet、TreeSet 等集合的特点和应用场景。
3、异常处理在程序中加入可能引发异常的代码段,并使用 trycatch 语句捕获和处理异常。
四、实验结果与分析(一)基本语法练习1、数据类型与变量成功定义了各种数据类型的变量,并正确进行了赋值和输出。
java实验报告
![java实验报告](https://img.taocdn.com/s3/m/82cdc6de89eb172dec63b705.png)
实验一:Java基本语法实验目的:了解Java的数据类型,掌握各种变量的声明方式,理解运算符的优先级,掌握Java基本数据类型、运算符与表达式,掌握顺序结构、选择结构和循环结构语法的程序设计方法。
实验要求:1、编写一个声明Java不同数据类型变量的程序2、编写使用不同选择结构的程序3、编写使用不同循环结构的程序。
实验内容、代码、结果:1、声明不同数据类型变量编写声明不同数据类型变量的程序:public class SimpleType{public static void main(String args[]){byte b=0x55;short s=0x55f;int i=1000000;long l=0xffL;char c='c';float f=0.23F;double d=0.7E-3;boolean bool=true;System.out.println("b="+b);System.out.println("s="+s);System.out.println("i="+i);System.out.println("l="+l);System.out.println("c="+c);System.out.println("d="+d);System.out.println("bool="+bool);}}2、使用选择结构(1)使用if...else语句1)编写源程序文件,代码如下:public class TestIf{public static void main(String args[]){boolean leap;int year=2005;if((year%4==0 && year%100!=0)||(year%400==0)) System.out.println(year+"年是闰年");elseSystem.out.println(year+"年不是闰年"); year=2008;if(year%4!=0)leap=false;else if(year%100!=0)leap=true;else if(year%400!=0)leap=false;else leap=true;if(leap==true)System.out.println(year+"年是闰年"); elseSystem.out.println(year+"年不是闰年"); year=2050;if(year%4==0){if(year%100==0){if(year%400==0)leap=true;elseleap=false;}elseleap=false;}elseleap=false;if(leap==true)System.out.println(year+"年是闰年");elseSystem.out.println(year+"年不是闰年");}}(2)使用switch语句1)编写程序用switch语句实现从键盘读如1,2,3时,屏幕提示不同信息class SwitchTest{public static void main(String args[]) throws java.io.IOException{char a;System.out.println("Enter a number from 1--3:");a=(char)System.in.read();switch(a){case '1':System.out.println("win a Car!");break;case '2':System.out.println("picked the goat");break;case '3':System.out.println("get to keep your 100");break;default:System.out.println("entry");}}}运行结果:3、使用循环结构(1)使用for语句,程序源代码如下:class TestFor{public static void main(String args[]) throws java.io.IOException{ int fahr,cels;System.out.println("Celsius Fahrenheit");for(cels=0;cels<=100;cels+=5){fahr=cels*9/5+32;System.out.println(cels+" "+fahr);}char a;outer:for(int i=0;i<10;i++)for(int j=0;j<10;j++){a=(char)System.in.read();if(a=='b')break outer;if(a=='c')continue outer;}}}运行结果:(2)使用while语句1)程序源代码如下:import java.io.*;class TestWhile{public static void main(String args[]) throws IOException{char ch;System.out.println("按1/2/3数字键可得大奖!");System.out.println("按空格键后回车可退出循环操作.");while((ch=(char)System.in.read())!=' '){System.in.skip(2);switch(ch){case '1':System.out.println("恭喜你得大奖,一辆汽车!");break;case '2':System.out.println("不错呀,你得到一台笔记本电脑!");break;case '3':System.out.println("没有白来,你得到一台冰箱!");break;default:System.out.println("真不幸,你没有奖品!下次再来吧。
java实验报告总结_java总结范文
![java实验报告总结_java总结范文](https://img.taocdn.com/s3/m/94aa3e7766ec102de2bd960590c69ec3d4bbdb69.png)
java实验报告总结_java总结范文
实验名称:Java程序设计
实验目的:
本次实验的主要目的是让学生加深对Java编程语言的理解和应用,培养学生的编程能力和解决问题的能力,以及提高学生对面向对象程序设计的理解和掌握。
实验环境和工具:
本次实验所用的环境是Java开发环境,使用的工具包括Eclipse、IntelliJ IDEA等集成开发环境,以及JDK等必要的开发工具。
实验内容:
本次实验主要包括以下内容:
1. Java基本语法的学习和应用。
2. 面向对象程序设计的理解和实践。
3. Java程序的编写和调试。
实验步骤和方法:
1. 学习Java基本语法和面向对象程序设计的相关知识。
2. 编写Java程序,包括简单的控制台输出和输入操作,以及面向对象的程序设计。
3. 调试和测试编写的Java程序。
4. 总结和反思编写程序的过程,发现问题并加以解决。
实验结果和分析:
经过本次实验,我对Java编程语言有了更深入的理解和应用,同时也提高了自己的编程能力和解决问题的能力。
在实验过程中,我遇到了一些问题,通过查找资料和询问老师同学,最终成功解决了这些问题,我觉得这对我的成长和进步都是非常有帮助的。
通过本次实验,我深刻认识到了编程能力的重要性,也意识到了自己在编程方面的不足之处。
在今后的学习和工作中,我将继续加强对编程知识的学习和实践,不断提高自己的编程能力,力争成为一名优秀的程序员。
我还在本次实验中体会到了团队合作的重要性,通过和同学们的讨论和交流,我受益匪浅,学到了很多宝贵的经验和知识,我会在今后的学习和工作中继续保持良好的心态,积极融入团队,共同进步。
JAVA(三)实验报告
![JAVA(三)实验报告](https://img.taocdn.com/s3/m/cf0d02d1b9f3f90f76c61b14.png)
Frm.setVisible(true);/*可显示的*/
}
public static void main ( String[] args )/*主方法*/
{ new bbexamB();/*为构造方法分配空间*/}
public void windowClosing(WindowEvent e)/*关闭窗口*/
Frm.add(NewFileLabel);
Frm.add(NewFileText);
Frm.add(NewFileButton);
NewFileButton.addActionListener(this);
Frm.setVisible(true);
}/*如果点击源为文件项,将所有内容都移除,添加标签1、文本文件、按钮和监视器,并可显示*/
Label InputLabel=new Label("Input a string whose length is bigger than 3 : ");
TextField InputText=new TextField("",6);
Button InputButton=new Button("save first 2 letters of the string");
Frm.remove(InputLabel);
Frm.remove(InputText);
Frm.remove(InputButton);
Frm.add(ContinueButton);
ContinueButton.addActionListener(this);
Frm.add(StopButton);
java实验报告总结[范本]
![java实验报告总结[范本]](https://img.taocdn.com/s3/m/b97a42c2d5d8d15abe23482fb4daa58da0111ceb.png)
java实验报告总结[范本] Java实验报告总结一、实验目的本次Java实验旨在让我们更深入地理解Java语言的基础知识,包括数据类型、控制结构、数组和对象等,并提升我们的编程实践能力和问题解决能力。
二、实验内容本次实验主要涉及Java语言的基础知识,包括数据类型、控制结构、数组和对象等。
我们通过编写程序来解决一些实际问题,例如计算器的实现、排序算法的实现等。
三、实验过程1.实验准备在开始实验之前,我首先复习了Java语言的基础知识,包括数据类型、控制结构、数组和对象等,以确保我对这些知识点有清晰的理解。
然后,我查阅了相关的Java编程书籍和网上资源,了解了Java编程的基本规范和最佳实践。
2.实验实施根据实验要求,我首先编写了一个计算器程序,该程序可以执行加、减、乘、除等基本运算。
然后,我实现了一个冒泡排序算法,用于对一个整数数组进行排序。
在实现这些程序的过程中,我遇到了许多问题,例如程序出现编译错误、运行时异常等。
但是,通过查阅相关资料和请教同学,我逐渐解决了这些问题。
3.实验总结通过本次实验,我深入理解了Java语言的基础知识,掌握了Java编程的基本技能和方法。
同时,我也发现了自己在编程中存在的问题和不足之处,例如对Java语言特性的理解不够深入、编程规范不够严格等。
针对这些问题,我将在今后的学习和实践中加以改进。
四、实验心得1.深入理解Java语言特性是编写高质量Java程序的关键。
例如,在实现计算器程序时,我必须深入理解Java的运算符和表达式规范才能确保程序的正确性。
2.掌握Java编程规范是提高程序可读性和可维护性的重要途径。
例如,在实现排序算法时,我必须遵循Java编程规范中的命名规范和注释规范才能使程序更易于理解和维护。
3.良好的编程习惯是避免程序出现问题的关键。
例如,在实现程序时,我必须注意程序的异常处理和错误处理才能确保程序的稳定性和可靠性。
4.团队合作是提高编程效率和质量的重要手段。
java实验报告
![java实验报告](https://img.taocdn.com/s3/m/f631ba79168884868762d62c.png)
public static void main(String[] args) { // TODO Auto-generated method stub int sum = 0; for ( int i = 1; i <= 100; ++i ) sum += i; System.out.println( sum ); }
实验一:J2SDK 的安装和设置
根据要求,已经到 SUN 官网上下载最新 J2SDK,并安装设置成功! 通过 Eclipse 平台能够成功编辑以及调试运行 JAVA 程序!
实验二:简单的 Application 和 Applet
1、简单的 JAVA Application 根据要求录入程序源文件并运行,结果如下:
2、基本算术运算 录入源文件,运行结果如下:
将上述程序中的 int a=7;更改为 float a=7.0f;并将 int b=3;更改为 float b=3.0f; 运行结果如下:
3、循环语句 一、程序运行结果如下:
二、程序输出结果不同。 原因是 while 循环语句是先判断条件再执行相应语句,而 do while 语句 是先执行相应语句后再判断条件,因此输出结果有所差异。
实验五、面向对象高级编程
1、类的继承 修改后 Dog 类构造函数为:
public Dog(String s, int w){ super(s); weight = w; } 添加的 getWeight() 方法如下: public int getWeight(){ return weight; } 创建 snoopy 并输出相关信息: Dog snoopy = new Dog("Spot",10); System.out.println(snoopy.toString() + "\n" + "Speak: " + snoopy.speak() +"\n" + snoopy.move() + " " +snoopy.getName() + "\n"); 在 Dog 类里面添加一个方法如下: public String speak(){ return "Woof Woof"; } 2、方法的重载 源程序输出如下:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
天津理工大学计算机科学与工程学院实验报告2016 至2017 学年第一学期课程名称Java语言程序设计学号学生姓名年级2015级专业计算机科学与技术教学班号实验地点7-220实验时间2017年11月27日第5节至第6节主讲教师董玉涛辅导教师董玉涛实验(三)实验名称银行业务管理软件软件环境Windows 8.1,Java SE 9,JDK 8,Eclipse硬件环境PC机实验目的1.理解并掌握面向对象程序设计中类与对象的基本概念2.理解并掌握Java中定义类、创建对象、使用对象成员的方法3. 理解并掌握Java中继承机制及实现方法4. 掌握Java中接口用法5. 掌握Java中多态的实现方法实验内容(应包括实验题目、实验要求、实验任务等)某银行有许多储户,每个储户可以拥有一个或多个帐号。
现要求你开发一个软件,管理银行储户与帐号业务。
见图1。
Bank类中有一个customers集合,用来存储所有的Customer(储户)对象,addCustomer方法用于向该集合中加储户,getCustomer方法根据下标值取某个储户,getNumOfCustomers方法取储户总数,getCustomers方法返回储户的Iterator,以便获得每个储户对象。
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),则抛出OverdraftException异常并退出交易;如果允许透支(canOverdraft=true),但透支额(amount-balance)超过最大透支额的话,也抛出OverdraftException异常并退出交易;只有在不发生透支或透支额小于最大透支额时交易才能正常进行。
另外,在每次进行透支交易时,最大透支额(maxOverdraft)应做调整,以便使该帐号的最大透支额随透支次数的增加而不断减少,从而可以避免透支的滥用,阻止信用膨胀。
CheckingAccount类有两个构造方法,只带一个参数的构造方法用来初始化balance,同时设定canOverdraft=false,maxOverdraft=0.00。
CustomerReport类用来显示每个储户的姓名以及他所持有的帐号的类别和余额,以报表的形式输出。
根据以上描述,创建一个TestBanking类,并在其main方法中添加若干储户和帐号,然后模拟存款、取款业务,并最终输出一张完整的报表。
采用下表中的数据进行模拟:帐号储户姓名Savings Account Checking Account Jane Simms SavingsAccount (500.00, 0.05) CheckingAccount (200.00, true, 400.00)Owen Bryant 无CheckingAccount (200.00)Tim Soley SavingsAccount (1500.00, 0.05) CheckingAccount (300.00)Maria Soley SavingsAccount (150.00, 0.05) 与Tim Soley共享一个CheckingAccount输出报表格式如下:CUSTOMERS REPORT==================储户姓名:Jane SimmsSavings Account:当前余额是¥XXXXChecking Account:当前余额是¥XXXX储户姓名:Owen BryantChecking Account:当前余额是¥XXXX储户姓名:Tim SoleySavings Account:当前余额是¥XXXXChecking Account:当前余额是¥XXXX储户姓名:Maria SoleySavings Account:当前余额是¥XXXXChecking Account:当前余额是¥XXXX实验过程与实验结果(可包括实验实施的步骤、算法描述、流程、结论等)一、实验步骤与算法描述(1)定义一个抽象基类Account(2)定义一个BANK类,在类中定义customers集合,用来存储所有的Customer对象。
类中包含4个方法:addCustomer方法用于向该集合中加储户;getCustomer方法根据下标值取某个储户;getNumOfCustomers方法取储户总数;getCustomers方法返回储户的Iterator,以便获得每个储户对象。
(3)定义一个CUSTOMER类,在类中定义一个accounts集合,用来存储某个储户的所有Account对象。
类中包含4个方法:addAccount方法用于向该集合中加帐号;getAccount方法根据下标值取该储户的某个帐号;getNumOfAccounts方法取该储户的帐号总数;getAccounts方法返回该储户的帐号的Iterator,以便获得每个帐号对象。
(4)定义一个SAVINGSACCOUNT类,继承Account,新增一个属性interestRate, 代表利率。
(5)定义一个CheckingAccount类,继承Account,按照题目要求相应在类中声明两个属性:canOverdraft与maxOverdraft的属性,(6)定义一个CustomerReport类,用来显示每个储户的姓名以及他所持有的帐号的类别和余额,以报表的形式输出。
(7)创建TESTMAIN主类,调用上述各类的方法。
并在其main方法中添加相应的储户和帐号,模拟存款、取款业务。
二、实验结果:三、实验分析总结本次实验中,主要练习编译了跟抽象类有关的相关程序。
其中主要包括已知抽象方法编写抽象类、抽象类抽象方法实现多态性、通过定义多个子类来实现对类的继承。
通过本次实验,基本掌握了实现多态的方法,也练习了抽象类和抽象方法的定义和使用。
以后也还需要多加练习,能更加熟悉。
同时,编写程序中遇到问题再所难免,应耐心探究其中的原因,从出现问题的地方起,并联系前后程序,仔细推敲,逐个排查。
直到最终搞清为止。
package ex3;public abstract class Account{protected double balance;public Account(double d){this.balance=d;}public double getBalance(){return this.balance;}public void setBalance(double newBalance){this.balance=newBalance;}protected void deposit(double amount){this.balance+=amount;}protected void withdraw(double amount) throws OverdraftException {if(balance<amount){throw new OverdraftException("取款超过余额");}this.balance-=amount;}}package ex3;import java.util.*;public class BANK{List<CUSTOMER> customers=new ArrayList<CUSTOMER>();public BANK(){}public void addCustomer(String first,String last){CUSTOMER cstm=new CUSTOMER(first,last);customers.add(cstm);}public CUSTOMER getCustomer(int i){List<CUSTOMER> list=new ArrayList<CUSTOMER>();Iterator<CUSTOMER> it=customers.iterator();while(it.hasNext()){CUSTOMER temp=it.next();list.add(temp);}return list.get(i-1);}public int getNumOfCustomers(){List<CUSTOMER> list=new ArrayList<CUSTOMER>();Iterator<CUSTOMER> it=customers.iterator();while(it.hasNext()){CUSTOMER temp=it.next();list.add(temp);}return list.size();}public Iterator<CUSTOMER> getCustomers(){Iterator<CUSTOMER> it=customers.iterator();return it;}}package ex3;public class CHECACCOUNT extends Account{public CHECACCOUNT(double bal){super(bal);canOverdraft=false;maxOverdraft=0.00;}public CHECACCOUNT(double bal,boolean initcan,double initmax) {super(bal);canOverdraft=initcan;maxOverdraft=initmax;}protected boolean canOverdraft;protected double maxOverdraft;protected void deposit(double amount){this.balance+=amount;}public void withdraw(double amount) throws OverdraftException{if(balance<amount && canOverdraft==false){throw new OverdraftException("不允许透支!");}if(canOverdraft==true && maxOverdraft<(amount-balance)){throw new OverdraftException("超过透支限额!");}balance-=amount;if(balance<0){maxOverdraft+=balance;}}}package ex3;import java.util.*;public class CUSTOMER{String firstName;String lastName;List<Account> accounts=new ArrayList<Account>();public CUSTOMER(String first,String last){this.firstName=first;stName=last;}String getName(){return stName+" "+this.firstName;}public void addAccount(Account acc){accounts.add(acc);}public Account getAccount(int i){List<Account> list=new ArrayList<Account>();Iterator<Account> it=accounts.iterator();while(it.hasNext()){Account temp=it.next();list.add(temp);}return list.get(i-1);}public int getNumOfAccounts(){List<Account> list=new ArrayList<Account>();Iterator<Account> it=accounts.iterator();while(it.hasNext()){Account temp=it.next();list.add(temp);}return list.size();}public Iterator<Account> getAccounts(){Iterator<Account> it=accounts.iterator();return it;}}package ex3;public class CUSTOMERREPORT {public CUSTOMERREPORT(){}public void generateReport(BANK bank){System.out.println("CUSTOMERS REPORT");System.out.println("==================");System.out.println("储户姓名:"+bank.getCustomer(1).getName());System.out.println("Savings Account:当前余额是¥"+bank.getCustomer(1).getAccount(1).getBalance());System.out.println("Checking Account:当前余额是¥"+bank.getCustomer(1).getAccount(2).getBalance());System.out.println();System.out.println("储户姓名:"+bank.getCustomer(2).getName());System.out.println("Checking Account:当前余额是¥"+bank.getCustomer(2).getAccount(1).getBalance());System.out.println();System.out.println("储户姓名:"+bank.getCustomer(3).getName());System.out.println("Savings Account:当前余额是¥"+bank.getCustomer(3).getAccount(1).getBalance());System.out.println("Checking Account:当前余额是¥"+bank.getCustomer(3).getAccount(2).getBalance());System.out.println();System.out.println("储户姓名:"+bank.getCustomer(4).getName());System.out.println("Savings Account:当前余额是¥"+bank.getCustomer(4).getAccount(1).getBalance());System.out.println("Checking Account:当前余额是¥"+bank.getCustomer(4).getAccount(2).getBalance());}}package ex3;public class OverdraftException extends Exception{private static final long serialVersionUID = 1L;public OverdraftException(){super();}public OverdraftException(String msg){super(msg);}}package ex3;public class SA VING extends Account{double interestRate;public SA VING(double d, double e){super(d);this.interestRate=e;}}package ex3;public class TESTMAIN{public static void main(String[] args){BANK bank=new BANK();bank.addCustomer("Simms", "Jane");bank.addCustomer("Bryant", "Owen");bank.addCustomer("Soley", "Tim");bank.addCustomer("Soley", "Maria");SA VING saving=new SA VING(500.00,0.05);CHECACCOUNT checking=new CHECACCOUNT (200.00, true, 400.00);bank.getCustomer(1).addAccount(saving);bank.getCustomer(1).addAccount(checking);checking=new CHECACCOUNT (200.00);bank.getCustomer(2).addAccount(checking);saving=new SA VING(1500.00, 0.05);checking=new CHECACCOUNT (200.00, true, 400.00);bank.getCustomer(3).addAccount(saving);计算机科学与工程系bank.getCustomer(3).addAccount(checking);saving=new SA VING(150.00, 0.05);bank.getCustomer(4).addAccount(saving);bank.getCustomer(4).addAccount(checking);CUSTOMERREPORT cr=new CUSTOMERREPORT();cr.generateReport(bank);}}11。