目   录

一 引 言 ……………………………………………………… . 2
二 系统功能 和数据说明 …………………………………… . 3
一) 功能简 介 ……………………………………………… 3
二) 程序中的数据说明 …………………………………… 3
三 程序总体设计 及流程图 ………………………………… .4
一) 应用到的 c 语言 ……………………………………… 4
二) 程序的总框架 ………………………………………… 5
四 功能模块设计及调试 …………………………………… . 5

  1. 菜单 ………………………………………… .5
  2. 查询农历 ……………………………… .6
  3. 显示月历 …………………………………… .8
  4. 计算某天距今天的天数。 ………………………………………… …10
  5. 查询距今天相应天数的日期。
  6. 计算任意两天之间的天数差。
  7. 显示二十四节气
  8. 显示节日。
    二)调试结果 …………………………………………… …11
    五 程序清单 ………………………………………………… 12
    六 结束语 …………………………………………………… 17

一 引言

通过大一上学期对 C 语言的学习,了解到了很多 C 语言的相关知识。学习的过程有很多困惑但是当自己能够独立的看懂,能过独立的完成一个简单的程序时,心中就会收获无限的喜悦和成就感。我可以里哟哦那个它看懂一些简单的程序,编写一些简单的计算程序,更多的是学会了一种思想 —— 编程,它让我在去思考很多日常生活中的事物是怎么样通过一个个小小的函数实现功能的,激发我对探究的兴趣。
C 语言是近年在国内外得到迅速推广应用的一种语言。 C 语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。因此, C 语言特别适合于编写各种软件。
在这次的课程设计中我将把日常生活中最经常接触的 —— 日期的查询利用 C 语言的程序编成一个简单的日历。通过这个小小的日历可以实现很多功能。在程序中你能看到很多熟悉的 C 语言关键字,同时也加入了很多自己课外了解到的一些关键字。在不断的调试中最终才获得最为完整的程序。

二 系统功能和数据说明

(一) 功能简介

在我们的日常生活中能接触到很多不同类型的日历,在日历上我们通常希望它能简介明了的给我们最想要的日期信息。在我的万年历当中,就是将日历,月历做的简单明了,很方便我们的使用。下面是它要实现的一些基本功能:

(二) 程序中的数据说明

/*******宏  定  义*******/
//#define ESC 27
//#define ENTER 13
#define start_year 1840
#define end_year 2100

/*******定  义  全  局  变  量*******/
typedef enum {false = 0, true = 1} bool;

typedef struct _LONGTIME{
  int wYear;
  int wMonth;
  int wDayOfWeek;
  int wDay;
  int wHour;
  int wMinute;
  int wSecond;
  int wMillisecond;
}LONGTIME,*PLONGTIME,LPLONGTIME;//时间结构体

typedef struct _LUNARDATE{
  long int iYear;
  int wMonth;
  int wDay;//农历年、月、日
  bool bIsLeap;//闰月标志
  unsigned int iDaysofMonth;//大月天数
}LUNARDATE,*PLUNARDATE,LPLUNARDATE;

int Yuexu[]={		//月序码表

三 程序总体设计及流程图

/*******函  数  声  明*******/
void DateRefer(int year,int month,int day,bool SST);		//公历查农历
int GetDaysOfMonth(int year,int month,bool mode,bool bLeap);//取当前月份天数,mode为false时,查公历,mode为true时查农历,此时bLeap为是否闰月
void ShowCalendar(int year,int month,int day);				//打印一个月的月历
int Jizhun(int year,int month,int day);						//算出基准天
int int2(double v);											//取整
double GetDecimal(double n);								//取得小数部分
LONGTIME GetDate(double n);									//将小数日转公历
int GetGre(LUNARDATE LunarDate);							//农历查公历
LONGTIME GetCurTime();										//取当前系统时间
LONGTIME SysTimeToLong(SYSTEMTIME SystemTime);				//时间结构体转换
LONGTIME GMTConvert(LONGTIME OrigTime);						//时区转换
bool IsLeapYear(int nYear);									//闰年
void ShowSolarTerms(int year);								//显示二十四节气
void Holiday(int month);									//公历节日

这些函数的定义极其相应的内部程序共同构筑起了这个万年历总程序。

四 功能模块函数设计和调试

菜单:

查询农历

显示月历

计算某天距今天的天数:

查询距今天相应天数的日期。

计算任意两天之间的天数差。

显示二十四节气。

显示节日

分为农历和公立

六 小结

在经历了课程设计和制作的全过程后,我发现自己的知识贫乏,知识狭隘。
原本以为不只是一个小的课程设计,很容易就能完成,但经过实际操作,我在那里花了很大力气,别说其他事情了,就是时间。
我在宿舍住了三个晚上,更不用说白天了。
我也从这个课程设计中学到了很多。
首先,我对C语言有了更深的理解,我对它的使用也更熟练了。
有些功能我不知道,也不熟悉。
我已经学会了如何使用它。
其次,这次我发现了很多资料,找专业书籍,在网上找各种资料。
它还让我学到了一些书本上学不到的知识,给了我很多洞察力。
同时,我们的同学也互相讨论,这也增进了我们同学之间的感情。

【源码获取方式】:
https://item.taobao/item.htm?ft=t&id=670302758749

更多推荐

C语言课程设计超级万年历