JAVA 实验报告1040501218 钱胜民

更新时间:2023-07-17 13:42:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《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@

本文来源:https://www.bwwdw.com/article/pwa1.html

Top