JAVA学生管理系统源代码
一、程序
import java.util.*;
public class Test {//主程序
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.println(\"------请定义学生的人数:------\");
Student[] stuArr = new Student[in.nextInt()];
Admin adminStu = new Admin();
while(true){
System.out.println(\"-----请选择你要执行的功能-----\");
System.out.println(\"10:添加一个学生\");
System.out.println(\"11:查找一个学生\");
1 / 25
System.out.println(\"12:根据学生编号更新学生基本信息\");
System.out.println(\"13:根据学生编号删除学生\");
System.out.println(\"14:根据编号输入学生各门成绩\");
System.out.println(\"15:根据某门成绩进行排序\");
System.out.println(\"16:根据总分进行排序\");
System.out.println(\"99:退出系统\");
String number = in.next();
if(number.equals(\"10\")){
System.out.println(\"请输入学生的编号:\");
int num = in.nextInt();
System.out.println(\"请输入学生的姓名:\");
String name = in.next();
System.out.println(\"请输入学生的年龄:\");
2 / 25
int age = in.nextInt();
adminStu.Create(num,name,age,stuArr);//添加学生
}else if(number.equals(\"11\")){
System.out.println(\"执行查找学生基本信息的操作\");
System.out.println(\"请输入学生的编号进行查找:\");
int num = in.nextInt();
adminStu.find(num,stuArr);//查找学生
}else if(number.equals(\"12\")){
System.out.println(\"执行更新学员的基本信息操作\");
System.out.println(\"请输入学生的编号:\");
int num = in.nextInt();
System.out.println(\"请输入学生的姓名:\");
String name = in.next();
3 / 25
System.out.println(\"请输入学生的年龄:\");
int age = in.nextInt();
adminStu.update(num,name,age,stuArr);//更新学生基本信息
}else if(number.equals(\"13\")){
System.out.println(\"执行删除学生操作\");
System.out.println(\"请输入学生编号:\");
int num = in.nextInt();
adminStu.delete(num,stuArr);//删除学生
}else if(number.equals(\"14\")){
System.out.println(\"执行输入成绩操作\");
System.out.println(\"请输入学生编号:\");
int num = in.nextInt();
adminStu.input(num, stuArr);//输入成绩
4 / 25
}else if(number.equals(\"15\")){
System.out.println(\"执行根据某科目成绩排序操作\");
System.out.println(\"请选择需要排序的科目名(1.java 2.C# 3.html 4.sql):\");
int num = in.nextInt();
adminStu.courseSort(num,stuArr);//按科目排序
}else if(number.equals(\"16\")){
System.out.println(\"执行根据总分排序操作\");
adminStu.sumSort(stuArr);//按总分排序
}else if(number.equals(\"99\")){
System.out.println(\"--------程序已退出--------\");
//break;
System.exit(0);
}
5 / 25
}
}
}
二、学生类
public class Student {//学生类
private int num;
private String name;
private int age;
private int java;
private int C;
private int html;
private int sql;
private int sum;
6 / 25
private int avg;
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
7 / 25
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public int getJava() {
return java;
}
public void setJava(int java) {this.java = java;
}
8 / 25
public int getC() {
return C;
}
public void setC(int c) {
C = c;
}
public int getHtml() {
return html;
}
public void setHtml(int html) {
this.html = html;
}
public int getSql() {
9 / 25
return sql;
}
public void setSql(int sql) {
this.sql = sql;
}
public int getSum() {
return sum;
}
public void setSum() {
this.sum = this.java+this.C+this.html+this.sql;
}
public int getAvg() {
return avg;
10 / 25
}
public void setAvg() {
this.avg = this.sum/4;
}
public String toString(){
String str = \"\\t\"+this.num+\"\\t\"+this.name+\"\\t\"+this.age+\"\\t\"
+this.java+\"\\t\"+this.C+\"\\t\"+this.html+\"\\t\"+this.sql
+\"\\t\"+this.sum+\"\\t\"+this.avg;
return str;
}
}
三、管理学生类
import java.util.*;
11 / 25
public class Admin {//用来管理学生的一个类
String msg = \"\\t编号\\t姓名\\t年龄\\tjava\\tC#\\thtml\\tsql\\t总分\\t平均分\";
public void print(Student[] arr){//刷新数据的方法
System.out.println(msg);
for(int i=0;iif(arr[i]!=null){arr[i].setSum();
arr[i].setAvg();
System.out.println(arr[i]);
}
}
}
public boolean exist(int num,Student stu){//判断学生是否存在的方法
12 / 25
if(stu!=null){
if(stu.getNum()==num){
return true;
}else{
return false;
}
}
return false;
}
public void Create(int num,String name,int age,Student[] arr){//添加学生的方法
Student stu = new Student();
stu.setNum(num);
stu.setName(name);
13 / 25
stu.setAge(age);
int i = this.setIndex(arr);
if(i==99999){
System.out.println(\"学生人数已添满,不能再添加了\");
}else{
arr[i]=stu;
}
this.print(arr);
}
public int setIndex(Student[] arr){//返回数组为空的下标
for(int i=0;iif(arr[i]==null){return i;
14 / 25
}
}
return 99999;
}
public void find(int num,Student[] arr){//查询学生的方法
for(int i=0;iif(this.exist(num,arr[i])==true){System.out.println(msg);
System.out.println(arr[i]);
return;
}
}
System.out.println(\"-----没有这个学生的存在-----\");
15 / 25
}
public void update(int num,String name,int age,Student[] arr){//更新学生基本信息的方法
for(int i=0;iif(this.exist(num, arr[i])==true){arr[i].setName(name);
arr[i].setAge(age);
System.out.println(\"--------更新学生信息成功!-------\");
this.print(arr);
return;
}
}
System.out.println(\"------没找到这个学生更新信息失败------\");
}
16 / 25
public void delete(int num,Student[] arr){//删除学生的方法
for(int i=0;iif(this.exist(num,arr[i])){arr[i] = null;
this.print(arr);
return;
}
}
System.out.println(\"您所指定编号的学生不存在\");
}
public void input(int num,Student[] arr){//输入学生成绩的方法
for(int i=0;iif(this.exist(num, arr[i])){17 / 25
Scanner in = new Scanner(System.in);
System.out.println(\"请输入\"+arr[i].getName()+\"java的成绩:\");
if(in.hasNextInt()){//输入非整形数则不执行
arr[i].setJava(in.nextInt());
}else{
return;
}
System.out.println(\"请输入\"+arr[i].getName()+\"C#的成绩:\");
if(in.hasNextInt()){
arr[i].setC(in.nextInt());
}else{
return;
}
18 / 25
System.out.println(\"请输入\"+arr[i].getName()+\"html的成绩:\");
if(in.hasNextInt()){
arr[i].setHtml(in.nextInt());
}else{
return;
}
System.out.println(\"请输入\"+arr[i].getName()+\"sql的成绩:\");
if(in.hasNextInt()){
arr[i].setSql(in.nextInt());
}else{
return;
}
this.print(arr);
19 / 25
return;
}
}
}
public void courseSort(int num,Student[] arr){//根据指定科目排序的方法
if(num==1){
//这里不能用冒泡排序(因为冒泡排序是相邻的比较,而相邻的可能不存在,那么相隔的两个就不能交换)
for(int i=0;ifor(int j=i+1;jif(arr[i]!=null&&arr[j]!=null){if(arr[i].getJava()Student t = arr[i];arr[i] = arr[j];
20 / 25
arr[j] = t;
}
}
}
}
}else if(num==2){
for(int i=0;ifor(int j=i+1;jif(arr[i]!=null&&arr[j]!=null){if(arr[i].getC()Student t = arr[i];arr[i] = arr[j];
arr[j] = t;
21 / 25
}
}
}
}
}else if(num==3){
for(int i=0;ifor(int j=i+1;jif(arr[i]!=null&&arr[j]!=null){if(arr[i].getHtml()Student t = arr[i];arr[i] = arr[j];
arr[j] = t;
}
22 / 25
}
}
}
}else if(num==4){
for(int i=0;ifor(int j=i+1;jif(arr[i]!=null&&arr[j]!=null){if(arr[i].getSql()arr[i] = arr[j];arr[j] = t;
}
}
23 / 25
}
}
}
this.print(arr);
}
public void sumSort(Student[] arr){//根据总分排序的方法
for(int i=0;ifor(int j=i+1;jif(arr[i]!=null&&arr[j]!=null){if(arr[i].getSum()Student t = arr[i];arr[i] = arr[j];
arr[j] = t;
24 / 25
}
}
}
}
this.print(arr); }
}
25 / 25