Java实验报告电子稿.docx
- 文档编号:11679386
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:49
- 大小:180.06KB
Java实验报告电子稿.docx
《Java实验报告电子稿.docx》由会员分享,可在线阅读,更多相关《Java实验报告电子稿.docx(49页珍藏版)》请在冰豆网上搜索。
Java实验报告电子稿
学生实验报告
(理工类)
课程名称:
JAVA程序设计专业班级:
学生学号:
学生姓名:
所属院部:
指导教师:
2015——2016学年第2学期
金陵科技学院教务处制
实验项目名称:
JAVA编程基础实验学时:
4
同组学生姓名:
————实验地点:
1514
实验日期:
2016.4.11实验成绩:
批改教师:
批改时间:
一、实验目的和要求
(1)熟练掌握JDK1.7及EclipseKeplerServiceRelease1(下简称Eclipse)编写调试Java应用程序及Java小程序的方法;
(2)熟练掌握Java应用程序的结构;
(3)了解Java语言的特点,基本语句、运算符及表达式的使用方法;
(4)熟练掌握常见数据类型的使用;
(5)熟练掌握if-else、switch、while、do-while、for、continue、break、return语句的使用方法;
(6)熟练掌握数组和字符串的使用;
(7)调试程序要记录调试过程中出现的问题及解决办法;
(8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验;
(9)做完实验后给出本实验的实验报告。
二、实验仪器和设备
奔腾以上计算机,Windows操作系统,装有JDK1.7和Eclipse软件。
三、实验过程
(1)分别使用JDK命令行和Eclipse编译运行Java应用程序。
记录操作过程。
Java应用程序参考如下:
思考:
1.适当添加注释信息,通过javadoc生成注释文档;
2.为主方法传递参数“Helloworld”字符串,并输出;
3.压缩生成".jar"文件。
(2)分别使用JDK命令行和Eclipse编译JavaApplet,并建立HTML文档运行该Applet。
记录操作过程。
Java小应用程序参考如下:
HTML文档参考如下:
(3)输出下列数字形式。
①n=4
0000
0111
0122
0123
②n=4
1
121
12321
1234321
(4)采用数组输出等腰三角形的杨辉三角。
(5)判断回文字符串
回文是一种“从前向后读”和“从后向前读”都相同的字符串。
如“rotor”是一个回文字符串。
程序中使用了两种算法来判断回文字符串:
算法一:
分别从前向后和从后向前依次获得原串str的一个字符ch1、ch2,比较ch1和ch2,如果不相等,则str肯定不是回文串,yes=false,立即退出循环:
否则继续比较,直到字符全部比较完,yes的值仍为true,才能肯定str是回文串。
算法二:
将原串str反转成temp串,再比较两串,如果相等则是因文字符串。
要求:
(1)编译调试程序之前应配置好环境变量;
(2)要分别掌握用JDK命令行和Eclipse集成开发环境调试Java程序;
(3)注意Java两大类程序:
应用程序和小程序的区别。
程序清单:
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美观。
)
(实验三程序清单)1.
packagetest1;
publicclassEx3_1
{
publicstaticvoidmain(String[]args)
{
for(inti=0;i<4;i++)
{
for(intj=0;j<4;j++)
if(i<=j)
System.out.print(i+"");
else
System.out.print(j+"");
System.out.println();
}
}
}
2.
packagetest1;
publicclassEx3_2
{
publicstaticvoidmain(String[]args)
{
for(inti=0;i<4;i++)
{
for(intj=0;j<4-i;j++)
{
System.out.print("");
}
for(intk=0;k
{
System.out.print(k+1);
}
for(intl=i-1;l>=0;l--)
{
System.out.print(l+1);
}
System.out.println();
}
}
}
(实验四程序清单)
packagetest1;
publicclassEx4
{
publicstaticvoidmain(String[]args)
{
intn=9,j,i,k;
inta[]=newint[n+1];
a[0]=a[1]=1;
for(i=0;i System.out.print(""); System.out.println(a[0]); for(i=0;i<10*n;i++) System.out.print(""); System.out.println(a[0]+""+a[1]); for(i=1;i { a[i+1]=a[i]; for(j=i;j>0;j--) { a[j]=a[j-1]+a[j]; } for(k=0;k<(10*n-i*2);k++) System.out.print(""); for(j=0;j { System.out.print(a[j]+""); } System.out.println(); } } } (实验五程序清单) packagetest1; importjava.util.Scanner; publicclassEx5 { publicstaticvoidmain(String[]args) { inti,j,n=0; System.out.println("请输入一个字符串"); Scannerin=newScanner(System.in); Stringstr=in.next(); for(i=0,j=str.length()-1;i { if(str.charAt(i)! =str.charAt(j)) { n=-1; break; } } if(n==0) System.out.println("是回文字符串"); else System.out.println("不是回文字符串"); } } 4、实验结果与分析 3-1 0000 0111 0122 0123 3-2 1 121 12321 1234321 4 5 实验一.二成功完成,要注意jdk的环境配置。 实验项目名称: 面向对象编程实验学时: 8 同组学生姓名: 实验地点: 1514 实验日期: 2016.4.15实验成绩: 批改教师: 批改时间: 一、实验目的和要求 (1)熟练掌握Java语言类定义的基本语法; (2)熟练掌握类成员的访问控制,对象建立的方法; (3)熟练掌握类构造方法、成员方法的定义和重载; (4)熟练掌握类继承、多态和抽象性; (5)熟练掌握接口的定义和实现方法; (6)掌握基本的异常处理方法; (7)调试程序要记录调试过程中出现的问题及解决办法; (8)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经验; (9)做完实验后给出本实验的实验报告。 二、实验仪器和设备 奔腾以上计算机,Windows操作系统,装有JDK1.7和Eclipse软件。 三、实验过程 (1)设计复数类,成员变量包括实部和虚部,成员方法包括实现复数加法、减法、字符串描述、比较是否相等等操作。 (2)设计三角形类,继承图形抽象类,实现面积接口和周长接口,计算三角形面积和周长。 (3)包的建立与使用: 设计计算器类Calculator,计算加、减、乘、除,并且打包为mypackage。 观察源文件目录下是否生成了mypackage文件夹,在该文件夹中是否有Calculate.class文件。 编辑PackageDemo.java,保存在Calculator.java同一目录下,引用计算器类的各方法显示计算结果。 (4)编码实现多态在工资系统中的应用: 给出一个根据雇员类型利用abstract方法和多态性完成工资单计算的程序。 Employee是抽象类,Employee的子类有Boss(每星期发给他固定工资,而不计工作时间)、CommissionWorker(除基本工资外还根据销售额发放浮动工资)、PieceWorker(按其生产的产品数发放工资)、HourlyWorker(根据工作时间长短发放工资)。 该例的Employee的每个子类都声明为final,因为不需要再继承它们生成子类。 在主测试类Test中测试各类雇员工资计算结果。 提示: 对所有雇员类型都使用earnings()方法,但每个人挣的工资按他所属的雇员类计算,所有雇员类都是从超类Employee派出生的。 在超类中声明earnings()为抽象方法,并且对于每个子类都提供恰当的earnings()的实现方法。 为了计算雇员的工资,程序仅仅使用雇员对象的一个超类引用并调用earnings()方法。 在一个实际的工资系统中,各种Employee对象的引用可以通过一个Employee引用数组来实现。 程序依次使用数组的每个元素(Employee引用)调用每个对象的earnings()方法。 Employee类定义如下: abstractclassEmployee { privateStringfirstName; privateStringlastName; publicEmployee(Stringfirst,Stringlast) { firstName=first; lastName=last; } publicStringgetEmployeeName() { returnfirstName; } publicStringgetLastName() { returnlastName; } publicStringtoString() { returnfirstName+lastName; } publicabstractStringearnings(); } (5)异常的捕获: 计算两数相除并输出结果。 使用三个catch子句,分别捕捉输入输出异常、除数为0的异常和参数输入有误异常。 importjava.io.*; classEx1 { publicstaticvoidmain(Stringargs[]) { try{ BufferedReaderstrin=newBufferedReader( newInputStreamReader(System.in));//建立输入流缓冲区 System.out.print("请输入除数: "); Stringcl=strin.readLine();//键盘输入 inta=Integer.parseInt(cl); System.out.print("请输入被除数: "); cl=strin.readLine(); intb=Integer.parseInt(cl); intc=b/a; System.out.println("商为: "+c); } //捕获与I/O有关的异常(空白处补全捕获语句) //捕获数值转化时的异常,如不能将字符转化成数值 //捕获除数为0的异常 } } 编译并运行,当产生输入输出异常时显示异常信息;当输入除数为0时,出现算术异常,提示除数为0,并要求重新输入;当输入的不是整数时,如将30输成了3o,出现数值格式异常,提示输入整数。 思考: 是否还有其他异常需要捕获处理? (6)编写程序包含自定义异常MyException,当100被13和4除时抛出该异常,其余除数显示商值。 要求: (1)注意选用适当的类成员修饰符(private、protected、public等),比较它们的使用情况; (2)养成良好的编程习惯,严格按照命名规则为包、类及类成员命名,将每个程序打包,包的命名方式如two.num1表示实验二的第一题; (3)学会使用Eclipse的各种调试方法; (4)学会查阅JavaAPI文档,如查找异常类的使用方法。 程序清单: (实验二程序1) packagetest2; publicclassEx1 { privatedoublereal,im; //构造方法 publicEx1(doublereal,doubleim) { this.real=real; this.im=im; } publicEx1() { this(0.0,0.0); } publicEx1(Ex1c) { this.real=c.real; this.im=c.im; } voidset(doubler,doublei) { real=r; im=i; } voidset(Ex1d) { set(d.real,d.im); } publicvoidadd(Ex1c) { this.real+=c.real; this.im+=c.im; } publicvoidminus(Ex1c) { this.real-=c.real; this.im-=c.im; } //复数相加 publicstaticEx1add(Ex1c1,Ex1c2) { returnnewEx1(c1.real+c2.real,c1.im+c2.im); } //复数相减 publicstaticEx1minus(Ex1c1,Ex1c2) { returnnewEx1(c1.real-c2.real,c1.im-c2.im); } //复数是否相等 publicbooleanequals(Objectobj) { if(objinstanceofEx1) { Ex1c=(Ex1)obj; returnthis.real==c.real&&this.im==c.im; } returnfalse; } publicStringtoString() { return"("+this.real+"+"+this.im+"i)"; } publicstaticvoidmain(Stringargs[]) { Ex1a=newEx1(2.0,3.5); Ex1b=newEx1(9.0,1.7); System.out.println(a+"+"+b+"="+Ex1.add(a,b)); System.out.println(a+"-"+b+"="+Ex1.minus(a,b)); System.out.println("a: "+a+",b: "+b+",a.equals(b)? "+(a.equals(b))); } } (实验二程序2) packagetest2; //抽象类 abstractclassMyShape{ //周长和面积的抽象方法 } //实现抽象类 publicclassEx2extendsMyShapeimplementss,c { intborderA,borderB,borderC; //构造方法 Ex2(inta,intb,intc) { borderA=a; borderB=b; borderC=c; System.out.println("三角形三边长为"+borderA+""+borderB+""+borderC); } Ex2() { borderA=borderB=borderC=0; } //覆写抽象方法 publicintcalGirth() { returnborderA+borderB+borderC; } publicdoublecalSquare() { doublep=calGirth()/2; returnMath.sqrt(p*(p-borderA)*(p-borderB)*(p-borderC)); } publicstaticvoidmain(String[]args) { Ex2test=newEx2(6,8,10); System.out.println("Thegirthofthetriangleis"+test.calGirth()); System.out.println("Thesquareofthetriangleis"+test.calSquare()); } } (实验二程序3) 1. packagemypackage; publicclassCalculator {publicdoubleadd(doublenum1,doublenum2) { returnnum1+num2; } publicdoubleminus(doublenum1,doublenum2) { returnnum1-num2; } publicdoublemultiple(doublenum1,doublenum2) { returnnum1*num2; } publicdoubledivide(doublenum1,doublenum2) { if(num2! =0) { returnnum1/num2; } return-1;//除数为0,错误 } } 2. packagemypackage; importjava.util.Scanner; publicclassPackageDemo { publicstaticvoidmain(String[]args) {Scannersc=newScanner(System.in); doubleresult=0; System.out.print("请输入第一个数字: "); doublenum1=sc.nextDouble(); System.out.print("\n请输入第二个数字: "); doublenum2=sc.nextDouble(); System.out.print("\n请输入运算符号: "); Stringsign=sc.next(); //调用计算类 Calculatorcount=newCalculator(); if(sign.equals("+")) { result=count.add(num1,num2); System.out.println(result); } elseif(sign.equals("-")) { result=count.minus(num1,num2); System.out.println(result); } elseif(sign.equals("*")) { result=count.multiple(num1,num2); System.out.println(result); } elseif(sign.equals("/")) { result=count.divide(num1,num2); System.out.println(result); } else { System.out.println("您输入的符号不存在"); } } } (实验二程序4) classBossextendsEmployee { ints; publicBoss(Stringname,Stringstr,inti) { super(name,str); s=i; } publicStringearnings() { return(super.toString()+String.valueOf(s)); } } classCommissionWorkerextendsEmployee { inti,j,t; publicCommissionWorker(Stringname,Stringstr,inti,intj,intt) { super(name,str); this.i=i;this.j=j;this.t=t; } publicStringearning
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验 报告 电子