资源简介
数据结构综合课程作业,可以查询日历以及针对任意一天添加日常并对日常进行管理
代码片段和文件信息
#include“stdio.h“
#include“conio.h“
#include“string.h“
#include“stdlib.h“
#include “time.h“
#include “windows.h“
typedef struct e{
int yearmonthdayhour; //记录事件发生的具体时间
char address[10]remark[20]; //记录事件的地点和备注
int len; //记录日程个数
struct e *next; //指向下一个事件
}Event;
//标记是否保存了
int save=0;
int g_MonthDays [13]={0312831303130313130313031};
//判断年是否是闰年,是返回1,不是返回0
int LeapYear(int n);
//计算从1年到year-1年的总天数
int CountYearDays(int year);
//计算1月到month-1月的天数
int CountMonthDays(int month);
//计算year年month月的天数
int MonthDays(int year int month);
// 计算year年month月day天是星期几并打印
void PrintDay(Event *event int year int month int day);
//查找在event中是否有时间为year年month月day天的日程
void Find(Event *event int year int month int day);
//计算year年month月的日历情况并打印
void PrintMonth(int year int month);
//计算year年全年的日历情况并全部打印
void PrintYear(int year);
//显示提示信息
void Show();
//判断输入的信息是否合理
void Check(Event *event int c);
//添加日程安排
void AddEvent(Event *event);
//添加日程安排的时间 (修改时间是调用这个函数以及CheckTime函数)
Event *AddTime(Event *event);
//对添加的日程时间判断是否合理及是否重复
int CheckTime(Event *eventEvent *qint hour);
//添加日程安排的地址(修改地址时也调用这个函数)
Event *AddAddress();
//添加日程安排的备注 (修改备注是也调用这个函数)
Event *AddRemark();
//打印全部日程安排
void PrintEvent(Event *event);
//修改某一日程
void Modify(Event *event);
//删除某一日程
void Delete(Event *event);
//获取当前时间并查询当前是否有日程,并输出提示
void GetTime(Event *event);
int LeapYear(int n){
if((n%4==0&&n%100!=0)||n%400==0)
return (1);
else return (0);
}
int CountYearDays(int year){
int iflagdays=0;
for(i=1;i flag=LeapYear(i);
if(flag) days=days+366;
else days=days+365;
}
return (days);
}
int CountMonthDays(int month){
int idays=0;
for(i=0;i days=days+g_MonthDays [i];
return (days);
}
int MonthDays(int year int month){
int daysflag;
days=g_MonthDays[month];
flag=LeapYear(year);
if(flag&&month>2)
days++;
return days;
}
void PrintDay(Event *eventint Year int Month int Day){
Event *Ev; Ev=event;
int tyear=Yearmonth=Monthday=Dayflagydaysmdaysalldaysmondays;
ydays=CountYearDays(year);
mdays=CountMonthDays(month);
flag=LeapYear(year);
if(flag&&month>2)
mdays++;
alldays=ydays+mdays+day;
t=alldays%7;
printf(“\n%d年%d月%d日是:“yearmonthday);
switch (t){
case 0:printf(“星期日\n“); break;
case 1:printf(“星期一\n“); break;
case 2:printf(“星期二\n“); break;
case 3:printf(“星期三\n“); break;
case 4:printf(“星期四\n“); break;
case 5:printf(“星期五\n“); break;
case 6:printf(“星期六\n“); break;
};
Find(Evyearmonthday);
}
void Find(Event *event int year int month int day){
Event *pre; pre=event->next;
int flag=0;
for(pre; pre!=NULL; pre=pre->next){
if(pre->year==year &
评论
共有 条评论