利用 C 语言当中的结构体知识,建立学生结构体 Stu,对应的属性有 name(姓名),id(学号),score(分数)。请为这些属性分配好合适的数据 类型,并定义一个能容纳 50 个的 Stu 结构体数组。具有添加,删除,修改,遍历学生信息以及退出系统(中文)
时间: 2023-10-06 12:05:59 浏览: 166
C语言利用结构体数组实现学生成绩管理系统.doc
5星 · 资源好评率100%
好的,以下是基于C语言的学生管理系统实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT 50
// 学生结构体
struct Stu {
char name[20];
char id[10];
int score;
};
// 学生数组
struct Stu students[MAX_STUDENT];
// 学生数量
int student_count = 0;
// 添加学生
void add_student() {
if (student_count >= MAX_STUDENT) {
printf("学生数量已达上限,无法再添加新的学生\n");
return;
}
struct Stu s;
printf("请输入学生姓名:");
scanf("%s", s.name);
printf("请输入学生学号:");
scanf("%s", s.id);
printf("请输入学生成绩:");
scanf("%d", &s.score);
students[student_count++] = s;
printf("添加成功\n");
}
// 删除学生
void delete_student() {
char id[10];
printf("请输入要删除学生的学号:");
scanf("%s", id);
for (int i = 0; i < student_count; i++) {
if (strcmp(students[i].id, id) == 0) {
// 找到要删除的学生
for (int j = i; j < student_count - 1; j++) {
students[j] = students[j + 1];
}
student_count--;
printf("删除成功\n");
return;
}
}
printf("找不到该学生\n");
}
// 修改学生信息
void modify_student() {
char id[10];
printf("请输入要修改学生的学号:");
scanf("%s", id);
for (int i = 0; i < student_count; i++) {
if (strcmp(students[i].id, id) == 0) {
// 找到要修改的学生
printf("请输入修改后的学生姓名:");
scanf("%s", students[i].name);
printf("请输入修改后的学生学号:");
scanf("%s", students[i].id);
printf("请输入修改后的学生成绩:");
scanf("%d", &students[i].score);
printf("修改成功\n");
return;
}
}
printf("找不到该学生\n");
}
// 遍历学生信息
void list_students() {
if (student_count == 0) {
printf("学生列表为空\n");
return;
}
printf("姓名\t学号\t成绩\n");
for (int i = 0; i < student_count; i++) {
printf("%s\t%s\t%d\n", students[i].name, students[i].id, students[i].score);
}
}
// 退出系统
void exit_system() {
printf("感谢使用学生管理系统,再见!\n");
exit(0);
}
int main() {
while (1) {
// 打印菜单
printf("\n学生管理系统\n");
printf("1. 添加学生\n");
printf("2. 删除学生\n");
printf("3. 修改学生信息\n");
printf("4. 遍历学生信息\n");
printf("5. 退出系统\n");
// 读取用户输入
int choice;
printf("请输入选项:");
scanf("%d", &choice);
// 根据用户选择执行相应操作
switch (choice) {
case 1:
add_student();
break;
case 2:
delete_student();
break;
case 3:
modify_student();
break;
case 4:
list_students();
break;
case 5:
exit_system();
break;
default:
printf("无效的选项\n");
break;
}
}
return 0;
}
```
以上就是一个简单的学生管理系统,可以实现添加、删除、修改、遍历学生信息以及退出系统等功能。注意,该程序还有很多可以优化的地方,例如可以将学生数组按照学号排序,或者将学生信息存储到文件中等。
阅读全文