Java基礎-day07-代碼題-自定義數據類型&ArrayList集合
Java基礎-day07-代碼題-自定義數據類型&ArrayList集合
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 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();
// 計算 總價
// 獲取 每一個 菜的單價 . 單價 * 份數
total += c.getPrice() * num;
}
}
}
運行結果:
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 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、列印結果
}
}
運行結果:
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_list = new ArrayList();
student_list.add(new Student("張三", 99, 90, 100));
student_list.add(new Student("李四", 89, 80, 100));
for (Student student : student_list) {
}
Scanner scanner = new Scanner(System.in);
// 請輸入學生姓名
String name = scanner.nextLine();
for (Student student : student_list) {
String n = student.getName();
if (n.equals(name)) {
// 可以繼續錄入, 修改
String kemu = scanner.nextLine();
double score = scanner.nextDouble();
// 根據不同的科目,修改不同的分數.
switch (kemu) {
case "數學":
student.setMath(score);
break;
case "英語":
student.setEnglish(score);
break;
case "java":
student.setJava(score);
break;
default:
return ;
}
return;
}
}
}
}
運行結果:
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
list = new ArrayList
();
//向集合中添加人 創建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);
//遍歷集合,依次獲取每個人,列印每個人的名字
for(int i = 0 ;i < list.size();i++){
Person thisP = list.get(i);
}
//隨機點名
Random r = new Random();
//生成一個最大不超過集合最大索引的隨機數 0 - 集合最大索引的一個隨機數
int randomIndex = r.nextInt(list.size());
//依據隨機數得到集合中相對應的人
Person person = list.get(randomIndex);
}
}
運行結果:
TAG:Java幫幫 |