文章目录

  • 前言
  • 一、项目要求是?
  • 二、使用步骤
    • 1.Main类
    • 2.Course类
    • 3.Students类
    • 4.StudentsGrade类
  • 总结

前言

作为一名计算机专业的学生,写一个学生成绩管理系统应该是不可或缺的经历。


一、项目要求是?

题目描述:一个简单的学生课程系统。
功能要求:
(1) 创建一个学生类,包含学号,姓名,性别。
(2) 创建一个课程成绩类,包含课程名称和成绩。
(3) 创建一个学生课程成绩类,包含学生类成员和课程类数组成员。
(4) 可以生成学生,并且为学生创建课程成绩。
(5) 输出指定科目分数最高和最低的学生课程成绩信息。
(6) 输出指定学生的科目分数最高和最低分。

二、使用步骤

1.Main类

代码如下(示例):

import java.util.ArrayList;
import java.util.Scanner;public class Main {public static Scanner scanner = new Scanner(System.in);public static ArrayList<StudentsGrade> studentsGrades = new ArrayList<>();public static void main(String[] args) {while (true) {System.out.println("----------欢迎使用学生成绩管理系统-----------");System.out.println("-------------【1】录入学生成绩-------------");System.out.println("-------------【2】显示统计数据-------------");System.out.println("-------------【3】查找学生成绩-------------");System.out.println("-------------【4】科目成绩排列-------------");System.out.println("-------------【0】退出管理系统-------------");Students Students=new Students();Course Course=new Course();StudentsGrade studentsGrade = new StudentsGrade(Students,Course);System.out.println("输入你的选择");String choice = scanner.next();switch (choice) {case "1":studentsGrade.addScore(studentsGrades);break;case "2":studentsGrade.showAllStudent(studentsGrades);break;case "3":studentsGrade.lookupStudent(studentsGrades);break;case "4":studentsGrade.sortCourse(studentsGrades);break;case "0":System.exit(0);default:break;}}}
}

2.Course类

代码如下(示例):

public class Course {//    Aprivate float A;//    Bprivate float B;//    Cprivate float C;//    Dprivate float D;public float getA() {return A;}public void setA(float A) {this.A = A;}public float getB() {return B;}public void setB(float B) {this.B = B;}public float getC() {return C;}public void setC(float C) {this.C = C;}public float getD() {return D;}public void setD(float D) {this.D = D;}
}

3.Students类

代码如下(示例):

public class Students {//    姓名private String name;//    性别private String sex;//    学号private long id;public String getName() {return name;}public void setName(String name) {this.name = name;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public long getId() {return id;}public void setId(long id) {this.id = id;}
}

4.StudentsGrade类

代码如下(示例):


