利用 C 语言当中的结构体知识,建立学生结构体 Stu,对应的属性有 name(姓名),id(学号),score(分数)。请为这些属性分配好合适的数据 类型,并定义一个能容纳 50 个的 Stu 结构体数组。包含添加,删除,修改,遍历学生信息(中文)
时间: 2024-05-17 20:15:25 浏览: 55
好的,我来回答你的问题。
首先,我们可以为 Stu 结构体的属性分配如下数据类型:
- name: char 型数组,长度为 20 (假设学生的姓名最长为 20 个字符)
- id: int 型
- score: float 型
因此,我们可以定义 Stu 结构体如下:
```c
struct Stu {
char name[20];
int id;
float score;
};
```
接下来,我们可以定义一个能容纳 50 个 Stu 结构体的数组:
```c
struct Stu students[50];
```
为了实现添加、删除、修改和遍历学生信息的功能,我们可以编写如下代码:
```c
#include <stdio.h>
#include <string.h>
struct Stu {
char name[20];
int id;
float score;
};
int num_students = 0; // 学生数量
void add_student() {
if (num_students >= 50) {
printf("已达到最大学生数量\n");
return;
}
struct Stu new_student;
printf("请输入学生姓名:");
scanf("%s", new_student.name);
printf("请输入学生学号:");
scanf("%d", &new_student.id);
printf("请输入学生分数:");
scanf("%f", &new_student.score);
students[num_students] = new_student;
num_students++;
printf("添加成功\n");
}
void delete_student() {
int id;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
int index = -1; // 要删除的学生在数组中的下标
for (int i = 0; i < num_students; i++) {
if (students[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到该学生\n");
return;
}
for (int i = index; i < num_students - 1; i++) {
students[i] = students[i + 1];
}
num_students--;
printf("删除成功\n");
}
void modify_student() {
int id;
printf("请输入要修改的学生学号:");
scanf("%d", &id);
int index = -1; // 要修改的学生在数组中的下标
for (int i = 0; i < num_students; i++) {
if (students[i].id == id) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到该学生\n");
return;
}
printf("请输入新的学生姓名:");
scanf("%s", students[index].name);
printf("请输入新的学生分数:");
scanf("%f", &students[index].score);
printf("修改成功\n");
}
void print_students() {
printf("学生信息如下:\n");
printf("姓名\t学号\t分数\n");
for (int i = 0; i < num_students; i++) {
printf("%s\t%d\t%.2f\n", students[i].name, students[i].id, students[i].score);
}
}
int main() {
int choice;
while (1) {
printf("请选择要进行的操作:\n");
printf("1. 添加学生\n");
printf("2. 删除学生\n");
printf("3. 修改学生信息\n");
printf("4. 遍历学生信息\n");
printf("5. 退出程序\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 5:
return 0;
default:
printf("无效的选择,请重新输入\n");
}
}
}
```
运行程序后,可以根据提示进行相应的操作。例如,添加一个学生的操作如下:
```
请选择要进行的操作:
1. 添加学生
2. 删除学生
3. 修改学生信息
4. 遍历学生信息
5. 退出程序
1
请输入学生姓名:张三
请输入学生学号:1001
请输入学生分数:89.5
添加成功
```
遍历学生信息的操作如下:
```
请选择要进行的操作:
1. 添加学生
2. 删除学生
3. 修改学生信息
4. 遍历学生信息
5. 退出程序
4
学生信息如下:
姓名 学号 分数
张三 1001 89.50
```
阅读全文