JAVA程序设计实验册-数学与信息科学系

更新时间:2024-02-01 09:35:01 阅读量: 教育文库 文档下载

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

河南财经政法大学数学与信息科学系

实验报告 2010 年--------2011 年 第一学期

专 业: 课程名称:Java程序设计 班 级: 姓 名: 学号: 指导教师:

实验报告

实验一:安装与熟悉J2SDK

实验目的: 1. 了解和使用J2sdk1.6.0(JDK)环境; 2. 熟悉J2sdk集成环境的基本命令、功能和基本用法,并学会配置path 等环境变量; 3. 学习并熟练掌握使用J2SDK环境进行Java程序开发的全过程(包括:源程序的编辑、编译、调试、运行和结果查看); 4. 掌握Java应用程序的构成特点,并熟悉基本的错误调试。 实验内容 1. J2SDK开发包的安装; 2. 根据要求写出系统环境变量的配置; 3. 编写一个Java程序进行调试,掌握在JDK开发包支持下编译和运行的过程。 实验数据记录及分析(或程序及运行结果) 1. 根据要求,写出运行Java程序所需的基本系统变量配置 1) 假如在你的系统中,JDK安装在的D盘根目录下的java目录下,java目录包含了如下两个子目录:jdk1.6和jre1.6; 2) 在jdk1.6目录下的bin目录包含了开发java程序常用的一些可执行文件,如java.exe和javac.exe,而lib下面包含了一些编译java程序所需的类库,如dt.jar和tools.jar; 3) 运行java程序所需的rt.jar文件则在jdk1.6\\jre\\lib下面; path=D:\\Program Files\\Java\\jdk1.6.0_21\\bin;%SystemRoot%\\system32;%SystemRoot%;%SystemRoot%\\System32\\Wbem classpath=.;D:\\ProgramFiles\\Java\\jdk1.6.0_21\\jre\\lib;D:\\Program Files\\Java\\jdk1.6.0_21\\lib\\dt.jar;D:\\Program Files\\Java\\jdk1.6.0_21\\lib\\tools.jar 2. 调试下面程序,指出错误 public Class HelloWorldApp { public void static main(string[] args) { system.out.println(“Hello World!”); } } 错误1:Class----class 错误2:void static----- static void 错误3:string----- String 河南财经政法大学数学与信息科学系 第 1 页

实验报告

错误4:system.----- System. 3. 写出调试过程编译和执行的具体命令 1) 上述文件保存后的文件名是: 2) 编译命令: 3) 编译正确后,产生的另外一个文件全名是: 4) 运行命令: 4. 如果上面的编译命令中的HelloWorldApp.java 换成以下格式,写出执行编译结果: javac helloworldapp.java javac HelloWorldApp 5. 如果上面的运行命令改成以下格式,写出执行结果,如有错误请改正。 java helloWorldApp.java java helloworldapp java HelloWorldApp.class 6. 模仿上面的程序结构,写一个名为Dog,输出信息为“bark…!”的java应用程序。 河南财经政法大学数学与信息科学系 第 2 页

实验报告

7. 输入下面的随机数生成程序,重复上述编译和执行过程,分步写出两个命令执行过程。 import java.util.Random; public class MathDemo { public static void main(String[] args) { Random rand=new Random(); int v=rand.nextInt(); System.out.println(\你得到了一个\ } } 1) 保存文件名为: 2) 编译命令为: 3) 运行程序命令为: 4) 如果删除该程序的第一行import语句,重新编译,有何问题? 评语: 教师签字: 河南财经政法大学数学与信息科学系 第 3 页

实验报告

实验二:数值类型与变量声明

