利用 C 语言当中的结构体知识,建立学生结构体 Stu,对应的属性有 name(姓名),id(学号),score(分数)。请为这些属性分配好合适的数据 类型,并定义一个能容纳 50 个的 Stu 结构体数组。包含添加学生信息,删除学生信息,修改学生信息,遍历学生信息,中文
时间: 2023-12-07 22:05:00 浏览: 120
好的,根据您的要求,我为您提供 C 语言的代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT_NUM 50
// 学生结构体
struct Stu {
char name[20]; // 姓名
int id; // 学号
float score; // 分数
};
// 学生结构体数组
struct Stu students[MAX_STUDENT_NUM];
// 学生数量
int student_num = 0;
// 添加学生信息
void add_student() {
if (student_num == MAX_STUDENT_NUM) {
printf("学生数量已满,无法添加新学生!\n");
return;
}
struct Stu new_stu;
printf("请输入学生姓名:");
scanf("%s", new_stu.name);
printf("请输入学生学号:");
scanf("%d", &new_stu.id);
printf("请输入学生分数:");
scanf("%f", &new_stu.score);
students[student_num] = new_stu;
student_num++;
printf("添加学生信息成功!\n");
}
// 删除学生信息
void delete_student() {
if (student_num == 0) {
printf("学生数量为 0,无法删除学生!\n");
return;
}
int target_id;
printf("请输入要删除的学生学号:");
scanf("%d", &target_id);
int index = -1;
for (int i = 0; i < student_num; i++) {
if (students[i].id == target_id) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到学号为 %d 的学生,删除失败!\n", target_id);
return;
}
for (int i = 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 target_id;
printf("请输入要修改的学生学号:");
scanf("%d", &target_id);
int index = -1;
for (int i = 0; i < student_num; i++) {
if (students[i].id == target_id) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到学号为 %d 的学生,修改失败!\n", target_id);
return;
}
struct Stu new_stu;
printf("请输入修改后的学生姓名:");
scanf("%s", new_stu.name);
printf("请输入修改后的学生分数:");
scanf("%f", &new_stu.score);
students[index] = new_stu;
printf("修改学生信息成功!\n");
}
// 遍历学生信息
void print_students() {
if (student_num == 0) {
printf("学生数量为 0,无法遍历学生信息!\n");
return;
}
printf("所有学生信息如下:\n");
printf("--------------------\n");
for (int i = 0; i < student_num; i++) {
printf("姓名:%s,学号:%d,分数:%f\n", students[i].name, students[i].id, students[i].score);
}
}
int main() {
int choice;
while (1) {
printf("\n");
printf("请输入要进行的操作:\n");
printf("1. 添加学生信息\n");
printf("2. 删除学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 遍历学生信息\n");
printf("0. 退出程序\n");
printf("--------------------\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
delete_student();
break;
case 3:
modify_student();
break;
case 4:
print_students();
break;
case 0:
printf("已退出程序!\n");
return 0;
default:
printf("无效的选择!\n");
break;
}
}
}
```
希望这份代码能够帮到您!
阅读全文