一、學(xué)生管理系統(tǒng)
2.1 學(xué)生管理系統(tǒng)實(shí)現(xiàn)步驟
案例需求
針對(duì)目前我們的所學(xué)內(nèi)容,完成一個(gè)綜合案例:學(xué)生管理系統(tǒng)!該系統(tǒng)主要功能如下:
添加學(xué)生:通過(guò)鍵盤錄入學(xué)生信息,添加到集合中
刪除學(xué)生:通過(guò)鍵盤錄入要?jiǎng)h除學(xué)生的學(xué)號(hào),將該學(xué)生對(duì)象從集合中刪除
修改學(xué)生:通過(guò)鍵盤錄入要修改學(xué)生的學(xué)號(hào),將該學(xué)生對(duì)象其他信息進(jìn)行修改
查看學(xué)生:將集合中的學(xué)生對(duì)象信息進(jìn)行展示
退出系統(tǒng):結(jié)束程序
實(shí)現(xiàn)步驟
定義學(xué)生類,包含以下成員變量
學(xué)生類: Student成員變量:
學(xué)號(hào):sid
姓名:name
年齡:age
生日:birthday
構(gòu)造方法:
無(wú)參構(gòu)造
帶四個(gè)參數(shù)的構(gòu)造成員方法:
每個(gè)成員變量對(duì)應(yīng)給出get/set方法
學(xué)生管理系統(tǒng)主界面的搭建步驟
2.1 用輸出語(yǔ)句完成主界面的編寫
2.2 用Scanner實(shí)現(xiàn)鍵盤錄入數(shù)據(jù)
2.3 用switch語(yǔ)句完成操作的選擇
2.4 用循環(huán)完成再次回到主界面
學(xué)生管理系統(tǒng)的添加學(xué)生功能實(shí)現(xiàn)步驟
3.1 用鍵盤錄入選擇添加學(xué)生
3.2 定義一個(gè)方法,用于添加學(xué)生
顯示提示信息,提示要輸入何種信息
鍵盤錄入學(xué)生對(duì)象所需要的數(shù)據(jù)
創(chuàng)建學(xué)生對(duì)象,把鍵盤錄入的數(shù)據(jù)賦值給學(xué)生對(duì)象的成員變量
將學(xué)生對(duì)象添加到集合中(保存)
給出添加成功提示
3.3 調(diào)用方法
學(xué)生管理系統(tǒng)的查看學(xué)生功能實(shí)現(xiàn)步驟
4.1 用鍵盤錄入選擇查看所有學(xué)生信息
4.2 定義一個(gè)方法,用于查看學(xué)生信息
顯示表頭信息
將集合中數(shù)據(jù)取出按照對(duì)應(yīng)格式顯示學(xué)生信息,年齡顯示補(bǔ)充“歲”
4.3 調(diào)用方法
學(xué)生管理系統(tǒng)的刪除學(xué)生功能實(shí)現(xiàn)步驟
5.1 用鍵盤錄入選擇刪除學(xué)生信息
5.2 定義一個(gè)方法,用于刪除學(xué)生信息
顯示提示信息
鍵盤錄入要?jiǎng)h除的學(xué)生學(xué)號(hào)
調(diào)用getIndex方法,查找該學(xué)號(hào)在集合的索引
如果索引為-1,提示信息不存在
如果索引不是-1,調(diào)用remove方法刪除并提示刪除成功
5.3 調(diào)用方法
學(xué)生管理系統(tǒng)的修改學(xué)生功能實(shí)現(xiàn)步驟
6.1 用鍵盤錄入選擇修改學(xué)生信息
6.2 定義一個(gè)方法,用于修改學(xué)生信息
顯示提示信息
鍵盤錄入要修改的學(xué)生學(xué)號(hào)
調(diào)用getIndex方法,查找該學(xué)號(hào)在集合的索引
如果索引為-1,提示信息不存在
如果索引不是-1,鍵盤錄入要修改的學(xué)生信息
集合修改對(duì)應(yīng)的學(xué)生信息
給出修改成功提示
6.3 調(diào)用方法
退出系統(tǒng)
使用System.exit(0);退出JVM
2.學(xué)生類的定義
package com.itheima.domain; public class Student { private String sid; // 學(xué)號(hào) private String name; // 姓名 private int age; // 年齡 private String birthday; // 生日 public Student() { } public Student(String sid, String name, int age, String birthday) { this.sid = sid; this.name = name; this.age = age; this.birthday = birthday; } public String getSid() { return sid; } public void setSid(String sid) { this.sid = sid; } public String getName() { return name; } public void setName(String name) { this.name = name; } 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; } }
3.測(cè)試類的定義

package com.itheima.test; import com.itheima.domain.Student; import java.util.ArrayList; import java.util.Scanner; public class StudentManager { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // 創(chuàng)建集合容器對(duì)象 ArrayList list = new ArrayList<>(); lo: while (true) { // 1. 搭建主界面菜單 System.out.println("--------歡迎來(lái)到學(xué)生管理系統(tǒng)--------"); System.out.println("1 添加學(xué)生"); System.out.println("2 刪除學(xué)生"); System.out.println("3 修改學(xué)生"); System.out.println("4 查看學(xué)生"); System.out.println("5 退出"); System.out.println("請(qǐng)輸入您的選擇:"); String choice = sc.next(); switch (choice) { case "1": //System.out.println("添加學(xué)生"); addStudent(list); break; case "2": //System.out.println("刪除學(xué)生"); deleteStudent(list); break; case "3": //System.out.println("修改學(xué)生"); updateStudent(list); break; case "4": // System.out.println("查看學(xué)生"); queryStudents(list); break; case "5": System.out.println("感謝您的使用"); break lo; default: System.out.println("您的輸入有誤"); break; } } } // 修改學(xué)生的方法 public static void updateStudent(ArrayList list) { System.out.println("請(qǐng)輸入您要修改的學(xué)生學(xué)號(hào):"); Scanner sc = new Scanner(System.in); String updateSid = sc.next(); // 3. 調(diào)用getIndex方法, 查找該學(xué)號(hào)在集合中出現(xiàn)的索引位置 int index = getIndex(list,updateSid); // 4. 根據(jù)索引判斷, 學(xué)號(hào)在集合中是否存在 if(index == -1){ // 不存在: 給出提示 System.out.println("查無(wú)信息, 請(qǐng)重新輸入"); }else{ // 存在: 接收新的學(xué)生信息 System.out.println("請(qǐng)輸入新的學(xué)生姓名:"); String name = sc.next(); System.out.println("請(qǐng)輸入新的學(xué)生年齡:"); int age = sc.nextInt(); System.out.println("請(qǐng)輸入新的學(xué)生生日:"); String birthday = sc.next(); // 封裝為新的學(xué)生對(duì)象 Student stu = new Student(updateSid, name, age, birthday); // 調(diào)用集合的set方法, 完成修改 list.set(index, stu); System.out.println("修改成功!"); } } // 刪除學(xué)生的方法 public static void deleteStudent(ArrayList list) { // 1. 給出提示信息 (請(qǐng)輸入您要?jiǎng)h除的學(xué)號(hào)) System.out.println("請(qǐng)輸入您要?jiǎng)h除的學(xué)生學(xué)號(hào):"); // 2. 鍵盤接收要?jiǎng)h除的學(xué)號(hào) Scanner sc = new Scanner(System.in); String deleteSid = sc.next(); // 3. 調(diào)用getIndex方法, 查找該學(xué)號(hào)在集合中出現(xiàn)的索引位置 int index = getIndex(list,deleteSid); // 4. 根據(jù)索引判斷, 學(xué)號(hào)在集合中是否存在 if(index == -1){ // 不存在: 給出提示 System.out.println("查無(wú)信息, 請(qǐng)重新輸入"); }else{ // 存在:刪除 list.remove(index); System.out.println("刪除成功!"); } } // 查看學(xué)生的方法 public static void queryStudents(ArrayList list) { // 1. 判斷集合中是否存在數(shù)據(jù), 如果不存在直接給出提示 if(list.size() == 0){ System.out.println("無(wú)信息, 請(qǐng)?zhí)砑雍笾匦虏樵?); return; } // 2. 存在: 展示表頭數(shù)據(jù) System.out.println("學(xué)號(hào)\t\t姓名\t年齡\t生日"); // 3. 遍歷集合, 獲取每一個(gè)學(xué)生對(duì)象的信息, 打印在控制臺(tái) for (int i = 0; i < list.size(); i++) { Student stu = list.get(i); System.out.println(stu.getSid() + "\t" + stu.getName() + "\t" + stu.getAge() + "\t\t" + stu.getBirthday()); } } // 添加學(xué)生的方法 public static void addStudent(ArrayList list) { Scanner sc = new Scanner(System.in); // 1. 給出錄入的提示信息 String sid; while(true){ System.out.println("請(qǐng)輸入學(xué)號(hào):"); sid = sc.next(); int index = getIndex(list, sid); if(index == -1){ // sid不存在, 學(xué)號(hào)可以使用 break; } } System.out.println("請(qǐng)輸入姓名:"); String name = sc.next(); System.out.println("請(qǐng)輸入年齡:"); int age = sc.nextInt(); System.out.println("請(qǐng)輸入生日:"); String birthday = sc.next(); // 2. 將鍵盤錄入的信息封裝為學(xué)生對(duì)象 Student stu = new Student(sid,name,age,birthday); // 3. 將封裝好的學(xué)生對(duì)象, 添加到集合容器當(dāng)中 list.add(stu); // 4. 給出添加成功的提示信息 System.out.println("添加成功!"); } /* getIndex : 接收一個(gè)集合對(duì)象, 接收一個(gè)學(xué)生學(xué)號(hào) 查找這個(gè)學(xué)號(hào), 在集合中出現(xiàn)的索引位置 */ public static int getIndex(ArrayList list, String sid){ // 1. 假設(shè)傳入的學(xué)號(hào), 在集合中不存在 int index = -1; // 2. 遍歷集合, 獲取每一個(gè)學(xué)生對(duì)象, 準(zhǔn)備進(jìn)行查找 for (int i = 0; i < list.size(); i++) { Student stu = list.get(i); // 3. 獲取每一個(gè)學(xué)生對(duì)象的學(xué)號(hào) String id = stu.getSid(); // 4. 使用獲取出的學(xué)生學(xué)號(hào), 和傳入的學(xué)號(hào)(查找的學(xué)號(hào))進(jìn)行比對(duì) if(id.equals(sid)){ // 存在: 讓index變量記錄正確的索引位置 index = i; } } return index; } }
5G教育 Java 項(xiàng)目管理 ProjectMan
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。