Java实验三实验报告
【精品文档】3实验报告Java (6000字)-范文模板 (5页)
本文部分内容来自网络整理,本司不为其真实性负责,如有异议或侵权请及时联系,本司将立即删除!== 本文为word格式,下载后可方便编辑和修改! ==3实验报告Java (6000字)福建农林大学金山学院实验报告系(教研室):信息与机电工程系专业:计算机科学与技术年级: 201X 实验课程:JAVA语言程序设计姓名:学号:实验室号: 1#608计算机号: C1 实验时间: 201X0614 指导教师签字:成绩:实验3一、实验目的1. 掌握声明二维数组变量,创建二维数组对象,使用二维数组解决实际问题。
2. 使用构造方法创建对象,通过对象引用变量访问对象,。
3. 封装数据域以便于类的维护。
二、实验要求1. (7.6)编写两个矩阵相乘的方法。
方法头如下:public static double[][] multiplyMatrix(double[][] a, double[][] b)为了是矩阵a能够和矩阵b相乘,矩阵a的列数必须与矩阵b的行数相同。
假设矩阵c是相乘的结果,而a的列数是n,那么每个元素cij=ai1 * b1j + ai2 * b2j + …+ ain * bnj。
编写一个测试程序,提示用户输入两个3*3的矩阵,然后显示他们的2. (8.1)创建一个名为Rectangle的类表示矩形,这个类包括:? 两个名为width和height的double型数据域,它们分别表示矩形的宽和高。
width和height的默认值都为1。
? 创建默认矩形的无参构造方法:Rectangle()。
? 一个创建width和height为指定值的矩形的构造方法:Rectangle(double width, double height)。
? 一个名为getWidth()的方法返回宽。
? 一个名为getHeight()的方法返回高。
? 一个名为getArea()的方法返回这个矩形的面积。
? 一个名为getPerimeter()的方法返回周长。
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实验报告(三)实验(三)类和对象⼀、实验⽬的和要求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. 单击"确定"按钮,会弹出显示"数据库创建成功"的对话框。
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实训报告(通用9篇)
java实训报告java实训报告(通用9篇)在当下社会,大家逐渐认识到报告的重要性,写报告的时候要注意内容的完整。
那么一般报告是怎么写的呢?下面是小编精心整理的java实训报告,欢迎大家借鉴与参考,希望对大家有所帮助。
java实训报告篇1一、实训目的1.熟练掌握Java面向对象程序设计的基础知识。
2.熟练掌握Java中常用的Swing组件的使用方法。
3.熟练掌握Java程序中图形用户界面设计的方法。
4.熟练掌握使用JDBC操作数据库的方法。
5.通过实训,培养学生分析和解决实际问题的能力,提高调试和分析应用程序的能力,并为后续Java高级编程等专业课程的学习奠定良好的基础。
二、课程设计报告内容2.1 实训内容本课程设计的题目是设计一个简化的仓库管理系统。
该系统从仓库管理人员的角度出发,实现对货物信息、生产商信息的浏览、添加、删除和查询,同时还可以对货物出货、入货进行操作和控制。
设计内容主要包括系统分析、数据库、数据表的创建、系统各个窗体的布局及其编码实现。
系统功能分析是在系统开发的总体任务的基础上完成的。
该管理系统需要完成的基本功能主要有:用户管理:主要包括用户的添加、修改和删除。
供应商管理:主要包括供应商的添加、删除和修改。
产品管理:主要包括产品的添加、删除和进货、出货。
产品视图管理:主要包括产品查询、数据文件的导入、查询结果集的导出。
2.2 实训设备或软、硬件硬件:PⅣ及以上性能的PC机;软件:Windows 20xx或Windows XP系统;JDK工具;JCreator4.0环境2.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实验三实验报告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 实验三 控制语句 实验报告
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)怎么才算最小找零方案,张数(枚数)最小就意味着尽量用大币值去找零,所以把找零的总额转成分后,依次除以大币值,得出的商就是该币值的找零张数(枚数),而得出的模(也就是余数)就是继续要找零的,继续除以下一个较小的币值,。。。依次类推,知道最后不再有余数,说明找零成功,把依次得到的商对应相对应的币值输出即可。
《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);
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实验报告-实验3-类与对象-
Java Object-Oriented Programming Experimental ReportSystem.out.println ("Your lucky numbers are " + lucky1 + ", " + lucky2+ ", and " + lucky3);}}3.2 Working with Strings(Choose to do)3.3 Rolling Dice3.4 Computing Distance3.5 formatting Output3.6 Playing with Cards(Choose to do)3.7 Experimenting with the Integer Class(Choose to do) 3.8 Nested Panels(1)宽度两倍(4)添加主界面宽度高度设定(5)添加MyPanels4.Experimental results and data processing5.Analysis and discussionScore: 6.Teacher ReviewsSignature:Date:Experimental Report List1Exercises1) Source code list3.3package test_java_03;import java.util.Random;public class point3_3 {public static void main(String[] args) {Random ger = newint lucky1, lucky2, lucky3;lucky1 = ger.nextInt(6)+1;lucky2 = (int)(ger.nextFloat()*6)+1;lucky3 = (int)(ger.nextFloat()*10)+20;System.out.print(lucky1+lucky2);}}3.4package test_java_03;import java.util.Scanner;public class point_3_4 {public static void main (String[] args){double x1, y1, x2, y2;double distance;Scanner scan = new Scanner(System.in);System.out.print ("Enter the coordinates of the first point " + "(put a space between them): ");x1 = scan.nextDouble();y1 = scan.nextDouble();System.out.print ("Enter the coordinates of the second point: ");x2 = scan.nextDouble();y2 = scan.nextDouble();doubley=Math.abs(y2-y1)*Math.abs(y2-y1),x=Math.abs(x2-x1)*Math.abs(x2-x1);double z=Math.sqrt(y+x);System.out.print("The distance between the two points is "+z);}}3.5package test_java_03;import java.util.*;import java.text.NumberFormat;import java.text.DecimalFormat;public class point_3_5 {public static void main (String[] args){final double OUNCES_PER_POUND = 16.0;double pricePerPound;double weightOunces;double weight;double totalPrice;Scanner scan = new Scanner(System.in);NumberFormat money=NumberFormat.getCurrencyInstance();DecimalFormat fmt=new DecimalFormat("0.#####");System.out.println ("Welcome to the CS Deli!!\n ");System.out.print ("Enter the price per pound of your item: ");pricePerPound = scan.nextDouble();System.out.print ("Enter the weight (ounces): ");weightOunces = scan.nextDouble();weight = weightOunces / OUNCES_PER_POUND;totalPrice = pricePerPound * weight;System.out.println("total price is:"+fmt.format(totalPrice));}}3.8(1)package test_java_03;import java.awt.*;import javax.swing.*;public class point_3_8 {public static void main (String[] args){JFrame frame = new JFrame ("Nested Panels");// Set up first subpanelJPanel subPanel1 = new JPanel();subPanel1.setPreferredSize (new Dimension(150, 100));subPanel1.setBackground (Color.green);JLabel label1 = new JLabel ("One");subPanel1.add (label1);// Set up second subpanelJPanel subPanel2 = new JPanel();subPanel2.setPreferredSize (new Dimension(150, 100));subPanel2.setBackground (Color.red);JLabel label2 = new JLabel ("Two");subPanel2.add (label2);JPanel subPanel3 = new JPanel();subPanel3.setPreferredSize (new Dimension(300, 100));subPanel3.setBackground (Color.black);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);// Set up primary panelJPanel primary = new JPanel();primary.setBackground (Color.blue);primary.add (subPanel1);primary.add (subPanel2);primary.add (subPanel3);frame.getContentPane().add(primary);frame.pack();frame.setVisible(true);}}(4)package test_java_03;import java.awt.*;import javax.swing.*;public class point_3_8 {public static void main (String[] args){JFrame frame = new JFrame ("Nested Panels");// Set up first subpanelJPanel subPanel1 = new JPanel();subPanel1.setPreferredSize (new Dimension(150, 100));subPanel1.setBackground (Color.green);JLabel label1 = new JLabel ("One");subPanel1.add (label1);// Set up second subpanelJPanel subPanel2 = new JPanel();subPanel2.setPreferredSize (new Dimension(150, 100));subPanel2.setBackground (Color.red);JLabel label2 = new JLabel ("Two");subPanel2.add (label2);JPanel subPanel3 = new JPanel();subPanel3.setPreferredSize (new Dimension(300, 100));subPanel3.setBackground (Color.black);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);// JPanel subPanel4 = new JPanel();// subPanel4.setPreferredSize(new Dimension(320,20));// subPanel4.setBackground(Color.orange);// JLabel label4 = new JLabel("My Panels");// subPanel4.add(label4);// Set up primary panelJPanel primary = new JPanel();primary.setBackground (Color.white);primary.setPreferredSize(new Dimension(320,260));//primary.add (subPanel4);primary.add (subPanel1);primary.add (subPanel2);primary.add (subPanel3);frame.getContentPane().add(primary);frame.pack();frame.setVisible(true);}}(5)package test_java_03;import java.awt.*;import javax.swing.*;public class point_3_8 {public static void main (String[] args){JFrame frame = new JFrame ("Nested Panels");// Set up first subpanelJPanel subPanel1 = new JPanel();subPanel1.setPreferredSize (new Dimension(150, 100));subPanel1.setBackground (Color.green);JLabel label1 = new JLabel ("One");subPanel1.add (label1);// Set up second subpanelJPanel subPanel2 = new JPanel();subPanel2.setPreferredSize (new Dimension(150, 100));subPanel2.setBackground (Color.red);JLabel label2 = new JLabel ("Two");subPanel2.add (label2);JPanel subPanel3 = new JPanel();subPanel3.setPreferredSize (new Dimension(300, 100));subPanel3.setBackground (Color.black);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);JPanel subPanel4 = new JPanel();subPanel4.setPreferredSize(new Dimension(320,20));subPanel4.setBackground(Color.orange);JLabel label4 = new JLabel("My Panels");subPanel4.add(label4);// Set up primary panelJPanel primary = new JPanel();primary.setBackground (Color.white);primary.setPreferredSize(new Dimension(400,400));primary.add (subPanel4);primary.add (subPanel1);primary.add (subPanel2);primary.add (subPanel3);frame.getContentPane().add(primary);frame.pack();frame.setVisible(true);}}。
Java实验报告(三)
实验三Java继承与接口【实验目的】理解继承原理与机制及类继承的声明方法;掌握成员变量的隐藏及方法的重写;掌握抽象类与抽象方法;掌握super、final关键字;理解多态的内涵及实现代码;掌握4种访问修饰符的区别;掌握接口声明及使用【实验内容】1、编写一个Java应用程序,除了主类(TestOne)外,该程序中还有3个类:People、ChinaPeople和AmericanPeople。
该程序具体要求如下:①People类有public void speakHello()、public void averageHeight() 和public void averageWeight()方法。
②ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。
要求ChinaPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。
③AmericanPeople类是People的子类,新增public void americanBoxing()方法。
要求AmericanPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。
④在TestOne类的主方法中分别创建各子类的对象并调用各自的方法打印输出信息。
要求:第1题调试结果如下图:2、编写一个Java应用程序,除了主类(TestTwo)外,该程序还有Shape接口、三角形类Triangle类、矩形Rectangle类和圆形Circle类。
该程序具体要求如下:①Shape接口(用来表示一般二维图形):具有抽象方法area和perimeter,分别用来计算形状的面积和周长。
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实验三实验报告
实验报告课程名称面向对象课程设计实验项目名称类的继承班级与班级代码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语言程序设计实验三 程序结构实验报告 (2)
public class shiy34 {
public static void main(String[] args) { // TODO 自动生成的方法存根 int s=0; for(int i=0;i<30;i++)
{ for(int j=0;j<10;j++) { s=i+3*j; if(s==30) { System.out.println("一步的:"+i+"次"+" } }
3:
代码:
public class shiy33 { int jiech(int n) { if(n==0||n==1) { return 1; } else return n=n*jiech(n-1); } int Qiangd(int n) { int j,k,sum=0; j=n; while(j!=0) { k=j%10; j=j/10; sum=sum+jiech(k); }
"+"三步的:"+j+"次"); }
}
"+"二步的:"+r+"次"+"
} }
} }
六:思考题:
七、教师评语: 实验成绩:
教师:** **年 09 月 23 日
if(sum==n) {
return 1; } else {
return 0; }
} void Fanw(int m,int n) { for(int i=m;i<n;i++) {
java实验报告
实验三、面向对象编程实验一、实验目的⒈掌握接口的编写及使用⒉理解继承、多态⒊掌握包的编写以及如何使用包中的类二、预习内容java的基本语法知识三、实验设备与环境装有JA V A语言工具软件(JCreator )的微机若干四、实验内容⒈接口的编写编辑Interfaceclass.javapackage zhaoyuan;public interface Interfaceclass {int i = 4;int k = 5;void func1();int func2(int x);}(2)编辑UseInterface.javapackage zhaoyuan;public class UseInterface implements Interfaceclass { int j;public void func1(){System.out.println("func1="+1);}public int func2(int i){System.out.println("func2="+1);return (i);}public static void main(String srgs[ ]){UseInterface x=new UseInterface();x.func1();x.func2(k);}结果:⒉多态在工资系统中的应用设计一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。
Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。
该例的Employee 的每个子类都声明为final,因为不需要再继承它们生成子类。
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)。
实验报告课程名称面向对象课程设计实验项目名称类的继承班级与班级代码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()。
(2)子类RoundArea类通过覆盖父类中的抽象方法area()来求圆的面积,另一个子类RectArea类通过覆盖父类中的抽象方法area()求长方形的面积。
(3)圆的半径和长方形的边分别定义为子类RoundArea类和RectArea 类的域,都为double娄型。
(4)ImpleArea类中创建对象,接收键盘输入,输入内容分别为圆的半径和长方形的边,并求出圆和长方形的面积,在屏幕上显示。
5. 编写一个Flyable接口,包含:方法:double flySpeed(),用于返回最大的飞行速度。
并实现该接口.实验步骤:1.publicclass Person {String name;String gender;int age;public Person() {}public Person(String name, String gender, int age) { = name;this.gender = gender;this.age = age;}public String getName() {return name;}publicvoid setName(String name) { = name;}public String getGender() {return gender;}publicvoid setGender(String gender) {this.gender = gender;}publicint getAge() {return age;}publicvoid setAge(int age) {this.age = age;}}publicclass Student extends Person {String id;String cname;double score;public Student(String id, String cname, double score) { super();this.id = id;ame = cname;this.score = score;}public Student() {//super();}public String getId() {return id;}publicvoid setId(String id) {this.id = id;}public String getCname() {return cname;}publicvoid setCname(String cname) {ame = cname;}publicdouble getScore() {return score;}publicvoid setScore(double score) {this.score = score;}publicvoid display(){System.out.println(getName()+""+getGender()+""+getAge()+""+id+"" +cname+""+score);}}publicclass Xiti1 {publicstaticvoid main(String args[]){Student s1=new Student("12251102120","class1",89.5);s1.setName("shade");s1.setGender("女");s1.setAge(21);s1.display();}}2.publicclass A {A(){}void f(){System.out.println("abc");}}publicclass B extends A {B(){}publicvoid g(){super.f();System.out.println("大家好啊!");}}publicclass Xiti2 {publicstaticvoid main(String args[]){B b=new B();b.g();}}3.publicclass Pointer {privateint x;privateint y;Pointer(){}Pointer(int x,int y){this.x=x;this.y=y;}publicint getX() {return x;}publicvoid setX(int x) {this.x = x;}publicint getY() {return y;}publicvoid setY(int y) {this.y = y;}void display(Pointer p1,Pointer p2){System.out.println("两个点分别是:"+"("+p1.getX()+","+p1.getY()+")"+",("+p2.getX()+","+p2.getY()+")") ;}staticdouble distance(Pointer p1,Pointer p2){returnMath.sqrt(Math.pow((p1.x-p2.x),2)+Math.pow((p1.y-p2.y),2));}}publicclass Xiti3 {publicstaticvoid main(String args[]){Pointer x1=new Pointer(2,2);Pointer x2=new Pointer(5,6);x1.display(x1,x2);System.out.println("这两点的距离是:"+x1.distance(x1,x2));}}4.publicabstractclass Area {abstractdouble area();}publicclass RectArea extends Area {double c;double k;RectArea(double c,double k){this.c=c;this.k=k;}publicdouble area(){return (this.c)*(this.k);}}publicclass RoundArea extends Area{double r;RoundArea(double r){this.r=r;}publicdouble area(){return 3.14*(this.r)*(this.r);}}import java.util.Scanner;publicclass ImpleArea {publicstaticvoid main(String args[]){Scanner s=new Scanner(System.in);System.out.println("请输入圆的半径:");double r=s.nextDouble();RoundArea round=new RoundArea(r);System.out.println("圆的面积是"+round.area());System.out.println("请输入长方形的长:");double c=s.nextDouble();System.out.println("请输入长方形的宽:");double k=s.nextDouble();RectArea rectangle=new RectArea(c,k);System.out.println("长方形的面积是"+rectangle.area());}}5.publicinterface Flyable {publicdouble flySpeed();}publicclass Xiti5 {publicstaticvoid main(String args[]){ShiXianJieKou s=new ShiXianJieKou();System.out.println("最大飞行速度是:"+s.flySpeed());}}实验预测:1.2.3.4.5.实验结果:1.2.3.4.5.结论:经过调试实验结果与预测相同。