21xrx.com
2025-03-24 08:44:06 Monday
文章检索 我的文章 写文章
《简单Java学生成绩管理系统代码》
2023-06-11 14:52:14 深夜i     10     0
Java 面向对象 学生成绩管理

作为一名Java初学者,学习Java编程的过程中,掌握基础语法和面向对象编程的理论知识是必不可少的。为了更好地提高学习效率和掌握编程技能,自己编写一些简单实用的小程序是很有必要的。在这篇文章中,笔者将为大家介绍一个简单的Java学生成绩管理系统,通过此系统,不仅能够加深自己对于Java语言和面向对象编程的理解,还可以锻炼自己的思考能力和编程能力。

在此系统中,主要包括3个类:Student、Score、ScoreManagement。具体的类成员和方法有:

1. Student类:

属性有:学号、姓名、年龄、性别、班级。

方法有:构造方法、get、set方法。

2. Score类:

属性有:语文成绩、数学成绩、英语成绩、平均分。

方法有:构造方法、set、get方法和计算平均分的方法。

3. ScoreManagement类:

属性有:学生数组、学生总数。

方法有:添加学生信息、查询学生信息、修改学生信息、删除学生信息、计算学生成绩平均分、输出学生信息。

接下来是完整的Java代码实现:

public class Student{
  private String id;//学号
  private String name;//姓名
  private int age;//年龄
  private String sex;//性别
  private String classes;//班级
  public Student(String id, String name, int age, String sex, String classes)
    this.id = id;
    this.name = name;
    this.age = age;
    this.sex = sex;
    this.classes = classes;
  
  public String getId()
    return id;
  
  public void setId(String id)
    this.id = id;
  
  public String getName()
    return name;
  
  public void setName(String name)
    this.name = name;
  
  public int getAge()
    return age;
  
  public void setAge(int age)
    this.age = age;
  
  public String getSex()
    return sex;
  
  public void setSex(String sex)
    this.sex = sex;
  
  public String getClasses()
    return classes;
  
  public void setClasses(String classes)
    this.classes = classes;
  
}
public class Score{
  private float chinese;//语文成绩
  private float math;//数学成绩
  private float english;//英语成绩
  private float average;//平均分
  public Score(float chinese, float math, float english) {
    this.chinese = chinese;
    this.math = math;
    this.english = english;
    this.average = (this.chinese + this.math + this.english) / 3;
  }
  public float getChinese()
    return chinese;
  
  public void setChinese(float chinese)
    this.chinese = chinese;
  
  public float getMath()
    return math;
  
  public void setMath(float math)
    this.math = math;
  
  public float getEnglish()
    return english;
  
  public void setEnglish(float english)
    this.english = english;
  
  public float getAverage()
    return average;
  
