用c语言编写1、实验内容(参考以下功能,可增加) 对学生基本信息,包括学号、姓名、至少三门课成绩。 ① 学生基本信息录入; ② 学生基本信息的输出; ③ 按学号查询学生信息(学号、姓名、成绩); ④ 按学号修改某学生信息并输出; ⑤ 计算平均成绩(计算总分、平均分、最高分、最低分等);
时间: 2023-12-16 07:18:17 浏览: 110
C语言输入学生成绩,计算并输出这些学生的最低分、最高分、平均分。
好的,以下是用 C 语言编写的实现以上功能的代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
struct student {
char id[20];
char name[20];
float score[3];
};
struct student students[MAX_STUDENT_NUM];
int student_num = 0;
// 学生基本信息录入
void input_student_info() {
printf("输入学生信息(学号、姓名、三门课成绩):\n");
scanf("%s %s %f %f %f", students[student_num].id, students[student_num].name,
&students[student_num].score[0], &students[student_num].score[1], &students[student_num].score[2]);
student_num++;
}
// 学生基本信息的输出
void output_student_info() {
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\n");
for (int i = 0; i < student_num; i++) {
printf("%s\t%s\t%.2f\t%.2f\t%.2f\n", students[i].id, students[i].name,
students[i].score[0], students[i].score[1], students[i].score[2]);
}
}
// 按学号查询学生信息
void query_student_info() {
char id[20];
printf("输入要查询的学生学号:\n");
scanf("%s", id);
for (int i = 0; i < student_num; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\n");
printf("%s\t%s\t%.2f\t%.2f\t%.2f\n", students[i].id, students[i].name,
students[i].score[0], students[i].score[1], students[i].score[2]);
return;
}
}
printf("未找到该学生!\n");
}
// 按学号修改某学生信息并输出
void modify_student_info() {
char id[20];
printf("输入要修改的学生学号:\n");
scanf("%s", id);
for (int i = 0; i < student_num; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("输入学生新信息(姓名、三门课成绩):\n");
scanf("%s %f %f %f", students[i].name, &students[i].score[0], &students[i].score[1], &students[i].score[2]);
printf("修改成功!学生信息如下:\n");
printf("学号\t姓名\t成绩1\t成绩2\t成绩3\n");
printf("%s\t%s\t%.2f\t%.2f\t%.2f\n", students[i].id, students[i].name,
students[i].score[0], students[i].score[1], students[i].score[2]);
return;
}
}
printf("未找到该学生!\n");
}
// 计算平均成绩
void calculate_average_score() {
float total_score[3] = {0}, max_score[3] = {-1}, min_score[3] = {101};
for (int i = 0; i < student_num; i++) {
for (int j = 0; j < 3; j++) {
total_score[j] += students[i].score[j];
if (students[i].score[j] > max_score[j]) {
max_score[j] = students[i].score[j];
}
if (students[i].score[j] < min_score[j]) {
min_score[j] = students[i].score[j];
}
}
}
printf("三门课程平均成绩为:%.2f %.2f %.2f\n", total_score[0] / student_num, total_score[1] / student_num,
total_score[2] / student_num);
printf("三门课程最高分为:%.2f %.2f %.2f\n", max_score[0], max_score[1], max_score[2]);
printf("三门课程最低分为:%.2f %.2f %.2f\n", min_score[0], min_score[1], min_score[2]);
}
int main() {
int choice;
while (1) {
printf("请选择功能:\n");
printf("1. 学生基本信息录入\n");
printf("2. 学生基本信息的输出\n");
printf("3. 按学号查询学生信息\n");
printf("4. 按学号修改某学生信息并输出\n");
printf("5. 计算平均成绩\n");
printf("6. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
input_student_info();
break;
case 2:
output_student_info();
break;
case 3:
query_student_info();
break;
case 4:
modify_student_info();
break;
case 5:
calculate_average_score();
break;
case 6:
return 0;
default:
printf("请输入正确的选项!\n");
break;
}
}
return 0;
}
```
该程序使用结构体存储学生信息,通过菜单选择实现功能。欢迎参考学习!
阅读全文