C++实现简单班级成绩管理系统攻略
1. 需求分析
在实现班级成绩管理系统前,首先需要明确实现系统的主要功能,如本系统需要实现的功能有:
- 添加学生的基本信息,包括学生姓名和学号;
- 添加学生成绩信息,包括数学、语文、英语等科目的成绩;
- 对学生成绩进行管理,包括查看某个学生的成绩、某个科目的平均成绩、班级总体平均成绩等。
2. 设计思路
本系统的设计思路为:
- 首先,定义学生基本信息的结构体以及学生成绩信息的结构体,用于存储学生信息和成绩信息;
- 然后,通过动态数组对学生信息进行管理,包括添加新的学生信息、删除不需要的学生信息、查找某个学生的信息等;
- 最后,对学生成绩进行管理,包括添加学生成绩、统计某个科目的平均成绩、班级总体平均成绩等。
3. 代码实现
下面是班级成绩管理系统的具体代码实现:
#include<iostream>
#include<cstring>
#include<cstdlib>
using namespace std;
// 定义学生基本信息结构体
typedef struct Student {
char name[20]; // 学生姓名
int id; // 学生学号
};
// 定义学生成绩信息结构体
typedef struct Grade {
int math; // 数学成绩
int chinese; // 语文成绩
int english; // 英语成绩
int sum; // 成绩总和
float average; // 平均成绩
};
// 定义学生数组,动态存储学生的基本信息
Student* stuArr = new Student[1000];
int studentCnt = 0;
// 定义学生成绩数组,动态存储学生成绩信息
Grade* gradeArr = new Grade[1000];
// 添加学生信息
void addStudent() {
Student stu;
cout << "请输入学生姓名:";
cin >> stu.name;
cout << "请输入学生学号:";
cin >> stu.id;
stuArr[studentCnt] = stu;
studentCnt++;
}
// 根据学号查找学生信息
Student* findStudent(int id) {
for (int i = 0; i < studentCnt; i++) {
if (stuArr[i].id == id) {
return &stuArr[i];
}
}
return NULL;
}
// 添加学生成绩
void addGrade() {
int id = 0;
cout << "请输入学生学号:";
cin >> id;
Student* stu = findStudent(id);
if (stu == NULL) {
cout << "未找到该学生信息!" << endl;
return;
}
Grade gr;
cout << "请输入数学成绩:";
cin >> gr.math;
cout << "请输入语文成绩:";
cin >> gr.chinese;
cout << "请输入英语成绩:";
cin >> gr.english;
gr.sum = gr.math + gr.chinese + gr.english;
gr.average = gr.sum / 3.0;
gradeArr[id - 1] = gr;
cout << "添加成绩成功!" << endl;
}
// 查看学生成绩
void showGrade() {
int id = 0;
cout << "请输入学生学号:";
cin >> id;
Student* stu = findStudent(id);
if (stu == NULL) {
cout << "未找到该学生信息!" << endl;
return;
}
Grade gr = gradeArr[id - 1];
cout << "数学成绩:" << gr.math << endl;
cout << "语文成绩:" << gr.chinese << endl;
cout << "英语成绩:" << gr.english << endl;
cout << "平均成绩:" << gr.average << endl;
}
// 统计某个科目的平均成绩
void showSubjectAvg() {
char subject;
cout << "请输入要统计的科目名(M表示数学,C表示语文,E表示英语):";
cin >> subject;
int sum = 0;
for (int i = 0; i < studentCnt; i++) {
Grade gr = gradeArr[i];
if (subject == 'M') {
sum += gr.math;
}
if (subject == 'C') {
sum += gr.chinese;
}
if (subject == 'E') {
sum += gr.english;
}
}
float avg = sum * 1.0 / studentCnt;
cout << "科目平均成绩为:" << avg << endl;
}
// 统计班级总体平均成绩
void showClassAvg() {
int sum = 0;
for (int i = 0; i < studentCnt; i++) {
Grade gr = gradeArr[i];
sum += gr.sum;
}
float avg = sum * 1.0 / (studentCnt * 3);
cout << "班级总体平均成绩为:" << avg << 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 << "6、退出系统" << endl;
cin >> choice;
switch (choice) {
case 1:
addStudent();
break;
case 2:
addGrade();
break;
case 3:
showGrade();
break;
case 4:
showSubjectAvg();
break;
case 5:
showClassAvg();
break;
case 6:
cout << "感谢您的使用,再见!" << endl;
exit(0);
default:
cout << "输入有误,请重新输入!" << endl;
break;
}
}
}
4. 示例说明
示例1:添加学生信息和成绩信息
在程序中,选择“1、添加学生信息”,按照提示输入学生的姓名和学号,即可添加学生信息,如下示例:
请选择要进行的操作:
1、添加学生信息
2、添加学生成绩
3、查看学生成绩
4、统计某个科目的平均成绩
5、统计班级总体平均成绩
6、退出系统
1
请输入学生姓名:Tom
请输入学生学号:001
然后,选择“2、添加学生成绩”,按照提示输入学号和各科成绩,即可添加学生成绩信息,如下示例:
请选择要进行的操作:
1、添加学生信息
2、添加学生成绩
3、查看学生成绩
4、统计某个科目的平均成绩
5、统计班级总体平均成绩
6、退出系统
2
请输入学生学号:001
请输入数学成绩:90
请输入语文成绩:85
请输入英语成绩:90
添加成绩成功!
示例2:统计班级总体平均分
在程序中,选择“5、统计班级总体平均成绩”,即可统计班级总体平均分,如下示例:
请选择要进行的操作:
1、添加学生信息
2、添加学生成绩
3、查看学生成绩
4、统计某个科目的平均成绩
5、统计班级总体平均成绩
6、退出系统
5
班级总体平均成绩为:88.33
5. 总结
班级成绩管理系统是一个实际问题的简单解决方案,本文中通过C++语言实现了班级成绩管理系统的基本功能,并给出了两个示例,方便用户更加深入地理解和操作该系统。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现简单班级成绩管理系统 - Python技术站