Java面向对象程序设计 实验报告

合集下载

Java面向对象程序设计实验

Java面向对象程序设计实验
(3)编写图形界面的Java Application,完成与第(2)项任务相同的功能。
(4)编写图形界面的Java Applet,接收用户输入的一个整数型和一个浮点型数,单击按钮求两数之和。
(5)编程实现如下的功能,接收用户输入的一个0~8000之间的年份,输出这一年是否为闰年。
3.实验步骤
(1)键入,运行如下的Java Application程序并回答问题
{
Label prompt;
TextField input;
Label output;
ApplctFrame ()
{
super("Application Graphics Frame");
setLayout(new FlowLayout());
prompt=new Label("Enter a character please:");
4. ; expected表示本行缺少分号
5.} expected表示缺少} interface expected表示}多余
二、运行时错误
1.Can’t find class HelloWorldApp
系统找不到名为HelloWorldApp的类文件,一般地,该错误意味着类名拼写和原文件名不一样,系统创建filename.java文件时使用的是类名,并且区分大小写
2.实验任务
从网络下载或从CD-ROM直接安装Java开发工具J2SE,编写简单的Java Application和Java Applet程序,编译并运行这两个程序。
3.实验步骤
参见并自学:MyEclipse中新建和打开项目的操作S1 java:/v_show/id_XMjAyNTM0MzI0.html

面向对象编程 JAVA编程综合实验报告

面向对象编程 JAVA编程综合实验报告

成绩:JA V A编程B综合实验报告实验名称:面向对象编程实验时间:2012年5月31日星期四JAVA编程B综合实验报告一、实验名称面向对象编程二、实验目的1、理解Java语言是如何体现面向对象编程基本思想,2、了解类的封装方法,以及如何创建类和对象,3、了解成员变量和成员方法的特性。

4、掌握OOP方式进行程序设计的方法,5、了解类的继承性和多态性的作用。

三、实验环境配置Windows XP、JDK 1.6与Eclipse 3.5四、实验记录1)创建Applet 应用小程序2)创建对象并使用对象3)使用修饰符五、代码分析一、创建Applet 应用小程序1、创建一个Applet应用程序文件。

(1)程序功能:建立一个Applet小程序,使其可以进行简单的加法运算。

该程序要包含类、接口、属性、方法、事件等面向对象的基本元素。

(2)程序源代码如下。

