C++程序设计实现一个学生成绩管理系统
时间: 2023-06-10 11:06:25 浏览: 122
以下是一个简单的学生成绩管理系统的实现,包括添加学生信息、修改学生信息、删除学生信息、查询学生信息和计算学生平均分数等功能。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT 100 // 最大学生数目
struct Student {
char name[20]; // 姓名
int id; // 学号
float score; // 分数
};
struct Student students[MAX_STUDENT]; // 学生信息数组
int student_count = 0; // 学生数量
void add_student() {
if (student_count >= MAX_STUDENT) {
printf("学生数量已达到上限!\n");
return;
}
struct Student new_student;
printf("请输入学生姓名:");
scanf("%s", new_student.name);
printf("请输入学生学号:");
scanf("%d", &new_student.id);
printf("请输入学生分数:");
scanf("%f", &new_student.score);
students[student_count] = new_student;
student_count++;
printf("添加学生成功!\n");
}
void modify_student() {
if (student_count == 0) {
printf("没有任何学生信息!\n");
return;
}
int id;
printf("请输入需要修改的学生学号:");
scanf("%d", &id);
for (int i = 0; i < student_count; i++) {
if (students[i].id == id) {
printf("请输入修改后的分数:");
scanf("%f", &students[i].score);
printf("修改学生信息成功!\n");
return;
}
}
printf("未找到该学生信息!\n");
}
void delete_student() {
if (student_count == 0) {
printf("没有任何学生信息!\n");
return;
}
int id;
printf("请输入需要删除的学生学号:");
scanf("%d", &id);
for (int i = 0; i < student_count; i++) {
if (students[i].id == id) {
for (int j = i; j < student_count - 1; j++) {
students[j] = students[j + 1];
}
student_count--;
printf("删除学生信息成功!\n");
return;
}
}
printf("未找到该学生信息!\n");
}
void query_student() {
if (student_count == 0) {
printf("没有任何学生信息!\n");
return;
}
int id;
printf("请输入需要查询的学生学号:");
scanf("%d", &id);
for (int i = 0; i < student_count; i++) {
if (students[i].id == id) {
printf("姓名:%s\n", students[i].name);
printf("学号:%d\n", students[i].id);
printf("分数:%.2f\n", students[i].score);
return;
}
}
printf("未找到该学生信息!\n");
}
void calculate_average_score() {
if (student_count == 0) {
printf("没有任何学生信息!\n");
return;
}
float sum = 0;
for (int i = 0; i < student_count; i++) {
sum += students[i].score;
}
float average_score = sum / student_count;
printf("学生平均分数为:%.2f\n", average_score);
}
int main() {
while (1) {
printf("-----------------------\n");
printf("学生成绩管理系统\n");
printf("1. 添加学生信息\n");
printf("2. 修改学生信息\n");
printf("3. 删除学生信息\n");
printf("4. 查询学生信息\n");
printf("5. 计算学生平均分数\n");
printf("6. 退出系统\n");
printf("-----------------------\n");
printf("请选择操作:");
int choice;
scanf("%d", &choice);
printf("-----------------------\n");
switch (choice) {
case 1: add_student(); break;
case 2: modify_student(); break;
case 3: delete_student(); break;
case 4: query_student(); break;
case 5: calculate_average_score(); break;
case 6: exit(0);
default: printf("无效的选择,请重新选择!\n"); break;
}
}
return 0;
}
```
这个程序使用了一个结构体数组来存储学生信息,每个学生包括姓名、学号和分数。程序提供了添加、修改、删除、查询和计算平均分数等功能,可以通过选择菜单来执行相应的操作。