学生成绩信息管理系统
时间: 2024-01-03 14:04:48 浏览: 80
学生成绩信息管理系统是一个用于录入、浏览、查询、修改、删除学生成绩信息的程序。根据提供的引用内容,该程序采用了分模块编程形式,包括主函数在内共有10个函数,使用结构体数组来存储学生的学号、姓名和成绩信息。程序使用Visual Studio 2019 IDE工具进行开发。
以下是一个简单的示例代码,展示了学生成绩信息管理系统的部分功能:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义学生结构体
struct Student {
int id;
char name[50];
float score;
};
// 录入学生成绩信息
void input_info(struct Student *students, int num) {
for (int i = 0; i < num; i++) {
printf("请输入第%d个学生的学号:", i + 1);
scanf("%d", &(students[i].id));
printf("请输入第%d个学生的姓名:", i + 1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的成绩:", i + 1);
scanf("%f", &(students[i].score));
}
}
// 浏览学生成绩信息
void browse_info(struct Student *students, int num) {
printf("学生成绩信息如下:\n");
for (int i = 0; i < num; i++) {
printf("学号:%d,姓名:%s,成绩:%.2f\n", students[i].id, students[i].name, students[i].score);
}
}
// 查询学生成绩信息
void find_info(struct Student *students, int num, int id) {
for (int i = 0; i < num; i++) {
if (students[i].id == id) {
printf("学号:%d,姓名:%s,成绩:%.2f\n", students[i].id, students[i].name, students[i].score);
return;
}
}
printf("未找到该学生的信息。\n");
}
// 修改学生成绩信息
void modify_info(struct Student *students, int num, int id, float new_score) {
for (int i = 0; i < num; i++) {
if (students[i].id == id) {
students[i].score = new_score;
printf("修改成功。\n");
return;
}
}
printf("未找到该学生的信息。\n");
}
// 删除学生成绩信息
void delete_info(struct Student *students, int *num, int id) {
for (int i = 0; i < *num; i++) {
if (students[i].id == id) {
for (int j = i; j < *num - 1; j++) {
students[j] = students[j + 1];
}
(*num)--;
printf("删除成功。\n");
return;
}
}
printf("未找到该学生的信息。\n");
}
// 保存学生成绩信息到文件
void save_info(struct Student *students, int num) {
FILE *file = fopen("students.txt", "w");
if (file == NULL) {
printf("文件打开失败。\n");
return;
}
for (int i = 0; i < num; i++) {
fprintf(file, "%d %s %.2f\n", students[i].id, students[i].name, students[i].score);
}
fclose(file);
printf("保存成功。\n");
}
// 成绩排序
void sort_info(struct Student *students, int num) {
for (int i = 0; i < num - 1; i++) {
for (int j = 0; j < num - i - 1; j++) {
if (students[j].score < students[j + 1].score) {
struct Student temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
printf("排序成功。\n");
}
// 主函数
int main() {
int num;
printf("请输入学生人数:");
scanf("%d", &num);
struct Student *students = (struct Student *)malloc(num * sizeof(struct Student));
// 调用其他函数实现各种功能
input_info(students, num);
browse_info(students, num);
find_info(students, num, 1001);
modify_info(students, num, 1001, 90.5);
delete_info(students, &num, 1002);
save_info(students, num);
sort_info(students, num);
free(students);
return 0;
}
```
阅读全文