数据结构与算法实验课第一颗学生成绩管理系统C语言
时间: 2023-09-30 17:12:53 浏览: 47
对于数据结构与算法实验课中的学生成绩管理系统,你可以C语言来实现。在这个系统中,你需要定义适当的数据结构来存储学生信息和成绩,并实现相应的功能,如添加学生、删除学生、修改成绩、查询成绩等。
以下是一个简单的示例代码,用于展示如何实现一个基本的学生成绩管理系统:
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENTS 100
struct student {
char name[50];
int id;
float score;};
struct student students[MAX_STUDENTS];
int count = 0;
void addStudent() {
if (count >= MAX_STUDENTS) {
printf("已达到最大学生人数,无法添加新学生\n");
return;
}
struct student newStudent;
printf("请输入学生姓名:");
scanf("%s", newStudent.name);
printf("请输入学生学号:");
scanf("%d", &newStudent.id);
printf("请输入学生成绩:");
scanf("%f", &newStudent.score);
students[count] = newStudent;
count++;
printf("添加学生成功!\n");
}
void removeStudent() {
int studentId;
printf("请输入要删除的学生学号:");
scanf("%d", &studentId);
int foundIndex = -1;
for (int i = 0; i < count; i++) {
if (students[i].id == studentId) {
foundIndex = i;
break;
}
}
if (foundIndex == -1) {
printf("找不到学号为%d的学生\n", studentId);
return;
}
for (int i = foundIndex; i < count - 1; i++) {
students[i] = students[i + 1];
}
count--;
printf("删除学生成功!\n");
}
void modifyScore() {
int studentId;
printf("请输入要修改成绩的学生学号:");
scanf("%d", &studentId);
int foundIndex = -1;
for (int i = 0; i < count; i++) {
if (students[i].id == studentId) {
foundIndex = i;
break;
}
}
if (foundIndex == -1) {
printf("找不到学号为%d的学生\n", studentId);
return;
}
float newScore;
printf("请输入新的成绩:");
scanf("%f", &newScore);
students[foundIndex].score = newScore;
printf("修改成绩成功!\n");
}
void queryScore() {
int studentId;
printf("请输入要查询成绩的学生学号:");
scanf("%d", &studentId);
int foundIndex = -1;
for (int i = 0; i < count; i++) {
if (students[i].id == studentId) {
foundIndex = i;
break;
}
}
if (foundIndex == -1) {
printf("找不到学号为%d的学生\n", studentId);
return;
}
printf("学生姓名:%s\n", students[foundIndex].name);
printf("学生学号:%d\n", students[foundIndex].id);
printf("学生成绩:%.2f\n", students[foundIndex].score);
}
int main() {
int choice;
while (1) {
printf("\n");
printf("学生成绩管理系统\n");
printf("1. 添加学生\n");
printf("2. 删除学生\n");
printf("3. 修改成绩\n");
printf("4. 查询成绩\n");
printf("0. 退出\n");
printf("请输入操作编号:");
scanf("%d", &choice);
switch (choice) {
case 0:
return 0;
case 1:
addStudent();
break;
case 2:
removeStudent();
break;
case 3:
modifyScore();
break;
case 4:
queryScore();
break;
default:
printf("无效的操作编号,请重新输入\n");
}
}
return 0;
}
```
这个示例代码包括了添加学生、删除学生、修改成绩和查询成绩等功能。你可以根据实际需求进行修改和扩展。希望对你有所帮助!