import java.awt.*;import java.awt.event.*;import java.applet.Applet;public class Applet1 extends Applet implements ActionListener {Label label1 = new Label("+");Label label2 = new Label("=");TextField field1 = new TextField(6);TextField field2 = new TextField(6);TextField field3 = new TextField(6);Button button1 = new Button("相加");public void init() { // 初始化add(field1);add(label1);add(field2);add(label2);add(field3);add(button1);button1.addActionListener(this);}public void actionPerformed(ActionEvent e) { // 处理按钮事件int x = Integer.parseInt(field1.getText())+ Integer.parseInt(field2.getText());field3.setText(Integer.toString(x)); // 数值转换为字符串}}2、编写一个浏览Applet应用程序的页面文件Applet1.HTML,源代码如。

面向对象设计原则实验报告实验02

面向对象设计原则实验报告实验02

设计模式(2)实验报告一、实验目的1.结合实例,熟练绘制设计模式结构图。

2.结合实例,熟练使用 Java 语言实现设计模式。

3.通过本实验,理解每一种设计模式的模式动机,掌握模式结构,学习如何使用代码实现这些设计模式。

二、实验要求1.结合实例,绘制设计模式的结构图。

2.使用 Java 语言实现设计模式实例,代码运行正确。

三、实验内容1.迭代器模式设计一个逐页迭代器,每次可返回指定个数(一页)元素,并将该迭代器用于对数据进行分页处理。

绘制对应的类图并编程模拟实现。

2.适配器模式某 OA 系统需要提供一个加密模块,将用户机密信息(例如口令、邮箱等)加密之后再存储在数据库中,系统已经定义好了数据库操作类。

为了提高开发效率,现需要重用已有的加密算法,这些算法封装在一些由第三方提供的类中,有些甚至没有源代码。

试使用适配器模式设计该加密模块,实现在不修改现有类的基础上重用第三方加密方法。

要求绘制相应的类图并编程模拟实现,需要提供对象适配器和类适配器两套实现方案。

3.模板方式模式和适配器模式在某数据挖掘工具的数据分类模块中,数据处理流程包括 4 个步骤,分别是:①读取数据;②转换数据格式;③调用数据分类算法;④显示数据分类结果。

对于不同的分类算法而言,第①步、第②步和第④步是相同的,主要区别在于第③ 步。

第③步将调用算法库中已有的分类算法实现,例如朴素贝叶斯分类(Naive Bayes)算法、决策树(DecisionTree)算法、K 最近邻(K-NearestNeighbor , KNN)算法等。

现采用模板方法模式和适配器模式设计该数据分类模块,绘制对应的类图并编程模拟实现。

4.工厂方法模式在某网络管理软件中,需要为不同的网络协议提供不同的连接类,例如针对 POP3 协议的连接类 POP3Connection、针对 IMAP 协议的连接类 IMAPConnection 、针对 HTTP 协议的连接类 HTTPConnection 等。

面向对象与java程序设计实验内容

面向对象与java程序设计实验内容

实验一1、JDK 的下载、安装和配置2、编写一个打印出“The Java World〞的Java Application 程序,并编辑运行3、编写一个打印出“The First Applet〞的Java Applet程序,并编译,然后编写调用此Applet类的HTML 文件,并用appletviewer.exe 和Internet Explorer翻开。

实验二1、编写程序输出乘法口诀表public class Eg21{public static void main (String []args){int i,j,k;for (i=1;i<=9;i++){j=1;for (k=i;k<=9;k++,j++){System.out.printf ("%d*%d=%2d ",j,k,j*k);}System.out.println();}}}2、分别用do-while 和for 循环计算1+1/2!+1/3!+….的前20项的和public class Eg22{public static void main (String []args){int i,j;double[] arr=new double[21];double sum=0.0;arr[0]=1.0;// 这是以for循环处理的for (i=1;i<=20;i++){arr[i]=arr[i-1]*i;}for (i=1;i<=20;i++){sum=sum+1.0/(arr[i]);}//这是以DO WHILE循环处理的/*i=1;do{arr[i]=arr[i-1]*i;i++;}while (i<=20);i=1;do{sum=sum+1.0/arr[i];i++;}while (i<=20);*/System.out.println (""+sum);}}3、一个数如果恰好等于除它本身外的因子之和,这个数就称为“完数〞。

java面向对象实验报告

java面向对象实验报告

java面向对象实验报告《Java面向对象实验报告》摘要:本实验报告旨在探讨Java面向对象编程的基本概念和实践方法。

通过实验,我们将学习如何创建类、对象、封装、继承和多态等面向对象的特性,并通过实际代码演示这些概念的应用。

本报告将详细介绍实验过程和结果,并总结所得到的经验和教训。

一、实验目的1. 了解面向对象编程的基本概念和原则2. 掌握Java语言中类、对象、封装、继承和多态的使用方法3. 通过实验加深对面向对象编程的理解和掌握二、实验环境1. Java开发环境:Eclipse/IntelliJ IDEA等2. Java SDK版本:1.8及以上三、实验内容1. 创建一个简单的Java类2. 创建对象并调用对象方法3. 实现类的封装和访问控制4. 实现类的继承和方法重写5. 实现类的多态四、实验步骤1. 创建一个名为Person的Java类,包含姓名和年龄两个私有属性,并提供公有的get和set方法进行访问和修改。

2. 创建一个名为Student的子类,继承Person类,并重写父类的get方法。

3. 创建一个名为Teacher的子类,继承Person类,并重写父类的get方法。

4. 创建一个名为Main的主类,实例化Person、Student和Teacher对象,并调用其方法进行测试。

五、实验结果1. 成功创建了Person、Student和Teacher三个类,并实现了类的封装、继承和多态。

2. 通过测试,验证了类的封装和访问控制的有效性。

3. 通过测试,验证了类的继承和方法重写的有效性。

4. 通过测试,验证了类的多态的有效性。

六、实验总结通过本次实验,我深刻理解了面向对象编程的重要性和优势,掌握了Java语言中面向对象编程的基本概念和实践方法。

在今后的学习和工作中,我将继续加强对面向对象编程的理解和应用,不断提高自己的编程水平。

七、实验感想通过本次实验,我对Java面向对象编程有了更深入的了解,也更加熟练地掌握了面向对象编程的基本概念和实践方法。

《面向对象程序设计(Java)》专科课程实验报告

《面向对象程序设计(Java)》专科课程实验报告
教师签名







1.熟悉安装和配置JDK开发环境
2.熟悉安装和配置IDE开发工具
3.掌握Java程序编辑、编译和运行的过程









1.写出Java程序开发环境的安装配置一般步骤
当前计算机系统安装路径:__
当前计算机系统设置的环境变量:PATH _____________________________
}}
【代码1】:
【代码2】:
【代码3】:
3.程序为数组及其排序
import java.util.*;
public classArrayAndSort{
public static void main(String args[]) {
int [] a={12,34,9,23,45,6,45,90,123,19,34};
___________________
CLASSPATH_____________________________________________________
___________
2.用记事本输入如下程序并通过配置好的JDK环境,利用相关命令获取结果
public class HelloJava{
}
}
public class Example{
public static void main(String args[]){
【代码5】//通过类名操作类变量b,并赋值100
【代码6】//通过类名调用方法inputB()
A cat=new A();
A dog=new A();

【报告】java实训报告总结(三篇)

【报告】java实训报告总结(三篇)

java实训报告总结(三篇)篇一:java实验实训内蒙古商贸职业学院计算机系学生校内实验实训报告20--20学年第学期系部:计算机系课程名称:Java程序设计教程专业班级:内蒙古商贸职业学院计算机系制填写说明1、实验项目名称:要用最简练的语言反映实验的内容,要与实验指导书或课程标准中相一致。

2、实验类型:一般需要说明是验证型实验、设计型实验、创新型实验、综合型实验。

3、实验室:实验实训场所的名称;组别:实验分组参加人员所在的组号。

4、实验方案设计(步骤):实验项目的设计思路、步骤和方法等,这是实验报告极其重要的内容,概括整个实验过程。

对于操作型实验(验证型),要写明需要经过哪几个步骤来实现其操作。

对于设计型和综合型实验,在上述内容基础上还应该画出流程图和设计方法,再配以相应的文字说明。

对于创新型实验,还应注明其创新点、特色。

5、实验小结:对本次实验实训的心得体会、思考和建议等。

6、备注:分组实验中组内成员分工、任务以及其他说明事项。

注意:①实验实训分组完成的,每组提交一份报告即可,但必须说明人员分工及职责。

不分组要求全体成员独立完成的实验实训项目可由指导老师根据个人完成情况分组填写。

②实验成绩按照百分制记,根据教学大纲及课程考核要求具体区分独立计算、折算记入两种情况。

③本实验实训报告是根据计算机系实验的具体情况在学院教务处制的实验实训报告的基础上进行改制的。

特此说明。

成绩单组别:小组成员:篇二:实训实训收获总结报告学部:计算机信息学院学科门类:计算机信息类专业:计算机应用技术姓名:朱恩林学号:____020实习单位:北京盛威南凌信息科技有限公司指导教师:王洪钊实习时间:____年5月15号―9月23号一、实训目的计算机信息管理专业的java实训在教学计划中是实训、实习课程。

它涵盖了java开发和工程组织、数据结构等多项相关知识。

通过对java语言、JavaWeb、数据库、jsp、html+css、ssh框架应用设计及SQL 语言的复习和锻炼,并且通过使用elipse开发平台设计库存管理系统项目,以达到充分熟悉开发平台及其应用设计。

Java程序设计-试验2(学生版)

Java程序设计-试验2(学生版)

Java程序设计-试验2(学生版)
华北电力大学
实验报告
实验名称Java程序面向对象设计(一)课程名称Java程序设计
专业班级:学生姓名:
学号:成绩:指导教师:张学斌实验日期:
自己的speed的值增加80
【代码10】//car2调用speedUp方法将自己的speed的值增加80
System.out.println("car1目前的速度:"+car1.getSpeed());
System.out.println("car2目前的速度:"+car2.getSpeed());
car1.speedDown(10);
car2.speedDown(20);
System.out.println("car1目前的速度:"+car1.getSpeed());
System.out.println("car2目前的速度:"+car2.getSpeed());
}
}
1.3 实验指导
●创建一个对象时,成员变量被分配空间,这些内
存空间称作该对象的实体或变量,而对象中存放着引用,以确保这些变量被该对象操作使用。

●空对象不能使用,即不能让一个空对象去调用方
法产生行为。

假如程序中使用了空对象,在运行时会产生异常:NullPointerException,对象时。

面向对象设计实验报告

面向对象设计实验报告

一、实验目的1. 理解面向对象设计的核心概念,如封装、继承、多态等。

2. 掌握面向对象设计的方法和步骤。

3. 通过实际案例分析,提高面向对象设计的实践能力。

二、实验环境1. 操作系统:Windows 102. 编程语言:Java3. 开发工具:Eclipse三、实验内容1. 面向对象设计的基本概念2. 类与对象3. 继承与多态4. 实际案例分析四、实验步骤1. 面向对象设计的基本概念(1)定义:面向对象设计(Object-Oriented Design,OOD)是一种以对象为中心的设计方法,通过将现实世界中的实体抽象为对象,以对象及其相互关系来描述系统的结构和行为。

(2)核心概念:a. 封装:将对象的属性(数据)和行为(方法)封装在一起,对外提供接口。

b. 继承:允许一个类继承另一个类的属性和方法,实现代码复用。

c. 多态:允许不同类的对象对同一消息作出响应,实现行为的变化。

2. 类与对象(1)定义:类是具有相同属性和行为的对象的抽象,对象是类的实例。

(2)步骤:a. 定义类:创建一个新的类,定义属性(成员变量)和方法(成员函数)。

b. 创建对象:使用new关键字创建类的实例。

c. 访问对象属性和方法:使用点号(.)操作符访问对象的属性和方法。

3. 继承与多态(1)继承:定义一个新的类(子类)继承自另一个类(父类),子类继承父类的属性和方法。

(2)多态:允许不同类的对象对同一消息作出响应,实现行为的变化。

(3)步骤:a. 定义父类:创建一个父类,定义属性和方法。

b. 定义子类:创建一个子类,继承自父类,并添加新的属性和方法。

c. 实现多态:使用子类对象调用父类方法,实现不同对象对同一消息的不同响应。

4. 实际案例分析(1)案例分析:设计一个简单的图书管理系统。

(2)设计步骤:a. 分析需求:图书管理系统需要管理图书的增删改查等功能。

b. 设计类:设计图书类(Book)、借阅者类(Borrower)和管理员类(Admin)。

面向对象程序设计实验报告

面向对象程序设计实验报告

《面向对象程序设计实验》实验一、Java实验环境的建立(2学时)1、目的要求(1)掌握Java编程环境的搭建过程;(2)掌握Jcreator pro软件的使用方法;(3)能使用Java doc文档。

2、实验内容(1)下载并安装JDK1.6,配置JDK环境变量;(2)下载Javadoc压缩包并解压在JDK安装路径下;(3)下载Jcreator pro 4.0并安装和配置使用环境;(4)使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。

①Java application程序代码如下:public class HelloJava{public static void main(String args[]){ System.out.println("Hello Java!"); }}②Java applet程序代码如下:import java.awt.*;public class Hello extends java.applet.Applet{public void paint(Graphics g){ g.drawString("Hello!",30,30); }}3、仪器与材料:计算机实验二、Java语言程序设计训练(2学时)1、目的要求(1)输入、输出操作实现原理和方法;(2)掌握程序流程控制的实现方法;(3)掌握数组的定义和操作方法。

2、实验内容(1)计算Result=1!+2!+3!+...+10!。

public class Test3 {public static void main(String[] args) {int sum = 0, fact, n, i;for (n = 1; n <= 10; n++) {fact = 1;for (i = 1; i <= n; i++)fact *= i;sum += fact;}System.out.println("sum=" + sum);}}(2)计算1---50之间所有素数的和。

面向对象程序设计实验报告2

面向对象程序设计实验报告2

面向对象程序设计实验报告一.实验目的进一步熟悉Java程序的结构,掌握Java的运算符、表达式、数组及流程控制语句的应用。

二. 实验内容(1)编写Application。

实现:将上学期所学的各门课程的名称及考试成绩的信息用数组存放,并在for(或while)循环中利用排序算法,将成绩进行升(或降)序排列,最后输出排序后的课程成绩。

(2)编写Applet程序,实现:将上学期所学的各门课程的名称及考试成绩的信息用数组存放,并在for(或while)循环中利用排序算法,将成绩进行升(或降)序排列,最后输出排序后的课程成绩。

三. 实验步骤(1)进行模板设计,设计出自己想要的模板。

(2)根据自己设计的模板编写出代码,并进行Java Application程序调试。

(3)编写并调试Java Applet程序。

四.实验结果1.编写一个application程序。

截图如下代码如下:import javax.swing.*;import java.awt.*;import java.awt.event.*;public class applicationInOut{public static void main(String args[]){new FrameInOut();}}class FrameInOut extends Frame implements ActionListener{JPanel p1,p2,p3,p4;JButton btn1,btn2,btn3;JTextArea t1;TextField text1,text2,text3,text4,text5,text6,text7,text8;Label lab1,lab2,lab3,lab4,lab5,lab6,lab7,lab8;String information1[]={"姓名","性别:","学号","班级"};String information2[]={"","","",""};String course[]={"数据结构","线性代数","大学英语","电子电路"}; int score[]={0,0,0,0};FrameInOut(){super("学生成绩信息排名");btn1=new JButton("信息显示");btn2=new JButton("按成绩排名");btn3=new JButton("退出");lab1=new Label("姓名");lab2=new Label("性别");lab3=new Label("学号");lab4=new Label("班级");lab5=new Label("数据结构");lab6=new Label("线性代数");lab7=new Label("大学英语");lab8=new Label("电子电路");text1=new TextField(10);text2=new TextField(10);text3=new TextField(10);text4=new TextField(10);text5=new TextField(10);text6=new TextField(10);text7=new TextField(10);text8=new TextField(10);t1=new JTextArea(10,20);p1=new JPanel();p2=new JPanel();p3=new JPanel();p4=new JPanel();p1.add(btn1);p1.add(btn2);p1.add(btn3);p2.add(lab1);p2.add(text1);p2.add(lab2);p2.add(text2);p2.add(lab3);p2.add(text3);p2.add(lab4);p2.add(text4);p3.add(lab5);p3.add(text5);p3.add(lab6);p3.add(text6);p3.add(lab7);p3.add(text7);p3.add(lab8);p3.add(text8);p4.add(t1);add(p1);add(p2);add(p3);add(p4);setLayout(new FlowLayout());p1.setBackground(Color.red);p2.setBackground(Color.orange);p3.setBackground(Color.orange);p4.setBackground(Color.blue);t1.setForeground(Color.blue);btn1.addActionListener(this);btn2.addActionListener(this);btn3.addActionListener(this);setSize(700,400);setVisible(true);}public void actionPerformed(ActionEvent e){if(e.getSource()==btn1){t1.setText("");information2[0]=text1.getText();information2[1]=text2.getText();information2[2]=text3.getText();information2[3]=text4.getText();score[0]=Integer.parseInt( text5.getText());score[1]=Integer.parseInt( text6.getText());score[2]=Integer.parseInt( text7.getText());score[3]=Integer.parseInt( text8.getText());for(int i=0;i<information1.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(information1[i]+":"+information2[i]+"\n");}for(int i=0;i<course.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(course[i]+":"+score[i]+"\n");}}else if(e.getSource()==btn2){information2[0]=text1.getText();information2[1]=text2.getText();information2[2]=text3.getText();information2[3]=text4.getText();score[0]=Integer.parseInt( text5.getText());score[1]=Integer.parseInt( text6.getText());score[2]=Integer.parseInt( text7.getText());score[3]=Integer.parseInt( text8.getText());int i,j,m;String coursename;for(i=0;i<score.length;i++){for(j=i+1;j<course.length;j++){if(score[i]>score[j]){m=score[j];score[j]=score[i];score[i]=m;coursename=course[i];course[i]=course[j];course[j]=coursename;}}}t1.setText("");for(i=0;i<information1.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(information1[i]+":"+information2[i]+"\n");}for(i=0;i<course.length;i++){t1.setFont(new Font("黑体",Font.BOLD,15));t1.append(course[i]+" 成绩为:"+score[i]+"\n");}}if(e.getSource()==btn3){dispose();System.exit(0);}}}2.编写一个applet程序。

面向对象实验报告Java

面向对象实验报告Java
double s;
max1=i;
max2=j;
max3=k;
if (max1<max2){
s=max1;max1=max2;max2=s;
}
if (max1<max3){
s=max1;max1=max3;max3=s;
}
if (max2<max3){
s=max2;max2=max3;max3=s;
}
}
void sort(int t1,int t2[]){ //父类中的方法用来实现升序
//用选择法按升序排列
for(i=0;i<t1-1;i++){
k=i;
for(j=i+1;j<t1;j++)
if(t2[j]<t2[k]) k=j;
if (k!=i){
swap=t2[i];
t2[i]=t2[k];
}
}
public class Class1{
public static void main (String args[]){
Sort2or3 m1 = new Sort2or3();
m1.sort(100,200);
System.out.println("两个数从大到小为:"+m1.max1+","+m1.max2);
t2[k]=swap;
}
}
}
}
class sub_sort_Demo extends sort_Demo{
void sort(int t1,int t2[]){ //子类中的方法实现降序
//用选择法实现降序排列
for(i=0;i<t1-1;i++){

java实验报告类和对象实验报告

java实验报告类和对象实验报告
实验报告
课程名称
面向对象程序设计
实验名称
实验三、类和对象
日期
2018/4/9
学生学号
姓名
班级
实验目的:
1.掌握面向对象编程语言中的类和对象的使用方法。
2.理解类的封装性。
实验条件:
电脑一台、能上网查阅资料。
实验内容与步骤:
要求:
设计和实现一个学生类,满足以下要求:
1、学生具有学号、姓名、性别、年龄和专业等属性;
super();
this.sname=sname;
this.snum=snum;
this.sex=sex;
}
publicenumSEXENM{
Male,Female
}
}
packagezhy.shiyan3;
importzhy.shiyan3.Student.SEXENM;
publicclassDemo {
}
publicString getSname() {
returnsname;
}
publicString getSnum() {
returnsnum;
}
publicSEXENM getSex() {
returnsex;
}
publicStudent(Stringsname,Stringsnum,SEXENMsex) {
publicstaticvoidmain(String[]args) {
Studentstudent=null;
student=newStudent("翟海洋","1525",SEXENM.Male);
student.setAge(22);

java面向对象编程实验报告

java面向对象编程实验报告

java面向对象编程实验报告篇一:java面向对象编程实验报告信息工程学院Java程序设计实验/实习报告学院:信息工程学院班级:信息112 姓名:吴连梅学号:XX013305 成绩:A实验二面向对象编程1.实验目的(1)掌握类与对象基本知识;(2)Java中的继承机制及包(package)、接口(interface)等的设计方法;(3)掌握static、this、super等关键字的使用;(4)掌握Java中两种比较器的用法。

2.实验内容实验题 1 定义一个类Book,包含两个属性:一个是private的String类型的属性title、一个是private的float类型的属性listPrice,封装这两个属性的四个方法setTitle()和getTitle()、setListPrice( )和geListPrice ()。

基本要求:(1)设计类Book及类BookManagement,在类BookManagement中输出Book类的对象的两个private属性;(2)重写父类的toString()方法,实现Book类实例的两个属性的输出。

实验过程:新建工程后,在工程下面建立一个包Book,在包下再建立一个Book类,类中包含两个属性,一个是private的String类型的属性title、一个是private的float类型的属性listPrice,之后是封装这两个属性的四个方法,用快捷键Alt+Shift+S选择gennerate Getters and Setters,再实验报告的内容与格式按任课教师的要求书写。

然后就是重写父类的toString()方法,用快捷键Alt+Shift+S选择gennerate toString,快捷重写。

这段程序写完是这样的:接下来便是BookManagement类,在包book下新建一个类BookManagement,写完的程序是这样的:BookManagement类中创建了书的对象,在主方法中调用output函数,赋值,输出。

Java面向对象程序设计-设计性实验报告

Java面向对象程序设计-设计性实验报告

《8251086-Java面向对象程序设计》设计性实验报告实验题目:小组成员:专业年级:日期:指导教师:吴春胤评分表评分项分数1.小组独立完成的情况2.程序的功能丰富程度(工作量)3.程序界面的合理性、友好性4.程序运行正确性和错误处理能力5.实验报告格式规范性、内容详细程序、文字表达能力总评:评分说明:1. 如果发现抄袭现象或不按时提交实验报告,可直接评定为不合格。

2. 先按单项评分,再求各项的平均分,再定总评等级。

总评分为:优、良、中、及格和不及格。

标准计算器1、系统目标开发一个界面和谐,简单易用的标准计算器,实现基本的四则运算和求余、取反、求倒数、开根号等功能。

2、基本功能a.0-9等10个数字键,实现输入数字;b.“+”、“-”、“*”、“/”四个功能键,实现输入数字的四则运算;c.“√”、“%”、“1/X”、“+/-”四个功能键,分别实现输入数字的开根号、求余、求倒数、取相反数的功能;d.“Backspace”、“CE”、“C”三个功能键,分别实现退格、删除、归零的功能。

3、系统设计在第一部分完成添加按钮以及面板设计与整合,第二部分实现各算法的具体实现过程,第三部分定义接口的具体内容,显示说明窗,第四部分主方法定义主界面的属性。

具体实现方法参考以下代码及说明注解。

第一部分:import javax.swing.*;import java.awt.*;import java.awt.event.*;import javax.swing.JOptionPane;public class Calculator extends JFrame implements ActionListener {//按钮的定义JButton n1,n2,n3,n4,n5,n6,n7,n8,n9,n0,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,m1,m2,m3,s1,s2,s3,s4,s5;JTextField jtextfield;//计算器界面的布局以及添加监听器public Calculator(){//添加第一个面板,存放数字键跟运算键JPanel p1=new JPanel();Font font = new Font("楷体",Font.BOLD,20); p1.setLayout(new GridLayout(4,5,10,10));n1=new JButton("7");n1.setFont(font);p1.add(n1);n1.addActionListener(this);n2=new JButton("8");n2.setFont(font);p1.add(n2);n2.addActionListener(this);n3=new JButton("9");n3.setFont(font);p1.add(n3);n3.addActionListener(this);t1=new JButton("/");t1.setFont(font);p1.add(t1);t1.addActionListener(this);t2=new JButton("√");t2.setFont(font);p1.add(t2);t2.addActionListener(this);n4=new JButton("4");n4.setFont(font);p1.add(n4);n4.addActionListener(this);n5=new JButton("5");n5.setFont(font);p1.add(n5);n5.addActionListener(this);n6=new JButton("6");n6.setFont(font);p1.add(n6);n6.addActionListener(this);t3=new JButton("*");t3.setFont(font);p1.add(t3);t3.addActionListener(this);t4=new JButton("%");t4.setFont(font);p1.add(t4);t4.addActionListener(this);n7=new JButton("1");n7.setFont(font);p1.add(n7);n7.addActionListener(this);n8=new JButton("2");n8.setFont(font);p1.add(n8);n8.addActionListener(this);n9=new JButton("3");n9.setFont(font);p1.add(n9);n9.addActionListener(this);t5=new JButton("-");t5.setFont(font);p1.add(t5);t5.addActionListener(this);t6=new JButton("1/x");t6.setFont(font);p1.add(t6);t6.addActionListener(this);n0=new JButton("0");n0.setFont(font);p1.add(n0);n0.addActionListener(this);t7=new JButton("+/-");t7.setFont(font);p1.add(t7);t7.addActionListener(this);t8=new JButton(".");t8.setFont(font);p1.add(t8);t8.addActionListener(this);t9=new JButton("+");t9.setFont(font);p1.add(t9);t9.addActionListener(this);t10=new JButton("=");t10.setFont(font);p1.add(t10);t10.addActionListener(this);//添加第二个面板,存放退格,归零等功能键JPanel p2=new JPanel();p2.setLayout(new GridLayout(1,3,10,10));m1=new JButton("Backspace");m1.setFont(font); p2.add(m1);m1.addActionListener(this);m2=new JButton("CE");m2.setFont(font);p2.add(m2);m2.addActionListener(this);m3=new JButton("C");m3.setFont(font);p2.add(m3);m3.addActionListener(this);//添加第三个面板,整合第一跟第二个面板JPanel p3=new JPanel(new BorderLayout(10,10)); p3.add(p1,BorderLayout.CENTER);p3.add(p2,BorderLayout.NORTH);//添加第四个面板,添加四个功能键JPanel p4=new JPanel();p4.setLayout(new GridLayout(4,1,10,10));s1=new JButton("MC");s1.setFont(font);p4.add(s1);s1.addActionListener(this);s2=new JButton("MR");s2.setFont(font);p4.add(s2);s2.addActionListener(this);s3=new JButton("MS");s3.setFont(font);p4.add(s3);s3.addActionListener(this);s4=new JButton("M+");s4.setFont(font);p4.add(s4);s4.addActionListener(this);//添加第五个面板,存放说明键JPanel p5=new JPanel();p5.setLayout(new GridLayout(1,1,10,10));s5=new JButton("说明");ExplainClass listenerExplain = new ExplainClass(); s5.addActionListener(listenerExplain);p5.add(s5);//添加第六个面板,整合第四跟第五个面板JPanel p6=new JPanel(new BorderLayout(10,10));p6.add(p4,BorderLayout.CENTER);p6.add(p5,BorderLayout.NORTH);//添加第七个面板,整合以上六个面板JPanel p7=new JPanel(new BorderLayout(10,10));p7.add(p3,BorderLayout.CENTER);p7.add(p6,BorderLayout.WEST);setLayout(new BorderLayout(10,10));add(p7,BorderLayout.CENTER);jtextfield=new JTextField();jtextfield.setEnabled(false);jtextfield.setHorizontalAlignment(JTextField.RIGHT);jtextfield.setFont(font);add(jtextfield,BorderLayout.NORTH);}第二部分://实现功能键的方法public void actionPerformed(ActionEvent e){Object target = e.getSource();String constant = e.getActionCommand();if("0123456789.".indexOf(constant)>0||"0123456789.".indexOf(constant)==0)Number(constant);//判断输入的第一个数是否为数字else if(target==t7)isAS();//对输入的数字取反else if(target==t6){jtextfield.setText(""+(1.0/(Double.parseDouble(jtextfield.getText()))));//对输入的数字取倒数}else if(target==t2){jtextfield.setText(""+Math.sqrt(Double.parseDouble(jtextfield.getText())));//对输入的数字开根号}else if(target==m1)isBackspace();//调用退格方法else if(target==m2)isCE();else if(target==m3)isC();else if(target==s1)isMC();else if(target==s2)isMR();else if(target==s3)isMS();else if(target==s4)isMA();elseResult(constant);}boolean isFirstDigit=true;//判断第一个输入的字符是否为数字public void Number(String button){if(isFirstDigit)jtextfield.setText(button);else if ((button.equals(".")) && (jtextfield.getText().indexOf(".") < 0)) jtextfield.setText(jtextfield.getText() + ".");else if(!button.equals("."))jtextfield.setText(jtextfield.getText() + button);isFirstDigit=false;}//退格方法的具体实现过程public void isBackspace(){String temp=jtextfield.getText();int k=temp.length();if(k!=0){temp=temp.substring(0,k-1);jtextfield.setText(temp);}else jtextfield.setText("0");}public void isCE(){jtextfield.setText("0");isFirstDigit=true;}//归零方法的具体实现过程public void isC(){jtextfield.setText("0");isFirstDigit=true;Mnumber=0;if(M)s5.setText(String.valueOf(Mnumber));}double Mnumber=0;boolean M=false;public void isMC(){Mnumber=0;s5.setText(String.valueOf(Mnumber));M=true;}public void isMR(){String len=String.valueOf(Mnumber);int k=len.length();if(k>7)JOptionPane.showMessageDialog(null,"具体数字为:"+Mnumber,"缓存区数字过长",RMA TION_MESSAGE);elses5.setText(String.valueOf(Mnumber));M=true;}public void isMS(){Mnumber-=Double.valueOf(jtextfield.getText());s5.setText("M-");M=true;}public void isMA(){Mnumber+=Double.valueOf(jtextfield.getText());s5.setText("M+");M=true;}public void isAS(){double Onumber=-Double.valueOf(jtextfield.getText());jtextfield.setText(String.valueOf(Onumber));}double number =0;String operator = "=";public void Result(String button){if (operator.equals("+"))number += Double.valueOf(jtextfield.getText());else if (operator.equals("-"))number -= Double.valueOf(jtextfield.getText());else if (operator.equals("*"))number *= Double.valueOf(jtextfield.getText());else if (operator.equals("/")){if(Double.valueOf(jtextfield.getText())==0){jtextfield.setText(" ");JOptionPane.showMessageDialog(null, " 分母输入违法","标准计算器",JOptionPane.ERROR_MESSAGE);}elsenumber/=Double.valueOf(jtextfield.getText());}else if (operator.equals("="))number = Double.valueOf(jtextfield.getText());else if (operator.equals("1/x"))number = 1/Double.valueOf(jtextfield.getText());else if(operator.equals("sqrt"))number=Math.sqrt(Double.valueOf(jtextfield.getText()));else if(operator.equals("%"))number%=Double.valueOf(jtextfield.getText());jtextfield.setText(String.valueOf(number));operator = button;isFirstDigit = true;}}第三部分://添加一个接口,显示说明内容的窗口class ExplainClass implements ActionListener {public void actionPerformed(ActionEvent e) {String output = "说明:" +"此计算器由陈景伦和王永晶共同开发。

面向对象程序设计实验报告java实验报告图形用户界面

面向对象程序设计实验报告java实验报告图形用户界面

图形用户界面设计实验1Nested PanelsThe program Nested Panels.java is from Listing 3.8 of the text. Save the program to your directory and do the following:pile and run the program. Experiment with resizing the frame and observe the effect on the components.运行程序后出现如下界面:改变窗口的大小,观察到:〔见下列图〕〔1〕两个子面板one和two的尺寸都保持不变。

〔2〕蓝色的主面板随着窗口的变大而扩展。

〔3〕蓝色面板变长,one和two子面板都不变,当蓝色面板变宽时,两个子面板随着它移动,并保持居中状态。

〔4〕缩小窗口,根据流式布局的形式,two子面板因为位置容不下,自动被放在下一行的位置。

2. Modify the program by adding a third subpanel that is twice as wide, butthe same height, as the other two subpanels. Choose your own label and color for the subpanel (the color should not be red, green, or blue). Add the panel to the primary panel after the other two panels.修改的代码如下:JPanel subPanel3 = new JPanel() ;subPanel3.setPreferredSize (new Dimension(300, 100)); ubPanel3.setBackground (Color.red);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);primary.add (subPanel3);3. Compile and run the modified program. Again, experiment with resizing the frame and observe the effect on the components.改变窗口的大小,3个子面板变化情况跟第一步实验的类似。

计算机学院Java语言与面向对象程序设计实验报告

计算机学院Java语言与面向对象程序设计实验报告
实验5-2:
Shiyan52.java
说明:
输入:没有输入
输出:显示一个小圆,当鼠标靠近圆时,圆跑出鼠标捕捉点
…先画出一个圆,监听鼠标移动事件,鼠标进入圈内,则删除该圆,在原有范围外,重新画一个同样大小的圆
其他需要解释的内容:
本程序在ecolipse软件或者命令行中(部分)中运行,运行过程中应按提示要求进行操作
方法reset()清零;
实验3-3:
Shiyan33.java
说明:
输入:输入矩形的长和宽
输出:输出为矩形的周长和面积

------------------------------------------------------------
实验4-1:
Shiyan41.java
说明:
输入:按提示输入矩形的长和宽或者是正方形的边长
输出:输入输入数据中的最大值,最小值和所有数据的平均数
如果输入数据很大,则需要修改数组的大小
实验2-4:
Shiyan24:
说明:
输入:输入一个1-9000之间的整数
输出:输出这一年是否为闰年

------------------------------------------------------------
实验3-1:
Shiyan31.javaቤተ መጻሕፍቲ ባይዱ
说明:
输入:没有输入(输入信息已经在程序中写好)、
输出:输出学生的信息
定义一个表示学生的类Student,包括域“学号”、“班级”、“性别”、“年龄”等,方法“获得学号”、“获得性别”、“获得姓名”、“获得年龄”、“修改年龄”等。
另加一个方法publicStringtoString()把Student类对象的所有域信息组合成一个字符串。

《面向对象程序设计》实验报告Javapractice

《面向对象程序设计》实验报告Javapractice
程序完成什么样功能?
3、综合 ATM 实验
12
创建一个应用程序,实现下面的 UML 图。
Step1: 实现银行帐户 Account 类:
1)私有的属性 balance:用于保存帐户中的当前余额。 2)公有带参构造方法:对 balance 属性进行了初始化。 3)公有方法 getBalance: 用于取得当前帐户余额。 4)公有方法 deposit: 用于把数量为 amount 的现金存储到当前帐户中。 5)公有方法 withdraw: 用于从当前帐户中提取数量为 amount 的现金。 Step2: 实现 Customer 类 UML 图中,Account 类和 Customer 类之间的关系是聚合,即 Account 类的对象 作为 Customer 类的成员,图中箭头上方的是对象名,两端的 1 表示一对一关系, 即一个 Customer 类的对象含有一个 Account 类的类对象作为成员。 1)私有属性:firstName, lastName 和 account 2)公有的带参构造方法:用于对 firstName, lastName 属性进行了初始化。 3)公有的成员方法 getFirstName:返回 firstName 的属性 4)公有的成员方法 getLastName:返回 lastName 的属性。 5)公有的成员方法 setAccount:对对象成员 account 进行设置 6)公有的成员方法 getAccount: 取得对象成员 account 的值 Step3:
2)公有的构造方法: 用适当的数组长度对 customers 对象数组进行初始化。
3)公有的成员方法 addCustomer: 通过参数(first name, last name)创建一个新的 Customer 对象,并把它存放 在 customers 对象数组中。 同时它必须增加 numberOfCustomers 的值。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、实验目的及内容
目的:掌握和巩固Java面向对象程序设计的概念、方法。

