Java__实验三

合集下载

Java实验三实验报告1

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实验报告(三)

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第三次实验完整版

JAVA第三次实验完整版

实验报告
院(系): 计算机科学学院
专业年级 : 电子信息科学与技术1403班姓名 : 卢丽琼
学号 : 21409030312
2016年 12 月 26 日
实验三JDBC编程
一、目的
通过Java数据库访问程序的编写、调试,使学生掌握JDBC编程的基本方法,熟悉常用的JDBC API,促进学生对概念的理解,培养动手能力。

二、基本要求
学生需要按时达到指定实验室上机。

调试教学中使用的程序示例,并加以修改,增加程序的功能;实现数据库访问的优化。

完成实验后,需要按时提交实验报告。

三、实验内容
1)复习数据库SQL语句的编写。

2)编写(JavaODBC-JDBC驱动)公共模块。

3)建立数据库应用模型,对数据库进行操作。

4)调试程序,实现数据库的访问。

四:实验步骤与结果
五:实验心得
通过本次试验,我了解了JDBC的基本概念并且深入了解了其注册方法,我明白了如何调用数据库,怎样建立数据库,以及数据库的基本架构,更深入的了解了JA V A.。

JAVA 课后实验三

JAVA  课后实验三

实验三类与对象1、(1)创建一个Rectangle类,添加两个(private)属性width与height(2)创建一个构造方法,选择width与height为形式参数。

(3)在Rectangle类中添加两个方法计算矩形的周长和面积2、创建三角形、梯形和圆形的类封装:分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。

最后在主方法main中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。

(一个文件中包含三个class和main)a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。

另外,Trangle类还具有一个boolean 型的属性,该属性用来判断三个属能否构成一个三角形。

b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。

c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。

3、编写下面程序写出运行结果,谈谈成员变量的继承与隐藏,方法的覆盖与重载。

上例内B继承了类A,在子类B中定义变量num2与父类A 同名,故在子类中父类成员变量num2被隐藏,故sum3=10+200=210;同时在子类B中父类A方法sum2()被重写(覆盖),使num2为子类定义值200,故sum4=50+200=250.这个例子中,B是A的一个子类。

其中声明了一个和父类A同名的变量num2,并定义了与之相同的方法sum2,这时在子类B中,父类的成员变量num2被隐藏,程序第25行父类的方法sum2被重载。

于是子类对象所使用的变量num2为子类中定义的num2,子类对象调用的方法sum2( )为子类中所实现的方法。

4、理解下面3个类的定义,分析它们之间的关系,写出运行结果。

上例中,SubClass是SuperClass的一个子类。

其中声明了一个和父类SuperClass同名的变量x,并定义了与之相同的方法do something,这时在子类SubClass中,父类的成员变量x被隐藏,父类的方法do something被重写。

JAVA程序设计基础实验三

JAVA程序设计基础实验三

实验报告三一【实验目的】(1)掌握类和对象的创建方法(2)理解继承的相关概念(3)掌握子类对象的创建过程(4)掌握方法的继承与重写(5)理解多态的概念与上转型对象(6)理解抽象类和接口的概念及特点二【实验内容】【项目一】方法重写定义父类People,分别定义People类的子类ChinaPeople,AmericanPeople和BeijingPeople 并分别重写父类中的各个方法。

最后在主方法中分别创建各子类的对象并调用各自的方法打印输出信息。

该程序的模板代码见/附件/Example.java:请将其补充完整并调试运行。

