C语言不使用结构体只使用数组设计学生成绩管理系统,要求有输入、显示、排序、查询的功能。
时间: 2023-12-30 20:06:29 浏览: 100
学生成绩管理系统 用C语言写的
3星 · 编辑精心推荐
好的,这是一个不使用结构体只使用数组的学生成绩管理系统的问题。下面是一个简单的实现,它包含了输入、显示、排序和查询等功能,你可以参考一下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENT_NUM 100
#define MAX_NAME_LEN 20
char names[MAX_STUDENT_NUM][MAX_NAME_LEN];
int scores[MAX_STUDENT_NUM];
int student_num = 0;
void add_student() {
if (student_num >= MAX_STUDENT_NUM) {
printf("too many students!\n");
return;
}
printf("please input student name and score: ");
scanf("%s %d", names[student_num], &scores[student_num]);
student_num++;
printf("add student success!\n");
}
void display_students() {
if (student_num == 0) {
printf("no students!\n");
return;
}
for (int i = 0; i < student_num; i++) {
printf("name: %s, score: %d\n", names[i], scores[i]);
}
}
void sort_students() {
for (int i = 0; i < student_num-1; i++) {
for (int j = i+1; j < student_num; j++) {
if (scores[i] < scores[j]) {
int tmp_score = scores[i];
scores[i] = scores[j];
scores[j] = tmp_score;
char tmp_name[MAX_NAME_LEN];
strcpy(tmp_name, names[i]);
strcpy(names[i], names[j]);
strcpy(names[j], tmp_name);
}
}
}
printf("sort students success!\n");
}
void search_student() {
char name[MAX_NAME_LEN];
printf("please input name to search: ");
scanf("%s", name);
int found = 0;
for (int i = 0; i < student_num; i++) {
if (strcmp(names[i], name) == 0) {
printf("name: %s, score: %d\n", names[i], scores[i]);
found = 1;
break;
}
}
if (!found) {
printf("student not found!\n");
}
}
int main() {
while (1) {
printf("1. add student\n");
printf("2. display students\n");
printf("3. sort students\n");
printf("4. search student\n");
printf("5. exit\n");
printf("please select your operation: ");
int op;
scanf("%d", &op);
switch (op) {
case 1:
add_student();
break;
case 2:
display_students();
break;
case 3:
sort_students();
break;
case 4:
search_student();
break;
case 5:
printf("bye-bye!\n");
exit(0);
default:
printf("invalid operation!\n");
break;
}
}
return 0;
}
```
这个程序使用两个数组 `names` 和 `scores` 来存储学生的姓名和分数,最多可以存储 `MAX_STUDENT_NUM` 个学生。程序提供了四个功能:
1. `add_student()`:添加一个学生,输入学生的姓名和分数,存储到数组中;
2. `display_students()`:显示所有学生的姓名和分数;
3. `sort_students()`:按照分数排序,从高到低输出所有学生的姓名和分数;
4. `search_student()`:查询一个学生,输入学生的姓名,遍历数组找到对应的学生,输出其姓名和分数。
你可以根据需要进行修改和优化。
阅读全文