内容:
1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类
的多个对象拥有各自的实例成员变量。

2.编写一个表示人的类Person,该类满足以下要求:
●有两个private成员变量:name(名字)、age(年龄);在Person类外访问这两个成员变量均通
过接口器函数(getXXX,setXXX)。

●该类具有一个有两个参数的构造函数,这两个参数分别用来初始化name和age成员变量。

●该类包含一个方法public boolean older(Person r),用于比较当前对象年纪是否比参数r的年纪大,
若是,则返回true,否则,返回false。

编写另外一个类:TestPerson,该类包含下面函数:
public static void sortPerson(Person[] personList),在该函数中利用Person类的older方法实现对数组personList按年龄从小到大排序。

main函数位于该类中。

在main函数中
(1)创建Person类的10个对象,并保存到一个数组中,创建10个对象时,每个对象的年龄为0~100的一个随机数(用Math.random()函数得到)。

(2)输出这个数组中每个对象的名字、年龄。

(3)调用sortPerson方法,对这个数组中的10个Person对象按年龄排序。

(4)输出排序后数组中每个对象的名字、年龄。

二、要求
1.给出上述程序的中涉及到的类的类图(可用visio画)、解决上述问题的思路、代码
和测试结果。

1.设计一个Java程序,该程序运行后,说明:一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。

