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("你退出了学生成绩管理系统");
}
}
应付一下作业没问题