C++实现简单学生管理系统

C++实现简单学生管理系统

概述

这是一个基于C++语言的简单学生管理系统,可实现学生信息的添加、删除、修改、查询、打印等功能。主要分为4个模块:菜单选择、学生信息操作、文件读写和程序退出。

菜单选择

菜单选择模块主要用于输出菜单并接受用户输入的选项。

void showMenu() { 
  cout << "*****学生管理系统*****" << endl; 
  cout << "      1.添加学生信息" << endl; 
  cout << "      2.删除学生信息" << endl; 
  cout << "      3.修改学生信息" << endl; 
  cout << "      4.查询学生信息" << endl; 
  cout << "      5.打印学生信息" << endl; 
  cout << "      6.退出程序" << endl; 
  cout << "************************" << endl; 
}

int getInput() { 
  int option = 0; 
  cout << "请输入选项:" << endl; 
  cin >> option; 
  return option; 
}

学生信息操作

学生信息操作模块主要用于添加、删除、修改、查询和打印学生信息。

学生信息结构体

struct Student { 
  string name; 
  int id; 
  int age; 
  string gender; 
  float score; 
}; 

添加学生信息

void addStudent(vector<Student>& vec) { 
  Student stu; 
  cout << "请输入学生姓名:" << endl; 
  cin >> stu.name; 
  cout << "请输入学生学号:" << endl; 
  cin >> stu.id; 
  cout << "请输入学生年龄:" << endl; 
  cin >> stu.age; 
  cout << "请输入学生性别:" << endl; 
  cin >> stu.gender; 
  cout << "请输入学生成绩:" << endl; 
  cin >> stu.score; 
  vec.push_back(stu); 
  cout << "添加成功!" << endl; 
}

删除学生信息

void deleteStudent(vector<Student>& vec) { 
  int id; 
  cout << "请输入要删除的学生学号:" << endl; 
  cin >> id; 
  for (auto it = vec.begin(); it != vec.end(); it++) { 
    if (it->id == id) { 
      vec.erase(it); 
      cout << "删除成功!" << endl; 
      return; 
    } 
  } 
  cout << "未找到该学生信息!" << endl; 
}

修改学生信息

void modifyStudent(vector<Student>& vec) { 
  int id; 
  cout << "请输入要修改的学生学号:" << endl; 
  cin >> id; 
  for (auto& stu : vec) { 
    if (stu.id == id) { 
      cout << "请输入学生姓名:" << endl; 
      cin >> stu.name; 
      cout << "请输入学生年龄:" << endl; 
      cin >> stu.age; 
      cout << "请输入学生性别:" << endl; 
      cin >> stu.gender; 
      cout << "请输入学生成绩:" << endl; 
      cin >> stu.score; 
      cout << "修改成功!" << endl; 
      return; 
    } 
  } 
  cout << "未找到该学生信息!" << endl; 
}

查询学生信息

void queryStudent(vector<Student>& vec) { 
  int id; 
  cout << "请输入要查询的学生学号:" << endl; 
  cin >> id; 
  for (auto& stu : vec) { 
    if (stu.id == id) { 
      cout << "姓名: " << stu.name << endl; 
      cout << "学号: " << stu.id << endl; 
      cout << "年龄: " << stu.age << endl; 
      cout << "性别: " << stu.gender << endl; 
      cout << "成绩: " << stu.score << endl; 
      return; 
    } 
  } 
  cout << "未找到该学生信息!" << endl; 
}

打印学生信息

void printStudent(vector<Student>& vec) { 
  cout << "学生信息列表:" << endl; 
  for (auto& stu : vec) { 
    cout << "姓名: " << stu.name << endl; 
    cout << "学号: " << stu.id << endl; 
    cout << "年龄: " << stu.age << endl; 
    cout << "性别: " << stu.gender << endl; 
    cout << "成绩: " << stu.score << endl; 
    cout << "---------------" << endl; 
  } 
}

文件读写

文件读写模块主要用于将学生信息保存在文件中并从文件中读取学生信息。

写入学生信息

void saveData(vector<Student>& vec, string fileName) { 
  ofstream outFile; 
  outFile.open(fileName, ios::out | ios::trunc); 
  for (auto& stu : vec) { 
    outFile << stu.name << " " << stu.id << " " << stu.age 
            << " " << stu.gender << " " << stu.score << endl; 
  } 
  cout << "保存成功!" << endl; 
  outFile.close(); 
}

读取学生信息

void loadData(vector<Student>& vec, string fileName) { 
  ifstream inFile; 
  inFile.open(fileName, ios::in); 
  if (!inFile) { 
    cout << "文件不存在!" << endl; 
    return; 
  } 
  Student stu; 
  while (inFile >> stu.name >> stu.id >> stu.age >> stu.gender >> stu.score) { 
    vec.push_back(stu); 
  } 
  cout << "读取成功!" << endl; 
  inFile.close(); 
}

程序退出

程序退出模块主要用于在用户选择退出程序时结束程序运行。

void exitProgram() { 
  cout << "程序已退出!" << endl; 
  exit(0); 
}

示例说明

示例1

*****学生管理系统*****
      1.添加学生信息
      2.删除学生信息
      3.修改学生信息
      4.查询学生信息
      5.打印学生信息
      6.退出程序
