day11
學習目标:
- 掌握添加學生功能的編寫
- 掌握查詢學生功能的編寫
- 掌握修改學生功能的編寫
- 掌握删除學生功能的編寫
1.學生類
public class Student {
private String id; //學号
private String name; //姓名
private String gender; //性别
private int age; //年齡
private String birthday;//生日
public Student() {
}
public Student(String id, String name, String gender, int age, String birthday) {
this.id = id;
this.name = name;
this.gender = gender;
this.age = age;
this.birthday = birthday;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
2.學生管理系統
import com.itheima.domain.Student;
import java.util.ArrayList;
import java.util.Scanner;
public class StudentManagerSystem {
public static void main(String[] args) {
//建立集合容器,用來存儲學生對象
ArrayList<Student> list = new ArrayList<>();
//鍵盤錄入
Scanner sc = new Scanner(System.in);
//主界面的編寫
wc:
while (true) {
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("請輸入您的選擇:");
int num = sc.nextInt();
switch (num) {
case 1:
//System.out.println("1 添加學生");
addStudent(list, sc);
break;
case 2:
// System.out.println("2 删除學生");
removeStudent(list,sc);
break;
case 3:
// System.out.println("3 修改學生");
updateStudent(list,sc);
break;
case 4:
// System.out.println("4 檢視學生");
showStudents(list);
break;
case 5:
System.out.println("5 退出");
// break wc;
System.exit(0);
default:
System.out.println("您的輸入有誤,請重新選擇!");
}
}
}
//修改學生資訊
private static void updateStudent(ArrayList<Student> list, Scanner sc) {
//判斷集合是否為空
if (list.isEmpty()){
System.out.println("無資訊,請添加後在操作!");
return;
}
//修改學生資訊
System.out.println("請輸入學生的學号:");
String updateId = sc.next();
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if (student.getId().equals(updateId)){
//修改學生資訊
/* System.out.println("請輸入你要修改的學生的姓名:");
String name = sc.next();
System.out.println("請輸入你要修改的學生的性别:");
String gender = sc.next();
System.out.println("請輸入你要修改的學生的年齡:");
int age = sc.nextInt();
System.out.println("請輸入你要修改的學生的生日:");
String birthday = sc.next();
student.setName(name);
student.setGender(gender);
student.setAge(age);
student.setBirthday(birthday);*/
Student stu = getStudent(sc, updateId);
list.set(i,stu);
System.out.println("修改成功!");
}else {
System.out.println("學号不存在,請檢查後,在操作");
}
}
}
//删除學生 根據學生學号删除學生
private static void removeStudent(ArrayList<Student> list, Scanner sc) {
//判斷集合是否為空
if (list.isEmpty()){
System.out.println("無資訊,請添加後在操作!");
return;
}
//輸入學生學号
System.out.println("請輸入你要删除的學生的學号:");
String deleteId = sc.next();
/*
定義判斷學号是否存在的方法
參數:集合 學号
傳回值:int index
*/
int index = isExistingStudentID(list,deleteId);
if (index !=-1){
list.remove(index);
System.out.println("删除成功");
}else {
System.out.println("您輸入的學号不存在,請檢查後,在操作!");
}
}
//判斷學号是否在集合中存在,如果存在傳回索引,如果不存在傳回 -1
private static int isExistingStudentID(ArrayList<Student> list, String deleteId) {
//周遊集合
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
if (student.getId().equals(deleteId)){
return i;
}
}
return -1;
}
//檢視學生資訊
private static void showStudents(ArrayList<Student> list) {
if (list.isEmpty()) {
System.out.println("無資訊,請添加後查詢!");
return;
}
System.out.println("學号\t\t姓名\t\t性别\t\t年齡\t\t生日");
//周遊集合
for (int i = 0; i < list.size(); i++) {
Student student = list.get(i);
System.out.println(student.getId() + "\t\t" + student.getName() + "\t\t" + student.getGender() + "\t\t" + student.getAge() + "\t\t" + student.getBirthday()
);
}
}
//1 添加學生
private static void addStudent(ArrayList<Student> list, Scanner sc) {
/*String id = null;
while (true) {
System.out.println("請輸入你要添加的學生的學号:");
id = sc.next();
boolean flag = true;
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
if (stu.getId().equals(id)) {
flag = false;
}
}
if (flag) {
break;
} else {
System.out.println("學号已經被占用,請從新輸入!");
}
}*/
String id = null;
while (true) {
System.out.println("請輸入你要添加的學生的學号:");
id = sc.next();
int index = isExistingStudentID(list, id);
if (index == -1){
//System.out.println("學号不存在,可以使用");
break;
}else {
System.out.println("學号已經被占用,請從新輸入!");
}
}
Student student = getStudent(sc, id);
list.add(student);
System.out.println("添加成功!");
}
//輸入學生資訊 已知學号存在
private static Student getStudent(Scanner sc, String id) {
System.out.println("請輸入你要添加的學生的姓名:");
String name = sc.next();
System.out.println("請輸入你要添加的學生的性别:");
String gender = sc.next();
System.out.println("請輸入你要添加的學生的年齡:");
int age = sc.nextInt();
System.out.println("請輸入你要添加的學生的生日:");
String birthday = sc.next();
Student student = new Student(id, name, gender, age, birthday);
return student;
}
}