21xrx.com
2024-11-22 11:10:07 Friday
登录
文章检索 我的文章 写文章
《简单Java学生成绩管理系统代码》
2023-06-11 14:52:14 深夜i     --     --
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语言和编程思想,实现自己的每个编程小目标!

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复