学生管理系统---代码实现
生活随笔
收集整理的這篇文章主要介紹了
学生管理系统---代码实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
學生管理系統---代碼實現
- database類
- students類
- users類
- dao類
- studentdao
- userdao
- service類
database類
下面展示一些 內聯代碼片。
public class DataBase {List<Students>studentsList=new ArrayList<>();List<Users>usersList=new ArrayList<>();public DataBase(){Users users=new Users("admin","123");usersList.add(users);studentsList.add(new Students("whj","1",99,99,99,99));studentsList.add(new Students("yr","2",66,66,66,66));studentsList.add(new Students("jhd","3",100,100,99,99));studentsList.add(new Students("yl","4",88,88,88,88));}public List<Students> getStudentsList() {return studentsList;}public List<Users> getUsersList() {return usersList;}students類
```javascript public class Students {private String name;private String number;private int grade1;private int grade2;private int grade3;private int grade4;public Students(String name, String number, int grade1, int grade2, int grade3, int grade4) {this.name = name;this.number = number;this.grade1 = grade1;this.grade2 = grade2;this.grade3 = grade3;this.grade4 = grade4;}public void setName(String name) {this.name = name;}public void setNumber(String number) {this.number = number;}public void setGrade1(int grade1) {this.grade1 = grade1;}public void setGrade2(int grade2) {this.grade2 = grade2;}public void setGrade3(int grade3) {this.grade3 = grade3;}public void setGrade4(int grade4) {this.grade4 = grade4;}public String getName() {return name;}public String getNumber() {return number;}public int getGrade1() {return grade1;}public int getGrade2() {return grade2;}public int getGrade3() {return grade3;}public int getGrade4() {return grade4;} }users類
public class Users {private String account;private String code;public void setAccount(String account) {this.account = account;}public void setCode(String code) {this.code = code;}public Users(String account, String code) {this.account = account;this.code = code;}public String getAccount() {return account;}public String getCode() {return code;} }dao類
studentdao
public class StudentDao {private DataBase dataBase;public StudentDao(DataBase dataBase) {this.dataBase = dataBase;}//對全部學生信息打印public void print() {System.out.println("學生學號:\t" + "學生姓名\t" + " 科目一:\t" + "科目二:\t" + "科目三:\t" + "科目四:\t");for (Students students : dataBase.getStudentsList()) {System.out.println("\t"+students.getNumber() + "\t " + students.getName() + "\t " + students.getGrade1()+ "\t " + students.getGrade2() + "\t " + students.getGrade3() + "\t " + students.getGrade4());}}//添加新的學生public void add() {String number;String name;int grade1;int grade2;int grade3;int grade4;Scanner scanner = new Scanner(System.in);System.out.println("輸入添加學生的學號:\n");number = scanner.next();System.out.println("輸入添加學生的姓名:\n");name = scanner.next();System.out.println("輸入添加學生的科目一:\n");grade1 = scanner.nextInt();System.out.println("輸入添加學生的科目二:\n");grade2 = scanner.nextInt();System.out.println("輸入添加學生的科目三:\n");grade3 = scanner.nextInt();System.out.println("輸入添加學生的科目四:\n");grade4 = scanner.nextInt();Students students = new Students(name, number, grade1, grade2, grade3, grade4);List<Students> studentsList = dataBase.getStudentsList();studentsList.add(students);}//輸入姓名或者學號來查詢學生信息public void find() {Scanner scanner = new Scanner(System.in);System.out.println("1.輸入學號來查詢信息\t輸入名字來查詢信息\n");int choice = scanner.nextInt();switch (choice) {case 1:findbynumber();break;case 2:findbyname();break;}}//通過輸入學號來查詢信息public void findbynumber() {Scanner scanner = new Scanner(System.in);System.out.println("輸入添加學生的學號:\n");String number = scanner.next();for (Students students : dataBase.getStudentsList()) {if (students.getNumber().equals(number)) {System.out.println("學生學號:" + students.getNumber() + "學生姓名:" + students.getName()+ "科目一:" + students.getGrade1() + "科目二:" + students.getGrade2()+ "科目三:" + students.getGrade3() + "科目四:" + students.getGrade4());}}}///通過輸入姓名來查詢信息public void findbyname() {Scanner scanner = new Scanner(System.in);System.out.println("輸入添加學生的姓名:\n");String name = scanner.next();for (Students students : dataBase.getStudentsList()) {if (students.getName().equals(name)) {System.out.println("學生學號:" + students.getNumber() + "學生姓名:" + students.getName()+ "科目一:" + students.getGrade1() + "科目二:" + students.getGrade2()+ "科目三:" + students.getGrade3() + "科目四:" + students.getGrade4() + "\n");}}}public void findstudent() {System.out.println("輸入1按照學號查詢,輸入2按照姓名查詢\n");Scanner scanner = new Scanner(System.in);int choice = scanner.nextInt();if (choice == 1) {findbynumber();} else if (choice == 2) {findbyname();}}//通過學號來修改科目成績public void changegrade1() {Scanner scanner = new Scanner(System.in);System.out.println("輸入學號:");String number = scanner.next();Students students = null;for (Students a : dataBase.getStudentsList()) {if (a.getNumber().equals(number)) {students = a;}}if (students != null) {System.out.println("查找成功!");System.out.println("學生學號:" + students.getNumber() + "學生姓名:" + students.getName()+ "科目一:" + students.getGrade1() + "科目二:" + students.getGrade2()+ "科目三:" + students.getGrade3() + "科目四:" + students.getGrade4());System.out.println("輸入要修改的科目一的成績:");int grade1 = scanner.nextInt();System.out.println("輸入要修改的科目二的成績:");int grade2 = scanner.nextInt();System.out.println("輸入要修改的科目三的成績:");int grade3 = scanner.nextInt();System.out.println("輸入要修改的科目四的成績:");int grade4 = scanner.nextInt();students.setGrade1(grade1);students.setGrade2(grade2);students.setGrade3(grade3);students.setGrade4(grade4);System.out.println("修改完成!");System.out.println("學生學號:" + students.getNumber() + "學生姓名:" + students.getName()+ "科目一:" + students.getGrade1() + "科目二:" + students.getGrade2()+ "科目三:" + students.getGrade3() + "科目四:" + students.getGrade4());} else {System.out.println("未找到匹配的學生!");}}//通過名字來修改科目成績public void changegrade2() {Scanner scanner = new Scanner(System.in);System.out.println("輸入學號:");String name = scanner.next();Students students = null;for (Students a : dataBase.getStudentsList()) {if (a.getName().equals(name)) {students = a;}}if (students != null) {System.out.println("查找成功!");System.out.println("學生學號:" + students.getNumber() + "學生姓名:" + students.getName()+ "科目一:" + students.getGrade1() + "科目二:" + students.getGrade2()+ "科目三:" + students.getGrade3() + "科目四:" + students.getGrade4());System.out.println("輸入要修改的科目一的成績:");int grade1 = scanner.nextInt();System.out.println("輸入要修改的科目二的成績:");int grade2 = scanner.nextInt();System.out.println("輸入要修改的科目三的成績:");int grade3 = scanner.nextInt();System.out.println("輸入要修改的科目四的成績:");int grade4 = scanner.nextInt();students.setGrade1(grade1);students.setGrade2(grade2);students.setGrade3(grade3);students.setGrade4(grade4);System.out.println("修改完成!");System.out.println("學生學號:" + students.getNumber() + "學生姓名:" + students.getName()+ "科目一:" + students.getGrade1() + "科目二:" + students.getGrade2()+ "科目三:" + students.getGrade3() + "科目四:" + students.getGrade4());} else {System.out.println("未找到學生信息!");}}//交換鏈表兩個位置的數據public void swap(int i, int j) {List<Students> studentsList = dataBase.getStudentsList();Students studentsi = studentsList.get(i);Students studentsj = studentsList.get(j);studentsList.set(j, studentsi);studentsList.set(i, studentsj);}//雙向冒泡排序public void bub() {int len = dataBase.getStudentsList().size()-1;int preindex = 1;int backindex = len;while (preindex < backindex) {preSort(len, preindex);preindex++;if (preindex >= backindex) break;backSort(len, backindex);backindex--;}}//從前向后排序public void preSort(int length, int preindex) {List<Students> studentsList = dataBase.getStudentsList();for (int i = preindex + 1; i <= length; i++) {int gradeIndex = studentsList.get(preindex).getGrade1() + studentsList.get(preindex).getGrade2() +studentsList.get(preindex).getGrade3() + studentsList.get(preindex).getGrade4();int gradeI = studentsList.get(i).getGrade1() + studentsList.get(i).getGrade2()+ studentsList.get(i).getGrade3() + studentsList.get(i).getGrade4();if (gradeI > gradeIndex) {swap(i, preindex);}}}//從后往前排序public void backSort(int length, int backindex) {List<Students> studentsList = dataBase.getStudentsList();for (int i = backindex - 1; i > 0; i--) {int gradeIndex = studentsList.get(backindex).getGrade1() + studentsList.get(backindex).getGrade2() +studentsList.get(backindex).getGrade3() + studentsList.get(backindex).getGrade4();int gradeI = studentsList.get(i).getGrade1() + studentsList.get(i).getGrade2()+ studentsList.get(i).getGrade3() + studentsList.get(i).getGrade4();if (gradeI < gradeIndex) {swap(i, backindex);}}}//快速排序public void shellSort() {List<Students> list = dataBase.getStudentsList();Students student = null;Students student1 = null;int j;for (int gap = list.size() / 2; gap > 0; gap /= 2) {for (int i = gap; i < list.size(); i++) {student = list.get(i);int tmp = student.getGrade1() + student.getGrade2() + student.getGrade3() + student.getGrade4();for (j = i; j >= gap && tmp > list.get(j - gap).getGrade1() + list.get(j - gap).getGrade2() + list.get(j - gap).getGrade3() + list.get(j - gap).getGrade4(); j -= gap) {list.set(j, list.get(j - gap));}list.set(j, student);}}}//快速排序public void quickSort1(int left,int right) {List<Students>studentsList=dataBase.getStudentsList();if (left < right) {int i = left, j = right;Students student = studentsList.get(left);int x = student.getGrade1()+student.getGrade2()+student.getGrade3()+student.getGrade4();while (i < j) {while ((i < j) && (studentsList.get(j).getGrade1()+studentsList.get(j).getGrade2()+studentsList.get(j).getGrade3()+studentsList.get(j).getGrade4()< x)) {j--;}if (i < j) {studentsList.set(i, studentsList.get(j));i++;}while ((i < j) && (studentsList.get(i).getGrade1()+ studentsList.get(i).getGrade2()+studentsList.get(i).getGrade3()+studentsList.get(i).getGrade4()> x)) {i++;}if (i < j) {studentsList.set(j, studentsList.get(i));j--;}}studentsList.set(i, student);quickSort1( left, i - 1);quickSort1(i + 1, right);}}//堆排序public void heapSort(){List<Students> list=dataBase.getStudentsList();int len = list.size();buildMaxHeap(list, len);for (int i = len - 1; i > 0; i--) {swap(0,i);len--;heapify(list, 0, len);}}private void buildMaxHeap(List<Students> studentList, int len) {for (int i = (int) Math.floor(len / 2); i >= 0; i--) {heapify(studentList, i, len);}}private void heapify(List<Students> studentList, int i, int len) {int left = 2 * i + 1;int right = 2 * i + 2;int largest = i;if (left < len && studentList.get(left).getGrade1()+studentList.get(left).getGrade2()+studentList.get(left).getGrade3()+studentList.get(left).getGrade4()< studentList.get(largest).getGrade1()+studentList.get(largest).getGrade2()+studentList.get(largest).getGrade3()+studentList.get(largest).getGrade4()) {largest = left;}if (right < len && studentList.get(right).getGrade1()+ studentList.get(right).getGrade2()+ studentList.get(right).getGrade3()+ studentList.get(right).getGrade4()< studentList.get(largest).getGrade1()+studentList.get(largest).getGrade2()+studentList.get(largest).getGrade3()+studentList.get(largest).getGrade4()) {largest = right;}if (largest != i) {swap( i, largest);heapify(studentList, largest, len);}}}userdao
public class UserDao {private DataBase dataBase;public UserDao(DataBase dataBase){this.dataBase=dataBase;}//判斷密碼和賬號是否正確(如果有用戶名為輸入的用戶名,返回User類,否者返回為空)public Users Judge_account(String account){Users users =null;for(Users a:dataBase.getUsersList()){if(a.getAccount().equals(account))users=a;}return users;}//歡迎界面public void welcome(){Scanner scanner=new Scanner(System.in);String account;String code;System.out.println("---------------歡迎進入學生管理系統---------------");System.out.println("請輸入賬號:\n");account =scanner.next();System.out.println("請輸入密碼:\n");code=scanner.next();Users users=Judge_account(account);if(users!=null){if(users.getCode().equals(code)){System.out.println("登錄成功!\n");System.out.println("-----------------------------------------");}else{System.out.println("密碼錯誤,重新登錄!\n");welcome();}}else{System.out.println("賬號錯誤,重新登錄!");welcome();}}}service類
public class StudentService {private StudentDao studentDao;private UserDao userDao;private DataBase dataBase;public StudentService(DataBase dataBase) {studentDao = new StudentDao(dataBase);userDao = new UserDao(dataBase);this.dataBase = dataBase;}public void login(){userDao.welcome();start();}public void start() {Scanner scanner = new Scanner(System.in);System.out.println("\t2.添加新學生\n");System.out.println("\t3.打印所有學生的信息\n");System.out.println("\t4.修改對應學生的四門課成績\n");System.out.println("\t5.對學生的成績由高到低排序\n");System.out.println("\t6.輸入學號或者姓名來查詢學生信息\n");int choice = scanner.nextInt();switch (choice) {case 2:addx();break;case 3:studentDao.print();start();break;case 4:changegradex();break;case 5:System.out.println("1.冒泡排序");System.out.println("2.希爾排序");System.out.println("3.快速排序");System.out.println("4.堆排序");System.out.println("輸入0返回菜單");int a=scanner.nextInt();switch (a){case 1:bubx();break;case 2:shellSortx();break;case 3:quickSortx();break;case 4:heapSortx();break;case 0:start();break;}break;case 6:findstudentx();break;}}public void bubx(){studentDao.bub();studentDao.print();start();}public void shellSortx(){studentDao.shellSort();studentDao.print();start();}public void quickSortx(){studentDao.quickSort1(0,dataBase.getStudentsList().size()-1);studentDao.print();start();}public void heapSortx(){studentDao.heapSort();studentDao.print();start();}public void findstudentx(){studentDao.findstudent();System.out.println("輸入0返回上一菜單,輸入1繼續查詢\n");Scanner scanner=new Scanner(System.in);int choice=scanner.nextInt();if(choice==1){findstudentx();}else if(choice==0){start();}}public void changegradex(){changegrade();System.out.println("輸入0 返回上一菜單,輸入1繼續改變成績!");Scanner scanner=new Scanner(System.in);int choice =scanner.nextInt();if(choice==1){changegrade();}if(choice==0){start();} }public void changegrade(){Scanner scanner=new Scanner(System.in);System.out.println("輸入0返回上一菜單,輸入1按照學號來修改成績,輸入2按照姓名來修改成績:\n");int choice=scanner.nextInt();if(choice==1){studentDao.changegrade1();}else if(choice==2){studentDao.changegrade2();}else if(choice==0){start();}else{System.out.println("輸入錯誤,");}} //調用添加學生的函數,來 public void addx(){studentDao.add();Scanner scanner=new Scanner(System.in);System.out.println("輸入0返回上級菜單,輸入1繼續添加!");int choice=scanner.nextInt();if(choice==1){addx();} else if(choice==0){start();} } }總結
以上是生活随笔為你收集整理的学生管理系统---代码实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 凸轮,凸轮设计,凸轮设计软件,凸轮设计代
- 下一篇: C++ MFC深入详解之----模态对