import java.util.ArrayList;
import java.util.Scanner;public class StudentsGrade {Students student ;Course courses ;public StudentsGrade(Students student1,Course courses1) {this.student = student1;this.courses = courses1;}public static Scanner scanner = new Scanner(System.in);public void addScore(ArrayList<StudentsGrade> studentsGrades) {System.out.println("----------录入学生数据----------");System.out.println("请依次输入如下数据:");long id;while (true) {System.out.println("学号");id = scanner.nextInt();if (isValid(studentsGrades, id)) {System.out.println("学号重复,请重新输入");} else {break;}}System.out.println("姓名");String name = scanner.next();System.out.println("性别");String sex = scanner.next();System.out.println("A");float A = scanner.nextFloat();System.out.println("B");float B = scanner.nextFloat();System.out.println("C");float C = scanner.nextFloat();System.out.println("D");float D = scanner.nextFloat();//创建对象,并设置属性,然后将其加入学生成绩对象集合StudentsGrade studentsGrade = new StudentsGrade(student,courses);studentsGrade.student.setName(name);studentsGrade.student.setName(name);studentsGrade.student.setSex(sex);studentsGrade.student.setId(id);studentsGrade.courses.setA(A);studentsGrade.courses.setB(B);studentsGrade.courses.setC(C);studentsGrade.courses.setD(D);//        添加到集合studentsGrades.add(studentsGrade);//        提示信息System.out.println("添加成功");}//验证学号是否已经添加public boolean isValid(ArrayList<StudentsGrade> studentsGrades, long id) {for (StudentsGrade studentsGrade : studentsGrades) {if (studentsGrade.student.getId() == id) {return true;}}return false;}//通过指定学号查询他的信息public void lookupStudent(ArrayList<StudentsGrade> studentsGrades) {System.out.println("----------查找学生成绩----------");if (studentsGrades.size() == 0) {System.out.println("当前无数据,请添加后重试");} else {System.out.println("请输入要查找学生的学号:");long id = scanner.nextLong();int flag = -1;//        查找对应学号,找到就退出for (int i = 0; i < studentsGrades.size(); i++) {if (studentsGrades.get(i).student.getId() == id) {flag = i;break;}}if (flag == -1) {System.out.println("未找到对应学号的学生,请确认后重新输入!");} else {System.out.println("对应学号的学生成绩如下:");//创建两个数组float[] grades = new float[4];String[] gradesChar = new String[4];grades[0] = studentsGrades.get(flag).courses.getA();grades[1] = studentsGrades.get(flag).courses.getB();grades[2] = studentsGrades.get(flag).courses.getC();grades[3] = studentsGrades.get(flag).courses.getD();gradesChar[0] = "A";gradesChar[1] = "B";gradesChar[2] = "C";gradesChar[3] = "D";for (int i = 0; i < 4-1; i++) {for (int j =0 ; j < 4-i-1 ; j++) {if (grades[j] > grades[j+1]) {float temp = grades[j];String tempChar = gradesChar[j];grades[j] = grades[j+1];gradesChar[j] = gradesChar[j+1];grades[j+1] = temp;gradesChar[j+1] = tempChar;}}}System.out.println("姓名\t\t性别\t\t学号\t\t最低科目"+gradesChar[0]+"\t\t最高科目"+gradesChar[3]);System.out.format("%s\t\t%s\t\t%d\t\t%.2f\t\t\t%.2f\n", studentsGrades.get(flag).student.getName(),studentsGrades.get(flag).student.getSex(), studentsGrades.get(flag).student.getId(), grades[0], grades[3]);System.out.println("查找信息成功!");}}}public void sortCourse(ArrayList<StudentsGrade> studentsGrades) {if (studentsGrades.isEmpty()) {System.out.println("当前无数据,请添加后重试");} else {System.out.println("请选择要排序的科目");String km = scanner.next();if(!km.matches(".*[A-D].*")){System.out.println("没有你选择的科目信息");return;}if(km.equals("A")){for (int i = 0; i < studentsGrades.size() - 1; i++) {for (int j =0 ; j < studentsGrades.size()-1-i ; j++) {if (studentsGrades.get(j).courses.getA() > studentsGrades.get(j+1).courses.getA()) {StudentsGrade tmp = studentsGrades.get(j);studentsGrades.set(j, studentsGrades.get(j + 1));studentsGrades.set(j + 1, tmp);}}}}if(km.equals("B")){for (int i = 0; i < studentsGrades.size() - 1; i++) {for (int j =0 ; j < studentsGrades.size()-1-i ; j++) {if (studentsGrades.get(j).courses.getB() > studentsGrades.get(j+1).courses.getB()) {StudentsGrade tmp = studentsGrades.get(j);studentsGrades.set(j, studentsGrades.get(j + 1));studentsGrades.set(j + 1, tmp);}}}}if(km.equals("C")){for (int i = 0; i < studentsGrades.size() - 1; i++) {for (int j =0 ; j < studentsGrades.size()-1-i ; j++) {if (studentsGrades.get(j).courses.getC() > studentsGrades.get(j+1).courses.getC()) {StudentsGrade tmp = studentsGrades.get(j);studentsGrades.set(j, studentsGrades.get(j + 1));studentsGrades.set(j + 1, tmp);}}}}if(km.equals("D")){for (int i = 0; i < studentsGrades.size() - 1; i++) {for (int j =0 ; j < studentsGrades.size()-1-i ; j++) {if (studentsGrades.get(j).courses.getD() > studentsGrades.get(j+1).courses.getD()) {StudentsGrade tmp = studentsGrades.get(j);studentsGrades.set(j, studentsGrades.get(j + 1));studentsGrades.set(j + 1, tmp);}}}}System.out.println("科目"+km+"分数最低的学生信息");System.out.println("姓名\t\t性别\t\t学号\t\tA成绩\t\tB成绩\t\tC成绩\t\tD成绩");System.out.format("%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n", studentsGrades.get(0).student.getName(),studentsGrades.get(0).student.getSex(), studentsGrades.get(0).student.getId(),  studentsGrades.get(0).courses.getA(), studentsGrades.get(0).courses.getB(), studentsGrades.get(0).courses.getC(), studentsGrades.get(0).courses.getD());int n = studentsGrades.size() - 1;System.out.println("科目"+km+"分数最高的学生信息");System.out.println("姓名\t\t性别\t\t学号\t\tA成绩\t\tB成绩\t\tC成绩\t\tD成绩");System.out.format("%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n", studentsGrades.get(n).student.getName(),studentsGrades.get(n).student.getSex(), studentsGrades.get(n).student.getId(),  studentsGrades.get(n).courses.getA(), studentsGrades.get(n).courses.getB(), studentsGrades.get(n).courses.getC(), studentsGrades.get(n).courses.getD());}}//显示全部学生信息public void showAllStudent(ArrayList<StudentsGrade> studentsGrades) {if (studentsGrades.isEmpty()) {System.out.println("当前无数据,请先添加数据");} else {System.out.println("----------所有学生信息如下----------");System.out.println("姓名\t\t性别\t\t学号\t\tA成绩\t\tB成绩\t\tC成绩\t\tD成绩");for (StudentsGrade studentsGrade : studentsGrades) {System.out.format("%s\t\t%s\t\t%d\t\t%.2f\t\t%.2f\t\t%.2f\t\t%.2f\n", studentsGrade.student.getName(),studentsGrade.student.getSex(), studentsGrade.student.getId(),  studentsGrade.courses.getA(), studentsGrade.courses.getB(), studentsGrade.courses.getC(), studentsGrade.courses.getD());}}}
}

总结

以上代码复制粘贴即可使用,第一次写csdn,如有不好的地方请指出,谢谢。本文写的内容有参考(csdn:村雨遥),如有需要的请根据自己的需求自行更改,谢谢。

学生课程系统(java版)相关推荐

  1. 签到考勤java课设_Java程序设计课程设计学生考勤系统Word版

    <Java程序设计课程设计学生考勤系统Word版>由会员分享,可在线阅读,更多相关<Java程序设计课程设计学生考勤系统Word版(6页珍藏版)>请在人人文库网上搜索. 1.传 ...

  2. 考勤管理系统c语言,C语言课程设计学生考勤系统最终版(范文1)

    <C语言课程设计学生考勤系统.doc>由会员分享,可免费在线阅读全文,更多与<C语言课程设计学生考勤系统(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文 ...

  3. c语言程序设计学生考勤系统,C语言课程设计学生考勤系统最终版(样例3)

    <C语言课程设计学生考勤系统.doc>由会员分享,可免费在线阅读全文,更多与<C语言课程设计学生考勤系统(最终版)>相关文档资源请在帮帮文库(www.woc88.com)数亿文 ...

  4. Java从小白到大牛第4篇项目实战视频课程2——Java版QQ-关东升-专题视频课程

    Java从小白到大牛第4篇项目实战视频课程2--Java版QQ-1778人已学习 课程介绍         本项目是Java SE技术实现的QQ2006聊天工具,所涉及到的知识点:Java面向对象.L ...

  5. 基于javaweb+mysql的学生选课系统(java+javaweb+jdbc)

    基于javaweb+mysql的学生选课系统(java+javaweb+jdbc) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse ...

  6. 基于javaweb的学生选课系统(java+javaweb+jdbc)

    基于javaweb的学生选课系统(java+javaweb+jdbc) 功能介绍: 用户菜单.学生管理.教师管理.课程管理.成绩排名查询 适用 课程设计,大作业,毕业设计,项目练习,学习演示等 //验 ...

  7. java动态分区分配_操作系统 动态分区分配算法课程设计 java版.pdf

    操作系统 动态分区分配算法课程设计 java版 湖 南 文 理 学 院 实 验 报 告 课程名称 操作系统课程设计 实验名称 存储管理--动态分区分配算法的模拟 成绩 学生姓名 曹乐 专业 计算机 班 ...

  8. 学生管理系统(Java版)

    学生管理系统(Java版) 前言:这个是大二做的课设(还是学生管理系统-),理论上虽然是4个人一组一起做的,但是,注意这个"但是",还是我一个人承担了所有-代码和文档基本都是我一个 ...

  9. HTML学生考勤界面代码,基于jsp的学生考勤系统-JavaEE实现学生考勤系统 - java项目源码...

    基于jsp+servlet+pojo+mysql实现一个javaee/javaweb的学生考勤系统, 该项目可用各类java课程设计大作业中, 学生考勤系统的系统架构分为前后台两部分, 最终实现在线上 ...

最新文章

  1. AngularJS 国际化——Angular-translate
  2. UA MATH564 概率论IV 次序统计量例题1
  3. 02-Armv8-A Instruction Set Architecture
  4. Connections between cities
  5. python实验收获_python实验课代码心得
  6. ubuntu修改mysql的绑定端口
  7. linux 流量 脚本,linux 检测网络出入流量 当达到一定量时 自动执行另一个脚本。...
  8. sphinx和coreseek
  9. 【Leetocde | 24 】152. 乘积最大子序列
  10. 【WiFi密码破解详细图文教程】ZOL仅此一份 详细介绍从CDlinux U盘启动到设置扫描破解
  11. Java实验方法参数传递与递归_4.3类的结构之二:方法(return,重载,可变个数形参,值传递,递归)...
  12. 阿里云肖力:原生安全打造云上绿洲
  13. cbrt c语音_C语言有哪些鲜为人知的特性?
  14. 上位机和下位机的概念,理解如何实现PC从PLC中读取数据?
  15. 关于RecyclerView(二)设置EmptyView
  16. 写给非网工的CCNA教程(1)IP地址和MAC地址
  17. “爱心助农”成绩单公布,淘宝何以成为最大舞台?
  18. c语言中的加减乘除字母,C语言加减乘除运算
  19. 20190919-2 功能测试
  20. 怎么设置日程提醒时间

热门文章

  1. Eclipse背景颜色设置(设置成豆沙绿色保护眼睛,码农保护色)
  2. 【黑科技】腾讯的 IOCanary 监控系统原理分析
  3. 登录模块 java_登录模块的进化史,带大家回顾java学习历程(二)
  4. 职场沟通视频讲座下载
  5. 驾照考试相关科目总结
  6. 十年IT经典书籍下载
  7. 中国移动产品用户体验报告
  8. 如何用java做动漫_用 Java 实现“人像动漫化”特效
  9. 毕设demo丨您有一份会议系统App项目请查收!
  10. 机械臂动力学建模(4)- Lagrangian拉格朗日算法