利用c语言编写一个程序,要求2、构建最多可存储100个学生的信息的机构体,学生的信息包括(学号(no)、姓名(name)及数学(math)、物理(physics)、英语(english)三门成绩),完成下面内容: (1)初始化学生信息函数(Init):有3个学生,每个学生有从键盘输入每个学生的数据。 (2)添加学生信息函数(Add):利用该函数, 添加学生信息; (3)删除学生信息函数(Del):利用该函数,删除指定的学生; (4)输出学生信息函数(Print):输出学生信息;
时间: 2024-03-03 14:49:10 浏览: 50
好的,以下是你所需的程序:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
typedef struct {
int no; // 学号
char name[20]; // 姓名
int math; // 数学成绩
int physics; // 物理成绩
int english; // 英语成绩
} Student;
Student students[MAX_STUDENTS];
int num_students = 3;
void Init() {
printf("请输入3个学生的信息:\n");
for (int i = 0; i < num_students; i++) {
printf("学生 %d:\n", i+1);
printf("学号:");
scanf("%d", &students[i].no);
printf("姓名:");
scanf("%s", students[i].name);
printf("数学成绩:");
scanf("%d", &students[i].math);
printf("物理成绩:");
scanf("%d", &students[i].physics);
printf("英语成绩:");
scanf("%d", &students[i].english);
}
}
void Add() {
if (num_students >= MAX_STUDENTS) {
printf("已达到最大学生数,无法添加!\n");
return;
}
printf("请输入新学生的信息:\n");
printf("学号:");
scanf("%d", &students[num_students].no);
printf("姓名:");
scanf("%s", students[num_students].name);
printf("数学成绩:");
scanf("%d", &students[num_students].math);
printf("物理成绩:");
scanf("%d", &students[num_students].physics);
printf("英语成绩:");
scanf("%d", &students[num_students].english);
num_students++;
}
void Del() {
int no;
printf("请输入要删除的学生学号:");
scanf("%d", &no);
for (int i = 0; i < num_students; i++) {
if (students[i].no == no) {
for (int j = i; j < num_students - 1; j++) {
students[j] = students[j+1];
}
num_students--;
printf("删除成功!\n");
return;
}
}
printf("未找到该学号的学生!\n");
}
void Print() {
printf("学号\t姓名\t数学\t物理\t英语\n");
for (int i = 0; i < num_students; i++) {
printf("%d\t%s\t%d\t%d\t%d\n", students[i].no, students[i].name, students[i].math, students[i].physics, students[i].english);
}
}
int main() {
int choice;
while (1) {
printf("请选择操作:\n");
printf("1. 初始化学生信息\n");
printf("2. 添加学生信息\n");
printf("3. 删除学生信息\n");
printf("4. 输出学生信息\n");
printf("0. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
Init();
break;
case 2:
Add();
break;
case 3:
Del();
break;
case 4:
Print();
break;
case 0:
return 0;
default:
printf("无效的输入!\n");
break;
}
printf("\n");
}
}
```
这个程序可以实现你所需要的功能。当你运行程序时,会提示你选择操作。选择 1 可以初始化学生信息,选择 2 可以添加学生信息,选择 3 可以删除学生信息,选择 4 可以输出学生信息,选择 0 可以退出程序。请按照提示进行操作。
阅读全文