> 文章列表 > Java课程设计之学生成绩管理系统

Java课程设计之学生成绩管理系统

Java课程设计之学生成绩管理系统

开发一个简单的学生成绩数据管理系统。

任务描述:

1.设计一个学生类Student,私有成员属性有:姓名(name)和成绩(score);构造方法初始化所有属性;所有setter和getter方法;获取学生详细信息的方法:public String getStudent(){}

2.设计一个类DataManage,包括如下的方法:

插入学生数据:public Student[] insertData() {}

显示所有学生数据:public void showData(Student[] a) {}

在指定位置处插入数据: public void insertAtArray(Student[] a, Student s, int k) {}

查询成绩最高的学生信息:public void scoreMax(Student[] a) {}

显示提示信息:public void notice();

3.设计测试类StudentTest,包含主方法,完成程序主逻辑。

学生类Student:

package StudentGrade;public  class Student {private String name;//姓名private double score;//成绩public  Student(){}public  Student(String name, double score) {this.name = name;this.score = score;}/* 获取* @return name*/public String getName() {return name;}/* 设置* @param name*/public void setName(String name) {if(name==null){System.out.println("输入为空!");}else{this.name = name;}}/* 获取* @return score*/public double getScore() {return score;}/* 设置* @param score*/public void setScore(double score) {if(score>0&&score<100){this.score = score;}else{this.score=0;System.out.println("成绩输入不合法!");}}public String getStudent() {return "Student{name = " + name + ", score = " + score + "}";}
}

类DataManage:

package StudentGrade;import java.util.Scanner;public class DataManage {//插入数据public Student[] insertData() {System.out.println("请输入学生信息,格式为:姓名+成绩:");Scanner input = new Scanner(System.in);Student[] array = new Student[6];for (int i = 0; i < array.length - 1; i++) {String name = input.next();double score = input.nextDouble();if (score > 100 && score < 0) {System.out.println("学生成绩信息不合法,已退出输入学生信息!");return array;} else {array[i] = new Student(name, score);}}System.out.println("插入数据已完成!");return array;}public void showData(Student[] a) {//打印数据System.out.println("     姓名   " + "成绩");for (int i = 0; i < a.length && a[i] != null; i++) {System.out.println("     " + a[i].getName() + "   " + a[i].getScore());}}public void insertAtArray(Student[] a, Student s, int k) {//插入指定位置if (k > a.length - 1 || k < 0) {//判断插入位置是否合法System.out.println("插入位置错误!");return;}if (a[a.length - 1] != null) {System.out.println("该数组已满,无法继续插入!");return;}if (s.getScore() > 100 || s.getScore() < 0) {System.out.println("成绩输入不合法!");return;}for (int i = a.length - 2; k < i + 2; i--) {//元素循环后移a[i + 1] = a[i];}a[k] = new Student(s.getName(), s.getScore());//在第k个位置插入数据System.out.println("插入数据已完成!");}public void scoreMax(Student[] a) {double MaxScore = a[0].getScore();//假定第一个数据为最大值for (Student x : a) {//遍历数组找出最大值if (MaxScore < x.getScore()) {MaxScore = x.getScore();}}System.out.println("最高成绩为:" + MaxScore);}public void notice() {System.out.println("               " + "—————————————————————" + "欢迎进入学生成绩管理系统" + "——————————————————————");System.out.println("                    " + "*");System.out.println("                                       " + "1----输入学生成绩数据");System.out.println("                                       " + "2----显示所有数据");System.out.println("                                       " + "3----在指定位置插入数据");System.out.println("                                       " + "4----查询成绩最高数据");System.out.println("                                       " + "0----退出");System.out.println("                    " + "*");System.out.print("请输入对应的数字进行操作:");}
}

 

测试类StudentTest:

package StudentGrade;import java.util.Scanner;public class StudentTest {public  static void  main(String[] args) {Student s = new Student();Student[] a = new Student[6];Scanner num = new Scanner(System.in);DataManage data = new DataManage();data.notice();while (true) {switch (num.nextInt()) {case 1:a = data.insertData();data.notice();break;case 2:data.showData(a);data.notice();break;case 3:System.out.println("请输入插入位置:");int k=num.nextInt();System.out.println("请输入插入学生的信息:");s.setName(num.next());s.setScore(num.nextDouble());data.insertAtArray(a, s, k);data.notice();break;case 4:data.scoreMax(a);data.notice();break;case 0:System.out.println("已成功退出系统!");System.exit(0);break;default:System.out.println("输入的数字有误!");data.notice();break;}}}
}