帮我用c语言的结构数组写一个学籍管理系统,功能包括学生学号排序后输出,学生信息修改
时间: 2023-06-08 13:04:59 浏览: 121
好的,我可以帮你实现一个学籍管理系统。以下是代码示例:
```
#include <stdio.h>
#include <string.h>
// 定义学生的结构体
struct Student {
char id[10]; // 学号
char name[20]; // 姓名
int age; // 年龄
};
// 定义学生数组和学生数量
struct Student students[100];
int count = 0;
// 根据学生学号进行排序
void sortById() {
for (int i = 0; i < count; i++) {
for (int j = i + 1; j < count; j++) {
if (strcmp(students[i].id, students[j].id) > 0) {
struct Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
}
// 添加新的学生信息
void addStudent() {
printf("请输入学号:");
scanf("%s", students[count].id);
printf("请输入姓名:");
scanf("%s", students[count].name);
printf("请输入年龄:");
scanf("%d", &students[count].age);
count++;
}
// 修改学生信息
void editStudent() {
char id[10];
printf("请输入要修改的学生学号:");
scanf("%s", id);
for (int i = 0; i < count; i++) {
if (strcmp(students[i].id, id) == 0) {
printf("请输入新的姓名:");
scanf("%s", students[i].name);
printf("请输入新的年龄:");
scanf("%d", &students[i].age);
printf("修改成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 显示所有学生信息
void showAllStudents() {
printf("学号\t姓名\t年龄\n");
sortById();
for (int i = 0; i < count; i++) {
printf("%s\t%s\t%d\n", students[i].id, students[i].name, students[i].age);
}
}
int main() {
int choice;
while (1) {
printf("1.添加学生信息\n");
printf("2.修改学生信息\n");
printf("3.显示所有学生信息\n");
printf("4.退出程序\n");
printf("请选择要执行的操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
addStudent();
break;
case 2:
editStudent();
break;
case 3:
showAllStudents();
break;
case 4:
return 0;
default:
printf("无效的选项!\n");
}
}
}
```
以上是一个简单的学籍管理系统的代码示例,你可以根据实际的需要进行调整和修改。
阅读全文