设计思路:要实现一个类的所有对象共享同一个类成员变量;一个类的多个对象拥有各自的实例成员变量。

我创建了一个Number类,并创建了两个对象number1和number2,该类有一个类成员函数static int numberofsum(int a, int b)来求和,一个类成员变量countnumber来统计对象的个数,还有实例成员变量num,通过两个对象求和以及统计对象个数,说明了一个类的所有对象共享同一个类成员变量,两个对象都有自己的num值说明了一个类的多个对象拥有各自的实例成员变量。

类图:
程序代码:
//package number;
public class Number {
public static void main(String[] args) {
System.out.println("Create two numbers!");
Number number1 = new Number(5);
System.out.println("After create the first number,countnumber is "
+ number1.countnumbers);
Number number2 = new Number(10);
System.out.println("After create the second number,countnumber is "
+ number2.countnumbers);
System.out.println("The two numbers is "
+ number1.num + " and " + number2.num);
System.out.println("The sum of two numbers is "
+ numberofsum(number1.num, number2.num));
}
static int countnumbers = 0;
int num;
Number(int a) {
num = a;
countnumbers++;
}
static int numberofsum(int a, int b) {
int sum = a + b;
return sum;
}
}
测试结果:
2.编写一个表示人的类Person,以及另外一个类:TestPerson。

