JAVA 实验报告1040501218 钱胜民
更新时间:2023-07-17 13:42:01 阅读量: 实用文档 文档下载
- java推荐度:
- 相关推荐
《JAVA》课程
标准实验报告
学号:1040501218 姓名:钱胜民
江苏科技大学
计算机科学与工程学院基础部
实验一 流程控制语句
一、实验目的
(1) 熟悉JDK开发环境;
(2) 熟悉一个编辑器如UltraEdit的使用方法;
(3) 掌握if语句、switch语句和break语句的使用; (4) 掌握for、while、do while 循环语句的使用。
二、实验内容
1. 安装开发环境JDK。
2. 编写一个JAVA应用程序:在输出窗口显示"Hello World!" 3.使用while语句,实现1至100整数求和,输出最后的和sum。 4. 编写一个程序计算
三、实验过程
1. JDK开发环境
(1)把开发环境安装在"C:\J2SDK1.4.2\bin"目录下。 (2)设置环境变量PATH
鼠标右击“我的电脑”->选择“属性”->选择“高级”->选择“环境变量-> “系统变量”中的PATH->编辑,在该变量已有的值后追加“;C:\J2SDK1.4.2\bin”
2. 掌握Java Application程序开发过程
(1)打开UltraEdit编辑器。 (2)键入如下程序:
n (n 1) (n 2) ,......, (n k 1)
1 2 3 ,......, k
(k≤n)整型参数k及 n 从命令行输入。
/**
* HelloWorld
* 在输出窗口显示"Hello World!" */
public class HelloWorld{
public static void main(String[] args){ //在屏幕上输出 "Hello World!"
System.out.println("Hello World!"); } }
(3)检查无误后(注意大小写)保存文件。将文件保存在"D:\Java\"目录中,文件名为HelloWorld.java。
(4)进入命令行(MS-DOS)方式,设定当前目录为"D:\Java\",运行Java编译器: D:\Java>javac HelloWorld.java
(5) 调试程序,当没有输出任何错误信息或者出现"deprecation"警告,则编译成功,此时会在当前目录中生成HelloWorld1.class文件。
(6)利用Java解释器运行这个Java Application程序:D:\Java>java HelloWorld 则在输出窗口显示"Hello World!"得到运行结果。
3. 命令行参数
上例中在windows操作系统的DOS命令提示符窗口中,“java HelloWorld”若改为 “java HelloWorld student teacher”,即程序输入了2个行命令参数,每个参数之间以空格分开,第1个参数“student”存入args[0],第2个参数“teacher”存入args[1],依次类推。 public class Sample { public static void main(String [] args){ if(args.length != 0) System.out.println(args[0]); } }
4.
public class shiyan1_ti3 { /** * @param args */ public static int funSum(int a, int b){ int sum = 0; while(a <= b){ sum += a; a++; } return sum; } public static void main(String[] args) { System.out.println(funSum(1, 100)); } }
5.
public class shiyan1_ti4 { /** * @param args */ public static int funChen(int a, int b){ int sum = 1; while(a <= b){ sum *= a; a++; } return sum; } public static int fun(int n, int k){ return funChen(n - k + 1, n) /funChen(1,k); } public static void main(String[] args) { System.out.print("请输入n,k(k <= n):"); java.util.Scanner sc = new java.util.Scanner(System.in); int n = sc.nextInt(); int k = sc.nextInt(); System.out.println(fun(n, k)); } }
四、实验小结
(主要写一些实验中出现的问题,应注意的事项,以及实验体会)
通过这次试验熟悉了JDK开发环境,熟悉了UltraEdit的使用方法,掌握了if语句、switch语句和break语句的使用,掌握了for、while、do while 循环语句的使用,学会了java字符的读取。
实验二 JAVA数组结构
一、实验目的
(1) 进一步理解数组、数组元素等基本概念; (2) 熟练掌握各类数组的定义方法; (3) 熟练掌握操作各类数组的基本方法; (4) 掌握Eclipse开发工具。
二、实验内容
1.编程采用冒泡法实现对数组元素由小到大排序。
从键盘输入任意大小的10个整数,采用冒泡法排序对相邻的两个元素进行比较,并把小的元素交换到前
面。要求输出排序前的数据情况和排序后的数据情况,同时统计排序过程中发生数据交换的次数。 2.计算矩阵对角线元素之和
3.熟悉Eclipse开发工具 (1)硬盘建文件夹; (2)启动Eclipse;
(3)选择文件菜单下的新建子菜单的项目命令,出现新建项目对话框;
(4)选择新建Java项目对话框中的项目名文本框输入项目名;在项目布局栏选中第2项; (5)选择文件菜单下的新建子菜单的类命令,打开新建Java类向导对话框;创建Java类; (6)Java编辑器自动打开后,录入程序;
(7)录入程序后,选择运行菜单下的运行方式子菜单的Java应用程序命令,进行调试运行程序。
4.在Eclipse中设置程序参数步骤如下
(1)在Eclipse中选择菜单 中“运行”命令,弹出“运行”对话框; (2)“运行”对话框中选择“自变量”选项卡,在程序自变量文本框中输入相应的参数,每个参数间按下回车键隔开。
三、实验过程 1. 编程如下:
public class shiyan2_ti1 {
/**
* @param args */
public static int [] sort = {2, 4, 9, 3, 5, 7, 6, 8, 0, 1}; public static int count = 0;
public static void Sort(int [] sort) { }
for(int i = 0; i < sort.length; i++){ }
for(int j = i + 1; j < sort.length; j++) { }
if(sort[j] < sort[i]) { }
count++;
int temp = sort[i]; sort[i] = sort[j]; sort[j] = temp;
}
}
public static void main(String[] args) { }
Print(sort); Sort(sort); Print(sort);
System.out.println(count);
for(int i = 0; i < sort.length; i++) { }
System.out.print('\n');
System.out.print(sort[i]); System.out.print(" ");
运行结果是:
2. 程序如下:
public class shiyan2_ti2 {
public static void Print(int [][] matrix) { }
public static void main(String [] args) {
int [][] matrix = {{1,3,4},
{2,3,4},
int sum = 0;
for(int i = 0; i < matrix.length; i++) { }
System.out.println(sum);
sum += matrix[i][i];
}
}
运行结果是:
四、实验小结
(主要写一些实验中出现的问题,应注意的事项,以及实验体会)
通过这次试验进一步理解了数组、数组元素等基本概念,掌握了各类数组的定义方法,掌握了操作各类数组的基本方法,掌握了Eclipse开发工具。
实验三 继承和多态的使用
一、实验目的
(1) 熟悉类和对象的概念;
(2) 掌握类的构造函数的使用方法; (3) 掌握类的继承和派生方法;
(4) 掌握面向对象的程序设计的基本思想和方法。
二、实验内容
1.定义一个自己的数学类MyMath。类中提供静态方法max,该方法接收3个同类型的参数,返回其中的最大值。
2. 假如我们在开发一个系统时需要对员工进行建模,员工包含3个属性:姓名、工号以及工资。经理也是员工,除了含有员工的属性外,另外还有一个奖金属性。请使用继承的思想设计出员工类和经理类。要求类中提供必要的方法进行属性访问。 三、实验过程 1. 编程如下: public class MyMath{
public static int max (int a, int b, int c){
if(a > b){
if(a > c){
return a;
} else{ }
return c;
} else {
if(b > c){
}
}
}
return c;
public static float max (float a, float b, float c){ }
public static double max (double a, double b, double c){
if(a > b){
if(a > c){
return a;
if(a > b){
if(a > c){
return a;
} else{ }
return c;
} else { }
if(b > c){
return b;
} else { }
return c;
} else{ }
return c;
} else {
if(b > c){
return b;
} else { }
return c;
}
public static void main(String [] args){ }
System.out.println(max(2,3,1));
运行结果是:
2. 程序如下:
package shiyan3_2;
public class Staff {
private static String name; private static String number; private static float pay;
public void setName(String name){ this. = name; }
public String getName(){ return this.; }
public void setNum(String num){ this. = num; }
public String getNum(){ return this.; }
public void setPay(float pay){ this. = pay; }
public float getPay(){ return this.; }
public String toString(){
return this. + ',' + this. + ',' + this.; } }
package shiyan3_2;
class Manager extends Staff { public static float bonus;
public void setBonus(float bonus){ this. = bonus; }
public float getBonus(){ return this.; }
public String toString(){
return super.toString() + ',' + this.; } }
package shiyan3_2;
public class shiyan3_2 {
public static void main(String[] args) { Staff s = new Staff(); s.setName("himi"); s.setNum("2010"); s.setPay(1000.0f);
System.out.println(s.toString());
Manager m = new Manager(); m.setName("Steve"); m.setNum("2012"); m.setPay(5000.0f); m.setBonus(1000.0f);
System.out.println(m.toString()); } }
运行结果是:
四、实验小结
通过这次试验熟悉了类和对象的概念,掌握了类的构造函数的使用方法,掌握了类的继承和派生方法,掌握了面向对象的程序设计的基本思想和方法。
实验四 抽象类和接口的使用
一、实验目的
(1) 熟悉抽象类和接口的概念; (2) 掌握抽象类和接口的定义方法; (3) 掌握抽象类和接口的使用方法。
二、实验内容
设计一个人员类,其中包含一个方法pay,代表人员的工资支出。再从人员类派生出助教类、讲师类、副教授类和教授类。其中:工资支出=基本工资+授课时数*每课时兼课金
① 将人员类定义为抽象类,方法pay为抽象方法,设计程序实现多态性。 ② 将方法pay定义在接口中,设计程序实现多态性。
三、实验过程 1. 编程如下:
abstract class person { }
public static float basepayment; public static int time;
public static float moneypertime;
abstract float pay();
class assistant extends person { }
class lecturer extends person { }
class AssociateProfessor extends person {
assistant(float basepayment, int time, float moneypertime){ }
public float pay(){ }
return basepayment + time * moneypertime; this.basepayment = basepayment; this.time = time;
this.moneypertime = moneypertime;
assistant(float basepayment, int time, float moneypertime){ }
public float pay(){ }
return basepayment + time * moneypertime; this.basepayment = basepayment; this.time = time;
this.moneypertime = moneypertime;
assistant(float basepayment, int time, float moneypertime){ }
public float pay(){
return basepayment + time * moneypertime; this.basepayment = basepayment; this.time = time;
this.moneypertime = moneypertime;
}
class Professor extends person { }
public class shiyan4_2 { }
运行结果是:
四、实验小结
通过这次试验熟悉了抽象类和接口的概念,掌握了抽象类和接口的定义方法,掌握了抽象类和接口的使用方法。
public static void main(String [] args){ }
assistant(float basepayment, int time, float moneypertime){ }
public float pay(){ }
return basepayment + time * moneypertime; this.basepayment = basepayment; this.time = time;
this.moneypertime = moneypertime;
实验五 异常抛出和捕获
一、实验目的
(1) 掌握异常的概念、异常的抛出、异常的处理的方法; (2) 学会在程序中用自定义异常处理实际问题; (3) 学会在程序中自己抛出异常和处理异常。
二、实验内容
编写一个程序:完成在银行的存款和取款操作。在定义银行类时,若取钱数大于余额则作为异常处理。 设计思路:
1. 产生异常的条件是余额少于取额,因此是否抛出异常要先判断该条件。产生异常的方法应该在取钱方法中。
2. 处理异常安排在调用取钱方法的时候,因此取钱方法要抛出异常,由上一级调用方法捕获并处理。 3. 要定义自己的异常。
三、实验过程 编程如下:
package shiyan5;
public classextends Throwable { public MyException(){ super(); }
public MyException(String msg){ super(msg); }
public MyException(String msg, Throwable cause){ super(msg, cause); }
public MyException(Throwable cause){ super(cause); }
public void reportError(String detailMessage){ System.out.println(detailMessage); } }
package shiyan5;
//编写一个程序:完成在银行的存款和取款操作。在定义银行类时,若取钱数大于余额则作为异常处理。
//设计思路:
//产生异常的条件是余额少于取额,因此是否抛出异常要先判断该条件。产生异常的方法应该在取钱方法中。
//处理异常安排在调用取钱方法的时候,因此取钱方法要抛出异常,由上一级调用方法捕获并处理。 //要定义自己的异常。 public class bank {
private float money;
bank(){
money = 0.0f; } /**
* 存钱
* @param money
}
*/
public void save(float money){ this.money += money; } /**
* 取钱
* @param money */
public void draw(float money) throws MyException{ try {
if(this.money < money){
throw new MyException("余额不足"); }
this.money -= money; } catch (MyException e) {
e.reportError("余额不足"); } }
package shiyan5;
public class shiyan5 {
public static void main(String[] args) throws MyException { bank bank = new bank(); bank.save(100.0f); bank.draw(200.0f); } }
运行结果是:
四、实验小结
通过这次实验掌握了异常的概念、异常的抛出、异常的处理的方法,学会了在程序中用自定义异常处理实际问题,学会了在程序中自己抛出异常和处理异常。
实验六 JAVA实用包
一、实验目的
(1) 掌握String类的使用; (2) 掌握StringBuffer类的使用; (3) 掌握StringTokenizer类的使用; (4) 掌握Vector类的使用。
二、实验内容
显示一个窗口,在窗口的一个JTextField中输入要进行语言符号化的语句,按回车键后,程序首先将语句转化成大写,然后将语言符号化的结果显示在窗口JTextArea中。 提示:
1. 将语句转化成大写可使用String类中的toUpperCase()方法。 2. 部分程序段
import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class StringTokenizeTest extends JFrame{
private JLabel promptLabel; private JTextField inputField; private JTextArea outputArea;
三、实验过程 编程如下:
package shiyan6;
import java.util.*; import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//显示一个窗口,在窗口的一个JTextField中输入要进行语言符号化的语句, //按回车键后,程序首先将语句转化成大写,
//然后将语言符号化的结果显示在窗口JTextArea中。
public class StringTokenizeTest extends JFrame{ private JLabel promptLabel; private JTextField inputField; private JTextArea outputArea; StringTokenizeTest(){ init(); this.setTitle("实验六"); this.setSize(500, 500); this.setVisible(true); } private void init(){ this.setLayout(null); promptLabel = new JLabel(); promptLabel.setText("请输入信息:"); promptLabel.setBounds(10, 10, 80, 50); this.add(promptLabel); outputArea = new JTextArea(); outputArea.setBounds(10, 100, 460, 300); this.add(outputArea); inputField = new JTextField(); inputField.setBounds(90, 15, 380, 40); inputField.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { //outputArea.setText(inputField.getText().toUpperCase()); StringTokenize(inputField.getText()); } }); this.add(inputField); }
private void StringTokenize(String s){ StringTokenizer st = new StringTokenizer(s.toUpperCase()); while (st.hasMoreTokens()) { outputArea.append(st.nextToken()); outputArea.append("\n"); } }
}package shiyan6;
public class shiyan6 {
/**
* @param args */
public static void main(String[] args) {
new StringTokenizeTest(); } }
运行结果是:
四、实验小结
通过这次实验掌握了String类的使用,掌握了StringBuffer类的使用,掌握了StringTokenizer类的使用,掌握了Vector类的使用。
注意:
1.17周周三7-8节在二号机房答疑。
2.17周周五7-8节在教室考试(地点待定,闭卷) 3.实验报告打印稿截至上交时间:17周周五7-8节。 4.17周周六之前将实验报告电子稿发老师邮箱。
huashan3010@
正在阅读:
满分作业03-31
手机壁纸大全非主流02-19
中盛公司档案分类方案(试行)04-18
辅导期一般纳税人报税06-11
单元综合练习题:人口的变化09-30
2009年银行从业考试风险管理考前预测试题(4)-中大网校12-07
工艺定额管理系统与PLM、ERP集成接口的设计与开发06-05
综合科科长述职报告04-17
业主大会议事规则 详细版11-28
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 胜民
- 1040501218
- 实验
- 报告
- JAVA
- 管道铺设施工检验批质量验收记录表
- 大学物理课后答案第三章
- 温州市卫生村考核标准和申请表及范文
- 互联网监管与网络道德建设___标准答案
- 工业源产排污系数手册(2010修订)中册
- 沪粤版九年级物理下册同步测试--本章核心素养提升19 电磁波与信息时代
- 注册设备监理工程师继续教育试题 答案无
- 兴业研究兴业绿色景气指数(GPI)报告(2018年12月):绿色环保行业景气逆势回升
- 施工方案-电视、电话及计算机网络施工方案
- 医学统计学考试重点
- 杨辉三角实验报告
- 我国奶制品质量事件回顾及食品质量安全之多见
- 新人版小二(上)数《100以内的加法和减法》单元检测卷(二)
- 港口门座起重机润滑管理
- 人力资源工作总结及计划01
- 翟镇矿选煤厂煤泥干燥系统的优化改造
- 2012年1月广东省技术经济学试题
- C语言三天打鱼两天晒网
- 焦磷酸重量法测游离二氧化硅方法的改进
- 新视野大学英语2_选词填空原文及答案