JAVA 实现简单的学生成绩管理系统 您所在的位置:网站首页 JAVA成绩管理系统GUI无数据库 JAVA 实现简单的学生成绩管理系统

JAVA 实现简单的学生成绩管理系统

2024-07-12 13:44| 来源: 网络整理| 查看: 265

一、实验目的

1.掌握java的类与对象的基本概念;

2.掌握简单的信息管理系统的设计与实现。

二、实验环境

实验建议在安装了以下软件的计算机上完成:

1.       Windows xp/win7/win8/win10操作系统

2.       JDK 1.6以上版本

3.       Eclipse或NetBeans IDE或EditPlus或其它开发工具

三、实验内容与要求

(一) 问题描述

要求采用java类与对象的基本知识,实现简单的学生成绩管理系统。

(二) 实验要求

1.       实现定义学生成绩记录,记录包括字段有:学生姓名、学号、课程名称、成绩。

2.       实现学生成绩管理系统的菜单管理功能,允许查看、添加、修改、删除、统计、查找和排序等操作;

3.       实现查看学生成绩单功能,能显示所有学生成绩记录;

4.       实现添加学生成绩记录功能,输入某位学生某门课的成绩,能保存到成绩表里面;

5.       实现修改学生成绩记录功能,根据学生学号修改课程成绩;

6.       实现删除学生成绩记录功能,根据学生学号删除课程成绩;

7.       实现统计某门课平均分、最高分和最低分的功能;

8.       实现查找某位学生成绩功能,根据学生学号显示该学生的成绩;

9.       实现按成绩从高往低排序,并输出。

四、实现提示

  1. 定义学生成绩记录类,把记录的字段作为类的属性,并定义该类的基本操作方法;

  2. 采用一维数组实现学生成绩记录表,数组的数据类型为” 学生成绩记录类”。

 

第一步-建立一个Score类

package student.score.manage; public class Score { String num; String name; double score; public Score(){ } public void setNum(String num) { this.num = num; } public void setName(String name) { this.name = name; } public void setScore(double score) { this.score = score; } }

 

 

 

第二步-建立一个ScoreList类

package student.score.manage; import java.util.Scanner; public class ScoreList { int maxLength = 100; int length = 0; Score[] data = new Score[maxLength]; Scanner input = new Scanner(System.in); public ScoreList() { } //添加记录方法 public void add() { if(length < maxLength) { data[length] = new Score(); System.out.print("请输入学生的学号: "); data[length].setNum(input.next()); System.out.print("请输入学生的姓名:"); data[length].setName(input.next()); System.out.print("请输入学生的成绩:"); data[length].setScore(input.nextDouble()); length++; System.out.println("添加成功!"); } else { System.out.println("添加失败!"); } } //显示成绩单方法 public void transcript() { System.out.println("====================================="); System.out.println(" 学号 姓名 成绩 "); for(int i = 0; i < length; i++) { System.out.println(data[i].num + "\t" + data[i].name + "\t" + "\t" + data[i].score); } System.out.println("=====================================\n"); } //成绩从高往低排序方法 public void sort() { Score temp = new Score(); for(int i = 1; i < length; i++) { for(int j = 0; j < length - i; j++) { if(data[j].score < data[j + 1].score) { //冒泡法排序 temp = data[j]; data[j] = data[j + 1]; data[j + 1] = temp; } } } } //平均分、最大最小值方法 public void average() { double sum = 0.0; double max = 0.0; double min = 100.0; for(int i = 0; i < length; i++) { sum += data[i].score; max = max > data[i].score ? max : data[i].score; min = min < data[i].score ? min : data[i].score; //三目运算法 } System.out.printf("这门课的平均成绩为: %.2f\n", sum/length); System.out.println("最高分为: " + max + "\n" + "最低分为: " + min + "\n"); } //删除学生记录方法 public void delete() { System.out.print("请输入您要删除信息的学生的学号: "); String number1 = input.next(); int i, flag = length; for(i = 0; i < length; i++) { if(number1.equals(data[i].num)) { flag = i; break; } } if(i == length) { System.out.println("查无此人!请核对后重新输入 \n"); delete(); } else { for(int j = flag; j < length; j++) { data[j] = data[j + 1]; } System.out.println("删除成功!\n"); length -= 1; //不减1会报数组越界的错误 } } //查询某个学生信息方法 public void inquire() { System.out.print("请输入您要查询成绩的学生的学号:"); String number2 = input.next(); int i; for(i = 0; i < length; i++) { if(number2.equals(data[i].num)) { System.out.println("===================================="); System.out.println(" 学号 姓名 成绩 "); System.out.println(data[i].num + "\t" + data[i].name + "\t" + "\t" + data[i].score); System.out.println("====================================\n"); break; } } if(i == length) { System.out.println("查无此人!请核对后重新输入学号 \n"); inquire(); } } //修改学生信息方法 public void recompose() { System.out.print("请输入您要修改信息的学生的学号:"); String number3 = input.next(); int i; for(i = 0; i < length; i++) { if(number3.equals(data[i].num)) { System.out.println("请输入该学生新的学号,姓名和成绩:"); data[i].setNum(input.next()); data[i].setName(input.next()); data[i].setScore(input.nextDouble()); System.out.println("修改成功!\n"); break; } } if(i == length) { System.out.println("查无此人!请核对后重新输入学号\n"); recompose(); } } }

 

最后一步,当然是建立一个Test类啦:

 

package student.score.manage; import java.util.Scanner; public class Test { public static void main(String[] args) { Scanner input = new Scanner(System.in); String choice = "1"; ScoreList studentScoreList = new ScoreList(); System.out.println("**********学生成绩管理系统********"); while(choice.equals("0") == false) { 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("7.按成绩从高往低排序,并输出"); System.out.println("0.退出程序"); System.out.print("Enter your choice: "); choice = input.next(); switch(choice) { case "0": System.out.println("谢谢您的使用,欢迎下次光临!\n" + "**********按任意键结束程序**********"); break; case "1": studentScoreList.transcript(); System.out.println("请问您还需要什么服务?\n"); break; case "2": int i = 1; do { studentScoreList.add(); System.out.println("\n是否继续添加?" + "\n" + "0.否" + "\n" + "1.是"); i = input.nextInt(); }while(i == 1); System.out.println("请问您还需要什么服务?\n"); break; case "3": studentScoreList.recompose(); System.out.println("请问您还需要什么服务?\n"); break; case "4": studentScoreList.delete(); System.out.println("请问您还需要什么服务?\n"); break; case "5": studentScoreList.inquire(); System.out.println("请问您还需要什么服务?\n"); break; case "6": studentScoreList.average(); System.out.println("请问您还需要什么服务?\n"); break; case "7": studentScoreList.sort(); studentScoreList.transcript(); System.out.println("请问您还需要什么服务?\n"); break; default: System.out.println("Invalid input! Please enter again."); break; } } } }

 

这里是初学Java的渣新,还请大佬轻喷,有错误的地方还请多多指教,至于为啥我这个渣新也敢发代码出来,还不是学校要求的!!!而且我想我这个渣新写的代码对于萌新来说也更好理解,谢谢支持了

鉴于很多人跟我要源码 我这里贴出github地址:https://github.com/ZenGx1n/student-score-manage

有需求的自行下载 谢谢



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有