Java语言实现简易学生成绩管理系统

Student Performance Management System(SPMS)

程序框架:分层模式设计

需要创建的包:

1,包com.java.SPMS.student用来存放Student类

2,包com.java.SPMS.utils用来存放编写工具类Utils

3,包com.java.SPMS.view用来编写界面类view

4,包com.java.SPMS存放主程序入口类SPMSapp

代码实现:

1:

package com.java.SPMS.student;

//Student的对象表示一个学生信息
public class Student {
	public int id;
	public String name;
	public int Chinese;
	public int Math;
	public int English;
	public int sum;
	public Student(int id) {
		super();
		this.id = id;
	}
	
	public Student(int id, String name , int Chinese, int Math, int English) {
		super();
		this.id = id;
		this.name = name;
		this.Chinese = Chinese;
		this.Math = Math;
		this.English = English;
	}
	
	public int getId() {
		return id;
	}
	
	public void setId(int id) {
		this.id = id;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
	public int getChinese() {
		return Chinese;
	}
	
	public void setChinese(int Chinese) {
		this.Chinese = Chinese;
	}
	
	public int getMath() {
		return Math;
	}
	
	public void setMath(int Math) {
		this.Math = Math;
	}
	
	public int getEnglish() {
		return English;
	}
	
	public void setEnglish(int English) {
		this.English = English;
	}
	
	public int getSum() {
		return Chinese + Math + English;
	}
	
	public void show() {
		System.out.println("学号\t姓名\t语文成绩\t数学成绩\t英语成绩\t总成绩");
		System.out.println(this.getId()+"\t"+this.getName()+"\t"+this.getChinese()+"\t"+this.getMath()+"\t"+this.getEnglish()+"\t"+this.getSum());
	}

	
}

2:

package com.java.SPMS.utils;

import java.util.Scanner;

import com.java.SPMS.domain.Student;

public class Utils {

	//学生数组,默认长度为10
	Student[] stu = new Student[10];
	Scanner input = new Scanner(System.in);
	
	//无参构造器,默认初始化学生数组内的学生实例对象
	public Utils() {
		stu[0] = new Student(0,"小明",60,60,60);
		stu[1] = new Student(1,"小黄",80,80,80);
		stu[2] = new Student(2,"小红",100,100,100);
	}
	
	//判断学生数组是否满,没有满则返回1,满了则返回0
	public int isfull() {
		if (stu[stu.length - 1] != null) {
			return 0;
		} else {
			return 1;
		}
	}
	
	//显示学生信息,遍历方法:for/增强for
	public void show() {
		for (int i = 0; i < stu.length; i++) {
			if(stu[i] instanceof Student && stu[i] != null) {
				stu[i].show();
			}
		}
	}

	//根据学生id查找学生返回索引,若查找不到返回0
	public int seek() {
		System.out.print("输入一个你要找的学生的id:");
		int Input = input.nextInt();
		for (int i = 0; i < stu.length; i++) {
			if (stu[i] != null) {
				if (stu[i].getId() == Input && stu[i] instanceof Student) {
					stu[i].show();
					return i;
				} else {
					continue;
				}
			}
			System.out.println("没有id为\t" + Input + "\t 的学生");
			return 0;
		}
		System.out.println("没有id为\t" + Input + "\t 的学生");
		return 0;
	}

	public void add() {
		int j = isfull();
		if(j == 1) {
			System.out.print("请输入一个你要添加的学生的id:");
			if (input.hasNextInt())
				;
			int id = input.nextInt();
			System.out.print("请输入一个你要添加的学生的名字:");
			if (input.hasNextInt())
				;
			String name = input.next();
			System.out.print("请输入一个你要添加的学生的语文成绩:");
			if (input.hasNextInt())
				;
			int Chinese = input.nextInt();
			System.out.print("请输入一个你要添加的学生的数学成绩:");
			if (input.hasNextInt())
				;
			int Math = input.nextInt();
			System.out.print("请输入一个你要添加的学生的英语成绩:");
			if (input.hasNextInt())
				;
			int English = input.nextInt();
			for (int i = 0; i < stu.length; i++) {
				if (stu[i] == null) {
					stu[i] = new Student(id,name,Chinese,Math,English);
					System.out.println("添加成功");
					break;
				}
			}
		}else {
			System.out.println("学生数组已经满了!!不能再添加学生了");
		}

	}

