随机点名器案例(分模块) + 库存管理案例(分模块)

第2章 随机点名器案例
2.1 案例介绍
随机点名器,即在全班同学中随机的打印出一名同学名字。
要做的随机点名器,它具备以下3个内容:
 存储所有同学姓名
 总览全班同学姓名
 随机点名其中一人,打印到控制台
2.2 案例需求分析
在全班同学中随机的打印出一名同学名字。
我们对本案例进行分析,得出如下分析结果:
1.存储全班同学名字
2.打印全班同学每一个人的名字
3.在班级总人数范围内,随机产生一个随机数,查找该随机数所对应的同学名字
该案例须有以下3个内容:
 存储所有同学姓名
 总览全班同学姓名
 随机点名其中一人,打印到控`制台
随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。
而在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,很难一次性将全部数据持有。此时,我们可以使用数组解决多个数据的存储问题。

/*
	随机点名器
		1.存储所有学生姓名,添加功能
		2.预览所有学生姓名,遍历数组,浏览功能
		3.随机数作为索引,到数组中找到元素,随机点名功能
	将功能独立出来,作成方法,调用方法即可
	定义三个功能,用到同一个姓名数据
	姓名存储到数组中,三个方法,使用同一个数组中的数据,方法传递参数
*/
//Scanner类使用步骤:
//S1:导包
import java.util.Scanner;
//Random使用方式
//R1:import导包:
import java.util.Random;
public class CallName_1{
	public static void main(String[] args){
		//定义数组,存储学生姓名
		String[] names = new String[3];
		//功能菜单选择:	
		while(true){
		//不断获取控制台输入的数字,使用指定的功能
		int choose = chooseFunction();
			switch(choose){
				case 1:
					//1.添加学生姓名
					System.out.println("=========正处于添加学生姓名进行中=============");
					addStudentNames(names);
					System.out.println("============添加学生姓名结束==================");
				break;
				
				case 2:
					//2.遍历学生姓名
					System.out.println("========正处于遍历学生姓名进行中==============");
					printStudentNames(names);
					System.out.println("============遍历学生姓名结束==================");
				break;
				
				case 3:
					//3.随机点名功能
					System.out.println("=========正处于随机点名功能进行中================");
					String ranName = RandomStudentName(names);
					System.out.println(ranName);
					System.out.println("============随机点名功能结束...==================");
				break;
				
				case 4:
					//结束程序
					System.out.println("============已退出系统===========================");
					return;
				default:
					System.out.println("没有这个功能,还在完善中...");
				break;
			}
		}	
	}
	public static int chooseFunction(){
		System.out.println("--------------------学生随机点名系统----------------------");
		System.out.println("1.添加学生姓名");
		System.out.println("2.遍历学生姓名");
		System.out.println("3.随机点名功能");
		System.out.println("4.退出系统");
		System.out.println("请输入要执行的操作序号:");
		
		//接受键盘输入
		Scanner sc = new Scanner(System.in);
		int chooseNumber = sc.nextInt();
		return chooseNumber;
	}
	
	/*
		定义方法:实现数组中控制台输入,并添加字符串元素
		返回值? 没有
		参数? 数组(容器)
	*/
	public static void addStudentNames(String[] names){
		//S2:创建Scanner对象实例
		Scanner sc = new Scanner(System.in);
		for(int i = 0;i < names.length;i++){
			System.out.println("接受第" + i + "同学姓名");
			names[i] = sc.next();//S3:用来接收控制台录入的字符串
		}
	}
	/*
		定义方法:遍历数组中的每个元素
		返回值?没有
		参数? 数组(容器)
	*/
	public static void printStudentNames(String[] names){
		for(int i = 1;i <= names.length;i++){
			System.out.println("第 " + i + "个学生姓名:" + names[i-1]);
		}
	}
	
	/*
		定义方法:数组的索引,用随机类产生,返回出随机抽取的数组元素
		返回值? 数组中的元素
		参数?数组
	*/
	public static String RandomStudentName(String[] names){
		//R2:创建Random对象实例
		Random ran = new Random();
		//R3:使用方法
		int Randomindex = ran.nextInt(names.length);
		return names[Randomindex];
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
第3章 库存管理案例
3.1 案例介绍
现在,我们将原有的库存管理案例,进行业务逻辑的封装。 在这里插入图片描述
将对下列功能进行方法封装:
 打印库存清单功能
 库存商品数量修改功能
 退出程序功能
3.2 案例需求分析
管理员能够进行的操作有3项(查看、修改、退出),我们可以采用(switch)菜单的方式来完成。
-------------库存管理------------
1.查看库存清单
2.修改商品库存数量
3.退出
请输入要执行的操作序号:
每一项功能操作,我们采用方法进行封装,这样,可使程序的可读性增强。
选择“1.查看库存清单”功能,则控制台打印库存清单
选择“2.修改商品库存数量”功能,则对每种商品库存数进行更新
选择“3.退出”功能,则退出库存管理,程序结束

/*
	实现商品的库存管理:
		功能:
			1.展示用户选择功能的清单
			2.根据选择的功能,进行不同的操作
				A.查看库存清单
				B.修改商品库存数量
				C.退出系统
		分析:
			1.展示用户清单:输出语句,键盘输入类Scanner,选择功能序号
			2.根据选择,进行不同的操作  使用switch case语句
				A.遍历存储的数组中元素
				B.修改所有库存数量
				C.退出系统return
*/
//Scanner类使用步骤:
//S1:导包
import java.util.Scanner;
public class Shopp_1{
	public static void main(String[] args){
		//使用数组,保存商品的信息
		//品名,尺寸,价格,库存数,定义五个数组
		String[] brand = {"MacBookAir","ThinkpadT450"};
		double[] size = {13.3,15.6};
		double[] price = {9998.97,6789.56};
		int[] count = {0,0};
		
		//功能菜单选择:
		while(true){
			int choose = chooseFunction();
			switch(choose){
				case 1:
					//1.调用查看库存清单的方法
					printStore(brand,size,price,count);
				break;
				
				case 2:
					//2.调用修改商品库存数量
					update(brand,count);
				break;
				
				case 3:
					//结束系统
					return;
					
				default:
					System.out.println("功能还在完善中...");
				break;
			}
			
		}
	}
	/*
		方法定义:实现用户选择功能,将选中的数字返回回来
		返回值? int
		参数? 没有
	*/
	public static int chooseFunction(){
		System.out.println("--------------------库存管理----------------------");
		System.out.println("1.查看库存清单");
		System.out.println("2.修改商品库存管理");
		System.out.println("3.退出系统");
		System.out.println("请输入要执行的操作序号:");
		//S2:创建Scanner对象实例
		Scanner ran = new Scanner(System.in);
		return ran.nextInt();//S3:用来接收控制台录入的数字
	}
	/*
		方法定义:查看库存清单,遍历存储的数组中元素
		返回值?没有
		参数? 所有数据的数组(容器)
	*/
	public static void printStore(String[] brand,double[] size,double[] price,int[] count){
		//1.实现表头固定数据,打印输出语句
		System.out.println("--------------------商城库存清单--------------------");
		System.out.println("品牌型号         尺寸         价格         库存数");
		//2.表尾部,一部分固定数据,一部分需要科学计算
		int totalCount = 0;
		double totalPrice = 0;
		//3.遍历存储的数组中元素
		for(int i = 0;i < brand.length;i++){
			System.out.println(brand[i] + "       " + size[i] + "         " + price[i] + "       " + count[i]);
			totalCount += count[i];
			totalPrice += count[i] * price[i];
		}
		//4.打印尾部数据
		System.out.println("总库存数:" + totalCount + " 台");
		System.out.println("库存商品总金额:" + totalPrice + " 元");
		System.out.println("----------------------------------------------------");
	}
	/*
		定义方法:修改商品库存数量
		返回值?没有
		参数?brand 和count数组
	*/
	public static void update(String[] brand,int[] count){
		//遍历数组,遍历到一个,修改一个
		//1.接受键盘输入
		Scanner sc = new Scanner(System.in);
		for(int i = 0;i < brand.length;i++){
			System.out.println("请输入" + brand[i] + "的库存数");
			//键盘输入,录入库存,存储到库存的数组中
			int newCount = sc.nextInt();
			count[i] = newCount;
		}
	}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40807247/article/details/83045271
今日推荐