Java实现成绩管理系统

embedded/2024/9/22 23:16:18/

1.思路分析实现

  1. 要求一和要求二,一个要求使用顺序表一个使用链表,但又因为这两个都是List的实现类,所以我就使用多态的形式通过一个方法进行实现上面两种内容,需要用什么方法实现就传入什么实现类,形参是List类型。
  2. 创建一个Student的javabean封装,学生的信息。
  3. 实现的增删该查,我都是直接先判断是否符合要求,比如删除的是否需要判断这个要删除的位置是否有效,有效我才进行删除,不能你给我传个位置然后我在越界报错吧。然后在转调list中的方法。
  4. 排序,就自定义了排序规则,按照Student的javabean的成绩排序
  5. 使用swich控制台输入选项,然后对应的选项对应一个功能然后转调方法即可。

代码实现

studentjavabean

java">package entity;public class Student {private String name;private Integer age;private Integer mark;public Student() {}public Student(String name, Integer age, Integer mark) {this.name = name;this.age = age;this.mark = mark;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Integer getMark() {return mark;}public void setMark(Integer mark) {this.mark = mark;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", mark=" + mark +'}';}
}

1.创建Service(业务层接口)

java">package service;import entity.Student;import java.util.List;public interface StudentService {/*** 初始化的创建和输出*返回创建好的学生信息集合*/void init();//打印void info();/*** 添加学生信息* @param student 学生信息* @return 是否添加成功*/boolean addStudent(Student student);/*** 修改学生信息* @param index 学生位置* @param student 学生信息* @return 是否修改成功*/boolean updateStudent(int index,Student student);/*** 删除学生信息* @param index 要删除学生的位置* @return 是否删除成功*/boolean deleteStudent(int index);/*** 按照学生成绩排序** @return 排序完的集合*/void sort();/*** 查询学生的最高成绩** @return 返回最高成绩的信息*/Student lookUp();}

2.创建业务层实现类

java">package service.Impl;import entity.Student;
import service.StudentService;import java.util.Collections;
import java.util.List;public class StudentServiceImpl implements StudentService {private List<Student> students;public StudentServiceImpl(List<Student> students) {this.students = students;}@Overridepublic void init() {students.add(new Student("张三",18,98));students.add(new Student("李四",18,54));students.add(new Student("周小燕",28,92));students.add(new Student("李旭",21,79));students.add(new Student("李想",19,50));for (Student student : students) {System.out.println("姓名为:" + student.getName());System.out.println("年龄为:" + student.getAge());System.out.println("成绩为:" + student.getMark());System.out.println("-------------------------------");}}@Overridepublic void info() {for (Student student : students) {System.out.println("姓名为:" + student.getName());System.out.println("年龄为:" + student.getAge());System.out.println("成绩为:" + student.getMark());System.out.println("-------------------------------");}}@Overridepublic boolean addStudent(Student student) {if (student.getMark() > 100 || student.getMark() < 0){return false;}return students.add(student);}@Overridepublic boolean updateStudent(int index,Student student) {if (index <= 0 || index > students.size()) return false;Student student1 = students.get(index - 1);if (student1 == null){return false;}student1.setAge(student.getAge());student1.setName(student.getName());student1.setMark(student.getMark());return true;}@Overridepublic boolean deleteStudent(int index) {if (index <= 0 || index > students.size()) return false;students.remove(index - 1);return true;}@Overridepublic void sort() {students.sort((a, b) -> {return b.getMark() - a.getMark();});}@Overridepublic Student lookUp() {int max = -1;Student student1 = new Student();for (Student student : students) {if (student.getMark() > max){max = student.getMark();student1 = student;}}return student1;}}

3.打印等细节信息的输出

