21xrx.com
2024-12-27 20:53:58 Friday
登录
文章检索 我的文章 写文章
C++成绩管理系统代码实现
2023-06-29 16:22:35 深夜i     --     --
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;

}

  
  

评论区

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