C语言在学生成绩管理系统完整代码中插入求平均分的程序
时间: 2024-02-27 17:51:56 浏览: 66
c语言程序 学生成绩管理系统
好的,这里是一个简单的示例,演示如何在学生成绩管理系统的完整代码中插入求平均分的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100 // 最大学生数
#define MAX_NAME_LEN 20 // 学生姓名最大长度
// 学生结构体
typedef struct {
char name[MAX_NAME_LEN];
int id;
int score;
} Student;
// 学生数组
Student students[MAX_STUDENT_NUM];
int student_num = 0; // 学生数
// 添加学生信息
void add_student() {
if (student_num >= MAX_STUDENT_NUM) {
printf("学生数已达到最大值,无法添加!\n");
return;
}
Student new_student;
printf("请输入学生姓名:");
scanf("%s", new_student.name);
printf("请输入学生学号:");
scanf("%d", &new_student.id);
printf("请输入学生成绩:");
scanf("%d", &new_student.score);
students[student_num++] = new_student;
printf("添加成功!\n");
}
// 删除学生信息
void delete_student() {
if (student_num == 0) {
printf("学生数为0,无法删除!\n");
return;
}
int delete_id;
printf("请输入要删除的学生学号:");
scanf("%d", &delete_id);
int delete_index = -1;
for (int i = 0; i < student_num; i++) {
if (students[i].id == delete_id) {
delete_index = i;
break;
}
}
if (delete_index == -1) {
printf("未找到该学生!\n");
} else {
for (int i = delete_index; i < student_num - 1; i++) {
students[i] = students[i + 1];
}
student_num--;
printf("删除成功!\n");
}
}
// 修改学生信息
void modify_student() {
if (student_num == 0) {
printf("学生数为0,无法修改!\n");
return;
}
int modify_id;
printf("请输入要修改的学生学号:");
scanf("%d", &modify_id);
int modify_index = -1;
for (int i = 0; i < student_num; i++) {
if (students[i].id == modify_id) {
modify_index = i;
break;
}
}
if (modify_index == -1) {
printf("未找到该学生!\n");
} else {
printf("请输入学生姓名:");
scanf("%s", students[modify_index].name);
printf("请输入学生成绩:");
scanf("%d", &students[modify_index].score);
printf("修改成功!\n");
}
}
// 查询学生信息
void query_student() {
if (student_num == 0) {
printf("学生数为0,无法查询!\n");
return;
}
int query_id;
printf("请输入要查询的学生学号:");
scanf("%d", &query_id);
int query_index = -1;
for (int i = 0; i < student_num; i++) {
if (students[i].id == query_id) {
query_index = i;
break;
}
}
if (query_index == -1) {
printf("未找到该学生!\n");
} else {
Student query_student = students[query_index];
printf("学生姓名:%s\n", query_student.name);
printf("学生学号:%d\n", query_student.id);
printf("学生成绩:%d\n", query_student.score);
}
}
// 显示所有学生信息
void display_students() {
if (student_num == 0) {
printf("学生数为0,无法显示!\n");
return;
}
printf("学生信息如下:\n");
for (int i = 0; i < student_num; i++) {
Student student = students[i];
printf("学生姓名:%s\n", student.name);
printf("学生学号:%d\n", student.id);
printf("学生成绩:%d\n", student.score);
}
}
// 计算学生平均分
void calc_avg_score() {
if (student_num == 0) {
printf("学生数为0,无法计算平均分!\n");
return;
}
int sum = 0;
for (int i = 0; i < student_num; i++) {
sum += students[i].score;
}
double avg_score = (double)sum / student_num;
printf("学生平均分为:%.2f\n", avg_score);
}
// 显示菜单
void display_menu() {
printf("学生成绩管理系统\n");
printf("===================\n");
printf("1. 添加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 查询学生信息\n");
printf("5. 显示所有学生信息\n");
printf("6. 计算学生平均分\n");
printf("0. 退出系统\n");
printf("===================\n");
}
int main() {
int choice;
while (1) {
display_menu();
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 0:
printf("谢谢使用,再见!\n");
exit(0);
case 1:
add_student();
break;
case 2:
delete_student();
break;
case 3:
modify_student();
break;
case 4:
query_student();
break;
case 5:
display_students();
break;
case 6:
calc_avg_score();
break;
default:
printf("无效的选择!\n");
break;
}
}
return 0;
}
```
在上面的代码中,我们新增了一个 `calc_avg_score` 函数,用于计算学生的平均分。该函数的实现与前面的示例相同。
在 `main` 函数中,我们新增了一个菜单选项,用于调用 `calc_avg_score` 函数。在用户选择该选项时,程序会计算出学生的平均分,并输出结果。
希望这个示例对您有所帮助!
阅读全文