用C语言写一个学生课表管理系统实现新增以及查询功能实现清屏功能
时间: 2023-12-09 18:03:08 浏览: 66
好的,以下是一个示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_COURSE_NUM 100 // 最大课程数
#define MAX_NAME_LENGTH 20 // 最大姓名长度
#define MAX_COURSE_LENGTH 30 // 最大课程名长度
typedef struct {
char name[MAX_NAME_LENGTH]; // 学生姓名
char courses[MAX_COURSE_NUM][MAX_COURSE_LENGTH]; // 学生选修的课程
int course_num; // 学生选修课程数
} Student;
int main() {
Student students[MAX_COURSE_NUM];
int student_num = 0; // 已添加的学生数
int choice;
// 主循环
while (1) {
system("clear"); // 清屏
printf("***** 学生课表管理系统 *****\n");
printf("请选择操作:\n");
printf("1. 新增学生\n");
printf("2. 查询学生\n");
printf("3. 退出\n");
printf("请输入操作编号: ");
scanf("%d", &choice);
switch (choice) {
case 1: // 新增学生
if (student_num >= MAX_COURSE_NUM) {
printf("学生数量已达上限,无法添加!\n");
break;
}
printf("请输入学生姓名: ");
scanf("%s", students[student_num].name);
printf("请输入学生选修的课程,以回车分隔,输入end结束: \n");
char course[MAX_COURSE_LENGTH];
students[student_num].course_num = 0;
while (1) {
scanf("%s", course);
if (strcmp(course, "end") == 0) {
break;
}
strcpy(students[student_num].courses[students[student_num].course_num], course);
students[student_num].course_num++;
}
printf("添加成功!\n");
student_num++;
break;
case 2: // 查询学生
printf("请输入要查询的学生姓名: ");
char name[MAX_NAME_LENGTH];
scanf("%s", name);
for (int i = 0; i < student_num; i++) {
if (strcmp(students[i].name, name) == 0) {
printf("学生姓名: %s\n", students[i].name);
printf("选修课程: ");
for (int j = 0; j < students[i].course_num; j++) {
printf("%s ", students[i].courses[j]);
}
printf("\n");
break;
}
}
break;
case 3: // 退出
printf("谢谢使用,再见!\n");
exit(0);
default:
printf("输入有误,请重新输入!\n");
break;
}
getchar(); // 防止输入字符影响下一次输入
printf("按任意键继续...\n");
getchar(); // 等待用户输入
}
return 0;
}
```
这个程序使用了一个结构体来存储学生信息,包括姓名和选修的课程。使用一个数组来存储所有学生的信息。使用了一个简单的菜单来提供用户选择,包括新增学生和查询学生两个功能。使用了 `system("clear")` 来清屏,这个语句在 Windows 上可能需要改成 `system("cls")`。