学生信息管理系统是一个用于管理学生信息的系统,它需要实现以下功能:
1. 添加学生信息
2. 修改学生信息
3. 删除学生信息
4. 查询学生信息
5. 显示所有学生信息
6. 分页显示学生信息
7. 排序学生信息
8. 打印学生信息
9. 退出系统
为了实现这些功能,我们可以使用C语言编写一个学生信息管理系统。以下是一个简单的实现:
```c
#include
#include
#include
typedef struct Student {
int id;
char name[20];
float score;
} Student;
void add_student(Student *students, int *count);
void modify_student(Student *students, int index, int id, char *name, float score);
void delete_student(Student *students, int index);
void query_student(Student *students, int count, int start, int end);
void display_students(Student *students, int count);
void sort_students(Student *students, int count);
void print_students(Student *students, int count);
void exit_system(void);
int main() {
Student students[100];
int count = 0;
int choice;
while (1) {
printf("1. 添加学生信息
");
printf("2. 修改学生信息
");
printf("3. 删除学生信息
");
printf("4. 查询学生信息
");
printf("5. 显示所有学生信息
");
printf("6. 排序学生信息
");
printf("7. 打印学生信息
");
printf("8. 退出系统
");
printf("请输入您的选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student(students, &count);
break;
case 2:
- modify_student(students, count
- 1, 1, "张三", 89.5);
break;
case 3:
- delete_student(students, count
- 1);
break;
case 4:
query_student(students, count);
break;
case 5:
display_students(students, count);
break;
case 6:
sort_students(students, count);
break;
case 7:
print_students(students, count);
break;
case 8:
exit_system();
default:
printf("无效的选择,请重新输入!
");
}
}
return 0;
}
void add_student(Student *students, int *count) {
int id;
char name[20];
float score;
printf("请输入学生ID:");
scanf("%d", &id);
printf("请输入学生姓名:");
scanf("%s", name);
printf("请输入学生成绩:");
scanf("%f", &score);
students[*count].id = id;
students[*count].name[0] = ' ';
students[*count].score = score;
(*count)++;
}
void modify_student(Student *students, int index, int id, char *name, float score) {
if (index >= 0 && index < *count) {
students[index].id = id;
strcpy(students[index].name, name);
students[index].score = score;
} else {
printf("无效的学生ID或索引,请重新输入!
");
}
}
void delete_student(Student *students, int index) {
if (index >= 0 && index < *count) {
*count--;
- memmove(&students[index], &students[index + 1], sizeof(Student) * (*count
- index - 1));
} else {
printf("无效的学生ID,请重新输入!
");
}
}
void query_student(Student *students, int count, int start, int end) {
for (int i = start; i <= end; i++) {
printf("学生ID:%d,姓名:%s,成绩:%.2f
", students[i].id, students[i].name, students[i].score);
}
}
void display_students(Student *students, int count) {
for (int i = 0; i < count; i++) {
printf("学生ID:%d,姓名:%s,成绩:%.2f
", students[i].id, students[i].name, students[i].score);
}
}
void sort_students(Student *students, int count) {
- for (int i = 0; i < count
- 1; i++) {
for (int j = i + 1; j < count; j++) {
if (students[i].score > students[j].score) {
Student temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
}
void print_students(Student *students, int count) {
for (int i = 0; i < count; i++) {
printf("学生ID:%d,姓名:%s,成绩:%.2f
", students[i].id, students[i].name, students[i].score);
}
}
void exit_system() {
printf("退出系统...");
getchar(); // 等待用户按下任意键退出程序
exit(0);
}
```
这个实现使用了数组来存储学生信息,每个学生的信息包括ID、姓名和成绩。通过调用不同的函数来实现添加、修改、删除、查询、显示和排序学生信息的功能。