21xrx.com
2024-11-22 06:12:08 Friday
登录
文章检索 我的文章 写文章
C++ 学生成绩管理系统类实现
2023-07-10 13:53:44 深夜i     --     --
C++ 学生成绩 管理系统 实现

C++ 学生成绩管理系统是一种基于面向对象编程语言 C++ 开发的学生成绩管理系统,它可以实现学生的信息录入、成绩查询、成绩统计等功能。该系统具有以下特点:

1. 采用面向对象编程思想,具有良好的封装性、继承性和多态性。

2. 支持学生信息的录入、保存和修改,可以根据学号、姓名等多种方式进行查询。

3. 支持成绩的统计和分析,可以计算每个学生的平均成绩、总成绩等数据。

4. 支持文件的读写操作,可以将数据保存到文件中,也可以从文件中读取数据。

下面是一个简单的 C++ 学生成绩管理系统的类实现:

// 学生类

class Student {

public:

  string name;

  string ID;

  double scores[3]; // 存放三门成绩

  // 构造函数

  Student(string name = "", string ID = "") {

    this->name = name;

    this->ID = ID;

    for (int i = 0; i < 3; i++) {

      scores[i] = 0;

    }

  }

  // 成绩输入

  void inputScores(double s1, double s2, double s3) {

    scores[0] = s1;

    scores[1] = s2;

    scores[2] = s3;

  }

  // 计算总分

  double getTotalScore() {

    double total = 0;

    for (int i = 0; i < 3; i++) {

      total += scores[i];

    }

    return total;

  }

  // 计算平均分

  double getAverageScore() {

    double total = getTotalScore();

    return total / 3;

  }

};

// 学生管理类

class StudentManager {

private:

  vector students; // 存放学生数据的容器

public:

  // 添加学生信息

  void addStudent(Student& s) {

    students.push_back(s);

  }

  // 根据学号查询学生信息

  Student* findStudentByID(string ID) {

    for (int i = 0; i < students.size(); i++) {

      if (students[i].ID == ID) {

        return &students[i];

      }

    }

    return NULL;

  }

  // 根据姓名查询学生信息

  vector findStudentByName(string name) {

    vector result;

    for (int i = 0; i < students.size(); i++) {

      if (students[i].name == name) {

        result.push_back(&students[i]);

      }

    }

    return result;

  }

  // 计算班级平均分

  double getClassAverageScore() {

    double total = 0;

    for (int i = 0; i < students.size(); i++) {

      total += students[i].getTotalScore();

    }

    return total / students.size();

  }

  // 计算班级总分

  double getClassTotalScore() {

    double total = 0;

    for (int i = 0; i < students.size(); i++) {

      total += students[i].getTotalScore();

    }

    return total;

  }

  // 输出所有学生信息

  void displayAllStudents() {

    for (int i = 0; i < students.size(); i++) {

      cout << "学号:" << students[i].ID << " 姓名:" << students[i].name << " 成绩:" << students[i].scores[0] << " " << students[i].scores[1] << " " << students[i].scores[2] << endl;

    }

  }

  // 保存学生信息到文件中

  void saveToFile(string filename) {

    ofstream fout(filename);

    for (int i = 0; i < students.size(); i++) {

      fout << students[i].name << " " << students[i].ID << " " << students[i].scores[0] << " " << students[i].scores[1] << " " << students[i].scores[2] << endl;

    }

    fout.close();

  }

  // 从文件中读取学生信息

  void loadFromFile(string filename) {

    ifstream fin(filename);

    string name, ID;

    double s1, s2, s3;

    while (fin >> name >> ID >> s1 >> s2 >> s3) {

      Student s(name, ID);

      s.inputScores(s1, s2, s3);

      students.push_back(s);

    }

    fin.close();

  }

};

可以看到,该系统主要由两个类 Student 和 StudentManager 组成,其中 Student 类存储学生的基本信息和成绩信息,StudentManager 类实现对学生数据的管理和处理。通过使用该类实现的 C++ 学生成绩管理系统,可以方便地管理学生信息和成绩数据,提高学生学习效率和管理效率。

  
  
下一篇: C++程序?

评论区

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