学生管成绩理系统包含增删改查C语言代码
时间: 2024-12-13 11:25:46 浏览: 33
在C语言中设计一个简单的学生管理成绩系统,通常会涉及到结构体(struct)来表示学生信息,数组或链表来存储数据,以及函数来实现增删改查操作。这里是一个简化的例子:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
typedef struct {
char name[50];
int id;
float score;
} Student;
// 功能声明
void addStudent(Student students[], int *size);
void deleteStudent(int id, Student students[], int *size);
void updateScore(int id, float new_score, Student students[], int *size);
void displayStudents(Student students[], int size);
int main() {
int size = 0;
Student students[100];
// 初始化并添加学生
addStudent(students, &size);
// ... (其他操作如删除、更新和显示)
return 0;
}
// 添加学生
void addStudent(Student students[], int *size) {
if (*size < sizeof(students)) { // 防止数组溢出
Student new_student;
printf("请输入新学生的姓名、ID和成绩:");
scanf("%s%d%f", new_student.name, &new_student.id, &new_student.score);
students[*size] = new_student;
(*size)++;
} else {
printf("数组已满,无法添加更多学生。\n");
}
}
// 删除学生
void deleteStudent(int id, Student students[], int *size) {
for (int i = 0; i < *size; i++) {
if (students[i].id == id) {
memmove(&students[i], &students[i + 1], (*size - i - 1) * sizeof(Student));
(*size)--;
break;
}
}
}
// 更新分数
void updateScore(int id, float new_score, Student students[], int *size) {
for (int i = 0; i < *size; i++) {
if (students[i].id == id) {
students[i].score = new_score;
break;
}
}
}
// 显示所有学生
void displayStudents(Student students[], int size) {
for (int i = 0; i < size; i++) {
printf("学生 %d: 姓名:%s, ID:%d, 成绩:%f\n", i + 1, students[i].name, students[i].id, students[i].score);
}
}
```
阅读全文