用C语言设计一个简单日程安排管理系统
时间: 2024-09-11 10:17:59 浏览: 52
在C语言中设计一个简单日程安排管理系统,可以考虑使用结构体来表示日程信息,如日期、事件名称和时间等,并结合数组或链表来存储和管理这些日程。以下是一个基础框架的示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义日程项结构体
typedef struct {
char date[20];
char event[50];
time_t start_time;
} ScheduleItem;
// 创建一个新的日程项
ScheduleItem* create_schedule(char* date, char* event, time_t start_time) {
ScheduleItem* item = (ScheduleItem*)malloc(sizeof(ScheduleItem));
if (item) {
strcpy(item->date, date);
strcpy(item->event, event);
item->start_time = start_time;
}
return item;
}
// 添加新的日程到列表
void add_to_schedule(ScheduleItem** schedule_list, ScheduleItem* new_item) {
// 如果列表为空,直接添加
if (*schedule_list == NULL) {
*schedule_list = new_item;
return;
}
// 否则遍历并插入合适的位置
for (int i = 0; i < count(*schedule_list); i++) {
if (new_item->start_time > (*schedule_list)[i].start_time) {
ScheduleItem* temp = *schedule_list;
while (temp->next != NULL && temp->next->start_time <= new_item->start_time) {
temp = temp->next;
}
new_item->next = temp->next;
temp->next = new_item;
break;
}
}
}
// 打印日程列表
void print_schedule(ScheduleItem* schedule_list) {
if (schedule_list == NULL) {
printf("No schedules.\n");
} else {
ScheduleItem* current = schedule_list;
while (current != NULL) {
printf("%s - %s (%ld)\n", current->date, current->event, current->start_time);
current = current->next;
}
}
}
// 主函数,演示如何使用
int main() {
ScheduleItem* schedule_list = NULL;
// 添加几个日程
ScheduleItem* item1 = create_schedule("2023-01-01", "New Year's Day", timegm(strptime("00:00", "%H:%M", NULL)));
add_to_schedule(&schedule_list, item1);
ScheduleItem* item2 = create_schedule("2023-02-14", "Valentine's Day", timegm(strptime("19:30", "%H:%M", NULL)));
add_to_schedule(&schedule_list, item2);
// 打印日程
print_schedule(schedule_list);
// 清理内存
free(item1);
free(item2);
free(schedule_list);
return 0;
}
```
阅读全文