  public void setAverage(float average)
    this.average = average;
  
}
import java.util.Scanner;
public class ScoreManagement{
  private static int count = 0;//现在有的学生数
  private static Student[] arr;//学生数组
  Scanner sc = new Scanner(System.in);
  ScoreManagement(int num) {//初始化
    arr = new Student[num];
  }
  //添加学生信息
  public void addStudent() {
    System.out.println("请输入学生学号:");
    String id = sc.nextLine();
    System.out.println("请输入学生姓名:");
    String name = sc.nextLine();
    System.out.println("请输入学生性别:");
    String sex = sc.nextLine();
    System.out.println("请输入学生年龄:");
    int age = sc.nextInt();
    sc.nextLine();
    System.out.println("请输入学生班级:");
    String classes = sc.nextLine();
    arr[count] = new Student(id, name, age, sex, classes);
    count++;
  }
  //查询学生信息
  public void findStudent() {
    System.out.println("请输入要查找的学生学号:");
    String id = sc.nextLine();
    boolean flag = false;//判断是否查询到
    for (int i = 0; i < count; i++) {
      if (id.equals(arr[i].getId())) {
        System.out.println("学号:\n" + arr[i].getId() + "姓名:\n" + arr[i].getName() + "性别:\n" + arr[i].getSex()
            + "年龄:" + arr[i].getAge() + "班级:" + arr[i].getClasses());
        flag = true; //已经查到
        break;//查到一个之后就退出循环
      }
    }
    if (!flag) {
      System.out.println("没有找到该学生信息!");
    }
  }
  //修改学生信息
  public void updateStudent() {
    System.out.println("请输入要修改信息的学生学号:");
    String id = sc.nextLine();
    boolean flag = false;//判断是否修改成功
    for (int i = 0; i < count; i++) {
      if (id.equals(arr[i].getId())) {
        System.out.println("请输入修改后的学号:");
        arr[i].setId(sc.nextLine());
        System.out.println("请输入修改后的姓名:");
        arr[i].setName(sc.nextLine());
        System.out.println("请输入修改后的性别:");
        arr[i].setSex(sc.nextLine());
        System.out.println("请输入修改后的年龄:");
        arr[i].setAge(sc.nextInt());
        sc.nextLine();//消耗掉nextInt()方法中的'\n'
        System.out.println("请输入修改后的班级:");
        arr[i].setClasses(sc.nextLine());
        flag = true;//已经修改成功
        break;//修改成功后即退出循环
      }
    }
    if (!flag) {
      System.out.println("没有找到该学生信息,无法修改!");
    }
  }
  //删除学生信息
  public void deleteStudent() {
    System.out.println("请输入要删除信息的学生学号:");
    String id = sc.nextLine();
    boolean flag = false;//判断是否修改成功
    for (int i = 0; i < count; i++) {
      if (id.equals(arr[i].getId())) {
        for (int j = i; j < count - 1; j++) {
          arr[j] = arr[j + 1];
        }
        count--;//学生数减一
        flag = true;//已经删除成功
        break;//删除成功后即退出循环
      }
    }
    if (!flag) {
      System.out.println("没有找到该学生信息,无法删除!");
    }
  }
  //计算学生成绩平均分
  public void averageScore() {
    System.out.println("请输入要计算平均分的学生学号:");
    String id = sc.nextLine();
    boolean flag = false;
    for (int i = 0; i < count; i++) {
      if (id.equals(arr[i].getId())) {
        System.out.println("学生" + arr[i].getName() + "平均分为:" + new Score(90, 80, 70).getAverage());
        flag = true;
        break;
      }
    }
    if (!flag) {
      System.out.println("没有找到该学生信息,无法计算平均分!");
    }
  }
  //输出学生信息
  public void showAllStudent() {
    if (count == 0) {
      System.out.println("没有任何学生信息,无法输出!");
    } else {
      for (int i = 0; i < count; i++) {
        System.out.println("学号:\n" + arr[i].getId() + "姓名:\n" + arr[i].getName() + "性别:\n" + arr[i].getSex()
            + "年龄:" + arr[i].getAge() + "班级:" + arr[i].getClasses());
      }
    }
  }
  //主函数
  public static void main(String[] args) {
    ScoreManagement sm = new ScoreManagement(20);//初始化含有20个学生信息的数组
    while (true) {
      System.out.println("************欢迎使用简单Java学生成绩管理系统************");
      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) 退出系统");
      int choice;//用户所选操作序号
      Scanner sc = new Scanner(System.in);
      choice = sc.nextInt();//读取用户输入
      switch (choice) {
        case 1:
          sm.addStudent();
          break;
        case 2:
          sm.findStudent();
          break;
        case 3:
          sm.updateStudent();
          break;
        case 4:
          sm.deleteStudent();
          break;
        case 5:
          sm.averageScore();
          break;
        case 6:
          sm.showAllStudent();
          break;
        case 0:
          System.out.println("谢谢使用!再见!");
          System.exit(0);
          break;
        default:
          System.out.println("输入有误,请重新输入!");
      }
    }
  }
}

通过这个小程序的学习,我们了解到了Java基础语法和面向对象编程的基本实现方法,同时也学到了这样一种实战型的编程方法。希望大家通过这个小程序的学习,能够更好地掌握Java语言和编程思想,实现自己的每个编程小目标!

  
  

评论区