请编写一个c语言的课程信息管理系统,可以进行学生信息录入,成绩录入,成绩排序,输出排名,删除一名学生信息
时间: 2023-06-20 17:09:37 浏览: 148
这是一个简单的课程信息管理系统,包含了学生信息的录入、成绩的录入、成绩排序、输出排名和删除一名学生信息的功能。代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_STUDENTS 100
// 学生结构体
typedef struct student {
char name[20];
int id;
int score;
} Student;
// 学生数组
Student students[MAX_STUDENTS];
// 当前学生数量
int num_students = 0;
// 录入学生信息
void add_student() {
if (num_students >= MAX_STUDENTS) {
printf("已经达到最大学生数量,无法添加新学生!\n");
return;
}
printf("请输入学生姓名:");
scanf("%s", students[num_students].name);
printf("请输入学生学号:");
scanf("%d", &students[num_students].id);
printf("请输入学生成绩:");
scanf("%d", &students[num_students].score);
num_students++;
printf("学生信息添加成功!\n");
}
// 录入学生成绩
void add_score() {
int id, i;
printf("请输入要录入成绩的学生学号:");
scanf("%d", &id);
for (i = 0; i < num_students; i++) {
if (students[i].id == id) {
printf("请输入学生 %s 的成绩:", students[i].name);
scanf("%d", &students[i].score);
printf("成绩录入成功!\n");
return;
}
}
printf("找不到该学生,请检查输入的学号是否正确!\n");
}
// 按成绩排序
void sort_students() {
int i, j;
Student temp;
for (i = 0; i < num_students - 1; i++) {
for (j = i + 1; j < num_students; j++) {
if (students[i].score < students[j].score) {
temp = students[i];
students[i] = students[j];
students[j] = temp;
}
}
}
printf("学生成绩排序完成!\n");
}
// 输出学生成绩排名
void print_rank() {
int i;
printf("学生成绩排名如下:\n");
for (i = 0; i < num_students; i++) {
printf("第%d名:%s,成绩为%d\n", i + 1, students[i].name, students[i].score);
}
}
// 删除学生信息
void delete_student() {
int id, i, j;
printf("请输入要删除的学生学号:");
scanf("%d", &id);
for (i = 0; i < num_students; i++) {
if (students[i].id == id) {
for (j = i; j < num_students - 1; j++) {
students[j] = students[j + 1];
}
num_students--;
printf("学生信息删除成功!\n");
return;
}
}
printf("找不到该学生,请检查输入的学号是否正确!\n");
}
// 显示主菜单
void show_menu() {
printf("====================\n");
printf("1. 录入学生信息\n");
printf("2. 录入学生成绩\n");
printf("3. 按成绩排序\n");
printf("4. 输出学生成绩排名\n");
printf("5. 删除学生信息\n");
printf("0. 退出程序\n");
printf("====================\n");
}
int main() {
int choice;
while (1) {
show_menu();
printf("请输入选项:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
add_score();
break;
case 3:
sort_students();
break;
case 4:
print_rank();
break;
case 5:
delete_student();
break;
case 0:
printf("谢谢使用!\n");
return 0;
default:
printf("无效选项,请重新输入!\n");
break;
}
}
return 0;
}
```
注意,这只是一个简单的示例代码,实际应用中还需要考虑数据存储、输入验证、异常处理等问题。
阅读全文