当前位置: 首页 > news >正文

学生成绩管理系统(Java)

开发环境: Windows 11 IDEA 2021.3.3


需求:


package com.it.neu;import java.util.ArrayList;
import java.util.Scanner;import static java.time.Clock.system;class Student {      //创建学生类private String Stu_name;private String Stu_id;public Student(String id, String name) {this.Stu_id = id;this.Stu_name = name;}public String getStu_name() {return Stu_name;}public void setStu_name(String stu_name) {Stu_name = stu_name;}public String getStu_id() {return Stu_id;}public void setStu_id(String stu_id) {Stu_id = stu_id;}
}class Course {       //创建课程类private String Course_name;public Course(String course_name) {this.Course_name = course_name;}public String getCourse_name() {return Course_name;}public void setCourse_name(String course_name) {Course_name = course_name;}
}class Score {        //创建成绩表类private int rank;       //序号--代表进入成绩管理系统的位次private Student student;private Course course;private double grade;  //代表成绩的意思public Score(int rank, Student student, Course course, double grade) {this.rank = rank;this.student = student;this.course = course;this.grade = grade;}public int getRank() {return rank;}public void setRank(int rank) {this.rank = rank;}public Student getStudent() {return student;}public void setStudent(Student student) {this.student = student;}public Course getCourse() {return course;}public void setCourse(Course course) {this.course = course;}public double getGrade() {return grade;}public void setGrade(double grade) {this.grade = grade;}
}class StudentScoreManager {      //创建一个成绩管理的类private ArrayList<Score> scores;//新建一个类的数组public StudentScoreManager() {scores = new ArrayList<>();} //初始化这个类成员数组//通过调用manager.addScore(score)方法,将score对象添加到scores列表中。// 如果这个方法成功执行并返回true,那么score对象就会被添加到scores列表中。public boolean addScore(Score score) {return scores.add(score); // 将score对象添加到列表中,并返回添加操作的结果}//删除学生成绩的功能,某一门课//同时判断是否删除成功public boolean removeScore(Student student, Course course) {for (Score score : scores) {if (score.getStudent().getStu_id().equals(student.getStu_id()) && score.getStudent().getStu_name().equals(student.getStu_name()) && score.getCourse().getCourse_name().equals(course.getCourse_name())) {scores.remove(score);return true;}}return false;}//实现修改成学生成绩功能public boolean changeScore(Student student, Course course, double newGrade) {for (Score score : scores) {if (score.getStudent().getStu_id().equals(student.getStu_id()) && score.getStudent().getStu_name().equals(student.getStu_name()) && score.getCourse().getCourse_name().equals(course.getCourse_name())) {score.setGrade(newGrade);return true;}}return false;}//实现计算某门课平均成绩的功能public double getAverageGrade(Course course) {double sum = 0;int count = 0;for (Score score : scores) {if (score.getCourse().getCourse_name().equals(course.getCourse_name())) { //找到这门课了sum += score.getGrade();count++;}}return count > 0 ? sum / count : 0;}//查找某门课的最高成绩public double getHighesrGrade(Course course) {       //某门课的最高成绩double higest = 0;for (Score score : scores) {if (score.getCourse().getCourse_name().equals(course.getCourse_name()) && score.getGrade() > higest) {higest = score.getGrade();}}return higest;}//查找某门课的最低成绩public double getLowestGrade(Course course) {double lowest = 100;for (Score score : scores) {if (score.getCourse().getCourse_name().equals(course.getCourse_name()) && score.getGrade() < lowest) {lowest = score.getGrade();}}return lowest;}//实现成绩排序功能public void sortScores() {scores.sort((s1, s2) -> Double.compare(s2.getGrade(), s1.getGrade()));}public void printScores() {sortScores();for (Score score : scores) {System.out.println(score.getRank() + " " + score.getStudent().getStu_id() + " " + score.getStudent().getStu_name() + " " + score.getCourse().getCourse_name() + " " + score.getGrade());}}public boolean printfixScores(Student student) {int count = 0;for (Score score : scores) {if (score.getStudent().getStu_id().equals(student.getStu_id()) && score.getStudent().getStu_name().equals(student.getStu_name())) {System.out.println(score.getCourse().getCourse_name() + "的成绩是" + score.getGrade());count++;}}return count > 0 ? true : false;}//获取scores类list的长度public int getScoresLength() {return scores.size();}
}public class Work {public static void printmenu() {System.out.println("---------------------------------------");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("5. 查询学生成绩");System.out.println("6. 对成绩进行排序并打印所有成绩");System.out.println("0. 退出系统");System.out.println("---------------------------------------");System.out.print("请输入操作序号:");}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);StudentScoreManager manager = new StudentScoreManager();while (true) {printmenu();int opeartion = scanner.nextInt();if (opeartion < 0 || opeartion > 6) {System.out.println("没有这个选项,请重新选择!");continue;}scanner.nextLine();switch (opeartion) {case 1: {System.out.println("您正在使用功能一:添加学生成绩");System.out.println("---------------------------------------");System.out.println("请输入学生学号:");String id = scanner.nextLine();System.out.println("请输入学生姓名:");String name = scanner.nextLine();System.out.println("请输入课程名称:");String courseName = scanner.nextLine();System.out.println("请输入成绩:");double grade = scanner.nextDouble();//新建临时类来存储输入的数据Student student = new Student(id, name);Course course = new Course(courseName);Score score = new Score(manager.getScoresLength() + 1, student, course, grade);//将这个临时的数据塞入,manager这个类的scores-list中,if (manager.addScore(score)) {System.out.println("添加成绩数据成功!");} else {System.out.println("添加成绩数据失败!");}// 等待用户按下回车键继续执行System.out.println("按下回车键继续...");scanner.nextLine();break;}case 2: {System.out.println("您正在使用功能二:删除学生成绩");System.out.println("---------------------------------------");System.out.println("请输入学生学号:");String id = scanner.nextLine();System.out.println("请输入学生姓名:");String name = scanner.nextLine();System.out.println("请输入课程名称:");String courseName = scanner.nextLine();Student student = new Student(id, name);Course course = new Course(courseName);if (manager.removeScore(student, course)) {System.out.println("删除学生成绩成功!");} else {System.out.println("删除学生成绩失败!没有找到此人");}// 等待用户按下回车键继续执行System.out.println("按下回车键继续...");scanner.nextLine();break;}case 3: {System.out.println("您正在使用功能三:修改学生成绩");System.out.println("---------------------------------------");System.out.println("请输入学生学号:");String id = scanner.nextLine();System.out.println("请输入学生姓名:");String name = scanner.nextLine();System.out.println("请输入课程名称:");String courseName = scanner.nextLine();System.out.println("请输入新的成绩:");double newGrade = scanner.nextDouble();Student student = new Student(id, name);Course course = new Course(courseName);if (manager.changeScore(student, course, newGrade)) {System.out.println("修改学生成绩成功!");} else {System.out.println("修改学生成绩失败!没有找到此人");}break;}case 4: {System.out.println("您正在使用功能四:计算课程平均-最高-最低-成绩");System.out.println("---------------------------------------");System.out.println("请输入课程名称:");String courseName = scanner.nextLine();Course course = new Course(courseName);double average = manager.getAverageGrade(course);double higest = manager.getHighesrGrade(course);double lowest = manager.getLowestGrade(course);System.out.println(courseName + "的平均成绩为:" + average);System.out.println(courseName + "的最高成绩为:" + higest);System.out.println(courseName + "的最低成绩为:" + lowest);// 等待用户按下回车键继续执行System.out.println("按下回车键继续...");scanner.nextLine();break;}case 5: {System.out.println("您正在使用功能五:查询学生成绩");System.out.println("---------------------------------------");System.out.println("请输入学生学号:");String id = scanner.nextLine();System.out.println("请输入学生姓名:");String name = scanner.nextLine();Student student = new Student(id, name);if (manager.printfixScores(student)) {//判断的同时可以调用} else {System.out.println("没有找到此人");}// 等待用户按下回车键继续执行System.out.println("按下回车键继续...");scanner.nextLine();break;}case 6: {System.out.println("您正在使用功能六:对成绩进行排序并打印所有成绩");System.out.println("---------------------------------------");manager.printScores();// 等待用户按下回车键继续执行System.out.println("按下回车键继续...");scanner.nextLine();break;}}}}
}

 

 

http://www.lryc.cn/news/254488.html

相关文章:

  • Modbus数据采集模块是什么?
  • 【网络安全】下载并安装 kali 的虚拟机 版本
  • JREBEL 热部署原理
  • 履带吊,笔记
  • WPF转换器Convert
  • 【刷题】【力扣牛客】反转链表的五种方式——Java
  • 使用Java网络编程,窗口,线程,IO,内部类等实现多人在线聊天1.0
  • 相关教程test
  • mysql知识分享(包含安装卸载)(一)
  • Google Guava 反射工具使用详解
  • MySql MVCC 详解
  • 工业机器视觉megauging(向光有光)使用说明书(三,轻量级的visionpro)
  • Linux 环境下,jdbc连接mysql问题
  • Python读写txt文件数据
  • Linux虚假唤醒
  • 倒计时模块复习
  • k8s(三): 基本概念-ReplicaSet与Deployment
  • Linux 的介绍和云服务器上web 程序部署
  • Oauth2.0 学习
  • Elasticsearch:什么是向量数据库?
  • rename--统一的PRF
  • 010-editor破解(1)
  • Ubuntur编译ROS报错:error PCL requires C++14 or above
  • 17.认识下Docker之docker的核心原理(2)
  • 【EasyExcel实践】万能导出,一个接口导出多张表以及任意字段(可指定字段顺序)
  • 代码随想录算法训练营第四十二天 _ 动态规划_01背包问题、416.分割等和子集。
  • 市场上好用的aspera替代方案,你知道哪些
  • Stm32_串口的帧(不定长)数据接收
  • L0、Linux常用命令
  • Golang实践录:读取toml配置