java实验五(题目、解析及实例代码)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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类型);

相关文档
最新文档