以下为《Java实验计划》的无排版文字预览,完整内容请下载
1、奖励政策。一次实验正常满分记 10 分。为鼓励大家自学和提前学习,自学能力强的同学实验报告可提前提交,每提前两周提交,满分加 5 分。比如实验 A 正常计划在第 8 周某某,但是某同学在第 4 周就提交该次作业,那么如果他能拿到满分,就得 20 分,如果原本能拿到 5 分,该次作业可拿到 10 分。
2、评分标准。评分标准首先是可读性,其次是正确性。要有详细的实验过程,实验结果要着重截图。
作业提交命名格式为 课程名_专业_姓名学号_实验课日期_实验名称
教育部 财政部
职业院校教师素质提高计划本科专业职教师资培养资源开发项目
《软件工程》专业职教师资培养标准、培养方案、核心课程和特色教材开发
(VTNE034)
《Java语言实用案例教程》
实验指导书
目录
实验一 Java程序的编写和基本语法练习 1
实验二 基本程序设计 2
实验三 数组 4
实验四 字符串 7
实验五 类与对象---方法 8
实验六 类与对象---类的定义和对象的创建访问 10
实验七 继承和多态 12
实验八 异常类 14
实验九 输入输出和文件操作 17
实验十 建立图形用户界面 18
实验一 Java程序的编写和基本语法练习
一、实验目的
巩固以下知识点:
能够使用命令行和IDEA环境两种方法编写Java程序;
了解 Java 的数据类型;
掌握各种变量的声明方式;
理解运算符的优先级;
掌握 Java 基本数据类型、运算符与表达式。
二、实验内容
1. 编写一个Java程序,自我介绍自己的相关信息并在控制台输出。要求分别使用命令行和IDEA开发工具两种方式实现。
2. 编写声明不同数据类型变量的程序文件 Example1_1.java,并在控制台打印输出。 提示:参看第一章例题。
3. 建立 Example1_2.java 文件,源代码如下。
public class Example1_2.java {
static int i=10;
public static void main(String args[]) {
{
int k=10;
System.out.println("i="+i);
System.out.println("k="+k);
}
System.out.println("i="+i);
System.out.println("k="+k);
}
}
编译 Example1_2.java ,该程序能编译成功吗,为什么?如果出错,则修改上面的程序并运行。
4. 运行以下程序,输出程序的运行结果。
public class RelationAndCondition {
public static void main(String[] args) {
int a=29;int b=3;
boolean c=a5);
System.out.println(d + "!=0&&" + a + "/" + d+ ">5=" + c);
int e=0;
c=(e!=0&&a/e>5);
System.out.println(e+"!=0&&"+a+"/"+e+">5="+c);
}
}
若把最后两句换成如下语句,会出现什么结果,分析原因。
c=(e!=0)&a/e>5;
System.out.println(e+"!=0&"+"/"+e+">5="+c);
三、实验指导
JDK下载安装后,一定要正确配置PATH和CLASSPATH两个环境变量。
Java的基本数据类型的取值范围和表示方法。
Java的变量分为类属性变量和局部变量,类属性变量在类中声明;局部变量在程序块中声明,其作用限定于所在的程序块,这里的程序块包括方法体和块语句。
类型转换是对表达式求值时必须掌握的内容,只有了解和掌握类型转换的规则和方法,才能更好地读懂和编写程序。
实验二 基本程序设计
一、实验目的
巩固以下知识点:
使用Scanner类从控制台获取输入;
使用if语句,使用if 、else if、else语句;
使用while语句,使用do-while语句,使用for语句编写循环。
二、实验内容
编写一个程序,读入一笔费用与酬金率,计算酬金和总钱数。例如,如果用户输入10作为费用,15%作为酬金率,计算结果显示酬金为¥1.5,总费用为¥11.5。下面是一个运行示例:
Enter the subtotal(费用) and a gratuity rate(酬金率): 15.69 15
The gratuity(酬金) is 2.35 and total(总费用) is 18.04
提示:java.util.Scanner input = new java.util.Scanner(System.in);input.nextDouble();
变量名:subtotal(费用); rate(酬金率); gratuity(酬金); total(总费用);
求ASCII码对应的字符。编写程序接受一个ASCII码(从0到128的整数),然后显示它所代表的字符。例如用户输入的是97,程序显示的是字符a。下面是一个运行示例:
Enter an ASCII code:69
The character for ASCII code 69 is E
提示:(char)code;
变量名:code
计算一个三角形周长。编写程序,读取三角形的三条边,如果输入值合法就计算这个三角形的周长;否则,显示这些输入值不合法。如果任意两条边的和大于第三边,那么输入值都是合法的。
变量名:edge1,edge2,edge3;
(选做)解一元二次方程。求一元二次方程ax2 + bx + c = 0的两个根,b *b-4ac称作一元二次方程的判别式。如果它是正值,那么一元二次方程俄就有两个正根。如果它为0,方程就只有一个根。如果它是负值,方程无实根。编写程序,提示用户输入a、b和c的值,并且显示基于判别式的结果。如果判别式为正,显示两个根,如果判别式为0,显示一个根,如果判别式为负,显示方程无实根。下面是一个运行示例:
Enter a,b,c: 1.0 3 1
The root are -0.381966 and -2.61803
Enter a,b,c: 1 2.0 1
The root is -1
Enter a,b,c: 1 2 3
The equation has no real roots
提示:使用Math(x,0.5)计算x的平方根。
变量名:double a,b,c;
double discriminant = b*b – 4*a*c(判别式)
double r1,r2;
统计正数和负数的个数,然后计算这些数的平均值。编写程序,读入未指定个数的整数,判断读入的正数有多少个,读入的负数有多少个,然后计算这些输入值的总和及其平均值(不对0计数)。当输入为0时,表示程序结束。将平均值以浮点数显示。下面是一个运行示例:
Enter an int value, the program exits if the input is 0:
1 2 -1 3 0
The number of positives is 3
The number of negatives is 1
The total is 5
The average is 1.25
三、实验指导
标识符是由字母、数字、下划线和美元符号构成的字符序列。
标识符不能是保留字。
标识符必须以字母或下划线开头,不能以数字开头。
使用选择语句可以对有可选择路径的情况进行程序设计。选择语句有以下几种类型:if语句、if…else语句、嵌套if语句、switch语句和条件表达式。
While 循环和for循环都称为前测循环,do-while循环称为后测循环。
实验三 数组
一、实验目的
巩固以下知识点:
声明一维数组引用变量、创建数组;
初始化数组中的值;
使用下标变量访问数组元素;
编写程序实现常用的一维数组操作;
声明二维数组引用变量、创建数组以及使用行下标和列下标访问二维数组中的数组元素;
编写程序实现常用的二维数组操作;
给方法传递二维数组。
二、实验内容
编写程序,读取10个整数,然后按照和读入顺序相反的顺序将它们显示出来。
提示:int[] num = new int[10]。
指定等级。编写一个程序,读入学生成绩,获取最高分best,然后根据下面的规则赋等级值:如果分数 >= best – 10,等级为A如果分数 >= best – 20,等级为B如果分数 >= best – 30,等级为C如果分数 >= best – 40,等级为D其他情况下,等级为F程序提示用户输入学生总数,然后提示用户输入所有的分数,最后显示等级得出结论。下面是一个运行示例:
Enter the number of students: 4
Enter 4 scores: 40 55 70 58
Student 0 score is 40 and grade is C
Student 1 score is 40 and grade is B
Student 2 score is 40 and grade is A
Student 3 score is 40 and grade is B
提示:int[] scores = new int[numberOfStudents]; // Array scoresint best = 0; // The best scorechar grade; // The grade
计算数字的出现次数。编写程序,读取在1到100之间的整数,然后计算每个数出现的次数。假定输入是以0结束的。下面就是这个程序的运行示例:
Enter the integers between 1 and 100: 2 5 6 5 4 3 23 43 2 0
2 occurs 2 times
3 occurs 1 time
4 occurs 1 time
5 occurs 2 times
6 occurs 1 time
23 occurs 1 time
43 occurs 1 time
提示:如果一个数出现次数大于一次,输出时使用复数“times”。(counts[i] = = 1) ? " time" : " times")
编写一个方法,使用下面的方法头求出一个整数数组中的最小元素:public static double min(double[] array)编写测试程序,提示用户输入10个数字,调用这个方法,返回最小元素值。
编写一个方法,求整数矩阵中所有整数的和,使用下面的方法头:public static double sumMatrix(int[][] m)编写一个测试程序,读取一个4 X 4的矩阵,然后显示所有元素的和。下面是一个运行示例:
Enter a 4-by-4 matrix row by row:
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
Sum of the matrix is 136
三、实验指导
使用语法elementType[] arrayRefVar (元素类型[] 数组引用变量)或elementType arrayRefVar[](元素类型 数组引用变量[]) 声明一个数组类型的变量。尽管elementType arrayRefVar[] 也是合法的,但还是推荐使用elementType[] arrayRefVar 风格。
声明数组变量不会给数组分配任何空间。数组变量不是基本数组类型变量。数组变量包含的是对数组的引用。
只有创建数组后才能给数组元素赋值。使用new操作符创建数组,语法如下:new elementType[arraySize] (数据类型[数组大小])。
数组中的每个元素都是使用语法 arrayRefVar[index] (数组引用变量[下标]) 表示的。
创建数组后,它的大小就不能改变,使用arrayRefVar.length 得到数组的大小。数组下标从0开始,到arrayRefVar.length-1结束。
二维数组的声明,元素类型[][] 数组变量;
创建二维数组:new 元素类型[行的个数][列的个数];
访问二维数组元素:数组变量[行下标][列下标];
实验四 字符串
一、实验目的
巩固以下知识点:
使用String类处理定长的字符串;
使用Chatacter类处理单个字符;
使用StringBuilder/Stringbuffer类处理可变长字符串;
学习如何从命令行传递参数给main方法。
二、实验内容
编写程序,提示用户输入一个社会保险号码,它的格式是DDD-DD-DDDD,其中D是一个数字。程序会为正确的社保号显示“valid SSN”,否则,显示“invalid SSN”。
提示:使用String类的charAt(index: int)和Cheracter.isDigit(ch: char);java.util.Scanner input = new java.util.Scanner(System.in);input.nextLine()
编写一个方法,将一个十进制数转换为一个二进制数。方法头如下所示:
public static String decimalToBinary(int value)
编写一个测试程序,提示用户输入一个十进制整数,然后显示对应的二进制数。
提示:用StringBuffer存储字符串,再把Stringbuffer对象转换为String类。
求字符串中大写字母的个数。编写程序,传给main方法一个字符串,显示该字符串中大写字母的个数。
提示:从命令行读取参数。Java Test args[0] args[1] args[3]
三、实验指导
字符串是封装在String类中的对象。要创建一个字符串,可以使用11种构造方法之一,也可以使用字符串直接量进行简捷初始化。
String对象是不可变的,它的内容不能改变。
可以使用String类的length()方法获取字符串的长度,使用charAt(index)从字符串提取特定下标位置的字符,使用indexOf和lastIndexOf方法找出一个字符串中的某个字符或某个子串。
连接字符串用concat()方法或者加号 + 。
使用substring从字符串提取子串。使用equals和compareTo方法比较字符串。
Character类是单个字符的封装类。Character提供了很多实用的静态方法。用于判断一个字符是否是字母(isLetter(char))、数字(isDigit(char))、大写字母(isUpperCase(char))或小写字母(isLowerCase(char))。
StringBuilder/StringBuffer类可以代替String类。String类是不可以改变的。但是可以向StringBuilder/StringBuffer对象中添加、插入或追加新内容。
实验五 类与对象---方法
一、实验目的
巩固以下知识点:
方法的定义;
调用带返回值和不带返回值的方法;
掌握方法的按值传参;
会开发模块化的、易读、易调试和易维护的可重用代码;
使用方法重载,理解歧义重载。
二、实验内容
一个五角数被定义为n(3n-1)/2,其中n=1,2,…。所以,开始的几个数字就是1,5,12,22…,编写下面的方法返回一个五角数:
public static int getPentagonaNumber(int n)
编写一个测试程序显示前100个五角数,每行显示10个。
提示:通过for循环语句打印前100个五角数。
编写一个方法,计算一个整数各位数字之和:
public static int sumDigits(long n)
例如:sumDigits(234)返回9。
提示:使用求余运算符%提取数字,用/去掉提取出来的数字。例如:使用234%10 (=4)提取4。然后使用234/10(=23)从234中去掉4。使用一个循环来反复提取和去掉每位数字,直到所有的位数都提取完为止。
编写程序提示用户输入一个整数,然后显示这个整数所有数字的和。
回文整数。编写下面两个方法:
(1)public static int reverse(int number)
该方法返回一个整数的逆序数,例如reverse(456)返回654。
提示:number 是输入值,取余得到个位数;result存储返回的倒置数
int remainder = number % 10;
result = result * 10 + remainder;
number = number / 10;//去掉个位数,得到十位数
(2)public static boolean ispalindrome(int number)
如果number是回文数,该方法返回true。
提示:使用reverse方法实现ispalindrome。如果一个数字的反向倒置数和它的顺向数一样,这个数就称作回文数。
编写一个测试程序,提示用户输入一个整数值,然后报告这个整数是否是回文数。
创建一个名为MyTriangle的类,它包含如下两个方法:
(1)public static boolean isValid(double side1,double side2,double side3)
如果三角形两边之和大于第三边,则该方法返回true。
(2)public static double area(double side1,double side2,double side3)
返回三角形的面积。
编写一个测试程序,读入三角形三边的值,若输入有效,则计算面积;否则显示输入无效。
提示:计算三角形面积公式:s = (side1 + side2 + side3) / 2;//周长的一半三角形面积公式:Math.sqrt(s * (s - side1) * (s - side2) * (s - side3))
三、实验指导
方法头指定方法的修饰符、返回值类型、方法名和参数。
方法可以返回一个值。返回值类型是方法要返回的值的数据类型。如果方法不返回值,则返回值类型就是关键字void。
参数列表是指方法中参数的类型、次序、数量。
方法名和参数列表一起构成方法签名。参数是可选的,即一个方法可以不包含参数。
return语句也可以用在void 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 都必须是序列化的对象。一个类如果实现了Serializable 接口,那么这个类的对象就是序列化的对象。Serializable 接口没有方法,实现该接口的类不需要实现额外的方法。
FileOutputStream fout = new FileOutputStream(fname);//输出文件流
ObjectOutputStream out = new ObjectOutputStream(fout);//输出对象流
…
FileInputStream fin = new FileInputStream(fname);//输入文件流
ObjectInputStream in = new ObjectInputStream(fin);//输入对象流
三、实验指导
File类用来获取文件的属性和对文件进行操作。File类不包括创建文件,以及从(向)文件读(写)数据的方法。
DataInputStream和DataOutputStream可以按基本类型和String类型读写数据。
使用对象流ObjectInputStream和ObjectOutputStream可以按对象读写数据。
[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。
以上为《Java实验计划》的无排版文字预览,完整内容请下载
Java实验计划由用户“xuekequn230”分享发布,转载请注明出处