JAVA作业——学生管理系统
2022年05月06日 笔记
学生管理系统
一、程序简介
1.简介
本程序源码为简化版学生管理系统,仅供学习参考,学生信息存放在ROM中随程序运行而存在,关闭后消失。源码总计300行。所用知识点非list接口
2.功能实现
- 登记学生信息
- 显示所有学生信息
- 根据学号查询学生信息
- 根据学号插入学生信息
- 根据学号修改学生信息
- 根据学号删除学生信息
- 根据要求排序
- 退出系统
二、程序源码
新建文件名StudentSystem.java将以下代码复制
import java.util.Scanner; class Score{ int chinese; int math; int english; int total; } class Student{ String id; String name; Score score=new Score(); void showStudent(){ System.out.println("学号:"+id+"\t姓名:"+name+"\t语文:"+score.chinese+"\t数学:"+score.math+"\t英语:"+score.english+"\t总分:"+score.total); } } public class StudentSystem { public static final int Max=100; public static int stuNum=0; public static void main(String[] args) { Student[] stus=new Student[Max]; Scanner functionNum=new Scanner(System.in); Scanner sc=new Scanner(System.in); String id; while(true){ { System.out.println("请输入你的操作:"); System.out.println("1.登记学生信息"); System.out.println("2.显示所有学生信息"); System.out.println("3.根据学号查询学生信息"); System.out.println("4.根据学号插入学生信息"); System.out.println("5.根据学号修改学生信息"); System.out.println("6.根据学号删除学生信息"); System.out.println("7.根据要求排序"); System.out.println("0.退出系统"); } boolean flag=false; switch(functionNum.nextInt()) { case 1: System.out.print("请输入需要添加的学生个数:"); int num=sc.nextInt(); for (int i=0;i<num;i++){ stus[stuNum]=new Student(); while (true){ System.out.println("请输入学生的学号:"); id = sc.next(); for (int j = 0; j < stuNum; j++) { if (id.equals(stus[j].id)) { System.out.println("学号重复,请重新输入"); flag = true; break; } } if (flag) { flag = false; continue; } break; } stus[stuNum].id=id; System.out.println("请输入学生的姓名:"); stus[stuNum].name=sc.next(); System.out.println("请输入学生的语文成绩:"); stus[stuNum].score.chinese=sc.nextInt(); System.out.println("请输入学生的数学成绩:"); stus[stuNum].score.math=sc.nextInt(); System.out.println("请输入学生的英语成绩:"); stus[stuNum].score.english=sc.nextInt(); stus[stuNum].score.total=stus[stuNum].score.chinese+stus[stuNum].score.math+stus[stuNum].score.english; stuNum++;
} break; case 2: System.out.println("——————————"); for (int i = 0; i < stuNum; i++) { if (stus[i] != null) { stus[i].showStudent(); System.out.println("——————————"); } } break; case 3: System.out.print("请输入需要查询的学生学号:"); id=sc.next(); for (int i = 0; i < stuNum; i++) { if (stus[i] != null) { if(id.equals(stus[i].id)){ stus[i].showStudent(); } else if (i==stuNum-1){ System.out.println("没有找到该学生"); } } } break; case 4: while (true){ System.out.println("请输入需要插入的学生学号:"); id = sc.next(); for (int j = 0; j < stuNum; j++) { if (stus[j] != null) { if (id.equals(stus[j].id)) { System.out.println("学号重复,请重新输入"); flag = true; break; } } } if (flag) { flag = false; continue; } break; } for (int j = 0; j < stuNum; j++) { stus[j].showStudent(); } System.out.print("请选择在学号为xx的学生前面插入学生信息:"); String insertId=sc.next(); for (int j = 0; j < stuNum; j++) { if (stus[j] != null) { if (insertId.equals(stus[j].id)) { stus[stuNum] = new Student(); stus[stuNum].id = id; System.out.println("请输入学生的姓名:"); stus[stuNum].name = sc.next(); System.out.println("请输入学生的语文成绩:"); stus[stuNum].score.chinese = sc.nextInt(); System.out.println("请输入学生的数学成绩:"); stus[stuNum].score.math = sc.nextInt(); System.out.println("请输入学生的英语成绩:"); stus[stuNum].score.english = sc.nextInt(); stus[stuNum].score.total = stus[stuNum].score.chinese + stus[stuNum].score.math + stus[stuNum].score.english; stuNum++; for (int k = stuNum - 1; k > j; k--) { switchStudent(stus[k], stus[k - 1]); } break; } } } for (int j = 0; j < stuNum; j++) { stus[j].showStudent(); } break; case 5: System.out.print("请输入需要修改的学生学号:"); id=sc.next(); for (int i = 0; i < stuNum; i++) { if (stus[i] != null) { if (id.equals(stus[i].id)) { stus[i].showStudent(); System.out.println("请输入修改后的学生姓名:"); stus[i].name = sc.next(); System.out.println("请输入修改后的学生语文成绩:"); stus[i].score.chinese = sc.nextInt(); System.out.println("请输入修改后的学生数学成绩:"); stus[i].score.math = sc.nextInt(); System.out.println("请输入修改后的学生英语成绩:"); stus[i].score.english = sc.nextInt(); stus[i].score.total = stus[i].score.chinese + stus[i].score.math + stus[i].score.english; break; } else if (i == stuNum - 1) { System.out.println("没有找到该学生!"); } } } break; case 6: System.out.print("请输入需要删除的学生学号:"); id=sc.next(); for (int i = 0; i < stuNum; i++) { if (stus[i] != null){ if (id.equals(stus[i].id)) { for (int j = i; j < stuNum - 1; j++) { switchStudent(stus[j], stus[j + 1]); } stus[stuNum - 1] = null; stuNum--; break; } else if (i == stuNum - 1) { System.out.println("没有找到该学生!"); } } } break; case 7: System.out.println("1.按登记排序"); System.out.println("2.按学号升序排序"); System.out.println("3.按语文成绩降序排序"); System.out.println("4.按数学成绩降序排序"); System.out.println("5.按英语成绩降序排序"); System.out.println("6.按总成绩降序排序"); System.out.println("请选择排序方式:"); int sort=sc.nextInt(); Student[] stus1=new Student[stuNum]; for (int i = 0; i < stuNum; i++) { stus1[i]=stus[i]; } sortStudent2(stus1,sort); System.out.println("排序成功!"); System.out.println("——————————"); for (int i = 0; i < stuNum; i++) { stus1[i].showStudent(); System.out.println("——————————"); } break; case 0: System.out.println("谢谢使用学生管理系统!"); System.exit(0); break; default: System.out.println("输入错误,请重新输入"); } } } public static void sortStudent2(Student[] stus,int choice){ switch (choice){ case 1: break; case 2: for (int i = 0; i < stuNum; i++) { for (int j = 0; j < stuNum-i-1; j++) { if(stus[j].id.compareTo(stus[j+1].id)>0){ Student temp=stus[j]; stus[j]=stus[j+1]; stus[j+1]=temp; } } } break; case 3: for (int i = 0; i < stuNum; i++) { for (int j = 0; j < stuNum-i-1; j++) { if(stus[j].score.chinese<stus[j+1].score.chinese){ Student temp=stus[j]; stus[j]=stus[j+1]; stus[j+1]=temp;
} } } break; case 4: for (int i = 0; i < stuNum; i++) { for (int j = 0; j < stuNum-i-1; j++) { if(stus[j].score.math<stus[j+1].score.math){ Student temp=stus[j]; stus[j]=stus[j+1]; stus[j+1]=temp; } } } break; case 5: for (int i = 0; i < stuNum; i++) { for (int j = 0; j < stuNum-i-1; j++) { if(stus[j].score.english<stus[j+1].score.english){ Student temp=stus[j]; stus[j]=stus[j+1]; stus[j+1]=temp; } } } break; case 6: for (int i = 0; i < stuNum; i++) { for (int j = 0; j < stuNum-i-1; j++) { if(stus[j].score.total<stus[j+1].score.total){ Student temp=stus[j]; stus[j]=stus[j+1]; stus[j+1]=temp; } } } break; default: System.out.println("输入错误!请重新输入!"); break; } } public static void switchStudent(Student stus1,Student stus2){ Student temp=new Student(); temp.id=stus1.id; stus1.id=stus2.id; stus2.id=temp.id; temp.name=stus1.name; stus1.name=stus2.name; stus2.name=temp.name; temp.score.math=stus1.score.math; stus1.score.math=stus2.score.math; stus2.score.math=temp.score.math; temp.score.chinese=stus1.score.chinese; stus1.score.chinese=stus2.score.chinese; stus2.score.chinese=temp.score.chinese; temp.score.english=stus1.score.english; stus1.score.english=stus2.score.english; stus2.score.english=temp.score.english; temp.score.total=stus1.score.total; stus1.score.total=stus2.score.total; stus2.score.total=temp.score.total; } }
|
三、程序运行截图
1.菜单

2.学生登记系统

3.显示所有学生信息

4.根据学号查询学生信息

5.根据学号插入学生信息

6.根据学号修改学生信息


7.根据学号删除学生信息

8.根据要求排序

9.退出系统

作业总结
所用知识点
- 类,成员,方法
- 数组(类数组)
- Scanner接口
- 其他基础知识
以上就是我的java作业啦!
