一、概述
本文是一篇java所写的学生成绩管理系统,具有继承关系,数据分为学生的id、姓名、年龄、出生日期以及单科成绩。
二、开发环境
JDK12,idea2020
三、工程文件
四、代码部分
4.1main
package com.company.studentinfo;
import com.company.studentinfo.domain.Student;
import com.company.studentinfo.inter.msg;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void menu() {
// 主界面
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("0.退出");
}
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Scanner sc;
// 自动存储两组数据
{
ArrayList<Integer> arrayList = new ArrayList<>();
ArrayList<Integer> arrayList1 = new ArrayList<>();
arrayList.add(25);
arrayList1.add(15);
Student s = new Student("张三",18,"2000-11-11",1,arrayList);
Student s2 = new Student("李四",19,"2002-01-11",2,arrayList1);
list.add(s);
list.add(s2);
}
lo:
while (true) {
menu();
System.out.println("输入您的选择:");
sc = new Scanner(System.in);
int choice = sc.nextInt();
switch (choice) {
case 1:
adds(list);
break;
case 2:
deletes(list);
break;
case 3:
m:while (true){
System.out.println("1.修改学生信息");
System.out.println("2.修改学生成绩");
System.out.println("3.返回主菜单");
System.out.println("输入您的选择:");
int choice1 = sc.nextInt();
switch (choice1){
case 1:
modifiys(list);
break;
case 2:
modifiyscorce(list);
break;
case 3:
System.out.println("返回主菜单");
break m;
}
}
break;
case 4:
m1:while (true){
System.out.println("1.查看全部学生信息");
System.out.println("2.查看个人信息");
System.out.println("3.返回主菜单");
System.out.println("输入您的选择:");
int choice1 = sc.nextInt();
switch (choice1){
case 1:
selects(list);
break;
case 2:
selectone(list);
break;
case 3:
System.out.println("返回主菜单");
break m1;
}
}
break;
case 5:
m2:while (true){
System.out.println("1.成绩升序排序");
System.out.println("2.成绩降序排序");
System.out.println("3.返回主菜单");
System.out.println("输入您的选择:");
int choice1 = sc.nextInt();
switch (choice1){
case 1:
sort(list);
break;
case 2:
descsort(list);
break;
case 3:
System.out.println("返回主菜单");
break m2;
}
}
break;
case 0:
System.out.println("已退出,欢迎下次使用!");
break lo;
default:
System.out.println("请输入正确选择:");
break;
}
}
}
private static void descsort(ArrayList<Student> list) {
msg.descsorts(list);
}
private static void sort(ArrayList<Student> list) {
msg.scoresort(list);
}
// 修改成绩信息
private static void modifiyscorce(ArrayList<Student> list) {
msg.modifiyscorcemsg(list);
}
//查询信息
private static void selects(ArrayList<Student> list) {
// 1.给出提示,然后传给msg
msg.selectsmsg(list);
}
// 查询个人信息
private static void selectone(ArrayList<Student> list) {
// 1.给出提示,然后传给msg
msg.selectonemsg(list);
}
// 修改信息
private static void modifiys(ArrayList<Student> list) {
msg.modifismsg(list);
}
//删除
private static void deletes(ArrayList<Student> list) {
msg.deletesmsg(list);
}
//添加
private static void adds(ArrayList<Student> list) {
msg.addmsg(list);
}
}
4.2inter包
package com.company.studentinfo.inter;
import com.company.studentinfo.dao.setmsg;
import com.company.studentinfo.domain.Student;
import java.util.ArrayList;
import java.util.Scanner;
public class msg {
static Scanner sc = new Scanner(System.in);;
public static void selectsmsg(ArrayList<Student> list) {
// 1.判断有无信息
if (judge(list)) return;
System.out.println("学号\t" +"姓名\t"+"年龄\t"+"生日\t\t"+"成绩");
setmsg.setstudentmsg(list);
}
public static void modifismsg(ArrayList<Student> list){
// 1.判断有无信息
if(list.size() == 0){
System.out.println("没有信息可修改!");
}
// 2.根据键盘输入修改学生信息的学号
System.out.println("输入修改信息的学号:");
int id = sc.nextInt();
// 3.判断学号是否存在,若存在则进行修改
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
if(s.getId() == id){
System.out.println("-----进行修改-----");
setmsg.modifisutdentmsg(list,s);
return;
}
}
System.out.println("学号不存在,无法进行修改!");
}
public static void deletesmsg(ArrayList<Student> list){
// 1.判断有无信息
if(list.size() == 0){
System.out.println("没有信息可删除!");
}
// 2.判断根据键盘录入的学号是否存在
System.out.println("输入删除的学号:");
int id = sc.nextInt();
// 3.进行删除
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
if(id == s.getId()){
list.remove(s);
System.out.println("删除成功");
return;
}
}
System.out.println("学号不存在,不能进行删除");
}
public static void addmsg(ArrayList<Student> list){
int id;
while (true){
System.out.print("请输入学生学号:");
id = sc.nextInt();
int conut = 0;
for (int i = 0; i < list.size(); i++) {
Student st = list.get(i);
if (st.getId() == id) {
System.out.println("学号存在!");
break ;
}
conut++;
}
if (conut == list.size()){
break;
}
}
System.out.print("请输入学生姓名:");
String name = sc.next();
System.out.print("请输入学生年龄:");
int age = sc.nextInt();
System.out.print("请输入学生生日:");
String birthday = sc.next();
System.out.print("请输入学生成绩:");
String scorce = sc.next();
ArrayList<String> sc1 = new ArrayList();
sc1.add(scorce);
// 3.封装成学生对象
Student s = new Student( name, age, birthday, id, sc1);
list.add(s);
System.out.println("添加成功!");
}
public static void selectonemsg(ArrayList<Student> list) {
// 1.判断是否无信息
if (judge(list)) return;
System.out.println("输入查询的学号:");
int id1 = sc.nextInt();
setmsg.setstudentonemsg(list, id1);
}
private static boolean judge(ArrayList<Student> list) {
if (list.size() == 0) {
System.out.println("无信息,请先添加");
return true;
}
return false;
}
public static void modifiyscorcemsg(ArrayList<Student> list) {
// 1.判断有无信息
if(list.size() == 0){
System.out.println("没有信息可");
}
// 2.根据键盘输入修改学生信息的学号
System.out.println("输入修改的学号:");
int id = sc.nextInt();
// 3.判断学号是否存在,若存在则进行修改
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
if(s.getId() == id){
System.out.println("-----进行修改-----");
setmsg.modifisutdentonemsg(list,s);
return;
}
}
System.out.println("学号不存在,无法进行修改!");
}
public static void scoresort(ArrayList<Student> list) {
// 1.判断有无信息
if (judge(list)) return;
System.out.println("升序排序结果:");
setmsg.scoreresult(list);
}
public static void descsorts(ArrayList<Student> list) {
// 1.判断有无信息
if (judge(list)) return;
System.out.println("降序排序结果:");
setmsg.descscoreresult(list);
}
}
4.3dao包
package com.company.studentinfo.dao;
import com.company.studentinfo.domain.Student;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Scanner;
public class setmsg {
static Scanner sc = new Scanner(System.in);
public static void setstudentmsg(ArrayList<Student> list){
for (int i = 0; i < list.size(); i++) {
Student st = list.get(i);
st.show();
}
}
public static void modifisutdentmsg(ArrayList<Student> list,Student s) {
System.out.print("请输入修改后的学生姓名:");
String name = sc.next();
System.out.print("请输入修改后的学生年龄:");
int age = sc.nextInt();
System.out.print("请输入修改后的学生生日:");
String birthday = sc.next();
s.setName(name);
s.setAge(age);
s.setBirthday(birthday);
// s.getScorce().set(0, scorce);
System.out.println("修改完成!");
}
public static void setstudentonemsg(ArrayList<Student> list, int id) {
for (int i = 0; i < list.size(); i++) {
Student st = list.get(i);
// System.out.println("st.getId():" + st.getId() + "id:"+id);
if(st.getId() == id){
System.out.println("学号\t" +"姓名\t"+"年龄\t"+"生日\t\t"+"成绩");
st.show();
return;
}
}
System.out.println("学号不存在!");
}
public static void modifisutdentonemsg(ArrayList<Student> list, Student s) {
System.out.print("请输入修改后的学生成绩:");
String scorce = sc.next();
s.getScorce().set(0, scorce);
System.out.println("修改完成!");
}
public static void scoreresult(ArrayList<Student> list) {
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
ArrayList s1 = s.getScorce();
for (int i1 = 0; i1 < s1.size(); i1++) {//拿到所有分数的数据
int o = (int) s1.get(0);
arr.add(o);
}
}
arr.sort(Comparator.naturalOrder());
System.out.println(arr);
}
public static void descscoreresult(ArrayList<Student> list) {
ArrayList<Integer> arr = new ArrayList<>();
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
ArrayList s1 = s.getScorce();
for (int i1 = 0; i1 < s1.size(); i1++) {
int o = (int) s1.get(0);
arr.add(o);
}
}
arr.sort(Comparator.reverseOrder());
System.out.println(arr);
}
}
4.4 数据定义
4.4.1 Person.class
package com.company.studentinfo.domain;
public class Person {
private String name; //姓名
private int age; //年龄
private String birthday; //生日
public Person() {
}
public Person(String name, int age, String birthday) {
this.name = name;
this.age = age;
this.birthday = birthday;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getBirthday() {
return birthday;
}
public void setBirthday(String birthday) {
this.birthday = birthday;
}
}
4.4.2 Student.class
package com.company.studentinfo.domain;
import java.util.ArrayList;
public class Student extends Person {
private int id; //学号
private ArrayList score;
public Student() {
}
public Student(String name, int age, String birthday, int id, ArrayList score) {
super(name, age, birthday);
this.id = id;
this.score = score;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public ArrayList getScorce() {
return score;
}
public void setScorce(ArrayList scorce) {
this.score = scorce;
}
public void show(){
System.out.println(getId()+"\t\t" +getName()+"\t"+ getAge()+"\t\t"+getBirthday()+"\t"+getScorce());
}
}
五、成果