具体要求见
实验内容。

设计思路:定义两个类Person和TestPerson,TestPerson类中有public static void sortPerson(Person[] personList)来对创建的十个对象进行年龄大小排序。

类图:
程序代码:
//package testperson;
import java.util.Scanner;
public class TestPerson {
public static void main(String[] args) {
final int number = 10;
Scanner input = new Scanner(System.in);
Person[] personArray = new Person[number];
for (int i = 0; i < personArray.length; i++) {
System.out.print("Please enter the name of person " + (i + 1) + ":");
String personName = input.next();
int personAge = (int) (Math.random() * 100);
personArray[i] = new Person(personAge, personName);
System.out.println("The " + (i + 1) + " person's name is "
+ personArray[i].getName()
+ " and the age is " + personArray[i].getAge());
}
sortPerson(personArray);
}
public static void sortPerson(Person[] personList) {
Person t;
for (int i = 0; i < personList.length - 1; i++) {
for (int j = i + 1; j < personList.length; j++) {
if (personList[i].older(personList[j])) {
t = personList[i];
personList[i] = personList[j];
personList[j] = t;
}
}
}
System.out.println("The age from young to old order is:");
for (int k = 0; k < personList.length; k++) {
System.out.println((k + 1) + ", name: " + personList[k].getName() + ", age: " + personList[k].getAge());
}
}
}
class Person {
private int age;
private String name;
Person(int getAge, String getName) {
age = getAge;
name = getName;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public void setAge(int setage) {
age = setage;
}
public void setName(String setname) { name = setname;
}
public boolean older(Person r) {
if (this.age > r.age) {
return true;
} else {
return false;
}
}
}
测试结果:。

相关文档
最新文档