酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

用c语言简单的编写一个日程安排程序,要求:可以添加、删除、修改日程安排(包括时间、事件内容)。能显示当天或指定日期的日程。能按周或月查看日程安排概览。

以下是一个简单的 C 语言日程安排程序示例,实现了添加、删除、修改日程安排,显示当天或指定日期的日程,以及按周或月查看日程安排概览的功能。程序使用结构体来存储日程信息,通过数组来管理多个日程。 ```c #include <stdio.h> #include <stdlib.h> #include <string.h> // 定义日程结构体 typedef struct { int year; int month; int day; int hour; int minute; char event[100]; } Schedule; // 全局变量 Schedule schedules[100]; // 存储日程 int scheduleCount = 0; // 日程数量 // 函数声明 void addSchedule(); void deleteSchedule(); void modifySchedule(); void displayScheduleForDay(int year, int month, int day); void displayScheduleForWeek(int year, int month, int day); void displayScheduleForMonth(int year, int month); // 添加日程 void addSchedule() { Schedule newSchedule; printf("请输入日程的年: "); scanf("%d", &newSchedule.year); printf("请输入日程的月: "); scanf("%d", &newSchedule.month); printf("请输入日程的日: "); scanf("%d", &newSchedule.day); printf("请输入日程的小时: "); scanf("%d", &newSchedule.hour); printf("请输入日程的分钟: "); scanf("%d", &newSchedule.minute); printf("请输入日程的事件内容: "); scanf(" %[^\n]", newSchedule.event); schedules[scheduleCount++] = newSchedule; } // 删除日程 void deleteSchedule() { int year, month, day; printf("请输入要删除日程的年: "); scanf("%d", &year); printf("请输入要删除日程的月: "); scanf("%d", &month); printf("请输入要删除日程的日: "); scanf("%d", &day); int found = 0; for (int i = 0; i < scheduleCount; i++) { if (schedules[i].year == year && schedules[i].month == month && schedules[i].day == day) { for (int j = i; j < scheduleCount - 1; j++) { schedules[j] = schedules[j + 1]; } scheduleCount--; found = 1; break; } } if (!found) { printf("未找到指定日程\n"); } } // 修改日程 void modifySchedule() { int year, month, day; printf("请输入要修改日程的年: "); scanf("%d", &year); printf("请输入要修改日程的月: "); scanf("%d", &month); printf("请输入要修改日程的日: "); scanf("%d", &day); int found = 0; for (int i = 0; i < scheduleCount; i++) { if (schedules[i].year == year && schedules[i].month == month && schedules[i].day == day) { printf("请输入修改后的小时: "); scanf("%d", &schedules[i].hour); printf("请输入修改后的分钟: "); scanf("%d", &schedules[i].minute); printf("请输入修改后的事件内容: "); scanf(" %[^\n]", schedules[i].event); found = 1; break; } } if (!found) { printf("未找到指定日程\n"); } } // 显示指定日期的日程 void displayScheduleForDay(int year, int month, int day) { int found = 0; for (int i = 0; i < scheduleCount; i++) { if (schedules[i].year == year && schedules[i].month == month && schedules[i].day == day) { printf("%d-%d-%d %d:%d %s\n", schedules[i].year, schedules[i].month, schedules[i].day, schedules[i].hour, schedules[i].minute, schedules[i].event); found = 1; } } if (!found) { printf("当天没有日程安排\n"); } } // 按周显示日程 void displayScheduleForWeek(int year, int month, int day) { int startDay = day - (day - 1) % 7; // 计算本周开始的日期 for (int i = startDay; i < startDay + 7; i++) { displayScheduleForDay(year, month, i); } } // 按月显示日程 void displayScheduleForMonth(int year, int month) { for (int day = 1; day <= 31; day++) { int validDay = 0; switch (month) { case 2: if ((year % 4 == 0 && year % 100!= 0) || year % 400 == 0) { validDay = (day <= 29); } else { validDay = (day <= 28); } break; case 4: case 6: case 9: case 11: validDay = (day <= 30); break; default: validDay = 1; } if (validDay) { displayScheduleForDay(year, month, day); } } } int main() { int choice; while (1) { printf("1. 添加日程\n"); printf("2. 删除日程\n"); printf("3. 修改日程\n"); printf("4. 显示当天日程\n"); printf("5. 显示指定日期日程\n"); printf("6. 按周显示日程\n"); printf("7. 按月显示日程\n"); printf("8. 退出\n"); printf("请选择: "); scanf("%d", &choice); switch (choice) { case 1: addSchedule(); break; case 2: deleteSchedule(); break; case 3: modifySchedule(); break; case 4: displayScheduleForDay(2023, 10, 24); // 假设当前日期为 2023 年 10 月 24 日 break; case 5: { int year, month, day; printf("请输入要查看的年: "); scanf("%d", &year); printf("请输入要查看的月: "); scanf("%d", &month); printf("请输入要查看的日: "); scanf("%d", &day); displayScheduleForDay(year, month, day); break; } case 6: { int year, month, day; printf("请输入要查看的年: "); scanf("%d", &year); printf("请输入要查看的月: "); scanf("%d", &month); printf("请输入要查看的日: "); scanf("%d", &day); displayScheduleForWeek(year, month, day); break; } case 7: { int year, month; printf("请输入要查看的年: "); scanf("%d", &year); printf("请输入要查看的月: "); scanf("%d", &month); displayScheduleForMonth(year, month); break; } case 8: exit(0); default: printf("无效的选择,请重新输入\n"); } } return 0; } ``` 这只是一个简单的示例,在实际应用中可能需要更完善的错误处理、输入验证和数据存储方式。 [2024-11-09 15:50:44 | AI写代码神器 | 1918点数解答]

相关提问