java第三次实验报告
Java实验三实验报告1
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实验三报告模板
本文档如对你有帮助,请帮忙下载支持!计算机科学与技术系实验报级 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实验报告(三)实验(三)类和对象⼀、实验⽬的和要求1.掌握类的构造函数的重载2.深⼊理解类和对象3.学习NetBeans中UML项⽬的创建类并⽣成相应代码的⽅法⼆、实验内容和原理设计⼀个复数类,能够完成复数之间的基本运算,重写⽅法toString(),使其能输出此复数(形式为:实部 + 虚部i)。
要求设计的复数类必须有三个构造函数,分别为⽆参数、1个参数和2个参数的构造函数,完成的基本运算包括两个复数的加、减、乘、除法和共轭复数。
三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以⽤类图、流程图、伪代码或源程序描述)2.实验步骤●创建⼀个UML项⽬,并设计类Complex如下图●创建⼀个Java应⽤项⽬●把UML项⽬中的Complex⾃动⽣成代码到Java应⽤项⽬中●实现Complex类中的⽅法●进⾏编译●进⾏测试,使⽤的测试⽤例:输⼊:预期输出:…代码:Complex类:package studentTaskThree;/*** 复数类* @author Administrator**/public class Complex{/*** 定义类变量,复数的实部realPart和虚部ImaginaryPart */ private double realPart;private double imaginaryPart;/*** ⽆参构造⽅法*/public Complex(){super();* 不含实部复数的构造⽅法* @param realPart*/public Complex(double imaginaryPart){super();this.imaginaryPart = imaginaryPart;}/*** 含有实部参数和虚部参数的构造⽅法* @param realPart* @param imaginaryPart*/public Complex(double realPart, double imaginaryPart) { super();this.realPart = realPart;this.imaginaryPart = imaginaryPart;}/*** 读取实部* @return*/public double getRealPart(){return realPart;}/*** 设置实部* @param realPart*/public void setRealPart(double realPart){this.realPart = realPart;* 读取虚部* @return*/public double getImaginaryPart(){return imaginaryPart;}/*** 设置虚部* @param imaginaryPart*/public void setImaginaryPart(double imaginaryPart){this.imaginaryPart = imaginaryPart;}/*** 复数相加⽅法* @param complex* @return*/public Complex plus(Complex complex){return new Complex(this.realPart + complex.realPart, this.imaginaryPart + complex.imaginaryPart); }/*** 复数相减⽅法* @param complex* @return*/public Complex minus(Complex complex){return new Complex(this.realPart - complex.realPart, this.imaginaryPart - complex.imaginaryPart); }* @param complex* @return*/public Complex times(Complex complex){return new Complex(complex.realPart * this.realPart - complex.imaginaryPart * this.imaginaryPart,complex.realPart * this.imaginaryPart +complex.imaginaryPart * this.realPart);}/*** 复数相除⽅法* @param complex* @return*/public Complex divideBy(Complex complex){double dividedPart = (this.realPart * this.realPart +this.imaginaryPart * this.imaginaryPart);return new Complex((complex.realPart * this.imaginaryPart + complex.imaginaryPart * this.realPart) / dividedPart, (complex.imaginaryPart* this.realPart- complex.realPart * this.imaginaryPart) / dividedPart);}/*** 求共轭复数⽅法* @return*/public Complex conjugate(){return new Complex(this.getRealPart(),-this.getImaginaryPart());}/*** 重写toString⽅法,实现复数的输出格式*/String str = "";// 实部为零,虚部不为零if (this.realPart == 0 && this.imaginaryPart != 0){str += this.getImaginaryPart() + "i";}// 实部不为零,虚部为零else if (this.realPart != 0 && this.imaginaryPart == 0){str += this.getRealPart();}// 实部、虚部都不为零else if (this.realPart != 0 && this.imaginaryPart != 0){str += this.getRealPart() + (this.getImaginaryPart() > 0 ? "+": "") + this.getImaginaryPart() + "i"; }return str;}}测试类:Complexdemopackage studentTaskThree;/*** 测试类* @author Administrator**/public class ComplexDemo{/*** main⽅法,测试程序⼊⼝点* @param args*/public static void main(String[] args)* 创建两个完整复数对象*/Complex com1 = new Complex(1, 2);Complex com2 = new Complex(2, 1);// 创建⽆参复数Complex com3 = new Complex();// 创建只有虚部的复数Complex com4 = new Complex(5);// 输出对象System.out.println("复数1:" + com1);System.out.println("复数2:" + com2);System.out.println("复数3:" + com3);System.out.println("复数4:" + com4);// 输出相加结果System.out.println("复数相加:(" + com1 + ") + (" + com2 + ") = " + (com1.plus(com2)).toString()); // 输出相减结果System.out.println("复数相减:(" + com1 + ") - (" + com2 + ") = "+ (com1.minus(com2)).toString());// 输出相乘结果System.out.println("复数相乘:(" + com1 + ") * (" + com2 + ") = " + com1.times(com2));// 输出相除结果System.out.println("复数相除:(" + com1 + ") / (" + com2 + ") = " + com1.divideBy(com2));// 输出所求的共轭复数System.out.println("共轭复数: " + com1 + " 共轭复数是:" +com1.conjugate());}}实际测试类:import javax.swing.JOptionPane;/*** 实际测试类* @author Administrator**//*** 测试类⼊⼝点* @param args*/public static void main(String[] args){// 创建两个复数对象Complex com1 = new Complex();Complex com2 = new Complex();// 输⼊数据com1.setRealPart(Double.parseDouble(JOptionPane.showInputDialog("请输⼊复数1的实部:")));com1.setImaginaryPart(Double.parseDouble(JOptionPane.showInputDia log("请输⼊复数1的虚部:")));com2.setRealPart(Double.parseDouble(JOptionPane.showInputDialog("请输⼊复数2的实部:")));com2.setImaginaryPart(Double.parseDouble(JOptionPane.showInputDia log("请输⼊复数2的虚部:")));// 输出各个⽅法的测试结果JOptionPane.showMessageDialog(null, "复数应⽤测试如下:\n" +"复数1:" + com1 + "\n" +"复数2:" + com2 + "\n" +"复数相加:" + com1.plus(com2) + "\n" +"复数相加:" + com1.minus(com2) + "\n" +"复数相乘:" + com1.times(com2) + "\n" +"复数相除:" + com1.divideBy(com2) + "\n" +"共轭复数:" + com1 + " 共轭复数是:" +com1.conjugate());}}五、调试过程1.编译过程没有错误。
JAVA第三次实验完整版
实验报告
院(系): 计算机科学学院
专业年级 : 电子信息科学与技术1403班姓名 : 卢丽琼
学号 : 21409030312
2016年 12 月 26 日
实验三JDBC编程
一、目的
通过Java数据库访问程序的编写、调试,使学生掌握JDBC编程的基本方法,熟悉常用的JDBC API,促进学生对概念的理解,培养动手能力。
二、基本要求
学生需要按时达到指定实验室上机。
调试教学中使用的程序示例,并加以修改,增加程序的功能;实现数据库访问的优化。
完成实验后,需要按时提交实验报告。
三、实验内容
1)复习数据库SQL语句的编写。
2)编写(JavaODBC-JDBC驱动)公共模块。
3)建立数据库应用模型,对数据库进行操作。
4)调试程序,实现数据库的访问。
四:实验步骤与结果
五:实验心得
通过本次试验,我了解了JDBC的基本概念并且深入了解了其注册方法,我明白了如何调用数据库,怎样建立数据库,以及数据库的基本架构,更深入的了解了JA V A.。
Java实三报告
浙江万里学院实验报告课程名称: 面向对象程序设计实验名称: 数据库的连接: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. 单击"确定"按钮,会弹出显示"数据库创建成功"的对话框。
实验三 实验报告
System.out.println("当前时间:"+t.getTime());
}
}
(5)编译并运行。
4、使用修饰符来限定类的成员变量或成员方法的属性
有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。
七、总结
对一些语句还不太懂,多看一些例子,加强对语句的理解。
Java程序设计基础
实验报告
专业班级
学号
姓名
实验指导教师
实验地点
实验四室
2013-2014学年第2学期
实验序号及名称:实验3Java语言面向对象基础(1)
一、实验目的和要求
通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握面向对象程序设计的方法,了解类的继承性和多态性的作用,了解接口的作用。
15、编写体现类的多态性(成员方法重载、构造方法重载)的程序;
16、编写体现接口功能的程序。
三、实验内容(步骤)
1、设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改
(1)程序功能:设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。
y=passY*passY;
System.out.println("方法调用中x="+x+", y="+y);
Java实验报告三
Java实验报告三Java实验报告班级计科⼆班学号 20188450 姓名李代传完成时间 2019.9.20评分等级实验三 String类的应⽤1. 实验⽬的1. 掌握类String类的使⽤;2. 学会使⽤JDK帮助⽂档;2. 实验内容1.已知字符串:"this is a test of java".按要求执⾏以下操作:(要求源代码、结果截图。
)3. 统计该字符串中字母s出现的次数。
4. 统计该字符串中⼦串"is"出现的次数。
5. 统计该字符串中单词"is"出现的次数。
6. 实现该字符串的倒序输出。
2.请编写⼀个程序,使⽤下述算法加密或解密⽤户输⼊的英⽂字串。
要求源代码、结果截图。
3.已知字符串"ddejidsEFALDFfnef2357 3ed"。
输出字符串⾥的⼤写字母数,⼩写英⽂字母数,⾮英⽂字母数。
1. 实验过程1. 实验代码1. 算法详解:很简单,就是使⽤字符串的indexOf()⽅法找到被查找的字符串中的第⼀个需要查找的字符串,然后从这个索引的后⼀个位置继续查找。
因为查找都是⽤的⼀种算法,只需要改变⼩部分参数就⾏了,所以我把它单独写成了⼀个⽅法。
StringBuffer中有能倒序输出的⽅法,所以把字符串当做参数new了⼀个StringBuffer就很简单。
1.实验结果2.实验代码算法详解:把输⼊的字符串⽤toCharArray()⽅法拆分成字符数组,然后⼀个字符⼀个字符的进⾏操作。
⽤x来记录是解密或者是加密,这样就能在后⾯决定是+3或者是-3,能通过这⼀个变量来节省很多重复语句。
算法详解:下⾯这个就是加密算法,⽤了String类的substring⽅法,作⽤是得到指定位置的字符串。
因为是向后移动三位,所以就直接把最后三个字符取出来放到最前⾯就好了。
但是原来的字符串没有变,所以要把最后三个字符去掉,⽤了StringBuffer类中的replace⽅法,作⽤是替换掉指定位置的字符串,我把替换为了空字符串,就相当于删除了。
JAVA实验报告
第三次Java实验报告实训1》:1.实训目的:(1).了解Java中数组的定义。
(2).掌握不同类型数组的声明方法及其应用。
(3).掌握一维和二维数组的创建及其使用方法。
2.实训内容:编写一个Java程序,用随机生成一维字符数组,然后先按正序再按反序输出它们。
3.实训步骤:1》.在包“su”中创建可视类“sujian”.2》.添加组件:Lable和Button更改其属性和Text。
3》.添加事件响应代码:对“确定”选择Events- widgetSelected并将代码改为:char[] s=new char[15];for(int i=0;i<s.length;i++){int k=(int)(Math.random()*26+97);s[i]=(char)k;}String str="随机字符";String str1="反向输出";for(int i=0;i<s.length;i++){str=str+Character.toString(s[i]);str1=str1+Character.toString(s[s.length-i-1]);}label.setText(str);label1.setText(str1);运行结果为:实训2》.1.实训内容:编写一个Java程序,用二维数组实现奇数阶的魔方矩阵:规律为:1.数1放在第一行的正中一列,2.从2起{每个数所在的行数比前一数的行数减1,列数加1。
如果行数超过下界(上界)则改为上界(下界),3.如果数为n 的倍数,则其后的数所在位置列数不变,行数加1}2.实训步骤:(1).在包中创建一个sujian1可视类(2).添加组件:Lable和Button更改其属性和Text。
(3).添加事件响应代码:对“确定”选择Events- widgetSelected 并将代码改为:MessageBox box=new MessageBox(sShell,SWT.ICON_WARNING|SWT.OK);int n=Integer.parseInt(text.getText()==""?"-1":text.getText());if(n>9||n<1||n%2==0){box.setMessage("输入一个不超过9的正奇数:");}else{box.setText(n+"阶魔方阵");String[][] f=new String[n+1][n+1];String str="";int i=1,j=(n+1)/2;f[i-1][j-1]="1";for(int k=2;k<=n*n;k++){if((k-1)%n==0){i++;}else{i=(i==1)?n:i-1;j=(j==n)?1:j+1;}if(k<10){f[i-1][j-1]=""+Integer.toString(k);}else f[i-1][j-1]=Integer.toString(k);}for(i=0;i<n;i++){for(j=0;j<n;j++){str=str+f[i][j]+" ";}str=str+"\n";}box.setMessage(str);}box.open();text.selectAll();text.setFocus();运行结果为:。
Java实验三实验报告1
淮海工学院计算机工程学院实验报告书课程名:《Java语言实验与课程设计指导》题目:实验3——深入面向对象编程班级:学号:姓名:实验题目:1.定义一个学生类,定义一个大学生类和小学生类,这两个类是学生类的子类;定义一个选课接口,由大学生类实现该接口,定义一个年龄异常处理,当小学生年龄小于7岁时,弹出异常。
2.定义一个银行卡类,定义一个信用卡类和普通银行卡类,这两个类是银行卡类的子类;定义一个透支的接口,信用卡可以透支,普通银行卡不可以透支。
定义一个取款异常和透支异常,当普通银行卡取款超过银行卡余额时,弹出“取款异常”;当信用卡透支超过2万元时弹出“透支异常”。
实验代码:题1源代码:import java.awt.*;class student{String number,name,sex,bj;int age;student(String xuehao,String xingming,String xingbie,int nianling,String banji){number=xuehao;name=xingming;sex=xingbie;age=nianling;bj=banji;}}interface xuanke{abstract void select(String s);}interface illegal{abstract void illegal(int s);}class primary extends student implements illegal{String xx;primary(String xuehao,String xingming,String xingbie,int nianling,String banji,String xiaoxue){super(xuehao,xingming,xingbie,nianling,banji);}public void illegal(int s){age=s;if(age<7)System.out.println("\n出错~学生"+name+" 的年龄过小!");}}class college extends student implements xuanke{String dx,xk;college(String xuehao,String xingming,String xingbie,int nianling,String banji,String daxue){super(xuehao,xingming,xingbie,nianling,banji);dx=daxue;}public void select(String s){xk=s;}}public class test_1{public static void main(String args[]){primary p1=new primary("1","张三","男",13,"五(1)班","ZZZ小学");System.out.println(p1.number+" "++" "+p1.sex+" "+p1.age+" "+p1.bj+" "+p1.xx);p1.illegal(p1.age);primary p2=new primary("\n2","小红","女",6,"一(1)班","YYY小学");System.out.println(p2.number+" "++" "+p2.sex+" "+p2.age+" "+p2.bj+" "+p2.xx);p2.illegal(p2.age);college c1=new college("3","小茗","女",20,"软件112","XXX大学");c1.select("现代密码学");System.out.print("\n"+c1.number+" "++" "+c1.sex+" "+c1.age+" "+c1.bj+" "+c1.dx+" "+c1.xk+"\n");}}实验结果:题2源代码:import java.util.*;class bankcard{String kh,name;double yue;bankcard(String kahao,String yezhu,double shengyu) {kh=kahao;name=yezhu;yue=shengyu;}}interface touzhi{abstract void tz(double s);abstract void tzye(double s);abstract void illegal();}interface qkillegal{abstract void illegal();}class common extends bankcard implements qkillegalcommon(String kahao,String yezhu,double shengyu){super(kahao,yezhu,shengyu);}public void warning(){System.out.println("普通银行卡不可透支!");}public void illegal(){System.out.println("取款超额!");}}class xinyongka extends bankcard implements touzhi{double tzye;xinyongka(String kahao,String yezhu,double shengyu){super(kahao,yezhu,shengyu);}public void tz(double s){tzye=s;}public void tzye(double s){double t=20000+yue-s;if(s>yue)System.out.println(t);}public void illegal(){System.out.println("透支超额!");}}public class test_3{public static void main(String args[]){common c1=new common("62226200240001916658","张三",1200.00);System.out.println("卡号:"+c1.kh+"业主:"++"余额:"+c1.yue);System.out.println("请输入取款金额:");Scanner s1=new Scanner(System.in);double b=s1.nextDouble();if(b<c1.yue){double c=c1.yue-b;System.out.println("银行卡余额为:"+c);}elsec1.illegal();System.out.println("\n\n");xinyongka x1=new xinyongka("62236200243008615559","李四",500.00);System.out.println("卡号:"+x1.kh+"业主:"++"余额:"+x1.yue);System.out.println("信用卡可透支!透支金额为20000元!");System.out.println("请输入要取款金额:");Scanner s2=new Scanner(System.in);double a=s2.nextDouble();if(a<=x1.yue){double d=x1.yue-a;System.out.println("银行卡余额为:"+d);}else if(a>x1.yue&&a<=(20000+x1.yue)){System.out.println("透支余额剩余:");x1.tzye(a);}elsex1.illegal();}}实验结果:普通银行卡类:输入普通银行卡取款金额若输入金额小于余额则若大于余额则信用卡类:输入取款金额,若输入金额小于余额则若输入金额大于余额小于透支金额与余额之和,则若大于透支金额与余额之和,则。
java第三次实验报告
java实验报告实验题目实现可深度复制的栈学生姓名指导教师学院专业班级完成时间目录一、实验目的 (3)二、实验开发环境和工具 (3)三、问题描述: (3)四.设计简要描述 (3)五.程序清单 (4)六.调试结果分析: (4)七.心得体会: (8)一、实验目的1.了解和掌握ArrayList的基本用法2. 了解和掌握用ArrayList实现一些基本的数据结构二、实验开发环境和工具可以在Linux或者Windows操作系统上搭建开发环境,可使用集成开发环境Eclipse,使用Java语言,工具包使用JDK1.8。
三、问题描述:基于ArrayList实现可以深度复制(Deep Copy)的栈结构。
1.首先用ArrayList实现栈结构2. 接着将第1步实现的栈通过Clonable接口实现深度复制四.设计简要描述1.数据结构设计栈的操作将在Mystacks类中全部实现,其中Mystacks类中定义私有的ArrayList 数据list,以便在函数中的使用。
2.函数设计总体来说,栈中函数的实现都是通过ArrayList类中的方法实现的,也即通过list 对象来调用ArrayList的方法。
其中需要中已的是,弹出栈顶元素的函数在弹出后,要返回该弹出元素的内容;另一个则是栈的输出函数是重置了toString()函数,具体实现代码为:3.深度复制实现用cloneable接口将深度复制实现。
这一接口的使用就是令原class继承cloneable接口,这样Mystacks类的对象就能通过调用object类的clone()方法实现复制。
Cloneable是一个标记(marker)接口: 空接口。
标记接口不包含常量和方法. 用来表示一个类具有某种属性.实现了Cloneable接口的类被标记为可复制的。
接口原型为:ng;public interface Cloneable {}五.程序清单packagemystacks;importjava.util.ArrayList;public class Mystacks implements Cloneable {privateArrayList<Integer> list;publicMystacks() {list= new ArrayList<Integer>();}publicbooleanisEmpty() {returnlist.isEmpty();}publicintgetSize() {returnlist.size();}publicint peek() {return (int) list.get(getSize() - 1);}publicint pop() {int o = (int)list.get(getSize() - 1);list.remove(getSize() - 1);return o;}public void push(int o) {list.add(o);}public String toString() {return list.toString();}public static void main(String[] args){Mystacks list;list=new Mystacks();list.push(123);list.push(234);list.push(345);list.push(456);list.push(678);System.out.println("现在栈中的元素是:"+list.toString());System.out.println("判断栈是否为空,空返回true:"+list.isEmpty());System.out.println("栈中元素的个数为:"+list.getSize());System.out.println("返回栈顶元素:"+list.peek());System.out.println("弹出栈顶元素并输出:"+list.pop());System.out.println("现在栈中的元素是:"+list.toString());Mystackslistcopy;listcopy =new Mystacks();try {listcopy=(Mystacks)list.clone();//注意此处要进行强制转换,因为clone()是object的方法,不能自动转换为Mystacks} catch (CloneNotSupportedException e) {// TODO Auto-generated catch blocke.printStackTrace();}System.out.println("复制后的listcopy内容为:"+listcopy.toString());}}六.调试结果分析:1.栈的建立栈的建立过程还算顺利,未存数据实战的输出为:2.存入数据构建栈成功后,接下来,就是要让数据存入栈中。
Java课程第三次实验报告
Java课程第三次实验报告实验报告(2014 / 2015学年第2学期)????课程名称实验名称实验时间20JA V A语言程序设计Java对象和类的使用年 5 月11 日指导单位计算机学院/软件学院软件工程系指导教师学生姓名学院(系)班级学号专业实验名称Java对象和类的使用实验类型上机实验学时一、实验目的1.掌握类的基本概念,会编写简单的类 2.掌握继承类的编写方法二、实验环境(实验设备) 1. 每位学生配备计算机一台2. 计算机需安装好JDK和JCreator 2 指导教师实验时间三、实验内容1. 学生类的创建和使用①创建一个学Student类,成员变量包括:学号、班号、姓名、性别、年龄等,且都是private类型。
②声明一个构造方法,初始化所有成员变量。
③分别声明获得各属性的public类型的成员方法,方法名要求以get开头。
④分别声明修改各属性的public类型的成员方法,方法名要求以set开头。
⑤声明一个public类型的toString()方法,把该类中的所有域信息组合成一个字符串。
在主类中:创建2个Student 对象,输出对象的所有域信息;修改对象的姓名和年龄,输出修改后的姓名和年龄;比较两个Student对象的年龄的大小,输出年龄较大的Student对象。
student类的代码:public class student1{ private String name; private String xingbie; private int xuehao; private int banhao; private int age; public student1(){ setStudent(0,0,0,\无名氏\未出生\全部信息,构造方法} public String getname(){ return name;} public String getxingbie(){ return xingbie;} public int getxuehao(){ return xuehao;} public int getbanhao(){ return banhao;} public int getage(){ return age;} public void setStudent(int x,int b,int a,String N,String X){ xuehao=((x>0)?x:0); banhao=((b>0)?b:0); 1 age=((a>0)?a:0); name=N; xingbie=X; } public String toString(){ return \姓名:\性别:\年龄:\班号\学号\ } public String tostring(){ return \姓名:\年龄:\ } } StudentTest类的代码:import javax.swing.JOptionPane; public class student1Test{ public static void main(String args){ collegestudent Collegestudent=new collegestudent(14110105,1411011,21,\折原临也\男\情报收集\ String output=\学生的信息:\ JOptionPane.showMessageDialog(null,output,\学生\ System.exit(0); }} 3.定义一个矩形类,计算其面积,定义派生类计算正方形面积。
Java第三次实验
实验4:修饰符与继承性一、实验目的了解如何使用类及其成员的修饰符,理解类的继承性,掌握方法的继承、重载和覆盖。
二、实验要求1.编写如何使用类及其成员的修饰符的程序。
2.编写如何通过传递参数来调用方法的程序。
3.编写体现类的继承性(成员变量、成员方法的继承)的程序。
三、实验内容(一)使用修饰符有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。
常用的修饰符有:public,private,protected,package,static,final,abstract等。
1.程序功能:通过两个类StaticDemo、KY4_1 来说明类变量与对象变量,以及类方法与对象方法的区别。
2.编写源程序KY4_1.java,程序源代码如下。
class StaticDemo {static int x;int y;public static int getX() {return x;}public static void setX(int newX) {x = newX;}public int getY() {return y;}public void setY(int newY) {y = newY;}}public class KY4_1 {public static void main(String[] args) {System.out.println("类变量x="+StaticDemo.getX());System.out.println("对象变量y="+StaticDemo.getY());StaticDemo a= new StaticDemo();StaticDemo b= new StaticDemo();a.setX(1);a.setY(2);b.setX(3);b.setY(4);System.out.println("类变量a.x="+a.getX());System.out.println("对象变量a.y="+a.getY());System.out.println("类变量b.x="+b.getX());System.out.println("对象变量b.y="+b.getY());}}3.编译并运行程序KY4_1.java,看看该程序是否有错?如果有错请在实验报告中指出出错的地方,出错的原因,并给出修改意见以及程序正确运行的结果。
java实验三报告模板
计算机科学与技术系实验报告专业名称软件工程课程名称面向对象程序设计项目名称实验三类和对象班级 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实验三实验报告
实验报告课程名称面向对象课程设计实验项目名称类的继承班级与班级代码13计算机科学与技术1班实验室名称(或课室)SS1 205专业计算机科学与技术任课教师尹华学号:12251102120姓名:林淑英实验日期:2014 年4 月28 日广东财经大学教务处制姓名林淑英实验报告成绩评语:指导教师(签名)年月日说明:指导教师评分后,实验报告交院(系)办公室保存。
实验三类的继承、多态、接口、访问控制符与修饰符实验目的:通过编程练习掌握类的继承,多态,接口,访问控制符与修饰符的使用方法。
实验原理:类的继承,接口。
实验设备:计算机,Eclipse。
实验题目:1.设计一个Person 类,其成员变量有:姓名(name)、性别(gender)、年龄(age);再设计一个Student类,它是类Person的子类,其成员变量有:学号(id)、班名(cname)、成绩(score),类Student中要有一个方法 display(),用来显示一个学生的信息。
编写一个测试程序,创建一个Student类的对象,要求name和id 是自己的姓名和学号,输出学生的各种信息,学生的基本信息在类Student的带参数的构造方法中设定。
2.定义一个类A,该类有一个方法f,方法f可以输出英文字母,再定义一个类B是A的子类,子类B不能重写父类A的方法f,子类有一个方法g,可以输出中文字符串。
编写测试程序,创建B的对象,输出英文字母和中文字符串。
3.定义一个坐标类Pointer,成员变量包括x和y;成员方法有:(1)构造方法(2)setX、setY、getX、getY、display方法(3)类方法distance用来计算两点之间的距离编写测试程序,创建Pointer的两个对象并计算两个点坐标的距离。
4. 定义一个抽象类Area、两个Area的子类RectArea和RoundArea,以及一个实现类ImpleArea。
要求如下(1)抽象类Area类中只包含一个抽象方法double area()。
JAVA实验报告3
甘肃政法学院本科生实验报告(三)姓名:俞晓学院:信息工程学院专业:信息管理与信息系统班级:2013级信管班实验课程名称:Java SE程序设计实验日期:2015年5月5日指导教师及职称:李瑞生实验成绩:开课时间:2104-2015学年第二学期甘肃政法学院实验管理中心印制实验题目组件与事件小组合作否姓名俞晓班级2013级信管班学号20138102012一、实验目的1、掌握java AWT图形用户界面设计常用类及其各自重要方法的应用。
2、掌握java事件处理模式并熟练掌握文本框上事件处理的方法。
3、进一步掌握java组件及事件编程的各种方法。
4、掌握对话框的编制和事件处理方法。
5、掌握鼠标焦点事件、鼠标事件及键盘事件的处理方法。
6、掌握Swing组件及事件编程方法。
二.实验环境5、实体对话框6、英语单词拼写练习四、实验过程与分析在实验过程中,遇到了如下一些问题,最后在和同学相互交流以及上网查资料后,这些问题都得到了解决。
1、在做第一个实验时,对于giveAnwser.addActionListener(this)中的(this)不是很理解,经过请教同学,我知道了此处的this代表当前类的对象,通过它,不需要new一个实例就可以用this调用它的方法和属性。
2、在做第二个实验“信号灯”时,第一次运行出现了错误,运行结果如下之后在经过多次调试,程序运行正常,运行结果如图:3、在做第六个实验“拼写单词”时,在用键盘左右移动字母时,出现了“NULL”值。
但是在重新调试代码后,运行结果正常。
4、向java中添加awt组件时,我们多数用到的是add()函数,要实现相应的事件时,我们必须还要添加各自所相应的ActionListener(事件监听器)。
五、实验总结通过本次实验,我了解了java中AWT组件和Swing组件的图形用户界面设计常用类及其各自重要方法的应用,还掌握了怎么来添加AWT 组件和Swing组件,以及怎么实现其相应的功能,最后也熟悉了java中AWT组件和Swing组件的使用方法和思想以及文本框上事件处理的方法。
java实验报告(实验三)
System.out.println("输入第二个日期的年份:");
int yearTwo=read.nextInt( );
System.out.println("输入该年的月份:");
int monthTwo=read.nextInt( );
System.out.println("输入该月份的日期:");
Date date1=【代码6】//用timeOne做参数构造date1
Date date2=【代码7】//用timeTwo做参数构造date2
if(date2.equals(date1))
{
System.out.println("两个日期的年、月、日完全相同");
}
else if(date2.after(date1))
北京林业大学
2013学年—2014学年第2学期Java程序设计基础实验报告书
专 业:电子班 级:11-2
姓 名:王云飞学 号:
实验地点:计算机中心任课教师:黄儒乐
实验题目:自定义异常与异常处理,常用类使用
实验环境:Windows2000/XP;局域网
实验要求:
1.对所有实验内容中涉及到的命令均要亲自实践,对照实验指导书进行。
System.out.println("输入该年的月份:");
int monthTwo=read.nextInt( );
System.out.println("输入该月份的日期:");
int dayTwo=read.nextInt( );
Calendar calendar=【代码1】//初始化日历对象。
JAVA实验报告实验3答案
实验三熟悉常用java工具包并运用编程实验目的:本实验旨在巩固同学们对上课所讲java.util工具包中collection,list,set,map加深理解,对其用法编程有一个更加深入的理解,为同学们以后的能够用java进行独立地编写桌面程序打下一定的基础。
实验内容:本实验的内容为:用collection,list,set,map来存储数据,并进行排序,任何用iterator,listiterator或者enumeration来打印其结果(按顺序和降序排列打印)。
共分为四部分部分(前三部分必做,如果选第四个,前三个可以不做。
):(1)按顺序把1,10,5,7,6,2,9,20,14,存入到list中(注:允许自己自定义任何数),并对其进行排序,打印其升序和降序排列的结果。
然后再向list中位置为第四位插入数 35看看会有啥结果?再向list中插入字符串“ddy”,试猜想排序是否会出错?然后看看运行结果是啥?程序:import java.util.*;public class sy3{public sy3(){list list=new arraylist();list.add(1);list.add(10);list.add(5);list.add(7);list.add(6);list.add(2);list.add(9);list.add(20);list.add(14);list.add(35);list.add(ddy);system.out.println(原序列:);for(int i=0;i<=list.size()-1;i++){system.out.println(list.get(i));}system.out.println(新序列);for(int i=0;i<=list.size()-1;i++){collections.sort(list);collections.reverse(list);system.out.println(list.get(i));}}public static void main(string[] args){new sy3();}}结果如图(2)按顺序把下面一组数([1,2] [3,4] [2,2] [6,4] [5,2] [4,4])存放到map中(注:允许自己自定义任何数),并按key 和value的值进行排序。
JAVA实验报告三
JA V A实验报告姓名:学号:班级:一、实验目的(1)掌握GUI中容器、一般组件的使用方法。
(2)掌握GUI中布局管理器的使用方法。
(3)掌握简单事件的处理方式。
二、实验内容编写程序实现如下功能:(1)实现类似于上图的界面。
(2)给按钮“保存”增加事件,点击保存能够将填入的信息写入文本文件中。
(3)给按钮“导入”增加事件,点击导入能够从文本文件中读入第一条数据。
(4)添加新按钮“保存1”,给按钮“保存1”增加新的事件,点击保存,能够将界面中输入的信息保存到数据库中,数据库不限,如Access,SQL Server,Oracle等。
(5)添加新按钮“导入1”,给按钮“导入1”增加新的事件,点击导入,能够将从数据库中读取第一条数据,写入到界面中。
三、实验步骤import java.sql.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;public class EmpManageSys implements ActionListener {Connection con;Statement stmt;String sql;ResultSet rs;StringBuffer sb = new StringBuffer();JTextField jtf2 = new JTextField("张飞",10);JTextField jtf3 = new JTextField(10);JTextField jtf4 = new JTextField(10);JTextField jtf7 = new JTextField(10);JTextField jtf5 = new JTextField(10);JTextField jtf6 = new JTextField(10);JTextField jtf8 = new JTextField(10);JTextField jtf9 = new JTextField(10);JTextArea jta10 = new JTextArea(50, 40);public void actionPerformed(ActionEvent e) {String str = e.getActionCommand();if ("查询".equals(str)) {//if check the button of 查询,then go to method of searchEmp() searchEmp();} else if ("增加".equals(str)) {//if check the button of 增加,then go to method of addEmp() addEmp();} else if ("修改".equals(str)) {//if check the button of 修改,then go to method of alterEmp() alterEmp();} else if ("撤除".equals(str)) {//if check the button of 撤除,then go to method of deleteEmp() deleteEmp();}}//this is the constructor.EmpManageSys() {createGUI();connectToDataBase();// searchEmp();// addEmp();// deleteEmp();alterEmp();}//connect to the database by using the method getConnection from the class of JdbcUtil.//You can find the class of JdbcUtil at the button of this page.public Connection connectToDataBase() {con = JdbcUtil.getConnection();System.out.println(con);return con;}public void searchEmp() {jta10.setText("");try {stmt = con.createStatement();// sql = "select * from Mstar where id=" + jtf3.getText();// sql1="select * from sd100343 where ="+jtf3.getText();sql = "select * from Mstar where chineseName="+ jtf2.getText().toLowerCase().trim() + "or id="+ jtf3.getText().toLowerCase().trim() + "or engName="+ jtf4.getText().toLowerCase().trim() + "or UNIT="+ jtf5.getText().toLowerCase().trim() + "or TEAM="+ jtf6.getText().toLowerCase().trim() + "or Phone="+ jtf7.getText().toLowerCase().trim() + "or region="+ jtf8.getText().toLowerCase().trim() + "or busStation="+ jtf9.getText().toLowerCase().trim();stmt.executeQuery(sql);rs = stmt.getResultSet();ResultSetMetaData meta = rs.getMetaData();int cols = meta.getColumnCount();while (rs.next()) {for (int i = 1; i <= cols; i++) {sb.append(" " + meta.getColumnName(i) + " =");sb.append(rs.getString(i));}sb.append("\n");jta10.setText(sb.toString());}} catch (SQLException e11) {e11.printStackTrace();}}public void addEmp() {try {stmt = con.createStatement();sql = "update Mstar values(" + jtf2.getText() + jtf3.getText() + jtf4.getText() + jtf5.getText() + jtf6.getText()+ jtf7.getText() + jtf8.getText() + jtf9.getText() + ")";int i = stmt.getUpdateCount();if ((jtf2.getText() != null) && (jtf4.getText() != null)&& (jtf6.getText() != null) && (jtf7.getText() != null)) { stmt.executeUpdate(sql);jta10.setText("添加记录成功" + i + "条");} else {jta10.setText("带*号项为添加记录时不能为空");}} catch (SQLException e1) {e1.printStackTrace();}}public void deleteEmp() {searchEmp();try {stmt = con.createStatement();sql = "delete from Mstar where chineseName="+ jtf2.getText().toLowerCase().trim() + "or id="+ jtf3.getText().toLowerCase().trim() + "or engName="+ jtf4.getText().toLowerCase().trim() + "or UNIT="+ jtf5.getText().toLowerCase().trim() + "or TEAM="+ jtf6.getText().toLowerCase().trim() + "or Phone="+ jtf7.getText().toLowerCase().trim() + "or region="+ jtf8.getText().toLowerCase().trim() + "or busStation="+ jtf9.getText().toLowerCase().trim();stmt.executeUpdate(sql);int i = stmt.getUpdateCount();jta10.setText("撤除操作成功" + i + "条");} catch (SQLException e) {e.printStackTrace();}}public void alterEmp() {searchEmp();sql = "update Mstar set chineseName="+ jtf2.getText().toLowerCase().trim() + "and id="+ jtf3.getText().toLowerCase().trim() + "and engName="+ jtf4.getText().toLowerCase().trim() + "and UNIT="+ jtf5.getText().toLowerCase().trim() + "and TEAM="+ jtf6.getText().toLowerCase().trim() + "and Phone="+ jtf7.getText().toLowerCase().trim() + "and region="+ jtf8.getText().toLowerCase().trim() + "and busStation=" + jtf9.getText().toLowerCase().trim();int i = 0;try {stmt.executeUpdate(sql);i = stmt.getUpdateCount();} catch (SQLException e) {e.printStackTrace();}jta10.setText("修改操作成功" + i + "条");}public void createGUI() {JFrame jf = new JFrame("员工信息管理系统");jf.setLayout(new GridLayout(2, 1));// jf.setLayout(new GridLayout(10,2));JPanel jp00 = new JPanel(new GridLayout(5, 4));JPanel jp1 = new JPanel();JButton jb11 = new JButton("查询");jb11.addActionListener(this);JButton jb12 = new JButton("增加");jb12.addActionListener(this);jp1.add(jb11);jp00.add(jp1);JPanel jp11 = new JPanel();JButton jb111 = new JButton("修改");jb111.addActionListener(this);JButton jb112 = new JButton("撤除");jb112.addActionListener(this);jp11.add(jb111);jp11.add(jb112);jp00.add(jp11);JPanel jp2 = new JPanel();JLabel jl2 = new JLabel("中文名 * "); jp2.add(jl2);jp2.add(jtf2);jp00.add(jp2);JPanel jp3 = new JPanel();JLabel jl3 = new JLabel("工号 ");jp3.add(jl3);jp3.add(jtf3);jp00.add(jp3);JPanel jp4 = new JPanel();JLabel jl4 = new JLabel("EngName*");jp4.add(jl4);jp4.add(jtf4);jp00.add(jp4);JPanel jp5 = new JPanel();JLabel jl5 = new JLabel("UNIT ");jp5.add(jl5);jp5.add(jtf5);jp00.add(jp5);JPanel jp6 = new JPanel();JLabel jl6 = new JLabel("TEAM* ");jp6.add(jl6);jp6.add(jtf6);jp00.add(jp6);JPanel jp7 = new JPanel();JLabel jl7 = new JLabel("Phone* ");jp7.add(jl7);jp7.add(jtf7);jp00.add(jp7);JPanel jp8 = new JPanel();JLabel jl8 = new JLabel("区域 ");jp8.add(jl8);jp8.add(jtf8);JPanel jp9 = new JPanel();JLabel jl9 = new JLabel("公交站 ");jp9.add(jl9);jp9.add(jtf9);jp00.add(jp9);jf.add(jp00);JPanel jp01 = new JPanel();jta10.setText("--用户使用手册-- \n1、查询:选择一个字段,如 EngName 在文本框中输入相应内容,点击查询\n2、增加:在各个文本框中输入相应内容后,点击增加。
Java综合实验报告_3
面向对象程序设计综合性实验(一)系统分析:本系统为学生考试成绩分析系统,系统要求可以让用户输入若干学生的基本信息、课程信息,还有对应的课程成绩。
而主要功能则是可以实现按条件进行相应学生的成绩查询和按条件进行成绩的分析,并且能够通过绘制柱状图与圆饼图来显示相应结果。
因此,我设计了3个保存数据的类,分别是年级班级类、学生类以及课程类,其中学生类继承了课程类,而年级班级类则继承学生类。
每当新建一条信息(一个学生的信息),则新建一个年级班级类,在内部会自动新建一个学生类以及课程类,用于记录一个学生的信息。
本系统采用了窗口GUI来实现,因此大量采用了按钮、文本框、单选按钮、滚动窗口等等,所以必不可少的当然是不少的监听器与对应的实现方法。
(二)系统设计:1.基本数据:Class—Grade : String—major : String—classname : String—Student : Student+getGrade() : String+getStudent() : Student+getClassname() : String+getMajor() : String+setGrade(Grade : String) : void+setClassname(classname : String) : void +setMajor(major : String) : voidStudent—StudentID : String—StudentName : String—Course : Course—couseMark : double+getCourse() : Course+getCouseMark () : double+getStudentID () : String+getStudentName () : String+setCouseMark (couseMark : double) : void+setStudentID (StudentID : String) : void+setStudentName (StudentName : String) : voidCourse—coureNumber : String—courseName : String—coureScore : double—courseHour : double+getCoureNumber () : String+getCoureScore () : double+getCourseHour () : double+getCourseName () : String+setCoureNumber (coureNumber : String) : void +setCoureScore (coureScore: double) : void+setCourseHour (courseHour: double) : void+setCourseName(courseName : String) : voidjava.io.Serializable2.主要方法实现及其他类(总共有20个,简单罗列5个):(三)系统实现:1.显示全部信息:利用窗口进行显示,而该窗口由菜单栏、滚动窗口、单选按钮和复选按钮组成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京信息工程大学实验(实习)报告实验课程 java程序设计实验名称第三次实验实验日期 2016-4-11 指导老师专业年级姓名学号得分- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 实验目的:对java的类的熟悉与练习。
实验内容:1、定义一个类,它包含了一个int 类型的变量x、若干个构造函数(根据用户自己的需要)和一个输出方法show( )。
编程:从键盘输入一个两位以上的数,将这个数传递给这个类的变量x,采用方法show( )逆序输出这个数。
程序如下:package reversenum;/**** @author Administrator*/public class Reversenum {private int x;Reversenum (int x){this.x = x;}public void show() {String str;str = Integer.toString(x);char array[] = new char[str.length()];array = str.toCharArray();for(int i = str.length()-1; i >= 0;i--)System.out.print(array[i]);}public static void main(String[] args) {Reversenum temp = new Reversenum(325425);temp.show();}}运行结果如下:run:524523成功构建(总时间: 0 秒)2、定义一个复数类complex,它的内部具有两个实例变量:realPart 和imagPart,分别代表复数的实部和虚部,编程实现要求的数学运算。
(1)实现两个复数相加。
复数加运算的原则是:复数的实部和虚部分别相加。
(2)实现两个复数相减。
复数减运算的原则是:复数的实部和虚部分别相减。
(3)输出运算结果,判断是否正确。
程序如下:package complex;/**** @author Administrator*/public class Complex{private double realPart;private double imagePart;public Complex(){this.realPart = 0.0;this.imagePart = 0.0;}public Complex(double real, double image){this.realPart = real;this.imagePart = image;}public void show(){if ((this.realPart == 0.0) && (this.imagePart == 0.0))System.out.println("0");else if (this.realPart == 0.0)System.out.println(this.imagePart + "i");else if (this.imagePart == 0.0)System.out.println(this.realPart);elseSystem.out.println(this.realPart + "+" + this.imagePart + "i");}public void add(Complex x, Complex y) {this.realPart = x.realPart + y.realPart;this.imagePart = x.imagePart + y.imagePart;}public void sub(Complex x, Complex y) {this.realPart = x.realPart - y.realPart;this.imagePart = x.imagePart - y.imagePart;}public static void main(String arg[]) {Complex c1 = new Complex(1, 2);Complex c2 = new Complex(2, 2);Complex c3 = new Complex();c1.show();c2.show();c3.add(c1, c2);System.out.print("add : ");c3.show();c3.sub(c1, c2);System.out.print("sub : ");c3.show();}}运行结果:1.0+2.0i2.0+2.0iadd : 3.0+4.0isub : -1.0成功构建(总时间: 0 秒)3、定义一个圆类circle,它有一个变量radius(半径)。
从键盘输出数据,通过构造函数的参数传递给radius,编程计算并输出圆的周长和面积。
但是,你必须确保输入的数据不为负数。
程序如下:package Circle;import java.awt.*; import java.applet.*;public class Circle extends Applet{TextField banjing;int r=0;round Circle;public void init(){Label prompt;Circle=new round();prompt = new Label("半径:");banjing=new TextField(20);add( prompt );add( banjing );}public void paint(Graphics g){Circle.setRound(r);g.drawString("面积:"+Circle.area() ,50,80);g.drawString("周长:"+Circle.lengthCircle() ,50,100);}public boolean action(Event e,Object o){if (e.target == banjing){r = Integer.parseInt( banjing.getText() );if(r<0){showStatus("半径不能为负数!请重新输入数据。
");return false;}repaint();}return true;}}class round{final float PI=3.14f;int r;void setRound(int t){r=t;}float area(){return PI*r*r;}float lengthCircle(){return 2*PI*r;}}运行结果截图:4、定义一个日期类date,确保具有如下功能:(1)输出日期的格式具有如下几种:YYYY MM DDMM DD YYYYDD MM YYYY(2)采用重载构造函数,以上述日期格式数据为参数,创建date 类型的对象。
程序如下:package date;/**** @author Administrator*/public class Date {int YYYY;int MM;int DD;public Date(int y, int m, int d){this.YYYY = y;this.MM = m;this.DD = d;}public Date( ){this.YYYY = 0;this.MM = 0;this.DD = 0;}public boolean isValid() {return ( this.YYYY > 0&& this.MM > 0 && this.DD > 0 && this.MM < 13 && this.DD < 32);}public void showYMD() {System.out.println(this.YYYY+" "+this.MM+" "+this.DD);}public void showMDY() {System.out.println(this.MM+" "+this.DD+" "+this.YYYY);}public void showDMY() {System.out.println(this.DD+" "+this.MM+" "+this.YYYY);}public static void main(String args[]){Date day1=new Date();Date day2=new Date(2003,12,1);if(day1.isValid()){day1.showYMD();day1.showMDY();day1.showDMY();}if(day2.isValid()){day2.showYMD();day2.showMDY();day2.showDMY(); }}}运行结果如下:run:2003 12 112 1 20031 12 2003成功构建(总时间: 0 秒)。