(1)程序代码class People{protected double weight,height;public void speakHello(){System.out.println("yayawawa");}public void averageHeight(){height=173;System.out.println("average height:"+height);}public void averageWeight(){weight=70;System.out.println("average weight:"+weight);}}class ChinaPeople extends People{//double weight,height;//重写public void speakHello()方法,要求输出类似“你好,吃了吗”这样的 //汉语信息public void speakHello(){System.out.println("你好,你吃了吗?");}//重写public void averageHeight()方法,要求输出类似//“中国人的平均身高:168.78厘米”这样的汉语信息public void averageHeight(){height=168.78;System.out.println("中国人的平均身高:"+height);}//重写public void averageWeight()方法,//要求输出类似“中国人的平均体重:65公斤”这样的汉语信息public void averageWeight(){weight=65;System.out.println("中国人的平均体重:"+weight);}public void chinaGongfu(){//输出中国武术的信息,例如:"坐如钟,站如松,睡如弓"等System.out.println("坐如钟,站如松,睡如弓");}}class AmericanPeople extends People{//重写public void speakHello()方法,要求输出类似//“How do you do”这样的英语信息。

Java实验报告三

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实验3

java实验3

集美大学诚毅学院实验报告一、目的(本次实验所涉及并要求掌握的知识点)学习Java的异常处理方法;熟悉字符串常用的处理方法;熟悉常用的容器类。

二、实验容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、输出结果图)(1)题目:设计一个特殊的整数输入类,当输入的数大于1000时,发生ExceedExcept异常。

ExceedExcept为自定义的一个异常类。

class MyException extends Exception{String message;MyException(int n){message=n+"符合要求";}public String getMessage(){return message;}}class A{public void f(int n) throws MyException{if(n<1000){MyException ex=new MyException(n);throw(ex); //抛出异常,结束方法f的执行}System.out.println(n+"不符合要求");}}public class timu01{public static void main(String args[]){A a=new A();try{a.f(1000);a.f(999);}catch(MyException e){System.out.println(e.getMessage());}}}(2)题目:设计一个字符串处理程序:实现字符串的整体、前缀、后缀比较;子字串定位;数字型字符转化为数字等各种功能。

实验代码:import java.util.Scanner;public class timu02 {public static void main(String[] args) {String s1="Java C# SQL",s2="JCS";Scanner input=new Scanner(System.in);System.out.println("----------字符串处理程序---------");System.out.println("字符串的整体比较如下:");if(pareTo(s2)<0)System.out.println("'"+s1+"' < '"+s2+"'");elseSystem.out.println("'"+s1+"' >= '"+s2+"'");System.out.println("字符串的前缀比较如下:");System.out.print("请输入要比较的前缀:");String s=input.next();if(s1.startsWith(s))System.out.println(s+"是"+s1+"的前缀。

《Java程序设计》实验报告 --实验3

《Java程序设计》实验报告 --实验3
}
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);
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《Java程序设计》实验报告
目录:
1题目
2目的和要求
3功能说明
4设计流程图
5源程序
6数据结果
7实验心得与体会
1、题目
用户自行定义一个异常,编程创建并抛出某个异常类的实例,运行该程序并观察执行结果。

例如:用户密码的合法化验证,要求密码由4-6个数字组成,若长度不落在这个范围或不是由数字组成,抛出自己的异常。

2、目的和要求
熟悉ava的异常机制处理原理,掌握用户自定义异常类,掌握如何抛出异常、捕获并处理异常。

3、功能说明
用户密码的合法化验证,密码由4-6位数字组成,若不在范围内,则抛出“密码超出范围”,若不是数字,则抛出“密码格式错误”,输入密码正确则输出“密码是”。


4、设计流程图
5、源代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class passwordException extends Exception
{
public passwordException()
{
super();
}
public passwordException(String s)
{
super(s);JOptionPane.showMessageDialog(null,s);
}
}
public class WUXING
{
public static String passwordcheck()throws passwordException
{
String str=JOptionPane.showInputDialog(null,"输入密码:");
if(str.length()<4||str.length()>6)
{
throw new passwordException("密码超出范围");
}
else if (!str.matches("\\d+"))
{
throw new passwordException("密码格式错误!!");
}
return str;
}
public static void main(String args[]) {
try{
String password = passwordcheck();
JOptionPane.showMessageDialog(null,"密码是:" + password);
}catch(passwordException e){
e.printStackTrace();
—}
}
}
6、数据结果
—。

相关文档
最新文档