C语言不使用结构体只使用数组设计学生成绩管理系统,学生基本信息包括学号、姓名、课程名和各科成绩。要求有输入、显示、按学号排序、按姓名查询的功能。
时间: 2023-12-22 16:12:58 浏览: 96
C语言利用结构体数组实现学生成绩管理系统
5星 · 资源好评率100%
好的,这是一个比较复杂的问题,需要进行详细的代码设计和实现。下面是一个简单的代码示例,实现了输入、显示、按学号排序和按姓名查询的功能。需要注意的是,该代码并不完整,仅供参考。
```c
#include <stdio.h>
#include <string.h>
#define MAX_STUDENT 100
typedef struct {
char id[10];
char name[20];
char course[20];
float score;
} Student;
void input(Student students[], int n);
void display(Student students[], int n);
void sortById(Student students[], int n);
void searchByName(Student students[], int n, char name[]);
int main() {
Student students[MAX_STUDENT];
int n;
char name[20];
printf("请输入学生人数:");
scanf("%d", &n);
input(students, n);
display(students, n);
sortById(students, n);
display(students, n);
printf("请输入要查询的学生姓名:");
scanf("%s", name);
searchByName(students, n, name);
return 0;
}
void input(Student students[], int n) {
int i;
for (i = 0; i < n; i++) {
printf("请输入第 %d 个学生的学号、姓名、课程名和成绩:", i + 1);
scanf("%s%s%s%f", students[i].id, students[i].name, students[i].course, &students[i].score);
}
}
void display(Student students[], int n) {
int i;
printf("学号\t姓名\t课程名\t成绩\n");
for (i = 0; i < n; i++) {
printf("%s\t%s\t%s\t%.2f\n", students[i].id, students[i].name, students[i].course, students[i].score);
}
}
void sortById(Student students[], int n) {
int i, j;
Student temp;
for (i = 0; i < n - 1; i++) {
for (j = i + 1; j < n; j++) {
if (strcmp(students[i].id, students[j].id) > 0) {
temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
}
void searchByName(Student students[], int n, char name[]) {
int i, found = 0;
printf("学号\t姓名\t课程名\t成绩\n");
for (i = 0; i < n; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("%s\t%s\t%s\t%.2f\n", students[i].id, students[i].name, students[i].course, students[i].score);
found = 1;
}
}
if (!found) {
printf("未找到该学生!\n");
}
}
```
该程序定义了一个结构体 `Student`,包含学号、姓名、课程名和成绩四个成员。使用 `input` 函数实现了输入学生信息的功能,使用 `display` 函数实现了显示学生信息的功能,使用 `sortById` 函数实现了按学号排序的功能,使用 `searchByName` 函数实现了按姓名查询的功能。在 `main` 函数中,首先读入学生人数,然后依次调用四个函数实现各个功能。
阅读全文