用 C 语言当中的结构体知识,建立学生结构体 Stu,对应的属性有 name(姓名),id(学号),score(分数)。请为这些属性分配好合适的数据 类型,并定义一个能容纳 50 个的 Stu 结构体数组做出完整的学生管理系统(中文))
时间: 2024-01-22 12:19:43 浏览: 35
好的,以下是代码实现:
```
#include <stdio.h>
#include <string.h>
typedef struct {
char name[20]; // 姓名
int id; // 学号
float score; // 分数
} Stu; // 学生结构体定义
int main() {
Stu students[50]; // 定义一个能容纳50个学生的结构体数组
int choice, count = 0; // choice表示用户选择的操作,count表示当前已有的学生数量
do {
printf("请选择操作:\n");
printf("1. 添加学生信息\n");
printf("2. 查看学生信息\n");
printf("3. 修改学生信息\n");
printf("4. 删除学生信息\n");
printf("5. 退出\n");
scanf("%d", &choice);
switch (choice) {
case 1: { // 添加学生信息
if (count >= 50) {
printf("学生数量已达上限!\n");
break;
}
Stu newStu;
printf("请输入学生姓名:");
scanf("%s", newStu.name);
printf("请输入学生学号:");
scanf("%d", &newStu.id);
printf("请输入学生分数:");
scanf("%f", &newStu.score);
students[count++] = newStu; // 将新学生添加到数组中
printf("学生信息添加成功!\n");
break;
}
case 2: { // 查看学生信息
if (count == 0) {
printf("当前没有学生信息!\n");
break;
}
printf("已有学生信息:\n");
printf("姓名\t学号\t分数\n");
for (int i = 0; i < count; i++) {
printf("%s\t%d\t%.2f\n", students[i].name, students[i].id, students[i].score);
}
break;
}
case 3: { // 修改学生信息
if (count == 0) {
printf("当前没有学生信息!\n");
break;
}
int stuId, index = -1;
printf("请输入要修改的学生学号:");
scanf("%d", &stuId);
for (int i = 0; i < count; i++) {
if (students[i].id == stuId) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到该学生信息!\n");
break;
}
Stu newStu;
printf("请输入学生姓名:");
scanf("%s", newStu.name);
printf("请输入学生学号:");
scanf("%d", &newStu.id);
printf("请输入学生分数:");
scanf("%f", &newStu.score);
students[index] = newStu; // 将修改后的学生信息更新到数组中
printf("学生信息修改成功!\n");
break;
}
case 4: { // 删除学生信息
if (count == 0) {
printf("当前没有学生信息!\n");
break;
}
int stuId, index = -1;
printf("请输入要删除的学生学号:");
scanf("%d", &stuId);
for (int i = 0; i < count; i++) {
if (students[i].id == stuId) {
index = i;
break;
}
}
if (index == -1) {
printf("未找到该学生信息!\n");
break;
}
for (int i = index; i < count - 1; i++) {
students[i] = students[i + 1]; // 将后面的学生信息向前移动
}
count--; // 学生数量减1
printf("学生信息删除成功!\n");
break;
}
case 5: { // 退出程序
printf("谢谢使用!\n");
break;
}
default: {
printf("输入有误,请重新输入!\n");
break;
}
}
} while (choice != 5);
return 0;
}
```
该程序实现了添加、查看、修改和删除学生信息的功能。在添加学生信息时,会检查当前已有的学生数量是否已达上限50人;在查看、修改和删除学生信息时,会检查当前是否有学生信息。如果用户输入的学号在数组中不存在,则会提示“未找到该学生信息”。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![application/x-zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![ppt](https://img-home.csdnimg.cn/images/20210720083527.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)