请用c语言帮我编写一个学生选修课管理系统
时间: 2023-06-04 08:05:47 浏览: 69
好的,我可以为您提供一份C语言学生选修课管理系统的代码,如下所示:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义结构体,存储学生信息
struct student {
char id[20]; // 学号
char name[20]; // 姓名
int course_num; // 选修课程数目
char courses[10][20]; // 选修课程名称
};
// 定义全局变量,存储学生信息
struct student students[100];
int student_count = 0;
// 打印菜单
void print_menu() {
printf("1. 添加学生\n");
printf("2. 删除学生\n");
printf("3. 查询学生\n");
printf("4. 显示所有学生\n");
printf("5. 退出\n");
}
// 添加学生
void add_student() {
struct student new_student;
printf("请输入学生学号:");
scanf("%s", new_student.id);
printf("请输入学生姓名:");
scanf("%s", new_student.name);
printf("请输入选修课程数目:");
scanf("%d", &new_student.course_num);
printf("请输入选修课程名称(用空格分隔):");
for (int i = 0; i < new_student.course_num; i++) {
scanf("%s", new_student.courses[i]);
}
students[student_count] = new_student;
student_count++;
printf("添加学生成功!\n");
}
// 删除学生
void delete_student() {
char delete_id[20];
printf("请输入要删除的学生学号:");
scanf("%s", delete_id);
for (int i = 0; i < student_count; i++) {
if (strcmp(students[i].id, delete_id) == 0) {
// 将该学生之后的学生向前移动一个位置
for (int j = i; j < student_count - 1; j++) {
students[j] = students[j + 1];
}
student_count--;
printf("删除学生成功!\n");
return;
}
}
printf("未找到该学生!\n");
}
// 查询学生
void query_student() {
char query_id[20];
printf("请输入要查询的学生学号:");
scanf("%s", query_id);
for (int i = 0; i < student_count; i++) {
if (strcmp(students[i].id, query_id) == 0) {
printf("学号:%s\n", students[i].id);
printf("姓名:%s\n", students[i].name);
printf("选修课程数目:%d\n", students[i].course_num);
printf("选修课程名称:");
for (int j = 0; j < students[i].course_num; j++) {
printf("%s ", students[i].courses[j]);
}
printf("\n");
return;
}
}
printf("未找到该学生!\n");
}
// 显示所有学生
void show_all_students() {
for (int i = 0; i < student_count; i++) {
printf("学号:%s\n", students[i].id);
printf("姓名:%s\n", students[i].name);
printf("选修课程数目:%d\n", students[i].course_num);
printf("选修课程名称:");
for (int j = 0; j < students[i].course_num; j++) {
printf("%s ", students[i].courses[j]);
}
printf("\n");
}
}
int main() {
// 循环显示菜单
while (1) {
print_menu();
int choice;
printf("请选择操作:");
scanf("%d", &choice);
switch (choice) {
case 1:
add_student();
break;
case 2:
delete_student();
break;
case 3:
query_student();
break;
case 4:
show_all_students();
break;
case 5:
exit(0);
default:
printf("无效操作,请重新选择!\n");
}
}
}
```
这是一个简单的学生选修课管理系统,可以通过菜单实现添加学生、删除学生、查询学生、显示所有学生等功能。当然,这只是一个简单的示例,具体的实现取决于您的需求。