实验目的: 1. 掌握标识符的定义规则; 2. 认识Java的数据类型以及掌握各种变量的声明方法; 3. 掌握不同数值类型间的赋值问题。 实验内容 编写一个Java程序,对不同类型的类型进行变量的定义并输出相应的值。 实验数据记录及分析(或程序及运行结果) public class Variable { public static void main(String[] args) { int a=10; System.out.println(\ } } 1. 写出程序运行的结果 2. 修改上述程序,定义一个字符型变量,并定义其初值为'a',然后输出该变量的值,在下面写出修改后的代码片段。 3. 修改上述程序,定义一个字符型变量,并定义其初值为100,然后输出该变量的值,在下面写出修改后的代码片段。 4. 修改上述程序,定义一个字符型变量,并定义其初值为65536,然后输出该变量的值,在下面写出修改后的代码片段,如果有错误,说明原因。 河南财经政法大学数学与信息科学系 第 4 页

实验报告

5. 修改上述程序,定义一个单精度类型的变量,并定义其初值为10.0,然后输出该变量的值,在下面写出修改后的代码片段。 6. 修改上述程序,定义一个双精度类型的变量,并定义其初值为10.0,然后输出该变量的值,在下面写出修改后的代码片段。 7. 替换下面的代码段到上述程序,分析现象。 float f=10.0f; double d=100.0d; f=d; System.out.println(\ 8. 替换下面的代码段到上述程序,分析结果。 int a=10; char c='a'; a=c+a; System.out.printf(\9. 替换下面的代码段到上述程序,写出运行结果。 int color=10; 河南财经政法大学数学与信息科学系 第 5 页

实验报告

System.out.printf(\的8进制表示是%o\\n\System.out.printf(\的10进制表示是%d\\n\System.out.printf(\的16进制表示是%x\\n\System.out.printf(\的2进制表示是%s\\n\System.out.printf(\的8进制表示是%s\\n\System.out.printf(\的16进制表示是%s\\n\10. 声明一个布尔类型的变量,其初值为真。 11. 替换下面的代码段到上述程序,分析现象。 Variable v=new Variable(); System.out.println(\ 评语: 教师签字: 河南财经政法大学数学与信息科学系 第 6 页

实验报告

实验三:运算符和表达式

实验目的: 1. 熟悉运算符的作用、优先级和结合方向; 2. 认识Java的表达式,理解表达式的构成、类型。 实验数据记录及分析(或程序及运行结果) 1. 运行下面的程序,写出运行结果 public class ArithmaticOp{ public static void main(String args[ ]){ int a=5+4, b=a*2, c=b/4; int d=b-c; int e=-d; int f=e%4; double g=18.4, h=g%4; int i=3; int j=i++; int k=++i; System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ System.out.println(\ } } 2. 写一个程序,计算32/5的结果,如果需要得到浮点数的结果该如何重写表达式。分别写出这两个赋值表达式。 河南财经政法大学数学与信息科学系 第 7 页

实验报告

3. 设定int a=1和double d=1.0,并且每个表达式是独立的,写出下面每个表达式的结果: a= 46%9+4*4-2 a= 45+43%5*(23*3%2) a= 45+45*50%a-- a= 45+45*50%(--a) d= 1.5*3+(++d) d= 1.5*3+d++ a%= 3/a+3 4. 分析使用关系运算符和逻辑运算符的程序文件,写出运行结果 public class RelationOp { public static void main(String args[]) { int a=25, b=20, e=3, f=0; boolean d=a5) System.out.println(\因为e 非0 且a/e 为8 大于5,所以输出 a/e= \if (f!=0 && a/f>5) System.out.println(\else System.out.println(\因为f值为0,所以输出 f = \ } } 河南财经政法大学数学与信息科学系 第 8 页

实验报告

5. 有四个整数分别用a、b、c、d表示,请使用条件运算符找出其中最大值。 评语: 教师签字: 河南财经政法大学数学与信息科学系 第 9 页

实验报告

实验四:输入/输出处理

实验目的: 掌握输入输出程序的处理。 实验数据记录及分析(或程序及运行结果) 1. 编写一个程序,连续输入15个学生的考试分数(整数),计算他们的平均分(float类型)、最高分和最低分并输出。 2. 运行下面的程序,写出运行结果,解释每种格式的含义。 import java.util.Calendar; public class CommandParameter { public static void main(String[] args) { long n = 461012; System.out.printf(\ System.out.printf(\ 河南财经政法大学数学与信息科学系 第 10 页

实验报告

System.out.printf(\ System.out.printf(\ System.out.printf(\ double pi = Math.PI; System.out.printf(\System.out.printf(\ System.out.printf(\ System.out.printf(\ Calendar c = Calendar.getInstance(); System.out.printf(\System.out.printf(\System.out.printf(\ } } 评语: 教师签字: 河南财经政法大学数学与信息科学系 第 11 页

实验报告

实验五:流程控制(一)

实验目的: 1. 能够正确使用if,switch语句,并且能正确使用合法的参数类型; 2. 在不同情况下,能够正确选择使用循环语句,能正确使用break,continue,能计算在循环中或循环后循环计数器的值。 实验数据记录及分析(或程序及运行结果) 1. 编写一个程序,声明3个整型变量,用来保存3个学生的考试分数,计算他们的平均分(float类型)并输出。 2. 编写程序,声明一个double型变量,并任意赋值,然后判断该书是否在1到10000之间,输出下面其中一行结果(x需用实际的数值代替): The number x is between 1 and 10000. The number x is not between 1 and 10000. 河南财经政法大学数学与信息科学系 第 12 页

实验报告

3. 分析switch的作用,写出下面程序运行的结果 class SwitchDemo{ public static void main(String args[]) { int c=38; switch (c<10?1:c<25?2:c<35?3:4) { case 1: System.out.println(\℃ 有点冷。要多穿衣服。\case 2: System.out.println(\℃ 正合适。出去玩吧。\case 3: System.out.println(\℃ 有点热。\default: System.out.println(\℃ 太热了!开空调。\} } 1) 当c=38时,运行结果是什么? 2) 当c=8时,运行结果是什么? 3) 当c=48时,运行结果是什么? 4) 在每个case的输出语句后,添加break语句后,充分执行上述几种情况,分析有何变化,分析写出每次运行结果。 当c=38时,运行结果是 河南财经政法大学数学与信息科学系 第 13 页

实验报告

当c=8时,运行结果是 当c=48时,运行结果是 4. 写出下面的代码段执行后,j的值是多少? int i=1, j=0 switch(i) { case 2: j+=6; case 4: j+=1; default: j +=2; case 0: j +=4; } 5. 写出下列程序片段的输出结果 int a = 1, b = 1; while ( a <= 1000 ){ a = 2 * a; b = b + 1; } System.out.println( b ); 6. 编写一个程序,按照下面的格式连续输出20行: This is a number 1. This is a number 2. … This is a number 20; 河南财经政法大学数学与信息科学系 第 14 页

实验报告

7. 编写一个程序,输出1到200之间所有能被3整除的整数,要求输出时每行输出5个整数。 河南财经政法大学数学与信息科学系 第 15 页

实验报告

8. 编写程序,当给出一个英文字符串,能够统计其中大写字母、小写字母、数字、空格及其他字符的个数,并且分别输出统计数据,如果碰到了”\\n”则终止统计。 提示: 1) 声明并出初始化一个字符串变量:如String s=”hello\\nMike”; 2) s.charAt(0)表示取该字符串的第1个字符h; s.charAt(1) 取第2个字符e,其他依次类推; 3) s.length()返回该字符串的字符个数,如”hello”的字符个数是5。 9. 编写一个程序,根据命令行参数将对应的1、2、3、4、5、6、7分别输出为星期一、星期二….星期日,如: Java WeekDay 1 星期一 河南财经政法大学数学与信息科学系 第 16 页

实验报告

10. 编写一个程序,求出1+2+3+…+100的和并将结果输出。 河南财经政法大学数学与信息科学系 第 17 页

实验报告

11. 编写一个程序,输出一个九九乘法表,输出格式如下。 1×1=1 1×2=2 2×2=4 1×3=3 2×3=6 3×3=9 1×4=4 2×4=8 3×4=12 4×4=16 1×5=5 2×5=10 3×5=15 4×5=20 5×5=25 1×6=6 2×6=12 3×6=18 4×6=24 5×6=30 6×6=36 1×7=7 2×7=14 3×7=21 4×7=28 5×7=35 6×7=42 7×7=49 1×8=8 2×8=16 3×8=24 4×8=32 5×8=40 6×8=48 7×8=56 8×8=64 1×9=9 2×9=18 3×9=27 4×9=36 5×9=45 6×9=54 7×9=63 8×9=72 9×9=81 评语: 教师签字: 河南财经政法大学数学与信息科学系 第 18 页

实验报告

实验六:流程控制(二)

实验目的: 进一步巩固对分支、循环结构的掌握,并简单了解有关递归程序的概念。 实验数据记录及分析(或程序及运行结果) 1. 分析程序,写出程序的功能 public static double power( double x, int n ){ if ( n == 0 ) return 1.0; else if ( n % 2 == 0 ) return power( x * x, n / 2 ); else return power( x * x, n / 2 ) * x; } 1) 程序的功能是: 2) 当x=4,n=2时,调用power方法返回值是什么?写出每次的调用过程 2. 分析下面的两段程序 public static int P( int n ){ return Q( n >= 0 ? n : - n ); } private static int Q( int m ){ final int BASE = 10; return ( m < BASE ? 1 : 1 + Q( m / BASE ) ); } 例如:当n=5时,调用方法p返回值是多少?写出执行过程。 Step1:n=5, P (5) = Q (5 ) ; Q (5 ) = 1 1) 当n=9时,调用方法P返回值是多少?写出执行过程。 河南财经政法大学数学与信息科学系 第 19 页

实验报告

2) 当n=10时,调用方法P返回值是多少?写出执行过程。 3) 当n=123时,调用方法P返回值是多少?写出执行过程。 4) 总结P方法的功能是什么? 5) 修改方法P,完成同样功能,达到不调用其它函数包括递归调用自己。 3. 分析程序,回答题后问题。 public class BinarySearch { public static void main(String[] args) { int[] r={5,13,19,21,37,56,64,75,80,88,92}; int key=56; int low=0,high=r.length-1,mid=-1; while(low<=high){ mid=(low+high)/2; if(r[mid]==key){ 河南财经政法大学数学与信息科学系 第 20 页

实验报告

break; } if(r[mid]>key) high=mid-1; else low=mid+1; } if(low>high){ System.out.println(\ }else{ System.out.println(\ } } } 1) 当key=21时,写出每次循环low、high和mid以及运行输出结果的值 2) 当key=22时,写出每次循环low、high和mid以及运行输出结果的值 3) 当key=56时,写出每次循环low、high和mid以及运行输出结果的值 4) 当key=88时,写出每次循环low、high和mid以及运行输出结果的值 河南财经政法大学数学与信息科学系 第 21 页

实验报告

4. 求 ?n!120(即求1!+2!+3!+….+20!) 评语: 教师签字: 河南财经政法大学数学与信息科学系 第 22 页

实验报告

实验七:流程控制(三)

实验目的: 进一步巩固有关程序流程控制的应用。 实验数据记录及分析(或程序及运行结果) 1. 编写程序,从键盘上输入一个整数作为圆的半径,分别计算并输出圆周长、圆面积。 2. 编写程序,从键盘上输入三个实数,比较大小,分别输出最大值和最小值。 河南财经政法大学数学与信息科学系 第 23 页

实验报告

3. 编写程序,从键盘上输入一个整数,判断并输出该整数是否是一个素数(素数不能被2和Math.sqrt(x)之间的任何一个整数整除)。 4. 求100~200之间的全部素数。 河南财经政法大学数学与信息科学系 第 24 页

实验报告

5. 输出所有的水仙花数,所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身,例如,153=13+53+33。 6. 已有一个升序排列的整数数组,要求从键盘输入一个整数后,将该数插入数组,并保持升序。 评语:

教师签字: 河南财经政法大学数学与信息科学系 第 25 页

实验报告

实验八:调试程序

实验目的: 1. 理解变量的作用范围,简单了解对象引用的概念; 2. 掌握基本的程序错误分析及调试方法。 实验内容 1. 下列程序有错误,调试、写出错误原因并改正。 public class VariableScope { public static void main(String args[]) { int i=10; { int k=10; System.out.println(\ System.out.println(\ } System.out.println(\ System.out.println(\ } } 河南财经政法大学数学与信息科学系 第 26 页

实验报告

2. 写出程序运行结果 public class Foo { public static void main (String [] args) { StringBuffer a = new StringBuffer (“A”); StringBuffer b = new StringBuffer (“B”); operate(a,b);//调用了Foo类的一个类方法 System.out.printIn(a + “,” +b); } static void operate (StringBuffer x, StringBuffer y) { x.append(y); y = x; } } 3. 下面输出素数的程序原意输出为下面的结果,但现在不是,请调试下面程序,使之能够按要求输出: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 public class Prime { public static void main(String[] args) { boolean isPrime=true;//用来标识每次计算的数是否是素数,如果不是则为false; for (int x = 2; x <= 100; x++) { int m = x / 2; for (int i = 2; i <= m; i++) { if (x % i == 0) isPrime=false;// 河南财经政法大学数学与信息科学系 第 27 页

实验报告

} } } break; } if(isPrime){ System.out.print(x+\} if(n==5){ System.out.println(); } 评语: 教师签字: 河南财经政法大学数学与信息科学系 第 28 页

实验报告

实验九:数组

实验目的: 1. 2. 3. 4. 知道怎么样声明、创建和初始化各种类型的数组; 理解二维数组的概念,能够声明、创建和初始化各种类型的二维数组; 掌握对一维或二维数组元素的访问方法; 掌握不规则二维数组的声明、创建和初始化以及访问的方法; 5. 了解Arrays类及System类中关于数组操作的方法的使用。 实验内容 1. 编写程序,掌握数组的声明和访问数组元素,了解数组对象length的作用; 2. 编写程序,掌握二维数组的定义和应用; 3. 编写程序,掌握二维不规则数组的定义和使用; 4. 编写程序,熟悉命令行参数。 实验数据记录及分析(或程序及运行结果) 1. 根据要求,写出对应的语句 1) 声明一个整型数组,其初始值是:1,4,56,8,9; 2) 声明一个双精度类型的数组,其初始值是:1.0,10.5,12,7.2,20.4 3) 给出如下的声明 float[] f = {1,2,3,4,5}; 请问数组的长度,以及有效索引范围各是多少? 请问索引为3的位置存放的元素值是多少? 4) 声明一个字符型数组,包含20个元素,并给其前2个元素赋值字符:a,b 5) 声明一个字符串型数组,包含10个元素,并给其前2个元素赋值字符串:abc,bcd 河南财经政法大学数学与信息科学系 第 29 页

实验报告

6) 声明并创建一个二维整型数组。包含3行,每行分别包含不同数目元素,元素数依次为 5,4,6 2. 分析下面程序,写出运行结果 public class ArrayTest { public static void main(String[] args) { int i, j; int a[] = { 2, 1, 4, 8, 9, 5, 3 }; for (i = 0; i < a.length - 1; i++) { int k = i; for (j = i; j < a.length; j++){ if (a[j] < a[k]){ k = j; } } int temp = a[i]; a[i] = a[k]; a[k] = temp; } for (i = 0; i < a.length; i++) System.out.print(a[i] + \ \ System.out.println(); } } 循环开始前的数组元素依次是: 第一次循环后:i = j = k= 数组元素依次是 第二次循环后:i = j = k= 数组元素依次是 第三次循环后:i = j = k= 数组元素依次是 第四次循环后:i = j = k= 数组元素依次是 河南财经政法大学数学与信息科学系 第 30 页

实验报告

第五次循环后:i = j = k= 数组元素依次是 第六次循环后:i = j = k= 数组元素依次是 第七次循环后:i = j = k= 数组元素依次是 最后运行结果: 3. 按照要求运行下面的程序,回答问题。 public class CommandParameter { public static void main(String[] args) { for(int i=0;i

实验报告

4. 有如下数组 int myArray[] = { 1, 2, 3, 4, 5, 6 }; int yourArray[] = { 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 }; 请利用System.arraycopy方法编写一个程序,复制myArray数组的所有内容到yourArray数组,放在yourArray数组下标0开始的位置,并输出yourArray数组的每个元素。 5. 有整型数组,按顺序包含元素:10,7,9,2,4,5,1,3,6,8,请编写程序利用Arrays.sort方法对数组进行排序,并输出该数组的每个元素。 评语: 教师签字: 河南财经政法大学数学与信息科学系 第 32 页

实验报告

实验十:面向对象编程基础(一)

实验目的: 1. 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值; 2. 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性,理解static的作用和使用规则; 3. 理解访问控制修饰符的作用; 4. 掌握package的作用。 实验数据记录及分析(或程序及运行结果) 1. 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有: 1) 使用构造函数完成各属性的初始赋值 2) 使用getter和setter的形式完成属性的访问及修改 3) 提供计算面积的方法getArea()方法 河南财经政法大学数学与信息科学系 第 33 页

实验报告

2. 解释下面的程序运行结果输出为什么是null public class My { String s; public void My(){ s = \ } public void go() { System.out.println(s); } public static void main(String args[]) { My m = new My(); m.go(); } } 3. 给出下面的类,找出后面的5个声明中,哪些是重载后的构造函数 public class ConstOver { public ConstOver (int x, int y, int z) { } } A. ConstOver ( ) { } B. Protected int ConstOver ( ) { } C. Private ConstOver (int z, int y, byte x) { } D. Public Object ConstOver (int x, int y, int z) { } E. Public void ConstOver (byte x, byte y, byte z) { } 4. 给出下面的类,找出后面的5个声明中,哪些是重载后的setVar函数 河南财经政法大学数学与信息科学系 第 34 页

实验报告

public class MethodOver { public void setVar (int a, int b, float c) { } } A. Private void setVar (int a, float c, int b) { } B. Protected void setVar (int a, int b, float c) { } C. Public int setVar (int a, float c, int b) {return a;} D. Public int setVar (int a, int b, float c) {return a;} E. Protected float setVar (int a, int b, float c) {return c;} 5. 写出程序运行结果 class StaticDemo { static int x; int y; static{ x=10; } public static int getX() { return x; } public static void setX(int newX) { x = newX; } public int getY() { return y; } public void setY(int newY) { y = newY; } public static void main(String[] args) { System.out.println(\静态变量x=\ System.out.println(\实例变量y=\非法,编译时将出错 StaticDemo a= new StaticDemo(); StaticDemo b= new StaticDemo(); a.setX(1); a.setY(2); b.setX(3); 河南财经政法大学数学与信息科学系 第 35 页

实验报告

} b.setY(4); System.out.println(\静态变量a.x=\ System.out.println(\实例变量a.y=\ System.out.println(\静态变量b.x=\ System.out.println(\实例变量b.y=\} 6. 分析程序,写出运行结果,解释原因。 public class Test{ static int i=0; public int aMethod(){ i++; return i; } public static void main (String args[]){ Test test = new Test(); test.aMethod(); int j = test.aMethod(); System.out.printIn(j); } } 河南财经政法大学数学与信息科学系 第 36 页

实验报告

7. 分析下面的程序,完成后面的要求。 ClassOne.java 1. package com.abc.pkg1; 2. public class ClassOne { 3. private char var = ?a?; 4. char getVar() {return var;} 5. } ClassTest.java 1. package com.abc.pkg2; 2. import com.abc.pkg1.ClassOne; 3. public class ClassTest extends ClassOne { 4. public static void main(String[]args) { 5. char a = new ClassOne().getVar(); 6. char b = new ClassTest().getVar(); 7. } 8. } 要求: 1) ClassTest.java程序编译和运行正确吗?,如果错误,解释原因。 2) 删除ClassOne.java第一行的public,分析ClassTest.java程序有何变化? 3) 保持ClassOne.java第一行的public,修改第四行getVar的访问范围分别为public、private、protected,分析ClassTest.java程序有何变化? 评语: 教师签字: 河南财经政法大学数学与信息科学系 第 37 页

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

Top