Java实验报告.docx
- 文档编号:3326503
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:28
- 大小:490.55KB
Java实验报告.docx
《Java实验报告.docx》由会员分享,可在线阅读,更多相关《Java实验报告.docx(28页珍藏版)》请在冰豆网上搜索。
Java实验报告
《JAVA》课程
标准实验报告
学号:
1040501211
姓名:
陈嘉生
江苏科技大学
计算机科学与工程学院基础部
实验一流程控制语句
一、实验目的
(1)熟悉JDK开发环境;
(2)熟悉一个编辑器如UltraEdit的使用方法;
(3)掌握if语句、switch语句和break语句的使用;
(4)掌握for、while、dowhile循环语句的使用。
二、实验内容
1.安装开发环境JDK。
2.编写一个JAVA应用程序:
在输出窗口显示"HelloWorld!
"
3.使用while语句,实现1至100整数求和,输出最后的和sum。
4.编写一个程序计算
(k≤n)整型参数k及n从命令行输入。
三、实验过程
1.
Main.java
publicclassMain{
publicstaticvoidmain(String[]args){
System.out.println("Helloworld");
}
}
2.
Main.java
publicclassMain{
publicstaticvoidmain(String[]args){
System.out.println(sum(1,100));
}
/**
*计算a到b的累加结果
*@parama
*@paramb
*@return
*/
privatestaticintsum(inta,intb){
intsum=0;
inti=a;
while(i<=b){
sum+=i;
i++;
}
returnsum;
}
}
3.
Main.java
importjava.util.Scanner;
publicclassMain{
publicstaticvoidmain(String[]args)throwsjava.io.IOException{
intk,n;
Scannerscanner=newScanner(System.in);
System.out.println("请输入k:
");
k=scanner.nextInt();
System.out.println("请输入n:
");
n=scanner.nextInt();
System.out.println("计算结果为:
"+calc(k,n));
scanner.close();
}
/**
*求a到b的累乘结果
*@parama
*@paramb
*@return
*/
privatestaticintfactorial(inta,intb){
intret=1;
for(inti=a;i<=b;i++){
ret*=i;
}
returnret;
}
/**
*计算组合数C(n,k)
*@paramk
*@paramn
*@return
*/
privatestaticintcalc(intk,intn){
returnfactorial(n-k+1,n)/factorial(1,k);
}
}
四、实验小结(主要写一些实验中出现的问题,应注意的事项,以及实验体会)
主要注意jdk的环境变量的配置,以及javac和java命令的使用。
另外,从控制台获取键盘输入,可以使用类Scanner,将其import进来就可以使用了。
(注:
实验环境为Ubuntu11.04+jdk1.7.0_10)
实验二JAVA数组结构
一、实验目的
(1)进一步理解数组、数组元素等基本概念;
(2)熟练掌握各类数组的定义方法;
(3)熟练掌握操作各类数组的基本方法;
(4)掌握Eclipse开发工具。
二、实验内容
1.编程采用冒泡法实现对数组元素由小到大排序。
从键盘输入任意大小的10个整数,采用冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前面。
要求输出排序前的数据情况和排序后的数据情况,同时统计排序过程中发生数据交换的次数。
2.计算矩阵对角线元素之和
三、实验过程
1.编程如下:
Main.java
importjava.util.Scanner;
publicclassMain{
publicstaticvoidmain(String[]args){
System.out.print("请输入10个数:
");
Scannerscanner=newScanner(System.in);
int[]array=newint[10];
for(inti=0;i<10;i++){
array[i]=scanner.nextInt();
}
print(array);
System.out.println("交换了"+sort(array)+"次");
print(array);
scanner.close();
}
publicstaticintsort(int[]array){
intcount=0;
for(inti=0;i for(intj=i+1;j if(array[i]>array[j]){ intt=array[i]; array[i]=array[j]; array[j]=t; count++; } } } returncount; } publicstaticvoidprint(int[]array){ for(inti=0;i System.out.print(array[i]+""); } System.out.println(); } } 运行结果是: 2.程序如下: Main.java publicclassMain{ publicstaticvoidmain(String[]args){ int[][]matrix=newint[][]{{1,2,3,4}, {5,6,7,8}, {8,7,6,5}, {4,3,2,1}}; print(matrix); System.out.println("对角元素和为: "+calc(matrix)); } publicstaticvoidprint(int[][]matrix){ System.out.println("矩阵为: "); for(inti=0;i for(intj=0;j System.out.print(matrix[i][j]+""); System.out.println(); } } publicstaticintcalc(int[][]matrix){ intsum=0; for(inti=0;i sum+=matrix[i][i]; } returnsum; } } 运行结果是: 四、实验小结(主要写一些实验中出现的问题,应注意的事项,以及实验体会) Java中的数组实际上是对象,可以用length属性获得长度。 二维数组实际上是一维数组对象的数组。 实验三继承和多态的使用 一、实验目的 (1)熟悉类和对象的概念; (2)掌握类的构造函数的使用方法; (3)掌握类的继承和派生方法; (4)掌握面向对象的程序设计的基本思想和方法。 二、实验内容 1.定义一个自己的数学类MyMath。 类中提供静态方法max,该方法接收3个同类型的参数,返回其中的最大值。 2.假如我们在开发一个系统时需要对员工进行建模,员工包含3个属性: 姓名、工号以及工资。 经理也是员工,除了含有员工的属性外,另外还有一个奖金属性。 请使用继承的思想设计出员工类和经理类。 要求类中提供必要的方法进行属性访问。 三、实验过程 1.编程如下: Main.java publicclassMain{ publicstaticvoidmain(String[]args){ System.out.println("2,3,5.Maxis"+MyMath.max(2,3,5)); } } MyMath.java publicclassMyMath{ publicstaticintmax(inta,intb,intc){ intm=(a>b? a: b); return(m>c? m: c); } } 运行结果是: 2.程序如下: Main.java publicclassMain{ publicstaticvoidmain(String[]args){ Staffstaff=newStaff("张三","1001"); staff.setSalary(5000); staff.printInfo(); System.out.println(); Managermanager=newManager("李四","1002"); manager.setSalary(8000); manager.setAward(10000); manager.printInfo(); } } Staff.java publicclassStaff{ protectedStringname; protectedStringid; protectedfloatsalary; publicStaff(Stringname,Stringid){ this.name=name; this.id=id; } publicStringgetId(){ returnid; } publicStringgetName(){ returnname; } publicvoidsetSalary(floatsalary){ this.salary=salary; } publicfloatgetSalary(){ returnsalary; } publicvoidprintInfo(){ System.out.print("姓名: "+name+"员工号: "+id+"工资: "+salary); } } Manager.java publicclassManagerextendsStaff{ protectedfloataward; publicManager(Stringname,Stringid){ super(name,id); } publicfloatgetAward(){ returnaward; } publicvoidsetAward(floataward){ this.award=award; } publicvoidprintInfo(){ super.printInfo(); System.out.print("奖金: "+award); } } 运行结果是: 四、实验小结 继承可以使得代码被复用,还可以很好的体现类之间的逻辑关系;多态则可以使对象拥有其独特的方法实现。 另外注意封装性,管理好成员的可见性,通过相应方法来读取和访问,有利于数据安全和权限控制。 实验四抽象类和接口的使用 一、实验目的 (1)熟悉抽象类和接口的概念; (2)掌握抽象类和接口的定义方法; (3)掌握抽象类和接口的使用方法。 二、实验内容 2.设计一个人员类,其中包含一个方法pay,代表人员的工资支出。 再从人员类派生出助教类、讲师类、副教授类和教授类。 其中: 工资支出=基本工资+授课时数*每课时兼课金 ①将人员类定义为抽象类,方法pay为抽象方法,设计程序实现多态性。 ②将方法pay定义在接口中,设计程序实现多态性。 三、实验过程 2.程序如下: Main.java publicclassMain{ publicstaticvoidmain(String[]args){ Staffstaff=newAssistant(); System.out.println(staff+"工资支出为: "+staff.pay()); staff=newLecturer(); System.out.println(staff+"工资支出为: "+staff.pay()); staff=newAssociateProfessor(); System.out.println(staff+"工资支出为: "+staff.pay()); staff=newProfessor(); System.out.println(staff+"工资支出为: "+staff.pay()); } } Staff.java /** *人员类 */ publicabstractclassStaff{ publicabstractintpay(); } /** *助教类 */ classAssistantextendsStaff{ publicintpay(){ return2000+10*50; } publicStringtoString(){ return"助教"; } } /** *讲师类 */ classLecturerextendsStaff{ publicintpay(){ return3000+10*80; } publicStringtoString(){ return"讲师"; } } /** *副教授 */ classAssociateProfessorextendsStaff{ publicintpay(){ return4000+10*100; } publicStringtoString(){ return"副教授"; } } /** *教授类 */ classProfessorextendsStaff{ publicintpay(){ return5000+10*150; } publicStringtoString(){ return"教授"; } } 运行结果是: 四、实验小结 抽象类和接口都用于实现多态性,但是抽象类中除了抽象方法,还可以包括成员变量以及一般成员方法;而接口只能包括公有抽象方法和静态常量。 另外,实现多态性的时候,抽象类用于被继承,且只能单继承;而接口用于被实现,一个类可以实现多个接口。 实验五异常抛出和捕获 一、实验目的 (1)掌握异常的概念、异常的抛出、异常的处理的方法; (2)学会在程序中用自定义异常处理实际问题; (3)学会在程序中自己抛出异常和处理异常。 二、实验内容 编写一个程序: 完成在银行的存款和取款操作。 在定义银行类时,若取钱数大于余额则作为异常处理。 设计思路: 1.产生异常的条件是余额少于取额,因此是否抛出异常要先判断该条件。 产生异常的方法应该在取钱方法中。 2.处理异常安排在调用取钱方法的时候,因此取钱方法要抛出异常,由上一级调用方法捕获并处理。 3.要定义自己的异常。 三、实验过程 编程如下: Main.java publicclassMain{ publicstaticvoidmain(String[]args){ Bankbank=newBank(); bank.deposit(100); try{ bank.withdraw(200); }catch(NoEnoughMoneyExceptione){ System.out.println("NoEnoughMoney,"+e.getMessage()); } } } NoEnoughMoneyException.java publicclassNoEnoughMoneyExceptionextendsException{ publicNoEnoughMoneyException(finalStringmessage){ super(message); } } Bank.java publicclassBank{ floatmoney=0; publicvoiddeposit(floatvalue){ money+=value; } publicvoidwithdraw(floatvalue)throwsNoEnoughMoneyException{ if(money thrownewNoEnoughMoneyException("currentmoneyis"+money); }else{ money-=value; } } publicfloatquery(){ returnmoney; } } 运行结果是: 四、实验小结 一个程序难免会遇到异常,Java中可以用throw抛出异常,用try…catch…finaly来处理异常。 而且除了Java定义的异常类,还可以自己定义一些异常类。 实验六JAVA实用包 一、实验目的 (1)掌握String类的使用; (2)掌握StringBuffer类的使用; (3)掌握StringTokenizer类的使用; (4)掌握Vector类的使用。 二、实验内容 显示一个窗口,在窗口的一个JTextField中输入要进行语言符号化的语句,按回车键后,程序首先将语句转化成大写,然后将语言符号化的结果显示在窗口JTextArea中。 提示: 1.将语句转化成大写可使用String类中的toUpperCase()方法。 2.部分程序段 importjava.util.*; importjava.awt.*; importjava.awt.event.*; importjavax.swing.*; publicclassStringTokenizeTestextendsJFrame{ privateJLabelpromptLabel; privateJTextFieldinputField; privateJTextAreaoutputArea; 三、实验过程 编程如下: StringTokenizeTest.java importjava.util.*; importjava.awt.event.*; importjavax.swing.*; publicclassStringTokenizeTestextendsJFrame{ privateJLabelpromptLabel=newJLabel(); privateJTextFieldinputField=newJTextField(); privateJTextAreaoutputArea=newJTextArea(); privateJLabelauthorLabel=newJLabel(); publicstaticvoidmain(String[]args){ newStringTokenizeTest(); } publicStringTokenizeTest(){ setTitle("StringTokenizeTest"); setBounds(500,300,300,220); setDefaultCloseOperation(EXIT_ON_CLOSE); init(); setVisible(true); } privatevoidinit(){ setLayout(null); promptLabel.setText("输入: "); promptLabel.setBounds(10,10,50,30); authorLabel.setText("by1040501211陈嘉生"); authorLabel.setBounds(10,150,200,30); inputField.setBounds(70,10,200,30); inputField.addActionListener(newActionListener(){ @Override publicvoidactionPerformed(ActionEvente){ stringTokenize(); } }); outputArea.setBounds(10,50,280,100); add(promptLabel); add(input
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)