8.按总分或平均分排序功能; 9.将数据信息以文件的形式存盘,数据库信息的各种操作最后都能被 储,存储前有提 ,并且能打开。
时间: 2024-03-17 16:42:58 浏览: 19
实现按总分或平均分排序功能,可以在上述示例代码基础上进行修改,例如:
```c
#include <stdio.h>
typedef struct {
char name[20];
int score_chinese;
int score_math;
int score_english;
int total_score;
float average_score;
} Student;
void print_student_info(Student s) {
printf("%s\t%d\t%d\t%d\t%d\t%.1f\n", s.name, s.score_chinese, s.score_math, s.score_english, s.total_score, s.average_score);
}
int main() {
int n, i, j;
printf("请输入学生人数:");
scanf("%d", &n);
Student students[n];
printf("请输入学生信息(姓名、语文成绩、数学成绩、英语成绩):\n");
for (i = 0; i < n; i++) {
scanf("%s %d %d %d", students[i].name, &students[i].score_chinese, &students[i].score_math, &students[i].score_english);
students[i].total_score = students[i].score_chinese + students[i].score_math + students[i].score_english;
students[i].average_score = (float)students[i].total_score / 3;
}
int choice;
printf("请选择排序方式(1-按总分排序,2-按平均分排序):");
scanf("%d", &choice);
if (choice == 1) {
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (students[i].total_score < students[j].total_score) {
Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
} else if (choice == 2) {
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (students[i].average_score < students[j].average_score) {
Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
} else {
printf("输入错误!");
return 0;
}
printf("学生信息排序结果如下:\n");
printf("姓名\t语文\t数学\t英语\t总分\t平均分\n");
for (i = 0; i < n; i++) {
print_student_info(students[i]);
}
// 将数据信息以文件的形式存盘
FILE *fp;
fp = fopen("students.dat", "w");
if (fp == NULL) {
printf("文件打开失败!");
return 0;
}
for (i = 0; i < n; i++) {
fprintf(fp, "%s %d %d %d %d %.1f\n", students[i].name, students[i].score_chinese, students[i].score_math, students[i].score_english, students[i].total_score, students[i].average_score);
}
fclose(fp);
printf("学生信息已经保存到文件!");
return 0;
}
```
该代码新增了一个 `Student` 结构体,用于存储学生的姓名和各科分数,以及总分和平均分。在排序时,根据用户选择的排序方式进行比较。最后将排序后的学生信息保存到文件 `students.dat` 中。
至于如何进行数据库的操作,可以使用相关的数据库管理系统(如MySQL、SQLite等)来实现。对于数据库的操作,可以使用C语言中的数据库操作API来进行编程。例如,对于MySQL数据库,可以使用 `mysql.h` 头文件中提供的函数来进行操作。具体的实现要根据具体的需求进行编写。