给我能够完成有开始界面,退出界面和主界面 能够数据输入、创建链表模块 能够查询课表排课系统的C语言程序
时间: 2023-12-10 16:42:02 浏览: 32
这是一个基本的学生课表排课系统的C语言程序,包括开始界面、主界面、退出界面、数据输入和创建链表模块以及查询功能。请注意,该程序可能需要根据实际需求进行修改。
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义每个课程的结构体
typedef struct Course {
char name[20]; // 课程名称
int time; // 上课时间(整点)
struct Course *next; // 指向下一个课程的指针
} Course;
Course* create_course(char name[], int time) {
Course *course = (Course*) malloc(sizeof(Course)); // 分配内存空间
strcpy(course->name, name); // 复制课程名称
course->time = time; // 设置上课时间
course->next = NULL; // 初始化下一个课程的指针为 NULL
return course;
}
void print_course(Course *course) {
printf("%s\t%d\n", course->name, course->time);
}
// 定义课表链表的结构体
typedef struct Schedule {
Course *head; // 指向链表头部的指针
Course *tail; // 指向链表尾部的指针
int count; // 链表中课程的数量
} Schedule;
Schedule* create_schedule() {
Schedule *schedule = (Schedule*) malloc(sizeof(Schedule)); // 分配内存空间
schedule->head = NULL; // 初始化链表头部指针为 NULL
schedule->tail = NULL; // 初始化链表尾部指针为 NULL
schedule->count = 0; // 初始化链表中课程数量为 0
return schedule;
}
void add_course(Schedule *schedule, Course *course) {
if (schedule->head == NULL) { // 如果链表为空,将头部指针和尾部指针都指向新的课程
schedule->head = course;
schedule->tail = course;
} else { // 如果链表不为空,将新的课程加入链表尾部
schedule->tail->next = course;
schedule->tail = course;
}
schedule->count++; // 链表中课程数量加 1
}
void print_schedule(Schedule *schedule) {
printf("课程名称\t上课时间\n");
Course *current = schedule->head; // 定义一个指向当前课程的指针
while (current != NULL) { // 循环输出链表中的每个课程
print_course(current);
current = current->next;
}
}
void clear_schedule(Schedule *schedule) {
Course *current = schedule->head; // 定义一个指向当前课程的指针
while (current != NULL) { // 循环删除链表中的每个课程
Course *temp = current;
current = current->next;
free(temp); // 释放内存空间
}
schedule->head = NULL; // 将链表头部指针和尾部指针都设为 NULL
schedule->tail = NULL;
schedule->count = 0; // 将链表中课程数量设为 0
}
int main() {
int choice = 0; // 定义用户选择的变量
Schedule *schedule = create_schedule(); // 创建一个课表链表
while (choice != 4) { // 循环显示主菜单,直到用户选择退出
printf("\n\n");
printf("=================================\n");
printf(" 学生课表排课系统 \n");
printf("=================================\n");
printf("1. 输入课程\n");
printf("2. 显示课程\n");
printf("3. 清空课程\n");
printf("4. 退出程序\n");
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
printf("\n\n");
printf("=================================\n");
printf(" 输入课程 \n");
printf("=================================\n");
char name[20];
int time;
printf("请输入课程名称:");
scanf("%s", name);
printf("请输入上课时间(整点):");
scanf("%d", &time);
Course *course = create_course(name, time); // 创建新的课程
add_course(schedule, course); // 将新的课程加入链表
printf("课程添加成功!\n");
break;
case 2:
printf("\n\n");
printf("=================================\n");
printf(" 显示课程 \n");
printf("=================================\n");
print_schedule(schedule); // 输出链表中的课程
break;
case 3:
printf("\n\n");
printf("=================================\n");
printf(" 清空课程 \n");
printf("=================================\n");
clear_schedule(schedule); // 清空链表
printf("课程清空成功!\n");
break;
case 4:
printf("\n\n");
printf("=================================\n");
printf(" 退出程序 \n");
printf("=================================\n");
clear_schedule(schedule); // 清空链表
printf("谢谢使用!\n");
break;
default:
printf("\n\n");
printf("=================================\n");
printf(" 输入错误,请重新输入 \n");
printf("=================================\n");
break;
}
}
return 0;
}
```
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)