java實(shí)現(xiàn)簡(jiǎn)單的學(xué)生管理系統(tǒng)
用Java如何實(shí)現(xiàn)一個(gè)用數(shù)組作為存儲(chǔ)結(jié)構(gòu)的簡(jiǎn)易的學(xué)生管理系統(tǒng)?
首先,我們定義一個(gè)student類,在其中添加私有化的成員變量,通過(guò)getter和setter方法進(jìn)行調(diào)用
public class Students {
? ? // 學(xué)號(hào),姓名,性別,年齡,成績(jī)
? ? private String stuNo = " ";
? ? private String stuName = " ";
? ? private String gender = " ";
? ? private int age;
? ? private int num;
? ? public String getStuNo() {
? ? ? ? return stuNo;
? ? }
? ? public void setStuNo(String stuNo) {
? ? ? ? this.stuNo = stuNo;
? ? }
? ? public String getStuName() {
? ? ? ? return stuName;
? ? }
? ? public void setStuName(String stuName) {
? ? ? ? this.stuName = stuName;
? ? }
? ? 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 int getNum() {
? ? ? ? return num;
? ? }
? ? public void setNum(int num) {
? ? ? ? this.num = num;
? ? }
? ? public String toString() {
? ? ? ? return "[" + stuNo + "\t|" + stuName + "\t|" + gender + "\t|" + age + "\t|" + num + "]";
? ? }
}隨后,我們新建一個(gè)類,直接在main方法中寫學(xué)生管理系統(tǒng).學(xué)生信息管理系統(tǒng)一般要具有增刪改查四個(gè)功能,我們可以分別用方法進(jìn)行實(shí)現(xiàn),然后在主菜單switch中進(jìn)行調(diào)用。
package com.baidu.HomeWork.Stusys;
import java.util.Scanner;
public class Main {
? ? static int num = 0;
? ? static boolean tag = true;
? ? static boolean tag_1 = true;
? ? static Students[] stu = new Students[100];
? ? static Scanner scan = new Scanner(System.in);
? ? public static void main(String[] args) {
? ? ? ? while (tag) { // 主菜單
? ? ? ? ? ? System.out.println("1.增加學(xué)生數(shù)據(jù)");
? ? ? ? ? ? System.out.println("2.刪除學(xué)生數(shù)據(jù)");
? ? ? ? ? ? System.out.println("3.修改學(xué)生數(shù)據(jù)");
? ? ? ? ? ? System.out.println("4.查詢學(xué)生數(shù)據(jù)");
? ? ? ? ? ? System.out.println("5.退出學(xué)生管理系統(tǒng)");
? ? ? ? ? ? int scan_num = scan.nextInt();
? ? ? ? ? ? switch (scan_num) { // 主菜單選擇
? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? add();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? delete();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 3:
? ? ? ? ? ? ? ? gai();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 4:
? ? ? ? ? ? ? ? cha();
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 5:
? ? ? ? ? ? ? ? tag = false;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? static void add() { // 增加學(xué)生信息
? ? ? ? while (tag_1) {
? ? ? ? ? ? stu[num] = new Students();
? ? ? ? ? ? System.out.println("請(qǐng)依次輸入學(xué)號(hào),姓名,性別,年齡,成績(jī)");
? ? ? ? ? ? stu[num].setStuNo(scan.next());
? ? ? ? ? ? stu[num].setStuName(scan.next());
? ? ? ? ? ? stu[num].setGender(scan.next());
? ? ? ? ? ? stu[num].setAge(scan.nextInt());
? ? ? ? ? ? stu[num].setNum(scan.nextInt());
? ? ? ? ? ? num++;
? ? ? ? ? ? System.out.println("繼續(xù)輸入請(qǐng)輸入true,否則輸入false");
? ? ? ? ? ? tag_1 = scan.nextBoolean();
? ? ? ? }
? ? ? ? paixu();
? ? ? ? cha();
? ? }
? ? static void paixu() { // 對(duì)學(xué)生信息進(jìn)行排序,該方法菜單中不可選擇,但會(huì)在其他方法中調(diào)用
? ? ? ? int l = num - 1;
? ? ? ? int temp;
? ? ? ? for (int j = 0; j < l; j++) {
? ? ? ? ? ? for (int i = 0; i < l - j; i++) {
? ? ? ? ? ? ? ? // 依次比較相鄰的兩個(gè)元素,使較大的那個(gè)向后移
? ? ? ? ? ? ? ? if (stu[i].getNum() > stu[i + 1].getNum()) {
? ? ? ? ? ? ? ? ? ? temp = stu[i].getNum();
? ? ? ? ? ? ? ? ? ? stu[i].setNum(stu[i + 1].getNum());
? ? ? ? ? ? ? ? ? ? stu[i + 1].setNum(temp);
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? }
? ? }
? ? static boolean kai = false;
? ? static void delete() { // 刪除學(xué)生信息
? ? ? ? System.out.println("請(qǐng)輸入你要?jiǎng)h除的學(xué)號(hào)");
? ? ? ? String xuehao = scan.next();
? ? ? ? int i;
? ? ? ? for (i = 0; i < num; i++) {
? ? ? ? ? ? if (xuehao.equals(stu[i].getStuNo())) {
? ? ? ? ? ? ? ? kai = true;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? if (kai) {
? ? ? ? ? ? for (; i < num; i++) {
? ? ? ? ? ? ? ? stu[i].setStuNo(stu[i + 1].getStuNo());
? ? ? ? ? ? ? ? stu[i].setStuName(stu[i + 1].getStuName());
? ? ? ? ? ? ? ? stu[i].setGender(stu[i + 1].getGender());
? ? ? ? ? ? ? ? stu[i].setAge(stu[i + 1].getAge());
? ? ? ? ? ? ? ? stu[i].setNum(stu[i + 1].getNum());
? ? ? ? ? ? }
? ? ? ? } else {
? ? ? ? ? ? System.out.println("查無(wú)此人");
? ? ? ? }
? ? ? ? num--;
? ? }
? ? static boolean gai = false;
? ? static void gai() { ? ? ? ? ? ? ? ? ? // 修改學(xué)生信息
? ? ? ? System.out.println("請(qǐng)輸入你要修改的學(xué)號(hào)");
? ? ? ? String xuehao = scan.next();
? ? ? ? int i;
? ? ? ? for (i = 0; i < num; i++) {
? ? ? ? ? ? if (xuehao.equals(stu[i].getStuNo())) {
? ? ? ? ? ? ? ? gai = true;
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? if (gai) {
? ? ? ? ? ? System.out.println("請(qǐng)依次輸入信息");
? ? ? ? ? ? stu[i].setStuNo(scan.next());
? ? ? ? ? ? stu[i].setStuName(scan.next());
? ? ? ? ? ? stu[i].setGender(scan.next());
? ? ? ? ? ? stu[i].setAge(scan.nextInt());
? ? ? ? ? ? stu[i].setNum(scan.nextInt());
? ? ? ? } else {
? ? ? ? ? ? System.out.println("查無(wú)此人");
? ? ? ? }
? ? ? ? paixu();
? ? ? ? cha();
? ? }
? ? static void cha() { ? ? ? ? ? ? ? ? ?// 遍歷學(xué)生信息并打印,取代了逐一查找學(xué)生信息
? ? ? ? System.out.println("[學(xué)號(hào)\t|姓名 \t|性別 \t|年齡\t|成績(jī)]");
? ? ? ? for (int i = 0; i < num; i++) {
? ? ? ? ? ? System.out.println(stu[i]);
? ? ? ? }
? ? }
}這樣一個(gè)簡(jiǎn)單的用數(shù)組實(shí)現(xiàn)的學(xué)生系信息管理系統(tǒng)就做好了,還可以向其中添加其他的方法豐富這個(gè)系統(tǒng)或者為這個(gè)系統(tǒng)做一個(gè)界面。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)(控制臺(tái)版本)
- Java版學(xué)生管理系統(tǒng)
- Java畢業(yè)設(shè)計(jì)實(shí)戰(zhàn)之學(xué)生管理系統(tǒng)的實(shí)現(xiàn)
- java控制臺(tái)實(shí)現(xiàn)學(xué)生管理系統(tǒng)
- Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)(IO版)
- JavaSwing實(shí)現(xiàn)小型學(xué)生管理系統(tǒng)
- Java 實(shí)現(xiàn)完整功能的學(xué)生管理系統(tǒng)實(shí)例
- Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)詳解
- Java實(shí)現(xiàn)學(xué)生管理系統(tǒng)詳解流程
相關(guān)文章
java文件如何統(tǒng)計(jì)字母出現(xiàn)的次數(shù)和百分比
這篇文章主要介紹了java文件如何統(tǒng)計(jì)字母出現(xiàn)的次數(shù)和百分比,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11
Java中調(diào)用SQL Server存儲(chǔ)過(guò)程詳解
這篇文章主要介紹了Java中調(diào)用SQL Server存儲(chǔ)過(guò)程詳解,本文講解了使用不帶參數(shù)的存儲(chǔ)過(guò)程、使用帶有輸入?yún)?shù)的存儲(chǔ)過(guò)程、使用帶有輸出參數(shù)的存儲(chǔ)過(guò)程、使用帶有返回狀態(tài)的存儲(chǔ)過(guò)程、使用帶有更新計(jì)數(shù)的存儲(chǔ)過(guò)程等操作實(shí)例,需要的朋友可以參考下2015-01-01
Spring之關(guān)于PropertyDescriptor的擴(kuò)展剖析
這篇文章主要介紹了Spring之關(guān)于PropertyDescriptor的擴(kuò)展剖析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07
Java 信號(hào)量Semaphore的實(shí)現(xiàn)
這篇文章主要介紹了Java 信號(hào)量Semaphore的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
@scope("prototype") @loadbalanced注解負(fù)載均衡失效問(wèn)題
這篇文章主要為大家介紹了@scope("prototype") @loadbalanced注解負(fù)載均衡失效問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02

