JAVA实验报告.doc_第1页
JAVA实验报告.doc_第2页
JAVA实验报告.doc_第3页
JAVA实验报告.doc_第4页
JAVA实验报告.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学 生 实 验 报 告 册(理工类)课程名称:面向对象程序设计 专业班级:16计算机科学与技术(专转本) 学生学号: 1613203022 学生姓名: 张义丹 所属院部: 计算机工程 指导教师: 刘 晶 20 16 20 17 学年 第 2 学期金陵科技学院教务处制实验报告书写要求实验报告上交电子稿,标题采用四号黑体,正文采用小四号宋体,单倍行距。实验报告书写说明实验报告中实验目的和要求、实验仪器和设备、实验内容与过程、实验结果与分析这四项内容为必需项。教师可根据学科特点和实验具体要求增加项目。填写注意事项(1)细致观察,及时、准确、如实记录。(2)准确说明,层次清晰。(3)尽量采用专用术语来说明事物。(4)外文、符号、公式要准确,应使用统一规定的名词和符号。(5)应独立完成实验报告的书写,严禁抄袭、复印,一经发现,以零分论处。实验报告批改说明实验报告的批改要及时、认真、仔细,一律用红色笔批改。实验报告的批改成绩采用五级记分制或百分制,按金陵科技学院课堂教学实施细则中作业批阅成绩评定要求执行。实验项目名称:Java编程基础 实验学时: 6 同组学生姓名: 实验地点: 工科楼A101 实验日期: 17.3.2117.4.4 实验成绩: 批改教师: 刘晶 批改时间: 实验1 Java编程基础一、实验目的和要求(1) 熟练掌握JDK1.6及Eclipse4.2编写调试Java应用程序及Java小程序的方法;(2) 熟练掌握Java应用程序的结构;(3) 了解Java语言的特点,基本语句、运算符及表达式的使用方法;(4) 熟练掌握常见数据类型的使用;(5) 熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法;(6) 熟练掌握数组和字符串的使用;(7) 调试程序要记录调试过程中出现的问题及解决办法;(8) 编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(9) 做完实验后给出本实验的实验报告。二、实验仪器和设备奔腾以上计算机,Windows 操作系统,装有JDK1.6和Eclipse4.2软件。三、实验过程(1)分别使用JDK命令行和Eclipse编译运行Java应用程序;适当添加注释信息,通过javadoc生成注释文档;为主方法传递参数“Hello world”字符串,并输出,记录操作过程。public class Hello public static void main(String args) System.out.println(Hello!); (2)分别使用JDK命令行和Eclipse编译Java Applet,并建立HTML文档运行该Applet。压缩生成.jar文件。记录操作过程。import java.awt.*;import java.applet.Applet;public class HelloApplet extends Applet public void paint(Graphics g) g.setColor(Color.red); g.drawString(Hello!,20,20); (3) 根据变量score中存放的考试分数,输出对应的等级。要求从键盘输入学生成绩,60分以下为D等;6069为C等;7089为B等;90100为A等。(4) 编写一个Java Application程序,输出区间200,300上的所有素数,将其用数组prime保存,并以每10个一行的形式显示运行结果。(5)输出下列数字形式,要求用二维数组完成。n=4 0 0 0 0 0 1 1 1 0 1 2 2 0 1 2 3 n=4 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1(6) 求二维数组的鞍点,即该位置上的元素在该行上最大,在列上最小。也可能无鞍点。(7) 分析下列程序的输出结果,掌握equals()方法和“= =”的区别。class StringTest2public static void main(String args) String s1 = This is the second string.;String s2 = This is the second string.;String s3 = new String(This is the second string.);String s4 = new String(s1);String s5 = s1;boolean result121 = s1.equals(s2);boolean result122 = s1 = s2;boolean result131 = s1.equals(s3);boolean result132 = s1 = s3;boolean result141 = s1.equals(s4);boolean result142 = s1 = s4;boolean result151 = s1.equals(s5);boolean result152 = s1 = s5;System.out.println(s1 equals s2= +result121); System.out.println(s1 = s2= +result122); System.out.println(s1 equals s3= +result131); System.out.println(s1 = s3= +result132); System.out.println(s1 equals s4= +result141); System.out.println(s1 = s4= +result142); System.out.println(s1 equals s5= +result151); System.out.println(s1 = s5= +result152); (8) 判断回文字符串回文是一种“从前向后读”和“从后向前读”都相同的字符串。如“rotor”是一个回文字符串。 程序中使用了两种算法来判断回文字符串: 算法一:分别从前向后和从后向前依次获得原串str的一个字符ch1、ch2,比较ch1和ch2,如果不相等,则str肯定不是回文串,yes=false,立即退出循环:否则继续比较,直到字符全部比较完,yes的值仍为true,才能肯定str是回文串。 算法二:将原串str反转成temp串,再比较两串,如果相等则是回文字符串。(9) 使用String类的compareTo(String s)方法,对以下字符串从小到大排序:“melon”, “apple”, “pear”, “banana”,显示输出排序结果。要求:(1) 编译调试程序之前应配置好环境变量;(2) 要分别掌握用JDK命令行和Eclipse集成开发环境调试Java程序;(3) 注意Java两大类程序:应用程序和小程序的区别。程序清单:(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)(1)主方法传递参数“Hello world”字符串,并输出public class Hello public Hello()System.out.println(HelloWorld!);public static void main(String args)new Hello();(2)Eclipse编译Java Appletimport java.awt.*;import java.applet.Applet;public class HelloApplet extends Applet int height,width;public void init()this.height=100;this.width=300;public void paint(Graphics g)g.setColor(Color.red);g.drawString(Hello!, 20, 20);(3)package b;import java.util.Scanner;public class Test public static void main(String args)int score;/char grade;System.out.println(请输入分数按回车);Scanner reader=new Scanner(System.in);score=reader.nextInt();if(score=90&score=70&score=60&score=69)System.out.println(C);else if(score60)System.out.println(D);elseSystem.out.println(数据错误);(4)public class Lim public static void main(String args) int prime = calculation(20, 200, 300);for (int i = 0; i prime.length; i+) if (primei != 0) if (i % 10 = 0 & i != 0)System.out.println();System.out.print(primei + );/ 打印数据public static int calculation(int length, int start, int end) int j;int step = 0;int prime = new intlength;for (int i = start; i = end; i+)j = 2;while (i % j != 0) j+; if (j = i) primestep = i;step+;return prime;(5) public class shuzu public static void main(String args)int i,j;int arr=new int4;for(i=0;iarr.length;i+)arri=new intarr.length; for(i=0;i=i;j-)arrij=i; for(j=0;j=j;i-) arrij=j; for(i=0;i=3;i+)for(j=0;j=3;j+)System.out.print(arrij);System.out.print( );System.out.println();public class Shuzu public static void main(String args)int num=new int4;for(int i=0;inum.length;i+)numi=new int2*i+1;for(int m=0;mnum.length-i;m+)System.out.print( );int k=i+1;for(int j=0;jnumi.length;j+)if(j=i)numij=j+1;elsek-;numij=k;System.out.print(numij+ );System.out.println(); (6)public class test public static void main(String args) / TODO Auto-generated method stubint mat = 11,12,13,4,5,6,7,8,9;for (int i=0;imat.length;i+) /输出二维数组元素for(int j=0;jmati.length;j+) System.out.print(matij+ ); System.out.println();boolean find = false; /找到鞍点标记int row=0; /第1行下标int max=0; /记录当前行最大值的列下标while (!find & rowmat.length)max=0; /初始设每行第1列值最大for (int j=1;jmatrowmax) /matrowmax为该行最大值max = j;boolean yes = true; /再判断matrowmax是否在列上最小int j=0;while (yes & jmat.length) if(matjmaxmatrowmax) yes=false; j+;if (yes)find = true;elserow+;if (find)System.out.println(The dort: +matrowmax);elseSystem.out.println(The dort: null);(8) import java.util.Scanner;public class HuiWenTest public static void main(String args) / TODO Auto-generated method stubSystem.out.println(请输入一个字符串); SuppressWarnings(resource)Scanner input = new Scanner(System.in); String str = input.next(); StringBuilder sb=new StringBuilder(str); sb.reverse();/将Sr倒置的方法 String newStr=new String(sb); if(str.equals(newStr) System.out.println(str+是回文字符串); else System.out.println(str+不是回文字符串); (9) import java.util.*;public class SortString public static void main(String args) / TODO Auto-generated method stubString a=melon,apple,pear,banana; String b=Arrays.copyOf(a,a.length); System.out.println(使用用户编写的SortString类,按字典序排列数组a:); SortString.sort(a); System.out.println(排序结果是:); for(String s:a) System.out.print( +s); System.out.println(); System.out.println(使用类库中的Arrays类,按字典序排列数组b:); Arrays.sort(b); System.out.println(排序结果是:); for(String s:b) System.out.print( +s); 四、实验结果与分析(程序运行结果及其分析)(1)(2)(3)(4)(5)(6)(7)(8)(9)五、实验体会(遇到问题及解决办法,编程后的心得体会)在这次实验中,我知道了eclipse和jdk运行程序的区别,jdk比较麻烦一些,需要配置变量。在实验中,配置jdk的环境变量要注意它的path和 classpath,如果classpath本身就有,可以在后面加分号,这样不影响其它的classpath的使用。学会了如何生成注释文档,主函数传递参数的方法,还有压缩文件,实验中还对数组的创建和使用进行了练习,还有一些类的应用。实验项目名称: 面向对象编程 实验学时: 8 同组学生姓名: 实验地点: 工科楼A101 实验日期: 17.4.1117.5.2 实验成绩: 批改教师: 刘晶 批改时间: 实验2 面向对象编程一、实验目的和要求(1)熟练掌握Java语言类定义的基本语法;(2)熟练掌握类成员的访问控制,对象建立的方法;(3)熟练掌握类构造方法、成员方法的定义和重载;(4)熟练掌握类继承、多态和抽象性;(5)熟练掌握接口的定义和实现方法;(6)掌握基本的异常处理方法;(7)调试程序要记录调试过程中出现的问题及解决办法;(8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;(9) 做完实验后给出本实验的实验报告。二、实验仪器和设备奔腾以上计算机,Windows 操作系统,装有JDK1.6和Eclipse4.2软件。三、实验过程(1)定义一个Man类,保存在Man.java文件中,类中包含说话方法如下: public class Manpublic void say()System.out.println(“我是中国人!”); 为此类打包为.jit.chinese;再在Man.java文件所在路径下,创建一个China.java文件,其中定义China类如下: public class Chinapublic static void main(String args)Man lihua = new Man();lihua.say();在China类中引用Man类,输出显示“我是中国人!”。试着去掉Man类的public修饰,看看会发生什么情况?(2)设计复数类,成员变量包括实部和虚部,成员方法包括实现复数加法、减法、字符串描述、比较是否相等等操作。(3)包的建立与使用:设计计算器类Calculator,计算加、减、乘、除和立方体体积,并且打包为mypackage。观察源文件目录下是否生成了mypackage文件夹,在该文件夹中是否有Calculate.class文件。编辑PackageDemo.java,保存在Calculator.java同一目录下,引用计算器类的各方法显示计算结果。(4)试编码实现简单的银行业务:处理简单帐户存取款、查询。编写银行帐户类BankAccount,包含数据成员:余额(balance)、利率(interest);操作方法:查询余额、存款、取款、查询利率、设置利率。再编写主类UseAccount,包含main()方法,创建BankAccount类的对象,并完成相应操作。(5)假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均超过80分才能够通过。根据上述要求,请完成以下Java类的设计: 1)设计一个基类Student描述学生的共同特征。2)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。3)设计一个描述研究生的类Graduate,该类继承并扩展Student类。4)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息。(6)设计三角形类,继承图形抽象类,计算三角形面积和周长。(7)试编码实现多态在工资系统中的应用:给出一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。在主测试类Test中测试各类雇员工资计算结果。提示:对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Employee派生出的。在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引用并调用earnings()方法。在一个实际的工资系统中,各种Employee对象的引用可以通过一个Employee引用数组来实现。程序依次使用数组的每个元素(Employee引用)调用每个对象的earnings()方法。Employee类定义如下:abstract class Employeeprivate String firstName;private String lastName;public Employee(String first,String last) firstName=first; lastName=last; public String getEmployeeName()return firstName;public String getLastName() return lastName;public String toString()return firstName+lastName;public abstract String earnings();(8)设计圆柱体类和圆椎体类,继承圆类Circle并实现体积接口Volume,计算表面积和体积。(9)定义一个接口CanFly,描述会飞的方法public void fly();分别定义飞机类和鸟类,实现CanFly接口。定义一个测试类,测试飞机和鸟。测试类中定义一个makeFly(CanFly obj)方法,让会飞的事物飞起来(即调用相应类的fly()方法)。然后在main方法中创建飞机对象和鸟对象,并在main方法中调用makeFly(CanFly obj)方法,让飞机和鸟起飞。(10)异常的捕获:计算两数相除并输出结果。使用三个catch子句,分别捕捉输入输出异常、除数为0的异常和参数输入有误异常。import java.io.*;class Ex1 public static void main(String args ) try BufferedReader strin=new BufferedReader( new InputStreamReader(System.in);/建立输入流缓冲区 System.out.print(请输入除数:); String cl=strin.readLine();/键盘输入 int a=Integer .parseInt(cl); System .out .print(请输入被除数:); cl=strin .readLine(); int b=Integer .parseInt(cl); int c=b/a; System .out .println(商为:+c); /捕获与I/O有关的异常(空白处补全捕获语句) /捕获数值转化时的异常,如不能将字符转化成数值 /捕获除数为0的异常 编译并运行,当产生输入输出异常时显示异常信息;当输入除数为0时,出现算术异常,提示除数为0,并要求重新输入;当输入的不是整数时,如将30输成了3o,出现数值格式异常,提示输入整数。(11)编写程序包含自定义异常MyException,当100被13和4除时抛出该异常,其余除数显示商值。要求:(1) 注意选用适当的类成员修饰符(private、protected、public等),比较它们的使用情况;(2) 养成良好的编程习惯,严格按照命名规则为包、类及类成员命名,将每个程序打包,包的命名方式如two.num1表示实验二的第一题;(3) 学会使用Eclipse的各种调试方法;(4) 学会查阅Java API文档,如查找异常类的使用方法。程序清单:(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。)(1) package .jit.chinese;/ 为Man类打包为.jit.chinesepublic class Man public void say()System.out.println(我是中国人!);package .jit.chinese;import .jit.chinese.*; /导入包public class China public static void main(String args)Man lihua = new Man();/主方法先创建类然后调用类lihua.say();(2)public class Complex private double real,image; /定义私有的real,image public Complex(double real,double image) this.real=real; /赋值 this.image=image;public Complex(double real) this(real,0);public Complex() this(0,0);public Complex(Complex c) this(c.real,c.image);public double getReal() return real;public void setReal(double real) this.real = real;public double getImage() return image;public void setImage(double image) this.image = image;public Complex add(Complex c1,Complex c2)/写方法 Complex C=new Complex(c1.real+c2.real,c1.image+c2.image); return C;public Complex add(Complex c1) Complex C=new Complex(this.real+c1.real,this.image+c1.image); return C; public Complex jian(Complex c1,Complex c2) Complex C=new Complex(c1.real-c2.real,c1.image-c2.image); return C; public Complex jian(Complex c1)Complex C=new Complex(this.real-c1.real,this.image-c1.image); return C; public boolean bijiao(Complex c1,Complex c2) return (c1.real=c2.real&c1.image=c2.image); public boolean bijiao(Complex c1) return (c1.real=this.real&c1.image=this.image); public String toString() return this.real+this.image+i;public class ComplexText public static void main(String args) Complex c1=new Complex(2,5); /创建类,调用类里面的方法 Complex c2=new Complex(5,2); Complex c3=new Complex(); System.out.println(c3.add(c1,c2); System.out.println(c3.jian(c1,c2); System.out.println(c3.bijiao(c1,c2);(3)public class Calculate double i,j, t;public Calculate(int i,int j) this.i=i; this.j=j;public Calculate(int i,int j,int t) this.i=i; this.j=j;this.t=t;public double add() return i+j;public double jian() return i-j; public double cheng() return i*j;public double chu() return i/j;public double tiji() return i*i*i+j*j*j+t*t*t;public class PackageDemo /测试public static void main(String args) Calculate c1=new Calculate(8,4);Calculate c2=new Calculate(8,4,2); System.out.println(相加=+c1.add(); System.out.println(相减=+c1.jian(); System.out.println(相乘=+c1.cheng(); System.out.println(相除 =+c1.chu(); System.out.println(立方体体积=+c2.tiji();(4)public class BankAccount double balance,interest,cunkuan; public BankAccount(double cunkuan,double balance)/写方法 this.balance=balance; this.cunkuan=cunkuan; public void set(double cunkuan) if(cunkuan10000) interest=0.1; else if(cunkuan50000) interest=0.25; else if(cunkuan=60) System.out.println(本科生成绩合格); else System.out.println(本科生成绩不合格);class Graduate extends Student/ Student继承Graduatepublic Graduate(String name,int age) super(name,age);/调用public void hege(float average)this.average=average;if(average=80) System.out.println(研究生生成绩合格);else System.out.println(研究生成绩不合格);public class StudentDemo /测试public static void main(String args) Undergraduate c1=new Undergraduate(小明 ,22); System.out.println(本科生三门成绩分别为:+59,+85,+90);c1.set(65,75,60); System.out.println(本科生平均分=+c1.get();c1.hege(c1.get(); System.out.println();Graduate c2=new Graduate(小红 ,18); System.out.println(研究生生三门成绩分别为+90,+84,+88); c2.set(80,86,79); System.out.println(研究生生平均分=+c2.get(); c2.hege(c2.get();(6) public abstract class ClosedFigure /定义抽象类String shape;public ClosedFigure(String newShape) this.shape=newShape;public abstract double perimeter();/定义抽象类,里面不能写方法 public abstract double area();public class Triangle extends Close

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论