愚公系列2021年12月 Java教學(xué)課程 28-學(xué)生管理系統(tǒng)案例

      網(wǎng)友投稿 773 2022-05-28

      一、學(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è)試類的定義

      【愚公系列】2021年12月 Java教學(xué)課程 28-學(xué)生管理系統(tǒng)案例

      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)容。

      上一篇:【數(shù)據(jù)結(jié)構(gòu)與算法】之深入解析“騎士在棋盤上的概率”的求解思路與算法示例
      下一篇:評(píng)估板快速測(cè)試-基于TI Sitara Cortex-A9(2)
      相關(guān)文章
      亚洲精品一卡2卡3卡四卡乱码| 亚洲无mate20pro麻豆| 亚洲aⅴ无码专区在线观看春色| 77777亚洲午夜久久多喷| 亚洲黄色一级毛片| 亚洲视频精品在线| 亚洲v高清理论电影| 亚洲AV日韩AV天堂久久 | 奇米影视亚洲春色| 亚洲高清无码在线观看| 日韩亚洲精品福利| 亚洲国产精品一区二区九九| 亚洲国产成人久久一区WWW| 亚洲国产成人久久综合碰| 亚洲精品tv久久久久| 国产乱辈通伦影片在线播放亚洲 | 亚洲同性男gay网站在线观看| 亚洲日本国产乱码va在线观看| 亚洲制服丝袜精品久久| 亚洲一区在线观看视频| 亚洲天堂免费在线| 亚洲国产午夜精品理论片在线播放| 亚洲爆乳成av人在线视菜奈实| 久久亚洲中文字幕无码| 亚洲国产婷婷香蕉久久久久久| 久久久久一级精品亚洲国产成人综合AV区| 亚洲天堂在线视频| 曰韩亚洲av人人夜夜澡人人爽| 亚洲精品一品区二品区三品区| 久久精品亚洲视频| 亚洲国产精品久久久久秋霞影院 | 伊人久久精品亚洲午夜| 亚洲av无码不卡一区二区三区| 亚洲无删减国产精品一区| 亚洲成人黄色在线| 亚洲日本VA午夜在线电影| 无码欧精品亚洲日韩一区夜夜嗨 | 久久久久久亚洲精品成人| 亚洲国产精品专区| 亚洲欧洲无卡二区视頻| 五月天婷亚洲天综合网精品偷|