当前位置: 首页 > news >正文

C++ 实现学生成绩管理系统

C++ 实现学生成绩管理系统

思路:

  1. 定义 Student 类,包含学生的基本信息和成绩。
  2. 实现添加学生、删除学生、修改成绩、显示所有学生成绩和查找学生的功能。
  3. 使用向量(vector)存储学生信息。
#include <iostream>
#include <vector>
#include <string>using namespace std;// Student 类定义
class Student {
public:string name;int id;vector<int> scores;Student(string n, int i) : name(n), id(i) {}// 计算平均成绩float getAverageScore() {int total = 0;for (int score : scores) {total += score;}return scores.empty() ? 0 : (float)total / scores.size();}// 显示学生信息void display() {cout << "ID: " << id << ", Name: " << name << ", Average Score: " << getAverageScore() << endl;}
};// 成绩管理系统类定义
class GradeManagementSystem {
private:vector<Student> students;public:// 添加学生void addStudent(string name, int id) {students.push_back(Student(name, id));}// 删除学生void removeStudent(int id) {for (auto it = students.begin(); it != students.end(); ++it) {if (it->id == id) {students.erase(it);cout << "Student ID " << id << " removed." << endl;return;}}cout << "Student ID " << id << " not found." << endl;}// 添加成绩void addScore(int id, int score) {for (Student &student : students) {if (student.id == id) {student.scores.push_back(score);cout << "Score added to student ID " << id << "." << endl;return;}}cout << "Student ID " << id << " not found." << endl;}// 显示所有学生成绩void displayAllStudents() {for (Student &student : students) {student.display();}}// 查找学生void findStudent(int id) {for (Student &student : students) {if (student.id == id) {student.display();return;}}cout << "Student ID " << id << " not found." << endl;}
};int main() {GradeManagementSystem gms;int choice, id, score;string name;while (true) {cout << "\nStudent Grade Management System\n";cout << "1. Add Student\n";cout << "2. Remove Student\n";cout << "3. Add Score\n";cout << "4. Display All Students\n";cout << "5. Find Student\n";cout << "6. Exit\n";cout << "Enter your choice: ";cin >> choice;switch (choice) {case 1:cout << "Enter student name: ";cin >> name;cout << "Enter student ID: ";cin >> id;gms.addStudent(name, id);break;case 2:cout << "Enter student ID to remove: ";cin >> id;gms.removeStudent(id);break;case 3:cout << "Enter student ID to add score: ";cin >> id;cout << "Enter score: ";cin >> score;gms.addScore(id, score);break;case 4:gms.displayAllStudents();break;case 5:cout << "Enter student ID to find: ";cin >> id;gms.findStudent(id);break;case 6:return 0;default:cout << "Invalid choice. Please try again.\n";}}
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Go语言--复合类型之map、结构体
  • 高考志愿填报千万要注意这四点
  • Python的上下文管理器
  • vue2 webpack使用optimization.splitChunks分包,实现按需引入,进行首屏加载优化
  • 【Linux进阶】文件系统6——理解文件操作
  • 源代码层面分析Appium-inspector工作原理
  • puppeteer 爬虫初探
  • 学习ffmpeg时候遇到的一个死锁问题,六个队列互相等待造成的悲剧!
  • DDL:针对于数据库、数据表、数据字段的操作
  • 大华DSS user_toLoginPage.action命令执行漏洞
  • SecureCRT--使用sftp上传和下载文件
  • 【MySQL基础篇】多表查询
  • 【驱动篇】龙芯LS2K0300之ADC驱动
  • activemq推数据给前端的方式
  • 第2章 Vite快速上手
  • [iOS]Core Data浅析一 -- 启用Core Data
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • CSS魔法堂:Absolute Positioning就这个样
  • css选择器
  • ES6系列(二)变量的解构赋值
  • iOS仿今日头条、壁纸应用、筛选分类、三方微博、颜色填充等源码
  • Js基础知识(一) - 变量
  • JS实现简单的MVC模式开发小游戏
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • react-native 安卓真机环境搭建
  • 关于List、List?、ListObject的区别
  • 诡异!React stopPropagation失灵
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 聊聊springcloud的EurekaClientAutoConfiguration
  • 浅析微信支付:申请退款、退款回调接口、查询退款
  • nb
  • No resource identifier found for attribute,RxJava之zip操作符
  • 京东物流联手山西图灵打造智能供应链,让阅读更有趣 ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • ​字​节​一​面​
  • #define,static,const,三种常量的区别
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • (k8s中)docker netty OOM问题记录
  • (MATLAB)第五章-矩阵运算
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (论文阅读30/100)Convolutional Pose Machines
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (三分钟)速览传统边缘检测算子
  • (算法二)滑动窗口
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .gitignore
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .net core 的缓存方案
  • .NET Core 项目指定SDK版本
  • .NET delegate 委托 、 Event 事件
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径