《java实验报告3》

合集下载

java实验报告总结_java总结范文

java实验报告总结_java总结范文

java实验报告总结_java总结范文Java是一种功能强大的编程语言,近年来随着互联网的迅速发展,Java已经成为软件行业的主流开发语言。

本次实验旨在帮助学生熟悉Java的基本语法和算法,加强学生对Java的理解和应用能力。

实验工具本次实验使用的开发环境是Eclipse + JDK1.8,Eclipse是开源的Java集成开发环境,JDK1.8是Java Development Kit(Java开发工具包)的一个版本。

实验步骤1.实验一-Hello World!本实验是简单的Java编程,编写程序输出“Hello World!”。

这个例子非常简单,但是对于初学者来说,它是一个优秀的起点。

2. 实验二-数组本实验是关于Java中数组的基本操作,包括数组的定义、初始化、访问和遍历等基本操作。

本实验对变量和循环结构有更深入的理解和比较好的编程能力。

3. 实验三-递归本实验主要介绍递归的概念和应用。

递归是一种非常重要的编程技术,它的应用在算法设计中具有广泛的应用。

4. 实验四-线程本实验介绍了Java中线程的相关知识,包括线程的概念、创建线程和线程同步等。

由于Java是一种多线程语言,线程技术是Java编程中重要的一个部分。

实验结果通过这些实验,我对Java语法有了更深入的理解,包括如何定义、使用变量、循环结构和递归等等。

我还学习了Java中线程的相关知识,如何创建线程、线程同步和线程的多态性等等。

通过这些实验,我深入了解了Java语言和算法设计的基本概念。

我已经掌握了Java的基本语法和算法,并在实现算法时编写了一些有效的代码。

我相信这些经验和技能将对我未来的学习和职业发展有所裨益。

总结本次实验是一个非常好的实践机会,让我在实践学习的过程中更好地理解Java编程的基本知识和技能,并用所学的知识解决了很多实际问题。

它加强了我的Java基础,提高了我的编程能力,为我今后的个人发展和职业发展打下了坚实的基础。

java实验三报告模板

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

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

浙江万里学院实验报告课程名称: 面向对象程序设计实验名称: 数据库的连接: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实验报告三

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上机实验报告(3)任务简要描述⼀、⼀、任务简要描述1、集合类的使⽤举例Collection接⼝ Collection是最基本的集合接⼝,⼀个Collection代表⼀组Object,即Collection的元素(Elements)。

⼀些 Collection允许相同的元素⽽另⼀些不⾏。

⼀些能排序⽽另⼀些不⾏。

Java SDK不提供直接继承⾃Collection的类,Java SDK提供的类都是继承⾃Collection的“⼦接⼝”如List和Set。

所有实现Collection接⼝的类都必须提供两个标准的构造函数:⽆参数的构造函数⽤于创建⼀个空的Collection,有⼀个 Collection参数的构造函数⽤于创建⼀个新的Collection,这个新的Collection与传⼊的Collection有相同的元素。

后⼀个构造函数允许⽤户复制⼀个Collection。

如何遍历Collection中的每⼀个元素?不论Collection的实际类型如何,它都⽀持⼀个iterator()的⽅法,该⽅法返回⼀个迭代⼦,使⽤该迭代⼦即可逐⼀访问Collection中每⼀个元素。

典型的⽤法如下:1 Iterator it = collection.iterator(); // 获得⼀个迭代⼦2 while(it.hasNext()) {3 Object obj = it.next(); // 得到下⼀个元素 由Collection接⼝派⽣的两个接⼝是List和Set。

List接⼝ List是有序的Collection,使⽤此接⼝能够精确的控制每个元素插⼊的位置。

⽤户能够使⽤索引(元素在List中的位置,类似于数组下标)来访问List中的元素,这类似于Java的数组。

和下⾯要提到的Set不同,List允许有相同的元素。

除了具有Collection接⼝必备的iterator()⽅法外,List还提供⼀个listIterator()⽅法,返回⼀个 ListIterator接⼝,和标准的Iterator接⼝相⽐,ListIterator多了⼀些add()之类的⽅法,允许添加,删除,设定元素,还能向前或向后遍历。

java 实验三 控制语句 实验报告

java 实验三 控制语句 实验报告
if(b/50!=0){System.out.println(b/50+"张5角");b-=(b/50)*50;}
if(b/20!=0){System.out.println(b/20+"张2角");b-=(b/20)*20;}
if(b/10!=0){System.out.println(b/10+"张1角");b-=(b/10)*10;}
System.out.println(e);
}
}
}
}
问题:
(1)程序运行结果怎样,出现了哪些异常?
程序运行结果截图如下:
该程序运行出现了除数不能为0,数组越界,还有空指针放回等异常。
(2)分析异常是怎样抛出、捕获和处理的?
抛出异常:在方法的运行过程中,如果发生了异常,则该方法生成一个代表该异常的对象并把它交给运行时系统,运行时系统便寻找相应的代码来处理这一异常。
答:可以。
其执行结果如下:
2.语句:“JOptionPane.showMessageDialog(null,"猜对了!这个数就是"+realNumber);”为何要放在while循环语句之后?放在while语句的循环体中合理吗?
请将回答写在析并运行下面程序,并回答下面问题,最后完善异常处理程序。
(1)存在元、角、分不同币值,在计算时建议统一转换成分,比如5元就是500分,2元就是200分;
(2)用几个数组,按顺序存储可以使用的转换后的币值,如200,100,2;还有对应币值的名字,如两元,一元,二分;还有对应的单位,如元,元,枚;
(3)怎么才算最小找零方案,张数(枚数)最小就意味着尽量用大币值去找零,所以把找零的总额转成分后,依次除以大币值,得出的商就是该币值的找零张数(枚数),而得出的模(也就是余数)就是继续要找零的,继续除以下一个较小的币值,。。。依次类推,知道最后不再有余数,说明找零成功,把依次得到的商对应相对应的币值输出即可。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

