java实验五(题目、解析及实例代码)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验五
1.(方法重载)
1)编写一个方法实现两个整数的加法运算;
2)编写一个方法实现三个整数的加法运算;
3)在主方法中分别调用两个方法计算两个整数、三个整数的和。
答题解析:此题考查方法的重载(方法同名不同参)
实例代码:
package test5;
import java.util.Scanner;
public class t1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in = new Scanner(System.in);
int n;
while (true) {
System.out.println("请选择具体操作:\n输入1:两个加数的和\n输入2:3个加数的和\n输入0:退出");
n = in.nextInt();
if (n == 0)
break;
if (n == 1) {
System.out.println("请输入两个加数(整数):");
int n1 = in.nextInt();
int n2 = in.nextInt();
System.out.println(n1 + "+"+ n2 + "的和为:"+ sum(n1, n2));
}
if (n == 2) {
System.out.println("请输入三个加数(整数):");
int n1 = in.nextInt();
int n2 = in.nextInt();
int n3 = in.nextInt();
System.out.println(n1 + "+" + n2 + "+" + n3 + "的和为:"
+ sum(n1, n2, n3));
}
}
}
public static int sum(int n1, int n2) {
return n1 + n2;
}
public static int sum(int n1, int n2, int n3) {
return n1 + n2 + n3;
}
}
2.(数组)
定义数组,随机生成一柱双色球彩票并输出。
提示:可定义一个大小为7的整形数组;
前6位用于存取红球(1-------33之间的数),号码不能重复;
后1位用于存取蓝球(1-------16之间的数);
答题解析:此题的难点在红球号码不能重复,可编写一个方法,当生成新的红球时,判断该红球是否已经产生,若产生,重新生成,再判断是否重复,如此反复,直到生成不重复的红球为止。
判断方法为遍历已出现的红球元素,若发现有相同的,则发生重复,立即返回true (在循环中,当发生重复,则使用continue返回while条件部分
)。若数组元素遍历完,未发现重复,则立即返回false。将号码记录下来。
彩票产生后,需要对红球进行排序。
实例代码:
package test5;
import java.util.Scanner;
public class t2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("随机生成双色球彩票,请输入彩票数:");
Scanner in = new Scanner(System.in);
int num = in.nextInt();
int n[] = new int[7];
for (int i = 0; i < num; i++) {
int j = 0;
while (j < 6) {
int temp = (int) (Math.random() * 33) + 1;// 生成红球号码
if (j == 0 || !isout(n, j, temp))// 当不是第一个号码时,需判断是否出现过,若未出现过则添加到数组
n[j] = temp;
else
continue;
j++;
}
n[6] = (int) (Math.random() * 16) + 1;// 生成蓝球
arraySort(n);//对双色球红球排序
System.out.print("第" + (i + 1) + "柱彩票:红球:");
for (int k = 0; k < 6; k++)
System.out.print(n[k] + " ");
System.out.print("蓝球:" + n[6]);
System.out.println();
}
}
public static boolean isout(int n[], int j, int temp) { for (int i = 0; i < j; i++)
if (n[i] == temp)
return true;
return false;
}
public static void arraySort(int n[])// 冒泡排序,仅对前6个红球进行排序
{
for (int i = 0; i < 5; i++)// 6个数,需进行5次排序
{
for (int j = 0; j < 5 - i; j++)// 依次从未排序的数组元素中将最大的数排到最后
{
if (n[j] > n[j + 1])// 若发现后一个数大于前一个数,两两交换
{
int temp = n[j];
n[j] = n[j + 1];
n[j + 1] = temp;
}
}
}
}
}
3.Student类
1)定义一个表示学生信息的类Student,要求如下:
①类Student的成员变量:
sNO表示学号(String类型);