************************
请输入选项:
1
请输入学生姓名:
张三
请输入学生学号:
1001
请输入学生年龄:
18
请输入学生性别:
男
请输入学生成绩:
90
添加成功!
请输入选项:
5
学生信息列表:
姓名: 张三
学号: 1001
年龄: 18
性别: 男
成绩: 90
---------------
请输入选项:
6
程序已退出!

示例2

*****学生管理系统*****
      1.添加学生信息
      2.删除学生信息
      3.修改学生信息
      4.查询学生信息
      5.打印学生信息
      6.退出程序
************************
请输入选项:
1
请输入学生姓名:
李四
请输入学生学号:
1002
请输入学生年龄:
20
请输入学生性别:
女
请输入学生成绩:
80
添加成功!
请输入选项:
4
请输入要查询的学生学号:
1002
姓名: 李四
学号: 1002
年龄: 20
性别: 女
成绩: 80
请输入选项:
2
请输入要删除的学生学号:
1002
删除成功!
请输入选项:
5
学生信息列表:
姓名: 张三
学号: 1001
年龄: 18
性别: 男
成绩: 90
---------------
请输入选项:
3
请输入要修改的学生学号:
1001
请输入学生姓名:
张三丰
请输入学生年龄:
22
请输入学生性别:
男
请输入学生成绩:
95
修改成功!
请输入选项:
5
学生信息列表:
姓名: 张三丰
学号: 1001
年龄: 22
性别: 男
成绩: 95
---------------
请输入选项:
6
程序已退出!

以上就是C++实现简单学生管理系统的完整攻略,希望能对您有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现简单学生管理系统 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 探究c++虚表实现代码

    探究 C++ 虚表的实现代码是一个相当深入的话题,需要对 C++ 对象模型以及函数调用机制有一定的了解。下面将介绍如何进行这样一个的探究,包括以下的几个部分: 对 C++ 对象模型的介绍 虚表的定义和用途 虚表的实现方式 通过示例说明虚表的使用和作用 对 C++ 对象模型的介绍 在了解虚表实现之前,我们需要先了解 C++ 对象模型。C++ 对象模型指的是 C…

    C 2023年5月23日
    00
  • js中的json对象详细介绍

    下面我就来为你讲解一下“JS中的JSON对象详细介绍”的完整攻略。 什么是JSON JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript语言的一个子集,由Douglas Crockford在2001年提出。 JSON格式具有以下特点: 语法非常简单,易于阅读和编写。 可以表示简单的和复杂的数据…

    C 2023年5月23日
    00
  • Java详细讲解异常Exception的处理

    Java详细讲解异常Exception的处理 什么是异常Exception 异常(Exception)指的是程序运行过程中不正常(错误)的情况,例如输入输出错误、计算错误、网络连接中断等情况。一般来说,出现异常会导致程序停止运行。 在Java中,异常被抛出后可以被程序处理,以免程序崩溃。Java中的异常分为两种类型:受检异常(Checked Exceptio…

    C 2023年5月22日
    00
  • C语言高级教程之变长数组详解

    C语言高级教程之变长数组详解 什么是变长数组 变长数组是C99标准新增的特性,与传统的数组不同的是,它的大小是在运行时动态确定的。在定义变长数组时,需要使用变量来代表数组的大小。变长数组的大小可以在程序运行时根据需要而动态地改变,这使得程序具备了更好的灵活性。 声明和使用变长数组 声明变长数组的语法与传统的数组有所不同,需要使用中括号加上变量的形式来指定数组…

    C 2023年5月23日
    00
  • 实例讲解如何在PHP的Yii框架中进行错误和异常处理

    在Yii框架中进行错误和异常处理需要遵循一定的规范和流程。以下是在Yii框架中进行错误和异常处理的完整攻略: 错误处理 Yii框架提供了CErrorHandler类处理应用程序运行期间产生的错误。CErrorHandler类使用handleError()来捕获错误,并且渲染错误页面或记录错误信息。 捕获错误 set_error_handler(functio…

    C 2023年5月23日
    00
  • Json对象与Json字符串互转(4种转换方式)

    Json对象与Json字符串的互转是前端开发中经常遇到的问题,本文将介绍4种不同的转换方式。 1. 通过JSON.stringify()将JSON对象转换为JSON字符串 使用 JSON.stringify() 方法可以将一个 JSON 对象转换成 JSON 字符串。这种转换方式可以将一个 JavaScript 对象转换为 JSON 字符串,并可以对该字符串…

    C 2023年5月22日
    00
  • GO语言中通道和sync包的使用教程分享

    GO语言中通道和sync包的使用教程分享 什么是通道 通道(channel)是 Go 语言中一种特有的同步原语,用于在不同 Goroutine 之间交换数据。通道是一种类型的值,可以对它进行初始化、传递给函数、赋值给变量,甚至可以把它放到切片或结构体中。 创建通道 通道通过 make() 函数来创建,语法如下: ch := make(chan int) 这里…

    C 2023年5月23日
    00
  • windows系统提示不是内部或外部命令也不是可运行的程序的解决办法

    Windows系统提示不是内部或外部命令也不是可运行的程序的解决办法 当我们在Windows系统中使用命令行或运行可执行文件时,可能会遇到”不是内部或外部命令,也不是可运行的程序”的提示。这通常是因为系统无法找到我们输入的命令或可执行文件所在的路径。下面,我们将详细介绍如何解决这个问题。 常见原因 命令或可执行文件路径错误:Windows系统在使用命令行或执…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部