	public void delete() {
		System.out.print("输入目标学生id后该学生所有信息将会被删除:");
		int i = seek();
		if (i != 0) {
			for (int j = i; j < stu.length-1; j++) {
				if (stu[j] != null) {
					stu[j] = stu[j + 1];
				}
			}
			System.out.println("删除成功");

		}
	}

	public void modify() {
		int i = seek();
		if (i != 0) {
			System.out.print("原id:"+stu[i].getId()+",请输入修改后的id:");
			if (input.hasNextInt())
				;
			int id = input.nextInt();
			stu[i].id = id;
			System.out.print("原名字:"+stu[i].getName()+",请输入修改后的名字:");
			if (input.hasNextInt())
				;
			String name = input.next();
			stu[i].name = name;
			System.out.print("原语文成绩:"+stu[i].getChinese()+",请输入修改后的语文成绩:");
			if (input.hasNextInt())
				;
			int Chinese = input.nextInt();
			stu[i].Chinese = Chinese;
			System.out.print("原数学成绩:"+stu[i].getMath()+",请输入修改后的数学成绩:");
			if (input.hasNextInt())
				;
			int Math = input.nextInt();
			stu[i].Math = Math;
			System.out.print("原英语成绩:"+stu[i].getEnglish()+",请输入修改后的英语成绩:");
			if (input.hasNextInt())
				;
			int English = input.nextInt();
			stu[i].English = English;
			System.out.println("修改成功");

		}
	}
	
	//先计算数组中学生实例对象的数量,再下一步判断是否排序
	public void sort() {
		int b = 0;
		for(int a =0 ; a<stu.length ;a++) {
			if(stu[a] == null) {
				b = a; 
			}else {	
				b = stu.length; 
			}
		if(b >= 1) {
			for(int i = 0 ; i < b  ; i++){
				for(int c = 0 ; c < b-i-1 ; c++){
					if(stu[c]!=null&&stu[c+1]!=null&&stu[c].getSum() < stu[c+1].getSum()){
						Student n1 = new Student(stu[c].id,stu[c].name,stu[c].Chinese,stu[c].Math,stu[c].English);
						stu[c] = stu[c + 1];
						stu[c + 1] = n1;	
						}
					}
				}
			}else {
				System.out.println("需要学生人数大于等于2时才可以排序");
			}
		}
		System.out.println("排序成功");
	}

}

3:

package com.java.SPMS.view;

import java.util.Scanner;

import com.java.SPMS.utils.Utils;

public class view {
	Utils u = new Utils();
	Scanner input = new Scanner(System.in);
	private boolean loop = true;
	private int key;
	//显示主菜单
	public void Menu() {
		do {
			System.out.println("===============学生成绩管理系统===============");
			System.out.println("\t\t1 新增学生");
			System.out.println("\t\t2 查找学生");
			System.out.println("\t\t3 删除学生信息");
			System.out.println("\t\t4 修改学生信息");
			System.out.println("\t\t5 显示学生信息");
			System.out.println("\t\t6 按照总成绩降序排列学生数组");
			System.out.println("\t\t7 退出系统");
			System.out.print("请输入你的选择(1-7):");
			if (input.hasNextInt())
				;
			key = input.nextInt();
			switch(key) {
				case 1:
					System.out.println("新增学生");
					u.add();
					break;
				case 2:
					System.out.println("查找学生");
					u.seek();
					break;
				case 3:
					System.out.println("删除学生信息");
					u.delete();
					break;
				case 4:
					System.out.println("修改学生信息");
					u.modify();
					break;
				case 5:
					System.out.println("显示学生信息");
					u.show();
					break;
				case 6:
					System.out.println("由总成绩的降序排列学生数组");
					u.sort();
					break;
				case 7:
					System.out.println("退出系统");
					loop = false;
					break;
			}
		}while(loop);
	}
}

4:

package com.java.SPMS;
import com.java.SPMS.view.view;
public class SPMSapp {
	public static void main(String[] args) {
		new view().Menu();
		System.out.println("你退出了学生成绩管理系统");
	}
}

应付一下作业没问题

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值