java">package info;import entity.Student;
import service.Impl.StudentServiceImpl;
import service.StudentService;import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;public class TestStudent {public TestStudent() {app();}public static void printInfo(){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("任意数字. 退出程序");System.out.println("----------------------------");}public static void studentInfo(List<Student> students) {StudentService studentService = new StudentServiceImpl(students);Scanner scanner = new Scanner(System.in);while(true){printInfo();int x = scanner.nextInt();switch (x){case 1:{//1.初始化studentService.init();break;}case 2:{//2.添加学生Student addStudent = new Student();System.out.println("请输入添加的学生姓名:");addStudent.setName(scanner.next());System.out.println("请输入添加的学生年龄:");addStudent.setAge(scanner.nextInt());System.out.println("请输入添加的学生成绩:");addStudent.setMark(scanner.nextInt());boolean flag = studentService.addStudent(addStudent);if (flag) studentService.info();else System.out.println("添加有误");break;}case 3:{//3.排序studentService.sort();studentService.info();break;}case 4:{//4.修改System.out.println("请输入要修改第几位学生");int index = scanner.nextInt();Student updateStudent = new Student();System.out.println("请输入修改的学生姓名:");updateStudent.setName(scanner.next());System.out.println("请输入修改的学生年龄:");updateStudent.setAge(scanner.nextInt());System.out.println("请输入修改的学生成绩:");updateStudent.setMark(scanner.nextInt());boolean flag = studentService.updateStudent(index, updateStudent);if (flag) studentService.info();else System.out.println("修改有误");break;}case 5:{//5.删除System.out.println("请输入要删除第几位学生");int index = scanner.nextInt();boolean flag = studentService.deleteStudent(index);if (flag) studentService.info();else System.out.println("删除有误");break;}case 6:{//6.查询最高成绩Student student = studentService.lookUp();System.out.println("最高成绩学生的信息如下");System.out.println("姓名为:" + student.getName());System.out.println("年龄为:" + student.getAge());System.out.println("成绩为:" + student.getMark());System.out.println("-------------------------------");break;}default:{//退出系统System.exit(0);}}}}//1.使用顺序表实现public static void arraysList(){List<Student> list = new ArrayList<>();studentInfo(list);}//2.使用链表实现public static void linkedList(){List<Student> list = new LinkedList<>();studentInfo(list);}public static void app() {Scanner sc = new Scanner(System.in);System.out.println("1. 使用顺序表实现");System.out.println("2. 使用链表实现");switch (sc.nextInt()){case 1:{arraysList();break;}case 2:{linkedList();break;}}}
}

启动类

java">import info.TestStudent;//启动类
public class App {public static void main(String[] args) {new TestStudent();}
}


http://www.ppmy.cn/embedded/45966.html

相关文章

透视 static 和 extern 对函数的重大影响

目录 一、生命周期和作用域1、生命周期2、作用域 二、static 的影响1、static的作用2、static 修饰局部变量 三、extern 的魔力四、static 与 extern 的协同与冲突1、static修饰全局变量2、static修饰函数 在 C 语言的世界里&#xff0c; static 和 extern 这两个关键字在函数的…

Vue中使用Axios

安装Axios&#xff1a; 首先确保已经安装了Axios。你可以使用npm或者yarn进行安装&#xff0c;如下所示&#xff1a; pm install axios 导入Axios&#xff1a; 在需要发送HTTP请求的组件中&#xff0c;使用import语句导入Axios库。 import axios from axios; 发送HTTP请求&…

数据库 - 理解了完全依赖和部分依赖,就很容易理解第二范式

第二范式(Second Normal Form,2nd NF)是指每个表必须有主关键字(Primary key),其他数据元素与主关键字一一对应。通常称这种关系为函数依赖(Functional dependence)关系&#xff0c;即表中其他数据元素都依赖于主关键字,或称该数据元素唯一地被主关键字所标识。第二范式是数据库…

程序员搞副业得搞出影响力来

技能影响力类 工具是免费提供的&#xff0c;开发者创建这类工具可能仅仅是为了分享自己的成果。 这类工具通常开源发布在Github上&#xff0c;开发者有时会附上自己的支付宝或微信收款码&#xff0c;允许用户进行捐赠和打赏&#xff0c;采取一种随缘的赚钱方式。 通过这些工…

「布道师系列文章」众安保险王凯解析 Kafka 网络通信

作者&#xff5c;众安保险基础平台 Java 开发专家王凯 引言 今天给大家带来的是 Kafka 网路通信主要流程的解析&#xff08;基于 Apache Kafka 3.7[2]&#xff09;。同时引申分析了业界当前较火的AutoMQ基于Kafka在网络通信层面的优化和提升。 01 如何构建一个基本的请求…

使用 Apache Commons Exec 自动化脚本执行实现 MySQL 数据库备份

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

图形学初识--颜色混合

文章目录 前言正文为什么要有颜色混合&#xff1f;颜色混合常见实现方式&#xff1f;上述颜色混合注意点 结尾&#xff1a;喜欢的小伙伴点点关注赞哦! 前言 本章节补充一下颜色混合的内容&#xff0c;主要包含&#xff1a;为什么要有颜色混合&#xff1f;颜色混合常实现方式&a…

使用 Django 和 Django REST Framework (DRF) 构建简单 API 的示例

以下是一个使用 Django 和 Django REST Framework (DRF) 构建简单 API 的示例。这个示例展示了如何创建一个简单的书籍管理系统&#xff0c;包括创建、读取、更新和删除书籍信息。 创建 Django 项目和应用 首先&#xff0c;创建一个新的 Django 项目和应用&#xff1a; djang…