概述
文章目录
- 前言
- 一、任务介绍
- 1.任务描述
- 2.运行结果
- 3.任务目标
- 4.实现思路
- 二、程序实现
- 1.代码
- 2.实验结果(包括输入数据和输出结果)
- 总结
前言
记录第二个Java实验
提示:以下是本篇文章正文内容,下面案例可供参考
一、任务介绍
1.任务描述
在一些节目活动中,经常会有抽取幸运观众环节。本案例要求编写程序实现幸运观众的抽取,在指定人群中随机抽取一名幸运观众。
案例功能要求如下:
(1) 从键盘输入3名观众。
(2) 存储观众姓名。
(3) 总览观众姓名。
(4) 随机选取一名观众,并打印出该观众姓名。
2.运行结果
任务运行结果如图2-1所示。
图2-1 运行结果
3.任务目标
学会分析"抽取幸运观众"程序的实现思路。
根据思路独立完成” 抽取幸运观众”的源代码编写、编译及运行。
能够根据"抽取幸运观众"程序功能的不同,将功能封装到不同的方法中。
能够使用数组解决多个观众姓名的存储问题。
掌握方法和数组的使用。
4.实现思路
(1) 在存储观众姓名时,如果对每个观众都定义一个变量进行姓名存储,则会出现过多孤立的变量,很难一次性将全部数据持有,不好完成随机抽取的操作。此时,可以使用数组解决多个数据的存储问题。创建一个可以存储多个观众姓名的数组,这里我们设置数组的长度为3。
观众的姓名为String类型,定义字符串类型的数组存储观众姓名即可。关于String类型使用请注意以下几点:
1)java有String类型,String类型的数组则可以用来存放多个字符串,在此题中即表现为可以存储多个观众的姓名。有别于c,c没有字符串类型,c是通过字符数组来实现的,c中存放多个字符串可通过二维字符数组来实现。
2)c没有字符串类型,但是有相应的字符串处理函数,对于String类,java也提供了很多实用的方法,可分为静态方法和非静态方法两大类。
3)Java中的“+”号可用作字符串连接符,即字符串数据和其他数据做“+”运算,结果是字符串类型,如果两个字符串进行连接则形成一个新的字符串。
(2) 键盘输入观众姓名。将输入的姓名依次赋值给数组各元素,便可完成所有观众姓名的存储。通过使用Scanner类,能够从键盘输入中读取一个字符串。
Scanner sc=new Scanner(System.in);
String str=sc.next();
(3) 对数组进行遍历,打印出数组每个元素的值,即实现了对每个观众姓名的总览。此处在遍历时,可通过数组名.length获取当前数组的长度。
(4) 根据数组长度,可获取在数组长度范围内的随机索引,如这里我们的数组长度为3,所以获取的随机索引只能在0-2之间,通过随机索引再获取数组中的姓名,此观众即为幸运观众。获取随机索引可以使用通过java.util包中Random类的nextInt(int n)方法,此方法用于生成[0,n)区间的随机整数。
参考代码如下:
Random ra =new Random();
for (int i=0;i<30;i++)
{System.out.println(ra.nextInt(10)+1);}
以上代码将得到30个值在1-10int类型随机数
(5) "抽取幸运观众"明确分为了3个功能,如果将多个独立功能的代码写在一起,代码相对冗长,可读性差,这里可将相对独立的功能封装到不同方法中,然后在程序的main()方法中调用这3个方法即可。
先定义一个静态的addAudience()方法,此方法有一个String类型的数组audience作为参数,方法体内借助Scanner类通过键盘输入观众姓名,并将这些姓名依次存储到当前数组audience中。
再定义一个静态的printAudience ()方法,此方法有一个String类型的数组audience作为参数,通过遍历数组audience的方式用于实现总览观众姓名的功能。
最后定义一个静态的randomAudience ()方法,此方法有一个String类型的数组audience作为参数,用于实现随机点名,可通过Random类的nextInt(intn)方法先成随机索引,然后根据随机索引从数组中获取姓名,这个姓名就是幸运观众的姓名。
(6)在此给出main()方法,请自行实现addAudience()方法,printAudience ()方法,randomAudience ()方法。
二、程序实现
1.代码
import java.util.Scanner;
import java.util.Random;
public class Luckydraw{
public static void main(String[] args) {
System.out.println("--------抽取幸运观众---------");
//存储观众姓名
String[] audience=new String[3];
//总览观众姓名
addAudience(audience);
//随机抽取一名幸运观众
printAudience(audience);
//返回随机出来的名字,赋给randomName
String randomName=randomAudience(audience);
System.out.println("随机抽取的幸运观众是:"+randomName);//输出结果
}
//存储观众姓名
public static void addAudience(String[] audience) {
Scanner sc = new Scanner(System.in);
for (int i = 0 ; i < audience.length ; i++){
System.out.println("请输入第" + (i + 1) + "位观众的姓名:");
audience[i] = sc.next();
}
}
//总览观众姓名
public static void printAudience(String[] audience){
for (int i = 0 ; i < audience.length ; i++){
System.out.println("第" + (i + 1) + "位观众姓名:" + audience[i]);
}
}
//随机抽取一名幸运观众
public static String randomAudience(String[] audience){
int draw = new Random().nextInt(audience.length);
return audience[draw];
}
}
2.实验结果(包括输入数据和输出结果)
总结
随机索引,通过java.util包中Random类的nextInt(int n)方法,生成[0,n)区间的随机整数,并且返回字符串即可实现随机数字到随机字符串抽取的转变。
最后
以上就是纯真帅哥为你收集整理的Java实验1-2【抽取幸运观众】前言一、任务介绍二、程序实现总结的全部内容,希望文章能够帮你解决Java实验1-2【抽取幸运观众】前言一、任务介绍二、程序实现总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复