1.随机点名器案例
1.1 案例介绍
随机点名器,即在全班同学中随机的找出一名同学,打印这名同学的个人信息。
此案例在我们昨天课程学习中,已经介绍,现在我们要做的是对原有的案例进行升级,使用新的技术来实现。
我们来完成随机点名器,它具备以下3个内容:
l 存储所有同学姓名
l 总览全班同学姓名
l 随机点名其中一人,打印到控制台
1.2 案例需求分析
全班同学中随机的找出一名同学,打印这名同学的个人信息。
我们对本案例进行分析,得出如下分析结果:
1.存储全班同学信息(姓名、年龄)
2.打印全班同学每一个人的信息(姓名、年龄)
3.在班级总人数范围内,随机产生一个随机数,查找该随机数所对应的同学信息(姓名、年龄)
随机点名器明确地分为了三个功能。如果将多个独立功能的代码写到一起,则代码相对冗长,我们可以针对不同的功能可以将其封装到一个方法中,将完整独立的功能分离出来。
而在存储同学姓名时,如果对每一个同学都定义一个变量进行姓名存储,则会出现过多孤立的变量,很难一次性将全部数据持有。此时,我们采用ArrayList集合来解决多个学生信息的存储问题。
package com.oracle.linkedlist;
public class Student {
String name;
int age;
}
package com.oracle.linkedlist;
import java.util.Scanner;
import java.util.Random;
class Test04 {
public static void main(String[] args) {
String[] arr=new String[5];
// 存储所有同学姓名
StudentName(arr);
// 总览全班同学姓名
StudentCname(arr);
// 存储所有同学姓名
StudentSname(arr);
}
// 存储所有同学姓名
public static void StudentName(String[] arr){
Scanner sc=new Scanner(System.in);
for (int i=0;i<arr.length;i++) {
System.out.println("第"+(i+1)+"同学姓名");
arr[i]=sc.next();
}
}
// 总览全班同学姓名
public static void StudentCname(String[] arr){
for(int i=0;i<arr.length;i++){
System.out.println("第"+(i+1)+"个同学:"+arr[i]);
}
}
// 存储所有同学姓名
public static void StudentSname(String[]arr){
int a = new Random().nextInt(arr.length);
System.out.println("被点到名的同学是:" +arr[a]);
}
}
运行结果:
2.库存管理案例
2.1 案例介绍
现在,我们将原有的库存管理案例,采用更好的集合方式实现。
将对下列功能进行方法封装:
l 打印库存清单功能
l 库存商品数量修改功能
l 退出程序功能
2.2 案例需求分析
管理员能够进行的操作有3项(查看、修改、退出),我们可以采用(switch)菜单的方式来完成。
-------------库存管理------------
1.查看库存清单
2.修改商品库存数量
3.退出
请输入要执行的操作序号:
每一项功能操作,我们采用方法进行封装,这样,可使程序的可读性增强。
选择“1.查看库存清单”功能,则控制台打印库存清单
选择“2.修改商品库存数量”功能,则对每种商品库存数进行更新
选择“3.退出”功能,则退出库存管理,程序结束
package com.oracle.demo03;
public class Stores { String sname; double ssize; double smoney; int sinventory; }
package com.oracle.demo03;
import java.util.ArrayList;import java.util.Scanner;public class store { public static void main(String[] args) { ArrayList<Stores> list=new ArrayList(); Scanner sc=new Scanner(System.in); while(true){ MainMenu(); int num=sc.nextInt(); switch(num){ case 1:QueryStore(list); break; case 2:updateStore(list); break; case 3:addStore(list); break; case 4:delectStore(list); break; case 5: return; default: break; } } } //主菜单 public static void MainMenu(){ System.out.println("----------库存管理-----------"); System.out.println("1.查看库存清单"); System.out.println("2.修改商品库存数量"); System.out.println("3.添加商品"); System.out.println("4.删除商品"); System.out.println("5.退出"); System.out.println("请输入您要执行的编号:"); } //查看库存清单 public static void QueryStore(ArrayList<Stores> list){ System.out.println("---------商城库存清单----------"); System.out.println("品牌型号\t\t尺寸\t价格\t库存数"); //MacBookAir品牌 Stores s1=new Stores(); s1.sname="MacBookAir"; s1.ssize=13.3; s1.smoney=6988.88; s1.sinventory=5; System.out.println(s1.sname+"\t"+s1.ssize+"\t"+s1.smoney+"\t"+s1.sinventory); //ThinkpadT450品牌 Stores s2=new Stores(); s2.sname="ThinkpadT450"; s2.ssize=14.0; s2.smoney=5999.99; s2.sinventory=10; System.out.println(s2.sname+"\t"+s2.ssize+"\t"+s2.smoney+"\t"+s2.sinventory); //ASUS-FL5800品牌 Stores s3=new Stores(); s3.sname="ASUS-FL5800"; s3.ssize=15.6; s3.smoney=4999.5; s3.sinventory=18; System.out.println(s3.sname+"\t"+s3.ssize+"\t"+s3.smoney+"\t"+s3.sinventory); //总库存数 int sum=s1.sinventory+s2.sinventory+s3.sinventory; //库存商品总金额 double SUM=s1.smoney*5+s2.smoney*10+s3.smoney*18; for(int i=0;i<list.size();i++){ System.out.println(list.get(i).sname+"\t\t"+list.get(i).ssize+"\t"+list.get(i).smoney+"\t"+list.get(i).sinventory); } System.out.println("---------------------------"); System.out.println("总库存数:"+sum); System.out.println("库存商品总金额:"+SUM); } //修改商品数量 public static void updateStore(ArrayList<Stores> list){ QueryStore(list); Scanner sc=new Scanner(System.in); System.out.println("请输入要修改的品牌数量:"); int inventory=sc.nextInt(); Stores stores=new Stores(); stores.sinventory=inventory; for(int i=0;i<list.size();i++){ if(inventory==list.get(i).sinventory){ list.set(i, stores); } } } //添加清单 public static void addStore(ArrayList<Stores> list){ Scanner sc=new Scanner(System.in); Stores stores=new Stores(); System.out.println("请输入新增加的品牌型号:"); String name=sc.next(); System.out.println("请输入新增加的品牌尺寸:"); double size=sc.nextDouble(); System.out.println("请输入新增加的品牌价格:"); double money=sc.nextDouble(); System.out.println("请输入新增加的品牌库存数:"); int inventory=sc.nextInt(); stores.sname=name; stores.ssize=size; stores.smoney=money; stores.sinventory=inventory; list.add(stores); System.out.println("添加商品成功!"); } //删除清单 public static void delectStore(ArrayList<Stores> list){ QueryStore(list); Scanner sc=new Scanner(System.in); System.out.println("请输入您要删除的品牌名称:"); String num=sc.next(); for(int i=0;i<list.size();i++){ if(num==list.get(i).sname){ list.remove(i); } System.out.println("删除商品成功!"); } }}
运行结果: