21xrx.com
2025-06-28 21:57:13 Saturday
文章检索 我的文章 写文章
C++成绩管理系统代码实现
2023-06-29 16:22:35 深夜i     17     0
C++语言 成绩管理系统 代码实现 数据结构 文件处理

C++是一种强大的编程语言,它被广泛应用于编写各种类型的软件,包括成绩管理系统。成绩管理系统是任何学校或教育机构必备的工具之一,因为它可以帮助管理者有效地跟踪学生的学习进展,提供有关考试成绩、出勤率和其他重要信息的实时更新。在本文中,我们将通过C++代码实现一个简单的成绩管理系统。

首先,我们需要设置基本的数据结构和变量。在这个系统中,我们将使用一个名为“Student”的结构体来表示每个学生的姓名、学号和成绩。为了存储学生的信息,我们还需要一个包含多个“Student”对象的数组,这个数组可以动态地增加或删除学生,以适应不同的人数。下面是用于设置这些变量的代码片段:

//定义学生结构体
struct Student
  string name;
  int id;
  float score;
;
//定义存储多个学生的动态数组
vector<Student> students;

接下来,我们需要实现一些基本的函数,以便用户可以向系统中添加、删除或查询学生信息。下面是这些函数的代码片段:

1. 添加学生信息

void addStudent()
{
  Student student;
  cout << "请输入学生姓名:";
  cin >> student.name;
  cout << "请输入学号:";
  cin >> student.id;
  cout << "请输入成绩:";
  cin >> student.score;
  students.push_back(student);
}

2. 删除学生信息

void removeStudent()
{
  int id;
  cout << "请输入要删除的学号:";
  cin >> id;
  for (int i = 0; i < students.size(); i++)
  {
    if (students[i].id == id)
    {
      students.erase(students.begin() + i);
      cout << "已成功删除学号为" << id << "的学生。" << endl;
      return;
    }
  }
  cout << "查无此人,请检查输入的学号。" << endl;
}

3. 查询学生信息

void searchStudent()
{
  int id;
  cout << "请输入要查询的学号:";
  cin >> id;
  for (int i = 0; i < students.size(); i++)
  {
    if (students[i].id == id)
    {
      cout << "学生姓名:" << students[i].name << endl;
      cout << "学号:" << students[i].id << endl;
      cout << "成绩:" << students[i].score << endl;
      return;
    }
  }
  cout << "查无此人,请检查输入的学号。" << endl;
}

现在我们已经完成了基本的函数,我们还可以从文件中加载和保存学生信息,以便我们可以在程序退出时保存数据。下面是用于加载和保存数据的代码片段:

1. 加载学生信息

void loadStudents()
{
  ifstream file("students.txt");
  if (!file.is_open())
  请检查文件是否存在。" << endl;
    return;
  
  while (!file.eof())
  {
    Student student;
    file >> student.name >> student.id >> student.score;
    students.push_back(student);
  }
  file.close();
  cout << "已成功加载" << students.size() << "个学生的信息。" << endl;
}

2. 保存学生信息

void saveStudents()
{
  ofstream file("students.txt");
  if (!file.is_open())
  
    cout << "无法打开文件students.txt
  for (int i = 0; i < students.size(); i++)
  {
    file << students[i].name << " " << students[i].id << " " << students[i].score << endl;
  }
  file.close();
  cout << "已成功保存" << students.size() << "个学生的信息。" << endl;
}

现在我们已经实现了一个简单的成绩管理系统,它可以让您轻松地添加、删除或查询学生的信息。请注意,这只是一个基本的示例,您可以根据自己的需求和要求进行修改和扩展。

完整代码:

#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
//定义学生结构体
struct Student
  string name;
  int id;
  float score;
;
//定义存储多个学生的动态数组
vector<Student> students;
//添加学生信息
void addStudent()
{
  Student student;
  cout << "请输入学生姓名:";
  cin >> student.name;
  cout << "请输入学号:";
  cin >> student.id;
  cout << "请输入成绩:";
  cin >> student.score;
  students.push_back(student);
}
//删除学生信息
void removeStudent()
{
  int id;
  cout << "请输入要删除的学号:";
  cin >> id;
  for (int i = 0; i < students.size(); i++)
  {
    if (students[i].id == id)
    {
      students.erase(students.begin() + i);
      cout << "已成功删除学号为" << id << "的学生。" << endl;
      return;
    }
  }
  cout << "查无此人,请检查输入的学号。" << endl;
}
//查询学生信息
void searchStudent()
{
  int id;
  cout << "请输入要查询的学号:";
  cin >> id;
  for (int i = 0; i < students.size(); i++)
  {
    if (students[i].id == id)
    {
      cout << "学生姓名:" << students[i].name << endl;
      cout << "学号:" << students[i].id << endl;
      cout << "成绩:" << students[i].score << endl;
      return;
    }
  }
  cout << "查无此人,请检查输入的学号。" << endl;
}
//加载学生信息
void loadStudents()
{
  ifstream file("students.txt");
  if (!file.is_open())
  请检查文件是否存在。" << endl;
    return;
  
  while (!file.eof())
  {
    Student student;
    file >> student.name >> student.id >> student.score;
    students.push_back(student);
  }
  file.close();
  cout << "已成功加载" << students.size() << "个学生的信息。" << endl;
}
//保存学生信息
void saveStudents()
{
  ofstream file("students.txt");
  if (!file.is_open())
  
    cout << "无法打开文件students.txt
  for (int i = 0; i < students.size(); i++)
  {
    file << students[i].name << " " << students[i].id << " " << students[i].score << endl;
  }
  file.close();
  cout << "已成功保存" << students.size() << "个学生的信息。" << endl;
}
//主函数
int main()
{
  int choice = 0;
  while (true)
  {
    cout << "--------------------------------------" << endl;
    cout << "1. 添加学生信息" << endl;
    cout << "2. 删除学生信息" << endl;
    cout << "3. 查询学生信息" << endl;
    cout << "4. 加载学生信息" << endl;
    cout << "5. 保存学生信息" << endl;
    cout << "0. 退出" << endl;
    cout << "--------------------------------------" << endl;
    cout << "请选择要执行的操作:";
    cin >> choice;
    switch (choice)
    {
    case 1:
      addStudent();
      break;
    case 2:
      removeStudent();
      break;
    case 3:
      searchStudent();
      break;
    case 4:
      loadStudents();
      break;
    case 5:
      saveStudents();
      break;
    case 0:
      cout << "已退出成绩管理系统。" << endl;
      return 0;
    default:
      cout << "无效的选项,请重试。" << endl;
      break;
    }
  }
  return 0;
}

  
  

评论区