利用线性表的顺序存储结构完成一个班级的一个学期的所有课程成绩的管理,要求实现增加,删除成绩等记录等用c语言代码进行
时间: 2023-06-05 16:06:10 浏览: 100
线性表的顺序存储结构c语言实现
以下是用C语言代码实现班级成绩管理的程序,使用线性表的顺序存储结构:
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 定义最大容量
typedef struct {
int score; // 成绩
char name[20]; // 姓名
int number; // 学号
} Student; // 定义学生结构体
typedef struct {
Student data[MAX_SIZE]; // 存储学生信息的数组
int length; // 当前存储的长度
} SeqList; // 定义顺序表
// 初始化顺序表
void init(SeqList *list) {
list->length = 0;
}
// 增加一个成绩记录
void add(SeqList *list, Student s) {
if (list->length >= MAX_SIZE) {
printf("班级成绩记录已满,无法增加新的记录。\n");
return;
}
list->data[list->length] = s;
list->length++;
}
// 删除一个成绩记录
void del(SeqList *list, int index) {
if (index < 0 || index >= list->length) {
printf("要删除的索引越界,无法删除。\n");
return;
}
for (int i = index; i < list->length - 1; i++) {
list->data[i] = list->data[i + 1];
}
list->length--;
}
// 输出所有的成绩记录
void print(SeqList *list) {
printf("姓名\t学号\t成绩\n");
for (int i = 0; i < list->length; i++) {
printf("%s\t%d\t%d\n", list->data[i].name, list->data[i].number, list->data[i].score);
}
}
int main() {
SeqList list;
init(&list);
// 添加一些成绩记录
add(&list, (Student){90, "张三", 10001});
add(&list, (Student){85, "李四", 10002});
add(&list, (Student){78, "王五", 10003});
// 输出所有的成绩记录
print(&list);
// 删除第二条记录
del(&list, 1);
// 输出所有的成绩记录
print(&list);
return 0;
}
阅读全文