C语言用顺序表实现学生成绩管理系统
时间: 2023-10-21 09:06:30 浏览: 195
学生成绩管理系统可以用顺序表实现。以下是一个简单的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 最大学生数
typedef struct student {
int id; // 学号
char name[20]; // 姓名
float score; // 成绩
} Student;
typedef struct list {
Student data[MAX_SIZE]; // 存储学生信息的数组
int length; // 当前学生数
} List;
void initList(List *L) {
L->length = 0;
}
int insertList(List *L, Student s) {
if (L->length >= MAX_SIZE) {
return 0; // 数组已满,插入失败
}
L->data[L->length] = s;
L->length++;
return 1; // 插入成功
}
int deleteList(List *L, int id) {
int i, j;
for (i = 0; i < L->length; i++) {
if (L->data[i].id == id) {
for (j = i; j < L->length-1; j++) {
L->data[j] = L->data[j+1];
}
L->length--;
return 1; // 删除成功
}
}
return 0; // 找不到该学生,删除失败
}
void printList(List L) {
int i;
printf("学生信息:\n");
for (i = 0; i < L.length; i++) {
printf("%d\t%s\t%.2f\n", L.data[i].id, L.data[i].name, L.data[i].score);
}
}
int main() {
List L;
initList(&L);
Student s1 = {1001, "张三", 89.5};
Student s2 = {1002, "李四", 92.0};
insertList(&L, s1);
insertList(&L, s2);
printList(L);
deleteList(&L, 1002);
printList(L);
return 0;
}
```
该代码定义了两个结构体类型:`Student` 表示学生信息,`List` 表示学生信息的顺序表。其中,`initList()` 函数用于初始化顺序表,`insertList()` 函数用于插入学生信息,`deleteList()` 函数用于删除学生信息,`printList()` 函数用于输出学生信息。主函数中初始化顺序表,插入两个学生信息,输出学生信息,删除一个学生信息,再次输出学生信息。
阅读全文