1.饭店结账程序. 定义菜品类,属性为名称,价格,数量. 集合中添加若干菜品对象. 遍历集合,打印出集合中所有菜品名称和消费总金额. 代码实现: package StudentJavaSEday07; class Cai { private String name; private double price; private int num = 1; // 数量,默认一份. public Cai(String name, double price, int num) { super(); this.name = name; this.price = price; this.num = num; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public int getNum() { return num; } public void setNum(int num) { this.num = num; } } package StudentJavaSEday07; import java.util.ArrayList; public class Test1 { public static void main(String[] args) { ArrayList<Cai> al = new ArrayList<>(); Cai cai = new Cai("烤羊腿", 58, 4); Cai cai2 = new Cai("皮蛋豆腐", 8, 1); Cai cai3 = new Cai("烤板筋", 2, 10); Cai cai4 = new Cai("可乐", 8, 1); al.add(cai); al.add(cai2); al.add(cai3); al.add(cai4); double total = 0; // 遍历 集合 for (Cai c : al) { // 打印 String name = c.getName(); int num = c.getNum(); System.out.println("菜名 :" + name + " -- " + num + "份"); // 计算 总价 // 获取 每一个 菜的单价 . 单价 * 份数 total += c.getPrice() * num; } System.out.println("总价:" + total); } } 运行结果: 2.双色球 彩票机选程序. 双色球规则 : 一共 选 7 个号. 6个红色 , 1 蓝色的 红色球1-33中选6个,号码不能重复. 蓝色球16选1,号码不能重复. 红色 1- 33 蓝色 1- 16 打印出机选结果格式(前6个为红球,最后一个为篮球,数字是随机生成的,每次运行结果都不一样) : 本期中奖号码为:[7, 27, 25, 6, 4, 9, 12] 代码实现: package StudentJavaSEday07; import java.util.ArrayList; import java.util.Random; public class Demo4 { public static void main(String[] args) { // 1.定义集合, 保存 最终结果 . ArrayList<Integer> result = new ArrayList<>(); // 2.开始选择 . Random random = new Random(); // 随机生成 数字. // 3.生成6个红球并保存到集合中 while (result.size() < 6) { int red_ball = random.nextInt(33) + 1; // 保证唯一 if (!result.contains(red_ball)) { result.add(red_ball); } } // 4、再生成 1个蓝色 的球 ,并添加到集合中 int blue_ball = random.nextInt(16) + 1;// 蓝色球 result.add(blue_ball); // 5、打印结果 System.out.println("本期中奖号码为:" + result); } } 运行结果: 3.编写一个程序的模拟班级学生的成绩库, 包含多项成绩,英语,数学,Java. 实现如下功能: 1.可以修改某个学生的某项分数. 2.可以打印全班同学成绩 要求使用集合来完成. 代码实现: package StudentJavaSEday07; class Student { private double english; private double math; private double java; private String name; public Student() { super(); } public Student(String name, double english, double math, double java) { super(); this.english = english; this.math = math; this.java = java; this.name = name; } public double getEnglish() { return english; } public void setEnglish(double english) { this.english = english; } public double getMath() { return math; } public void setMath(double math) { this.math = math; } public double getJava() { return java; } public void setJava(double java) { this.java = java; } public String getName() { return name; } public void setName(String name) { this.name = name; } } package StudentJavaSEday07; import java.util.ArrayList; import java.util.Scanner; public class Test2 { public static void main(String[] args) { ArrayList<Student> student_list = new ArrayList<>(); student_list.add(new Student("张三", 99, 90, 100)); student_list.add(new Student("李四", 89, 80, 100)); for (Student student : student_list) { System.out.println(student); } Scanner scanner = new Scanner(System.in); // 请输入学生姓名 System.out.println("请输入学生姓名 "); String name = scanner.nextLine(); for (Student student : student_list) { String n = student.getName(); if (n.equals(name)) { // 可以继续录入, 修改 System.out.println("请输入科目 "); String kemu = scanner.nextLine(); System.out.println("请输入分数 "); double score = scanner.nextDouble(); // 根据不同的科目,修改不同的分数. switch (kemu) { case "数学": student.setMath(score); break; case "英语": student.setEnglish(score); break; case "java": student.setJava(score); break; default: System.out.println("查无此课, 对不起"); return ; } System.out.println("恭喜您, 修改成功"); System.out.println(student); return; } } System.out.println("对不起 ,查无此人"); } } 运行结果: 4.随机点名器 a) 案例回顾 在全班同学中随机的打印出一名同学名字。 共三个步骤: 1.存储全班同学名字 2.打印全班同学每一个人的名字 3.在班级总人数范围内,随机产生一个随机数索引,查找该随机数索引所对应的同学名字 b) 重构内容分析 1:将原来的数组容器修改为集合容器 2:将原来的人名字符串修改为使用人类对象 c) 实现步骤 定义Person类 定义Person类,包含成员变量名称、年龄、地址 存储所有同学姓名 在main方法中ArrayList集合类型的变量并创建对象为变量赋值,再向集合中添加5个Person对象。 总览全班同学姓名 遍历集合,依次获取每个Person对象,再获取Person对象名称打印。 随机点名 通过随机数类Random产生一个从0到集合长度的随机索引。而该索引对应的Person对象的名称属性便是所求的随机姓名。 代码实现: package StudentJavaSEday07; /* 自定义类型 人类 属性 姓名 String 年龄 int 性别 String 身高 double 是否热爱java boolean */ public class Person { //姓名 String name; //年龄 int age; //性别 String sex; //身高 double height; //是否喜欢java boolean isLoveJava; } package StudentJavaSEday07; //导入集合ArrayList import java.util.ArrayList; //导入Random import java.util.Random; public class RandomName { public static void main(String[] args) { //定义一个集合用来存储所有人 ArrayList<Person> list = new ArrayList<Person>(); //向集合中添加人 创建Person对象 将Person添加到集合中 Person p = new Person(); p.name = "柳岩"; Person p2 = new Person(); p2.name = "唐嫣"; Person p3 = new Person(); p3.name = "金莲"; list.add(p); list.add(p2); list.add(p3); System.out.println("-----------------------"); //遍历集合,依次获取每个人,打印每个人的名字 for(int i = 0 ;i < list.size();i++){ Person thisP = list.get(i); System.out.println(thisP.name); } System.out.println("-----------------------"); //随机点名 Random r = new Random(); //生成一个最大不超过集合最大索引的随机数 0 - 集合最大索引的一个随机数 int randomIndex = r.nextInt(list.size()); //依据随机数得到集合中相对应的人 Person person = list.get(randomIndex); System.out.println("今天你答题:"+person.name); } } 运行结果: 我们是最靠谱的IT专家 |
|