C语言结构体数组设计教务管理系统增删改查
时间: 2024-02-27 11:49:03 浏览: 111
C语言结构体数组可以用来设计教务管理系统的增删改查功能。下面是一个简单的示例:
1. 定义结构体类型:
```c
typedef struct {
char name[20];
int studentID;
float score;
} Student;
```
2. 声明结构体数组并初始化:
```c
Student students[100]; // 假设最多有100个学生
int count = 0; // 记录当前学生数量
// 添加学生信息
strcpy(students[count].name, "张三");
students[count].studentID = 1001;
students[count].score = 90.5;
count++;
strcpy(students[count].name, "李四");
students[count].studentID = 1002;
students[count].score = 85.0;
count++;
```
3. 实现增加学生信息的功能:
```c
void addStudent() {
if (count >= 100) {
printf("学生数量已达上限,无法添加新学生。\n");
return;
}
printf("请输入学生姓名:");
scanf("%s", students[count].name);
printf("请输入学生学号:");
scanf("%d", &students[count].studentID);
printf("请输入学生成绩:");
scanf("%f", &students[count].score);
count++;
printf("学生信息添加成功。\n");
}
```
4. 实现删除学生信息的功能:
```c
void deleteStudent() {
int studentID;
printf("请输入要删除的学生学号:");
scanf("%d", &studentID);
int i;
for (i = 0; i < count; i++) {
if (students[i].studentID == studentID) {
// 将最后一个学生信息覆盖到要删除的位置
students[i] = students[count - 1];
count--;
printf("学生信息删除成功。\n");
return;
}
}
printf("未找到该学生学号对应的学生信息。\n");
}
```
5. 实现修改学生信息的功能:
```c
void modifyStudent() {
int studentID;
printf("请输入要修改的学生学号:");
scanf("%d", &studentID);
int i;
for (i = 0; i < count; i++) {
if (students[i].studentID == studentID) {
printf("请输入新的学生姓名:");
scanf("%s", students[i].name);
printf("请输入新的学生成绩:");
scanf("%f", &students[i].score);
printf("学生信息修改成功。\n");
return;
}
}
printf("未找到该学生学号对应的学生信息。\n");
}
```
6. 实现查询学生信息的功能:
```c
void queryStudent() {
int studentID;
printf("请输入要查询的学生学号:");
scanf("%d", &studentID);
int i;
for (i = 0; i < count; i++) {
if (students[i].studentID == studentID) {
printf("学生姓名:%s\n", students[i].name);
printf("学生成绩:%.2f\n", students[i].score);
return;
}
}
printf("未找到该学生学号对应的学生信息。\n");
}
```
阅读全文