学生成绩管理系统数据结构代码
时间: 2023-06-25 19:05:10 浏览: 39
以下是一个简单的学生成绩管理系统的数据结构代码实现,使用C语言编写:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100 // 最大学生数
#define MAX_NAME_LEN 20 // 学生姓名最大长度
// 学生结构体
typedef struct {
char name[MAX_NAME_LEN];
int id;
float score;
} student_t;
// 学生数组结构体
typedef struct {
student_t students[MAX_STUDENTS];
int count;
} student_array_t;
// 初始化学生数组
void init_student_array(student_array_t* sa) {
sa->count = 0;
}
// 添加学生
void add_student(student_array_t* sa, const char* name, int id, float score) {
if (sa->count >= MAX_STUDENTS) {
printf("Error: maximum number of students reached.\n");
return;
}
student_t s;
strncpy(s.name, name, MAX_NAME_LEN);
s.id = id;
s.score = score;
sa->students[sa->count++] = s;
}
// 移除学生
void remove_student(student_array_t* sa, int id) {
for (int i = 0; i < sa->count; i++) {
if (sa->students[i].id == id) {
for (int j = i; j < sa->count - 1; j++) {
sa->students[j] = sa->students[j + 1];
}
sa->count--;
return;
}
}
printf("Error: student not found.\n");
}
// 显示学生信息
void show_student_info(const student_t* s) {
printf("Name: %s, ID: %d, Score: %.2f\n", s->name, s->id, s->score);
}
// 显示所有学生信息
void show_all_students(const student_array_t* sa) {
printf("All students:\n");
for (int i = 0; i < sa->count; i++) {
show_student_info(&sa->students[i]);
}
}
// 查找学生
student_t* find_student(const student_array_t* sa, int id) {
for (int i = 0; i < sa->count; i++) {
if (sa->students[i].id == id) {
return &sa->students[i];
}
}
return NULL;
}
// 更新学生信息
void update_student(student_array_t* sa, int id, const char* name, float score) {
student_t* s = find_student(sa, id);
if (s != NULL) {
strncpy(s->name, name, MAX_NAME_LEN);
s->score = score;
} else {
printf("Error: student not found.\n");
}
}
int main() {
student_array_t sa;
init_student_array(&sa);
add_student(&sa, "Tom", 1001, 90.0f);
add_student(&sa, "Jerry", 1002, 80.0f);
add_student(&sa, "Alice", 1003, 85.0f);
show_all_students(&sa);
remove_student(&sa, 1002);
show_all_students(&sa);
update_student(&sa, 1003, "Bob", 95.0f);
show_all_students(&sa);
return 0;
}
```
以上代码实现了一个简单的学生成绩管理系统,使用了结构体和数组来存储学生信息,提供了添加、删除、查找、更新和显示学生信息的功能。