单机系统架构 单机信息系统_java

控制类(主类):Manage

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class Manage{
	static List<Student> studentList=new ArrayList<>();
	static List<Allscore> allscores=new ArrayList<>();
	 static Scanner in=new Scanner(System.in);
	public static void main(String[] args) {
		int ty = 10;
	 while(ty!=0) {
		 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("8.成绩单");
		 System.out.println("0.退出系统");
		 ty=in.nextInt();
		 switch(ty) {
		 case 1: addStudent();
		 		 break;
		 case 2: remove();
		 		 break;
		 case 3:fix();
		 		 break;
		 case 4:find();
		 		 break;
		 case 5:addscore();
		 		 break;
		 case 6:sort();
		 		 break;
		 case 7:printscore();
		 		break;
		 case 8:findall();
		         break;
		 case 0:break;
		 default:System.out.println("请重新输入");
		 }
	 }
	 System.out.println("系统退出成功!");

	}
	
	public static void addStudent() {
		Student student=new Student();
		System.out.println("请输入名字:");
		student.getname(in.next());
		System.out.println("请输入学号:");
		student.getnum(in.nextInt());
		studentList.add(student);
		studentList.get(studentList.size()-1).studentScores.add(new Score());
		System.out.println("添加成功!");
	}
	public static void addscore() {
		System.out.println("请输入要增加课程成绩记录学生学号:");
		int p=in.nextInt();
		int t=0;
		for (int i = 0; i < studentList.size(); i++) {
			if (p==studentList.get(i).tonum()) {
				studentList.get(i).studentScores.add(new Score());
				System.out.println("添加课程成绩成功");
				t=1;
			}		
		}
		if (t==0) {
			System.out.println("没有找到学号为:"+p+"学生");
		}
	}
		
	public static void remove() {
		System.out.println("请输入要删除学生的学号:");
		int p=in.nextInt();
		int t=0;
		for (int i = 0; i < studentList.size(); i++) {
			if (p==studentList.get(i).tonum()) {
				studentList.remove(i);
				t=1;
			}		
		}
		if (t==0) {
			System.out.println("没有找到学号为:"+p+"学生");
		}
	}
	public static void fix() {
		System.out.println("请输入要修改信息的学生学号:");
		int p=in.nextInt();
		int t=0;
		int t1=0;
		String scString;
		for (int i = 0; i < studentList.size(); i++) {
			if (p==studentList.get(i).tonum()) {
				System.out.println("请输入要修改课程(全称):");
				scString=in.next();
				for (int j = 0; j < studentList.get(i).studentScores.size(); j++) {
					if (scString.equals(studentList.get(i).studentScores.get(j).course)) {//scString==(studentList.get(i).studentScores.get(j).course恶意出错
						System.out.println("请输入要修改此门课:"+scString+"的成绩:");
						studentList.get(i).studentScores.get(j).score=in.nextInt();
						t1=1;
					}
				}
				if (t1==0) {
					System.out.println("没有找到课程为:"+scString+"的课程");
				}
				t=1;
			}		
		}
		if (t==0) {
			System.out.println("没有找到学号为:"+p+"学生");
		}
	}
	public static void find() {
		System.out.println("请输入要查找信息的学生学号:");
		int p=in.nextInt();
		int t=0;
		for (int i = 0; i < studentList.size(); i++) {
			if (p==studentList.get(i).tonum()) {
				System.out.println("该生信息如下:");
				System.out.println("学号:"+studentList.get(i).tonum());
				System.out.println("姓名:"+studentList.get(i).toname());
				for (int j = 0; j < studentList.get(i).studentScores.size(); j++) {
					System.out.println("课程:"+studentList.get(i).studentScores.get(j).course);
					System.out.println("成绩:"+studentList.get(i).studentScores.get(j).score);
				}
				
				t=1;
			}		
		}
		if (t==0) {
			System.out.println("没有找到学号为:"+p+"学生");
		}
		
	}
	public static void sort() {
	for (int i = 0; i < studentList.size(); i++) {
	Collections.sort(studentList.get(i).studentScores,new Comparator<Score>() {

		@Override
		public int compare(Score o1, Score o2) {
			// TODO 自动生成的方法存根
			return -o1.score+o2.score;
		}
	});
	}		
	findall();
	
	}
	public static void findall() {
		for (int i = 0; i < studentList.size(); i++) {
			System.out.println("学号:"+studentList.get(i).num+" "+"姓名:"+studentList.get(i).name);
			for (int j = 0; j < studentList.get(i).studentScores.size(); j++) {
				System.out.println("课程:"+studentList.get(i).studentScores.get(j).course+" "+"成绩:"+studentList.get(i).studentScores.get(j).score);
			}
			
		}
	}

	public static void printscore() {
		System.out.println(allscores.size());
		for (int i = 0; i < allscores.size(); i++) {
			System.out.println("课程:"+allscores.get(i).course+" "+"人数:"+allscores.get(i).pepnumsum+" "+"总分:"+allscores.get(i).scoresum+" "+"平均分:"+allscores.get(i).scoresum/allscores.get(i).pepnumsum+" "+"最高分:"+allscores.get(i).heightest+" "+"最低分:"+allscores.get(i).lowest);
		}
	}
}```

> 学生类:Student

```java
import java.util.ArrayList;
import java.util.List;

public class Student {
	public String name;
	public int num;
	public List<Score> studentScores=new ArrayList<>();
	public void getname(String name) {
		this.name=name;
	}
	public void getnum(int num) {
		this.num=num;
	}

	public String toname() {
		return name;
	}
	public int tonum() {
		return num;
	}

}

添加成绩记录类:Score

import java.util.Scanner;

public class Score extends Manage{
	public String course;
	public int score;
	Score() {
		Scanner scannerin=new Scanner(System.in);
		System.out.println("请输入要添加的课程:");
		this.course=scannerin.next();
		System.out.println("请输入此门课程的成绩:");
		this.score=scannerin.nextInt();
		Allscore h=new Allscore(this.course, this.score);
		if (h.p==1) {
			allscores.add(h);
		}
	}
	
}

统计平均分,最高分,最低分类:Allscore

public class Allscore extends Manage{
	public String course;
	public int scoresum;
	public int pepnumsum;
	public int heightest;
	public int lowest;
	public int p=1;
	public Allscore(String course, int score) {
		
		for (int i = 0; i < allscores.size(); i++) {
			if (course.equals(allscores.get(i).course)) {
				allscores.get(i).scoresum+=score;
				allscores.get(i).pepnumsum+=1;
				if (allscores.get(i).heightest<score) {
					allscores.get(i).heightest=score;
				}
				if (allscores.get(i).lowest>score) {
					allscores.get(i).lowest=score;
				}
				p=0;
			}
		}
		if (p==1) {
			this.course=course;
			this.scoresum=score;
			this.heightest=score;
			this.lowest=score;
			this.pepnumsum=1;
		}
	}

}

之后我会实现一个界面版,敬请期待