顺序表学生成绩系统管理c语言
时间: 2023-08-24 09:10:46 浏览: 86
好的,你需要一个学生成绩管理系统,它可以使用顺序表来存储学生的信息和成绩,并且可以进行添加、删除、修改和查询操作。下面是一个简单的 C 语言实现,你可以参考一下。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_NAME_LEN 20 // 学生姓名最大长度
#define MAX_STU_NUM 100 // 最大学生数
typedef struct {
char name[MAX_NAME_LEN]; // 学生姓名
int score; // 学生成绩
} Student;
typedef struct {
Student stu[MAX_STU_NUM]; // 学生数组
int count; // 学生数量
} StuList;
// 初始化学生列表
void initStuList(StuList *list) {
list->count = 0;
}
// 添加学生
void addStudent(StuList *list, char *name, int score) {
if (list->count >= MAX_STU_NUM) {
printf("Error: student list is full!\n");
return;
}
Student stu;
strcpy(stu.name, name);
stu.score = score;
list->stu[list->count++] = stu;
}
// 删除学生
void removeStudent(StuList *list, char *name) {
int i, j;
for (i = 0; i < list->count; i++) {
if (strcmp(list->stu[i].name, name) == 0) {
for (j = i; j < list->count - 1; j++) {
list->stu[j] = list->stu[j+1];
}
list->count--;
printf("Remove student %s success!\n", name);
return;
}
}
printf("Error: student %s not found!\n", name);
}
// 修改学生成绩
void modifyScore(StuList *list, char *name, int score) {
int i;
for (i = 0; i < list->count; i++) {
if (strcmp(list->stu[i].name, name) == 0) {
list->stu[i].score = score;
printf("Modify student %s score to %d success!\n", name, score);
return;
}
}
printf("Error: student %s not found!\n", name);
}
// 查询学生成绩
void queryScore(StuList *list, char *name) {
int i;
for (i = 0; i < list->count; i++) {
if (strcmp(list->stu[i].name, name) == 0) {
printf("Student %s score is %d.\n", name, list->stu[i].score);
return;
}
}
printf("Error: student %s not found!\n", name);
}
// 显示所有学生信息
void showAllStudents(StuList *list) {
int i;
printf("%-10s%-10s\n", "Name", "Score");
for (i = 0; i < list->count; i++) {
printf("%-10s%-10d\n", list->stu[i].name, list->stu[i].score);
}
}
int main() {
StuList list;
initStuList(&list);
addStudent(&list, "Tom", 80);
addStudent(&list, "Jerry", 90);
addStudent(&list, "Lucy", 85);
showAllStudents(&list);
removeStudent(&list, "Jerry");
modifyScore(&list, "Lucy", 95);
queryScore(&list, "Tom");
queryScore(&list, "Jerry");
showAllStudents(&list);
return 0;
}
```
这个程序使用了结构体和数组来实现学生列表,其中 `StuList` 结构体表示学生列表,包含一个 `Student` 数组和一个学生数量变量 `count`。`Student` 结构体表示一个学生,包含学生姓名和成绩两个字段。程序提供了添加、删除、修改和查询学生成绩等功能,你可以根据自己的需求进行修改和扩展。