用java實現一個簡單的學生管理系統
阿新 • • 發佈:2019-01-06
用Java如何實現一個用陣列作為儲存結構的簡易的學生管理系統?
首先,我們定義一個student類,在其中新增私有化的成員變數,通過getter和setter方法進行呼叫
public class Students {
// 學號,姓名,性別,年齡,成績
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 + "]";
}
}
隨後,我們新建一個類,直接在main方法中寫學生管理系統.學生資訊管理系統一般要具有增刪改查四個功能,我們可以分別用方法進行實現,然後在主選單switch中進行呼叫。
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.增加學生資料");
System.out.println("2.刪除學生資料");
System.out.println("3.修改學生資料");
System.out.println("4.查詢學生資料");
System.out.println("5.退出學生管理系統");
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() { // 增加學生資訊
while (tag_1) {
stu[num] = new Students();
System.out.println("請依次輸入學號,姓名,性別,年齡,成績");
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("繼續輸入請輸入true,否則輸入false");
tag_1 = scan.nextBoolean();
}
paixu();
cha();
}
static void paixu() { // 對學生資訊進行排序,該方法選單中不可選擇,但會在其他方法中呼叫
int l = num - 1;
int temp;
for (int j = 0; j < l; j++) {
for (int i = 0; i < l - j; i++) {
// 依次比較相鄰的兩個元素,使較大的那個向後移
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() { // 刪除學生資訊
System.out.println("請輸入你要刪除的學號");
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("查無此人");
}
num--;
}
static boolean gai = false;
static void gai() { // 修改學生資訊
System.out.println("請輸入你要修改的學號");
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("請依次輸入資訊");
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("查無此人");
}
paixu();
cha();
}
static void cha() { // 遍歷學生資訊並列印,取代了逐一查詢學生資訊
System.out.println("[學號\t|姓名 \t|性別 \t|年齡\t|成績]");
for (int i = 0; i < num; i++) {
System.out.println(stu[i]);
}
}
}