请你用C语言写一个学生信息管理的程序,功能包括查询、删除、排序、添加
时间: 2023-05-31 22:03:35 浏览: 40
学生信息。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct student {
char name[20];
int id;
int age;
float score;
} Student;
void add_student(Student *students, int *count) {
printf("请输入学生姓名:");
scanf("%s", students[*count].name);
printf("请输入学生学号:");
scanf("%d", &students[*count].id);
printf("请输入学生年龄:");
scanf("%d", &students[*count].age);
printf("请输入学生成绩:");
scanf("%f", &students[*count].score);
(*count)++;
printf("添加成功!\n");
}
void display_students(Student *students, int count) {
printf("姓名\t学号\t年龄\t成绩\n");
for (int i = 0; i < count; i++) {
printf("%s\t%d\t%d\t%.2f\n", students[i].name, students[i].id, students[i].age, students[i].score);
}
}
void search_student(Student *students, int count) {
int id;
printf("请输入要查询的学生学号:");
scanf("%d", &id);
for (int i = 0; i < count; i++) {
if (students[i].id == id) {
printf("姓名:%s\n", students[i].name);
printf("学号:%d\n", students[i].id);
printf("年龄:%d\n", students[i].age);
printf("成绩:%.2f\n", students[i].score);
return;
}
}
printf("查无此人!\n");
}
void delete_student(Student *students, int *count) {
int id;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
for (int i = 0; i < *count; i++) {
if (students[i].id == id) {
for (int j = i; j < *count - 1; j++) {
students[j] = students[j + 1];
}
(*count)--;
printf("删除成功!\n");
return;
}
}
printf("查无此人!\n");
}
void sort_students(Student *students, int count) {
Student temp;
for (int i = 0; i < count - 1; i++) {
for (int j = 0; j < count - 1 - i; j++) {
if (students[j].score < students[j + 1].score) {
temp = students[j];
students[j] = students[j + 1];
students[j + 1] = temp;
}
}
}
printf("排序成功!\n");
}
int main() {
Student students[100];
int count = 0;
int choice;
while (1) {
printf("请输入操作编号:\n");
printf("1、添加学生信息\n");
printf("2、显示所有学生信息\n");
printf("3、查询学生信息\n");
printf("4、删除学生信息\n");
printf("5、按成绩排序\n");
printf("6、退出\n");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student(students, &count);
break;
case 2:
display_students(students, count);
break;
case 3:
search_student(students, count);
break;
case 4:
delete_student(students, &count);
break;
case 5:
sort_students(students, count);
break;
case 6:
printf("谢谢使用!\n");
exit(0);
default:
printf("请输入正确的操作编号!\n");
}
}
return 0;
}