利用c++设计一个学生成绩管理系统主要功能是对学生的成绩进行输入、修改、管理和存储。系统功能要求:①界面要求示例学生成绩管理系统1--输入数据2--查询成绩3--修改成绩4--输出所有学生成绩5--统计及格和优秀人数6--退出系统0--清屏②功能这个程序的主要功能是输入学生学号要注意保证学号的唯一性、姓名、成绩并可以对学生成绩按学号或姓名进行查询。该系统具有存储学生数据按学号、姓名查询按需要修改学
以下是一个简单的C++示例代码,实现了学生成绩管理系统的功能:
#include <iostream>
#include <string>
#include <map>
using namespace std;
struct Student {
string name;
float score;
};
map<string, Student> students;
void inputData() {
string id, name;
float score;
cout << "请输入学生学号:";
cin >> id;
if (students.find(id) != students.end()) {
cout << "学号已存在!" << endl;
return;
}
cout << "请输入学生姓名:";
cin >> name;
cout << "请输入学生成绩:";
cin >> score;
Student student;
student.name = name;
student.score = score;
students[id] = student;
cout << "学生信息已保存!" << endl;
}
void queryScore() {
int choice;
string input;
cout << "请选择查询方式(1-按学号查询,2-按姓名查询):";
cin >> choice;
if (choice == 1) {
cout << "请输入学生学号:";
cin >> input;
if (students.find(input) != students.end()) {
Student student = students[input];
cout << "学号:" << input << " 姓名:" << student.name << " 成绩:" << student.score << endl;
} else {
cout << "未找到该学生!" << endl;
}
} else if (choice == 2) {
cout << "请输入学生姓名:";
cin >> input;
bool found = false;
for (const auto& pair : students) {
if (pair.second.name == input) {
cout << "学号:" << pair.first << " 姓名:" << pair.second.name << " 成绩:" << pair.second.score << endl;
found = true;
}
}
if (!found) {
cout << "未找到该学生!" << endl;
}
} else {
cout << "无效的选择!" << endl;
}
}
void modifyScore() {
string id;
float score;
cout << "请输入要修改成绩的学生学号:";
cin >> id;
if (students.find(id) != students.end()) {
cout << "请输入新的成绩:";
cin >> score;
students[id].score = score;
cout << "成绩已修改!" << endl;
} else {
cout << "未找到该学生!" << endl;
}
}
void outputAllScores() {
for (const auto& pair : students) {
cout << "学号:" << pair.first << " 姓名:" << pair.second.name << " 成绩:" << pair.second.score << endl;
}
}
void countPassAndExcellent() {
int passCount = 0;
int excellentCount = 0;
for (const auto& pair : students) {
if (pair.second.score >= 60) {
passCount++;
if (pair.second.score >= 90) {
excellentCount++;
}
}
}
cout << "及格人数:" << passCount << endl;
cout << "优秀人数:" << excellentCount << endl;
}
int main() {
students["220101"] = { "张三", 92 };
students["220102"] = { "李四", 85 };
students["220103"] = { "王五", 70 };
students["220104"] = { "陈六", 60 };
students["220105"] = { "钱七", 80 };
students["L220106"] = { "Jessi", 90 };
students["L220107"] = { "Yoon Suk Yeol", 3 };
int choice;
while (true) {
cout << "************************************" << endl;
cout << "学生成绩管理系统" << endl;
cout << "************************************" << endl;
cout << "************************************" << endl;
cout << "**1--输入数据***********************" << endl;
cout << "**2--查询成绩***********************" << endl;
cout << "**3--修改成绩***********************" << endl;
cout << "**4--输出所有学生成绩***************" << endl;
cout << "**5--统计及格和优秀人数*************" << endl;
cout << "**6--退出系统***********************" << endl;
cout << "**0--清屏***************************" << endl;
cout << "************************************" << endl;
cout << "请选择操作:";
cin >> choice;
switch (choice) {
case 1:
inputData();
break;
case 2:
queryScore();
break;
case 3:
modifyScore();
break;
case 4:
outputAllScores();
break;
case 5:
countPassAndExcellent();
break;
case 6:
cout << "感谢使用!" << endl;
return 0;
case 0:
system("cls");
break;
default:
cout << "无效的选择!" << endl;
break;
}
}
return 0;
}
这段代码定义了一个Student结构体来表示学生的姓名和成绩。使用map容器来存储学生数据,以学号作为键,学生结构体作为值。
主函数中使用一个循环来显示菜单选项,并根据用户选择执行相应的功能函数。其中,inputData函数用于输入学生数据,queryScore函数用于查询成绩,modifyScore函数用于修改成绩,outputAllScores函数用于输出所有学生成绩,countPassAndExcellent函数用于统计及格和优秀人数。
在主函数的开头,已经预先定义了一些初始数据。你可以根据需要修改或扩展这些数据。
此外,代码中还使用了system("cls")函数来清屏。这个函数在Windows系统上可以清空控制台屏幕,如果你使用的是其他操作系统,请根据系统环境选择相应的清屏方法
原文地址: https://www.cveoy.top/t/topic/hOAv 著作权归作者所有。请勿转载和采集!