项目二
实验一
实验内容:
1.(1)阅读如图2.1所示程序。

该程序实现了一个圆环类Ring,该类有3个属性,分别是内半径innerRadius,外半径outerRadius和颜色color,这些属性可以自行设置也可以得到其值,并且该程序还可以返回圆环的面积Area。

图2.1
(2)新建Ring.java文件,输入程序,将程序中“代码1-4”处补充完整并保存。

(3)使用DOS命令进入其所存放的目录,编译运行该程序。

并将完整程序和运行结果截图写入实验报告。

实验分析:
类的定义,对象的声明。

实验程序:
实验结果截图:
实验问题分析:
实验中,主要出现两个问题(1)中英文分号输入错误
(2)编写程序时,对象的大小写错误,导致找不到该符号
编写程序,运行前,应该进行检查。

实验二
实验内容:
2.阅读如图2.2所示程序。

该程序实现了一个圆类Circle,该类有3个属性,分别是圆周率pi,半径radius和圆对象个数objectNo,其中圆周率和圆对象个数为static成员。

并且该程序还有两个static方法用来设置圆周率和显示当前圆对象个数。

图2.2
(2)新建Circle.java文件,输入程序并保存。

(3)使用DOS命令进入其所存放的目录,编译运行该程序。

分析观察运行结果并将运行结果截图写入实验报告。

(4)能否将程序中的cir1.setRadius(10)改为Circle.setRadius(10)?为什么?将圆周率pi的static修饰符去掉,会出现什么结果?为什么?将setPI(d ouble p)的 static修饰符去掉呢?圆对象个数objectNo为什么要设置为stat ic,它的作用是什么?将你的分析写入实验报告。

实验分析:
(4)cir1.setRadius(10)不能改为Circle.setRadius(10),因为Circle是定义的方法,它是一个类,cir1是它实例化的一个对象。

必须是对象调用方法才有意义。

就好比具体的是哪个人相互比较才有意义。

一起将圆周率pi的static去掉,程序结果第二个pi发生微小的变动。

将圆周率pi的static修饰符去掉,会出现错误:无法从静态上下文中引用非静态的变量pi。

然而,将setPI(double p)的 static修饰符去掉,程序结果不变。

static修饰的变量,是在程序中与别人共享的,意思是说,objectNo设置为static之后,每增加一个圆,objectNo自动加1,从而记录圆的个数。

比如,修改前,
修改后:
很明显,修改后的当前圆的个数记录的已经出现错误。

实验程序:
实验截图:
实验问题总结:
方法调用时,发生错误。

比如:
少了()。

实验三
实验内容:
3.阅读如图 2.3所示程序。

该程序实现了一个父类Telephone和其子类Mobilephone,该类有电话品牌,电话号码等属性,另外还有计算话费和显示信息等方法。

子类Mobilephone除了具有父类的属性外,还有网络类型,被叫时间等属性,另外它还有自己的计算话费和显示信息的方法。

图2.3
(2)新建Inheritance.java文件,输入程序,将程序中“代码1-5”处补充完整并保存。

(3)使用DOS命令进入其所存放的目录,编译运行该程序。

并将完整程序和运行结果截图写入实验报告。

(4)Mobilephone类的display( )方法中的 callCost( )方法调用的是谁的方法?如何调用父类的callCost( )方法?另外,将Mobilephone类的构造方法中的super(b, num)去掉,有什么结果?为什么?将你的分析写入实验报告。

实验分析:
1(4)callCost( )调用的是子类中的方法,实际上callCost( )
方法已经被重写了。

要调用父类的构造方法,可以使用关键字super调用。

super(b, num)去掉,将会出现
实际上是找不到父类的String b,String num这两个属性。

实验程序:
实验截图:
实验问题总结:
1.经常的出现,找不到类的符号,后来发现,是因为在编写程序的时候,没有
认识java的结构,复制粘贴,简单又能保证不出错误啊,有了教训。

2.文件名定义错误,导致
实验四
实验内容:
4.阅读如图2.4所示程序。

该程序实现了三个类:抽象父类Student(包括了一些学生的基本信息,如姓名,所学课程,课程成绩等)和其子类Undergraduate,Postgraduate。

两个子类之间的主要差别是计算课程成绩等级的标准有所不同。

图2.4
(2)新建Polymorphism.java文件,输入程序,将程序中“代码1-5”处补充完整并保存。

(3)使用DOS命令进入其所存放的目录,编译运行该程序。

并将完整程序和运行结果截图写入实验报告。

(4)能否在main()方法中添加语句Students s1 = new Students ("陈建平")?为什么?main()方法中的语句students[i].calculateGrade()都是调用哪些类的calculateGrade()方法?将你的分析写入实验报告。

实验分析:
(4)不可以。

因为,Students类没有在main()函数中定义,调用父类的属性的时候,并需要用方法调用。

分别调用了Undergraduate和Postgraduate中的calculateGrade()方法。

这就验证了多态的性质。

同一个方法,根据不同的需要,可以被重写。

实验程序:
实验截图:
实验问题总结:
1.没有认识到类名和构造的方法名必须相同,出现错误。

2.程序本身存在着小小错误。

如:average=total/CourseNo; 这样才可以算出平均成绩。

相关文档
最新文档