如果要簡版請走 簡版學生信息管理系統https://blog.csdn.net/weixin_43419816/article/details/104234590
簡述
2020.2.11凌晨12點20分,歷時三天從我的簡版經歷了無數的構思,創造,重做,再創造,修改。終於,終於,一部鉅作誕生了。(小菜鳥在嘶聲力竭ing)
期間優化,簡化是最大的問題,畢竟一定要革新於簡版,最好做到完美。“要做質量的準繩,有些人還不習慣在一個追求完美的環境裏工作”——喬布斯,這句話,一直伴隨着我的學習代碼的過程中,的確,對於編程來說,從後臺的完美到一切完美需要很大的努力和辛苦,但是,我就是這麼一個追求完美,一步步踏實且堅定地前行,或許這就是“工匠精神”吧。
的確很苦,不過當我看到沒有一個bug,頁面友好美觀,這一切都值得了,或許,我用理工男的審美去盡全力打造的產品,並不能投你所好,不過,我仍在前行,努力地讓每一行code完美,精簡。
致謝與勉勵:發此文是爲了感謝我所關注的大牛給予我精神和技術上的幫助和鼓勵,同時,也爲了讓許許多多和我一樣的小菜鳥不要滅了初心,因爲你我在同心,fighting~~(再次嘶聲力竭)
嗯~~~吐槽完畢,舒服好多。下面我先上個界面,先讓你們安心。
(再說一下,有簡版的你要是覺得複雜的話,請走簡版學生信息管理系統)
正文
(最後附有網盤源文件鏈接)
文件名:/JRfirst/src/init/wuji/stu/Main.java
文件部署:
上代碼
package init.wuji.stu;
import java.util.Scanner;
class Main {
public static void main(String[] strs) {
System.out.println("歡迎使用代碼第8行的學生管理系統");
Scanner scan = new Scanner(System.in);
Main main = new Main();
StuSys s1 = new StuSys();
while (true) {
main.showMenu();
switch (scan.nextInt()) {
case 0:
System.exit(0);
case 1:
s1.insertStu(scan);
break;
case 2:
s1.delateStu(scan);
break;
case 3:
s1.updateStu(scan);
break;
case 4:
s1.showStuInfo(scan);
break;
case 5:
s1.showAllStuInfo();
break;
default:
System.out.println("輸入數據不合規!!!");
}
}
}
void showMenu() {
System.out.println(" 請選擇操作:\n");
System.out.println(" 1:增加學生信息");
System.out.println(" 2:刪除學生信息");
System.out.println(" 3:修改學生信息");
System.out.println(" 4:根據學號查看學生信息");
System.out.println(" 5:查看所有學生信息");
System.out.println(" 0:退出系統");
}
}
class Student {
Student() {
}
Student(String stuNo, String stuName, String gender, byte age, int score) {
this.stuNo = stuNo;
this.stuName = stuName;
this.gender = gender;
this.age = age;
this.score = score;
}
String stuNo;
String stuName;
String gender;
byte age;
int score;
}
class StuData {
Student stuArray[] = new Student[10];
int dataindex = 0;
void insertStu(Student stu) {
if (dataindex == stuArray.length) {
Student newArray[] = new Student[stuArray.length + (stuArray.length >> 1)];
for (int i = 0; i < dataindex; i++) {
newArray[i] = stuArray[i];
}
stuArray = newArray;/// 賦值時不用加[]
}
stuArray[dataindex] = stu;
dataindex++;
}
Student checkStuNo(String stuNo) {
for (int i = 0; i < dataindex; i++) {
if (stuArray[i].stuNo.equals(stuNo)) /// .equals
{
return stuArray[i];
}
}
return null;
}
void delateStu(String stuNo) {/// 錯誤:找不到符號 有可能是大小寫的問題,只要雙擊不論大小寫只要拼寫相同就變綠
boolean flag = false;
for (int i = 0; i < dataindex; i++) {
if (stuArray[i].stuNo.equals(stuNo)) {
stuArray[i] = stuArray[i + 1];
flag = true;
}
}
if (flag) {
dataindex--;
}
}
void updateStu(Student stu) {
for (int i = 0; i < dataindex; i++) {
if (stuArray[i].stuNo.equals(stu.stuNo)) {
stuArray[i] = stu;
}
}
}
void printStu(Student stu) {
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.print("學生編號 " + stu.stuNo + " ");
System.out.print("學生姓名 " + stu.stuName + " ");
System.out.print("學生性別 " + stu.gender + " ");
System.out.print("學生年齡 " + stu.age + " ");
System.out.println("學生成績 " + stu.score + " ");
System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
}
void printAllstuInf() {
for (int i = 0; i < dataindex; i++) {
printStu(stuArray[i]);
}
}
}
class StuSys {
StuData stud = new StuData();
void insertStu(Scanner scanner) {
System.out.println("請輸入學生的學號 姓名 性別 年齡 成績(輸入出用空格分開):");
String stuNo = scanner.next();
String stuName = scanner.next();
String gender = scanner.next();
byte age = scanner.nextByte();
int score = scanner.nextInt();
int i = 0;
if (stud.checkStuNo(stuNo) == null) {
Student stu = new Student(stuNo, stuName, gender, age, score);
stud.insertStu(stu);
System.out.println("學生信息添加成功!!!");
} else {
System.out.println("您輸入的學生編號已存在,請選擇下一步操作");
System.out.println("1、繼續添加 2、退出系統");
i = scanner.nextInt();
if (i == 1) {
insertStu(scanner); /// 遞歸
} else if (i == 2) {
System.exit(0);
}
else {
System.out.println("您輸入的數據不合規!!!");
}
}
}
void delateStu(Scanner scan) {
int i = 0;/// 可以重複使用i嗎
System.out.println("請輸入要刪除學生的編號:");
String stuNo = scan.next();
if (stud.checkStuNo(stuNo) != null) {
stud.delateStu(stuNo);
System.out.println("學成信息刪除成功!!!");
} else {
System.out.println("您輸入的學號不存在,請選擇下一步操作");
System.out.println("1、繼續刪除 2、退出系統");
if (i == 1) {
delateStu(scan);
} else if (i == 2) {
System.exit(0);
} else {
System.out.println("您輸入的數據不合規!!!");
}
}
}
void updateStu(Scanner scanner) {
int i = 0;
System.out.println("請輸入要修改的學生的編號:");
String stuNo = scanner.next();
Student stu = new Student();
if (stud.checkStuNo(stuNo) != null) {
System.out.println("請輸入學生的姓名 性別 年齡 成績 (輸入時用空格分開)");
stu.stuNo = stuNo;
stu.stuName = scanner.next();
stu.gender = scanner.next();
stu.age = scanner.nextByte();
stu.score = scanner.nextInt();
stud.updateStu(stu);
System.out.println("學生信息修改成功!!!");
} else {
System.out.println("您輸入的學生編號不存在,請選擇下一步操作");
System.out.println("1、繼續修改 2、退出系統");
i = scanner.nextInt();
if (i == 1) {
insertStu(scanner);
} else if (i == 2) {
System.exit(0);
}
else {
System.out.println("您輸入的數據不合規!!!");
}
}
}
void showStuInfo(Scanner scanner) {
int i = 0;
Student stu = new Student();
System.out.println("請輸入查看學生的編號");
String stuNo = scanner.next();
if ((stu = stud.checkStuNo(stuNo)) != null) {
stud.printStu(stu);
} else {
System.out.println("您輸入的學號不存在,請選擇下一步操作");
System.out.println("1、繼續查看 2、退出系統");
i = scanner.nextInt();
if (i == 1) {
showStuInfo(scanner);
}
else if (i == 2) {
System.exit(0);
}
else {
System.out.println("您輸入的數據不合規!!!");
}
}
}
void showAllStuInfo() {
stud.printAllstuInf();
}
}
有問題或者建議的話,留言
源碼鏈接
鏈接:https://pan.baidu.com/s/18-JmYutxqfVYlvE4zbUMJg
提取碼:7vr0