一、 简易 学生成绩 管理 要求 用 C++语言 设计程序 设计实现 学生成绩管理系统的 应用程序 程序 具 体要求 如下: 通过二维数组构建学生的成绩单 学号 语文 数学 英语 物理 化学 生物 101 96 79 88 77 76 83 102 79 82 86 82 67 91 103 83 98 95 92 93 88 104 92 82 78 89 81 79 105 87 95 91 85 87 75 程序包含的功能: 1、 输入 学号和 科目名称 (如语文、数学等)查询所有同学该科门科目的平 均成绩以及该生该门科目的排名。 2、 输入 学号 ,输出所有 同学根据总成绩的排名,并输出该学号的排名。 3、 输入学号、科目名称、修改的成绩分数对成绩单中成绩进行修改。 4、程序在最开始可以选择想执行的业务选项。 其它要求: 除程序能够正确运行外,还要求程序具有友好的用户交互界面, 能够对错误输入进行处理 (比如对输入金额验证,输入 id的唯一性验证,输入 超长字符的验证) 具备良好的性能, 程序要求具有良好的注释和代码美观性。

时间: 2023-12-06 09:41:10 浏览: 54
下面是一个简单的学生成绩管理系统的 C++ 程序: ```cpp #include <iostream> #include <string> #include <iomanip> using namespace std; const int MAX_STUDENTS = 5; const int MAX_SUBJECTS = 6; string subject_names[MAX_SUBJECTS] = {"语文", "数学", "英语", "物理", "化学", "生物"}; int scores[MAX_STUDENTS][MAX_SUBJECTS] = { {101, 96, 79, 88, 77, 76, 83}, {102, 79, 82, 86, 82, 67, 91}, {103, 83, 98, 95, 92, 93, 88}, {104, 92, 82, 78, 89, 81, 79}, {105, 87, 95, 91, 85, 87, 75} }; void print_menu() { cout << "请选择要执行的业务选项:" << endl; cout << "1. 输入学号和科目名称查询平均成绩和排名" << endl; cout << "2. 输入学号查询总成绩排名" << endl; cout << "3. 输入学号、科目名称和修改的成绩分数修改成绩" << endl; cout << "4. 退出程序" << endl; } int get_student_index(int student_id) { for (int i = 0; i < MAX_STUDENTS; i++) { if (scores[i][0] == student_id) { return i; } } return -1; } int get_subject_index(string subject_name) { for (int i = 0; i < MAX_SUBJECTS; i++) { if (subject_names[i] == subject_name) { return i; } } return -1; } double get_average_score(int student_index, int subject_index) { double sum = 0; for (int i = 1; i < MAX_SUBJECTS; i++) { sum += scores[student_index][i]; } return sum / (MAX_SUBJECTS - 1); } int get_rank(int student_index) { int rank = 1; for (int i = 0; i < MAX_STUDENTS; i++) { if (i != student_index && scores[i][MAX_SUBJECTS-1] > scores[student_index][MAX_SUBJECTS-1]) { rank++; } } return rank; } int main() { int choice; do { print_menu(); cin >> choice; switch (choice) { case 1: { int student_id; string subject_name; cout << "请输入学号和科目名称(中间用空格隔开):"; cin >> student_id >> subject_name; int student_index = get_student_index(student_id); int subject_index = get_subject_index(subject_name); if (student_index == -1 || subject_index == -1) { cout << "输入有误,请重新输入!" << endl; break; } double avg_score = get_average_score(student_index, subject_index); int rank = 1; for (int i = 0; i < MAX_STUDENTS; i++) { if (i != student_index && scores[i][subject_index] > scores[student_index][subject_index]) { rank++; } } cout << student_id << "的" << subject_name << "平均成绩为:" << fixed << setprecision(2) << avg_score << endl; cout << student_id << "的" << subject_name << "排名为:" << rank << endl; break; } case 2: { int student_id; cout << "请输入学号:"; cin >> student_id; int student_index = get_student_index(student_id); if (student_index == -1) { cout << "输入有误,请重新输入!" << endl; break; } int rank = get_rank(student_index); cout << student_id << "的总成绩排名为:" << rank << endl; break; } case 3: { int student_id, subject_score; string subject_name; cout << "请输入学号、科目名称和修改的成绩分数(中间用空格隔开):"; cin >> student_id >> subject_name >> subject_score; int student_index = get_student_index(student_id); int subject_index = get_subject_index(subject_name); if (student_index == -1 || subject_index == -1) { cout << "输入有误,请重新输入!" << endl; break; } scores[student_index][subject_index] = subject_score; cout << "修改成功!" << endl; break; } case 4: { cout << "谢谢使用!" << endl; break; } default: { cout << "输入有误,请重新输入!" << endl; break; } } } while (choice != 4); return 0; } ``` 这个程序使用二维数组存储学生成绩单,其中第一列是学号,后面的列是各科成绩。程序提供了三个功能:输入学号和科目名称查询平均成绩和排名、输入学号查询总成绩排名、输入学号、科目名称和修改的成绩分数修改成绩。程序采用了友好的用户交互界面,并对错误输入进行了处理。

相关推荐

最新推荐

recommend-type

C++ 学生成绩管理系统设计报告书

个人课程设计报告书(内含源码) 内含4个类,各自具有其属性和行为。 基本实现了: (1)学生基本信息、考试科目及成绩的信息录入。 (2)已有学生信息的显示。 (3)学生基本信息的读取和保存输入数据等功能 (4)学生基本...
recommend-type

c++程序设计基础课程设计学生成绩管理系统实验报告

设计一个类Cstudent,类中包含一个学生的基本数据如下: 编号,姓名,性别,年龄,数学成绩,计算机成绩,外语成绩。 并假设编号为整数,且从1号往后连续编号;姓名为字符串,性别为字符。如: 1 LiPing m 18 89 98 ...
recommend-type

学生成绩管理系统实验报告.doc

学生成绩管理系统,功能分为: (1)添加功能:程序能够添加不同学生的记录,提供选择界面供用户选择所要添加的类别,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:...
recommend-type

C++实现会员管理程序

主要为大家详细介绍了C++实现会员管理程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
recommend-type

网考《C++语言程序设计》模拟题.docx

网考《C++语言程序设计》模拟题,需要的自取,基本上都能找到原题,已考过,网考《C++语言程序设计》
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

机器学习怎么将excel转为csv文件

机器学习是一种利用计算机算法和统计数据的方法来训练计算机来进行自动学习的科学,无法直接将excel文件转为csv文件。但是可以使用Python编程语言来读取Excel文件内容并将其保存为CSV文件。您可以使用Pandas库来读取Excel文件,并使用to_csv()函数将其保存为CSV格式。以下是代码示例: ```python import pandas as pd # 读取 Excel 文件 excel_data = pd.read_excel('example.xlsx') # 将数据保存为 CSV 文件 excel_data.to_csv('example.csv', index=
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。