C语言万年历设计报告

C语言万年历设计报告
C语言万年历设计报告

C语言课程

设计报告题目:编写万年历系统

年级:

专业:

班级:

姓名:

学号:

目录

第1章设计目的

第2章需求分析

第3章概要设计

第4章源程序清单

第5章执行结果

1)登陆界面

2)显示当前日月历

3)显示具体日期信息

第6章程序问题调试与课程设计心得

第1章设计目的

设计目的(实验要求):

1.模仿现实生活中的挂历.

2.当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).

3.当系统日期变到下一月时,系统自动翻页到下一月.

第2章需求分析

(1)程序运行时,首先给出菜单选项和输入提示:

(2)用户可以通过主菜单选择不同选项。输入1,通过输入当前日期可显示当前月的日历;输入2,通过输入具体日期(中间以空格分开)可显示该日具体信息;输入3,则退出查询系统。

第3章概要设计

1.菜单选择界面可通过下面所示函数时现;

主要思路:

通过while语句与swich…case以及if条件语句实现菜单的循环功能和不同选

项的功能实现。

闰年与平年的判断:

代码如下:

void main()

{

int year,month,day,a,b;

while(1)

{

printf("\n\n\n\n");

printf("

**********************************************************\n\n");

printf(" * * \n");

printf(" Welcome to enter calendar system \n");

printf(" * * \n\n");

printf("

**********************************************************\n\n\n"

);

printf(" 1 The month of current date 2 Date 3 Exit\n");

printf(" please import your choose<1~3>,press Enter to define: ");

scanf("%d",&b);

switch(b)

{

case 1:

printf("\n Please import the year,month and day which you want to

check,the year,month and day separation by blank space: ");

scanf("%d%d%d",&year,&month,&day);

a=x3(year,month,1);

if(a==0)

{

printf("Error!Please import again.\n");

break;}

yueli(year,month,day);

break;

case 2:

printf("\n Please import the year,month and day which you want to check,

the year,month and day separation by blank space: ");

scanf("%d%d%d",&year,&month,&day);

a=x3(year,month,day);

if(a==0)

{

printf("Error!Please import again.\n");

break;}

rili(year,month,day);

break;

case 3:

exit(0);

default:

printf("Error!Please import again.\n\n");

}

}

2.闰年的判断:

计算所输入的年份是否可被4整除,若不能被整除,为平年。若可被4整除,计算此年份能否被100整除,不能被100整除则为闰年。既能被4整除,也能被100整除的年份,若也能被400整除,则为闰年,否则为平年。闰年366天,平年365天

代码:

int runnian(int year)

{

if(year%4==0&&year%100!=0||year%400==0)

return 1;

else

return 0;

}

3.判断某月的天数;

通过函数:

int day1(int year,int month)

{

int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};

若为闰,则二月为29天。

第4章源程序清单

#include

#include/*定义头文件*/

int runnian(int year)

{

if(year%4==0&&year%100!=0||year%400==0) /*利用函数判断输入年份是闰年还是平年*/

return 1;

else

return 0;

}

int day1(int year,int month)

{

int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};/*定义数组确定12个月每个月的天数*/

if(runnian(year)) /*如果输入年份是闰年*/

a[1]=29; /*二月29天*/

return a[month-1];

}

int day2(int year,int month,int day)

{

int i,sum=0;

for(i=1;i

{

sum+=day1(year,i);

}

sum+=day;

return sum;

}

int week1(int year,int month,int day)

{

int

number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+day2(year,month,day);

number%=7;

return number;

}

char *Week2(int number)

{

switch(number) /*分类一周七天*/

{

case 0:return "Sunday";

case 1:return "Monday";

case 2:return "Tueaday";

case 3:return "Wednesday";

case 4:return "Thurday";

case 5:return "Friday";

case 6:return "Saturday";

default:return "Error!please import again.\n";/*不符和上面七种情况的报错提示*/

}

}

void x1(int year,int month,int day)

{

int number=week1(year,month,day);

if(runnian(year))printf("common year");/*年份为闰年则输出"闰年"*/

else printf("common year");

printf(" %d year %d month %d

day%10s\n\n",year,month,day,Week2(number));/*按年月日输出结果*/

}

void x2(int year,int month)

{

int max,number,i,j=1;

max=day1(year,month);

number=week1(year,month,1);

printf("%2s%2s%2s%2s%2s%2s%2s\n"," Sunday "," Monday "," Tueaday"," Wednesday "," Thurday "," Friday ","Saturday ");/*按照间隔打印日历*/ for(i=0;i

{

printf(" ");

}

while(j<=max)

{

printf("%8d",j);

if(i%7==6)

{

printf("\n");

}

i++;

j++;

}

printf("\n\n");

}

int x3(int year,int month,int day)

{

if(year<0||month<1||month>12||day<1||day>day1(year,month)) /*当输入值出现这些情况时*/

return 0; /*返回0*/

else

return 1; /*返回1*/

}

void yueli(int year,int month,int day)

{

if(runnian(year))

printf("leap year");

else printf("common year");

printf(" %d year %d month %d day\n\n",year,month,day);

x2(year,month);

}

void rili(int year,int month,int day)

{

printf("\n");

x1(year,month,day);

}

void main()

{

int year,month,day,a,b;

while(1)

{

printf("\n\n\n\n");

printf("

**********************************************************\n\n");

printf(" * * \n");

printf(" Welcome to enter calendar system \n");

printf(" * * \n\n");

printf("

**********************************************************\n\n\n");

printf(" 1 The month of current date 2 Date 3 Exit\n");

printf(" please import your choose<1~3>,press Enter to define: ");

scanf("%d",&b);

switch(b)

{

case 1: /*选择1时*/

printf("\nPlease import the year,month and day which you want to check,the year,month and day separation by blank space: "); /*给出输入提示*/

scanf("%d%d%d",&year,&month,&day); /*输入需要查询的年月日*/

a=x3(year,month,1);

if(a==0)

{

printf("Error!Please import again. n");/*输入值异常时报错*/

break;

}

yueli(year,month,day);

break;

case 2: /*选择2时*/

printf("\nPlease import the year,month and day which

you want to check,the year,month and day separation by blank space: "); /*给出输入提示*/

scanf("%d%d%d",&year,&month,&day);/*输入年月日*/

a=x3(year,month,day);

if(a==0)

{

printf("Error!Please import again. n");/*输入值异常时报错*/

break;

}

rili(year,month,day);

break;

case 3:

exit(0);

default:

printf("Error!Please import again.\n\n");

}

}

}

第5章执行结果

1)登陆界面

2)显示当前日历月

3)显示具体日期信息

第6章程序问题调试与课程设计心得

1)程序问题调试

(1) 调用的week2函数中,忘记在万年历中一周的第一天是sunday。

(2)定义的runnian语句中没有返回值,无法判断是否为闰年。(3)定义的x1与x2函数实现的功能时混淆。

(4)被调用函数X3中的返回值要用于主调函数中的判断,但是未在主调函数中赋值给整型变量。

(5)对于数组,数组的初始化要进行正确的赋值,以及对于数组的使用与变更。(6)程序的scanf语句中取地址符号不能省。

2)课程设计心得

通过本次课程设计我通过自己的实践对书本上的知识进行了与生活相关的运用。在这个程序中,主要应用了这学期所学习的循环,条件语句,数组以及调用函数。这些知识的应用使我对课本内容的认识得到了加深。

在编写程序的过程中,也出现了很多错误。比如程序语句错误导致检测时连续报错;函数语句编写错误导致输出结果与实际不符等。出现这些情况后,通过对教材的深入理解和解度,我发现了自己的程序的问题所在并进行了改正。最后得到了正确的结果。

C++万年历实验报告

《高级语言程序设计》课程设计报告万年历程序设计

(1)课程设计名称:C++万年历设计 (2)使用工具软件:Microsoft visual C++ (3)课程设计内容简介 1、以开关语句进行执行功能的选择,这些功能分别是: A、判断闰年; B、判断某天是星期几; C、判断某年的隶属生肖; D、输出某年的日历; E、输出某月的日期; F、退出系统; 2、建立类wnl,定义类的成员函数; void isleapyear(); //判断闰年,用于输出判断结果,以流的形式bool isleap(int year); //判断闰年,返回判断结果,用于计算天数int getdays(int year,int month,int day); //获取据第一天天数 void weekdays(int year,int month,int day);//获取星期几 void printyear(int year); //输出年的日历 void printyearmonth(int year,int month); //输出某年某月的日历 void animal(int year); //判断某年的生肖 int getyear(){return Year;} //返回私有成员的值 int getmonth(){return Month;} int getday(){return Day;} 3、定义私有成员:i nt Year,Month,Day; 4、定义类的对象:_wnl; 5、为类的成员函数填写代码,满足功能实现; 6、运行环境:控制台应用程序的源程序; (4)得意之处: 1、可以满足多功能实现,可以循环执行功能; 2、可以选择每行输出的月份数; 3、有欢迎界面; 4、客户输入错误会有提示; 5、使用了C语言的流的形式,判断闰年,提高执行速度; 6、使用I/O流控制头文件iomanip.h控制月份日历的输出,更加整齐;(5)创意的技术实现

万年历+备忘录(C语言课程设计)

/* 湖南大学数学与应用数学 胡凡 C语言课程设计 万年历+备忘录命令提示行 完成于2011年 完整版 */ /*-------------------------------我是分割线-------------------------------*/ /*命令行功能选项*/ /*-d:显示当月日历和当日备忘*/ /*-i:显示当月日历和添加当日备忘*/ /*-m:显示当月日历和修改当日备忘*/ /*-g:删除当日备忘*/ /*-t:删除全部备忘*/ /*-------------------------------我是分割线-------------------------------*/ /*头文件*/ #include #include #include /*调用getopt函数*/ /*定义全局变量(各月所含天数)*/ int a[]={0,31,0,31,30,31,30,31,31,30,31,30,31}; /*定义结构体*/ struct date_message { int year; /*年*/ int month; /*月*/ int day; /*日*/ char memo[300]; /*备忘*/ }date={1,1,1,"\0"}; /*-------------------------------我是分割线-------------------------------*/ /*主函数*/ int main(int argc,char *argv[]) { /*函数声明*/ void checkDate(); /*检查日期合法性*/ void show_calender(); /*显示日历*/ void memo_written(); /*写入备忘*/ void memo_modify(); /*修改备忘*/ void memo_delete(); /*删除当日备忘*/ void memo_delete_all(); /*删除全部备忘*/ void memo_read(); /*读取备忘*/

C语言万年历设计报告

C语言课程 设计报告题目:编写万年历系统 年级: 专业: 班级: 姓名: 学号:

目录 第1章设计目的 第2章需求分析 第3章概要设计 第4章源程序清单 第5章执行结果 1)登陆界面 2)显示当前日月历 3)显示具体日期信息 第6章程序问题调试与课程设计心得

第1章设计目的 设计目的(实验要求): 1.模仿现实生活中的挂历. 2.当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几). 3.当系统日期变到下一月时,系统自动翻页到下一月. 第2章需求分析 (1)程序运行时,首先给出菜单选项和输入提示: (2)用户可以通过主菜单选择不同选项。输入1,通过输入当前日期可显示当前月的日历;输入2,通过输入具体日期(中间以空格分开)可显示该日具体信息;输入3,则退出查询系统。

第3章概要设计 1.菜单选择界面可通过下面所示函数时现; 主要思路: 通过while语句与swich…case以及if条件语句实现菜单的循环功能和不同选 项的功能实现。 闰年与平年的判断: 代码如下: void main() { int year,month,day,a,b; while(1) { printf("\n\n\n\n"); printf(" **********************************************************\n\n"); printf(" * * \n");

printf(" Welcome to enter calendar system \n"); printf(" * * \n\n"); printf(" **********************************************************\n\n\n" ); printf(" 1 The month of current date 2 Date 3 Exit\n"); printf(" please import your choose<1~3>,press Enter to define: "); scanf("%d",&b); switch(b) { case 1: printf("\n Please import the year,month and day which you want to check,the year,month and day separation by blank space: "); scanf("%d%d%d",&year,&month,&day); a=x3(year,month,1); if(a==0) { printf("Error!Please import again.\n"); break;} yueli(year,month,day); break; case 2: printf("\n Please import the year,month and day which you want to check, the year,month and day separation by blank space: "); scanf("%d%d%d",&year,&month,&day); a=x3(year,month,day); if(a==0) { printf("Error!Please import again.\n"); break;} rili(year,month,day); break; case 3: exit(0); default: printf("Error!Please import again.\n\n"); } }

C语言课程设计万年历 完整版

目录 一引言 (2) 二系统功能和数据说明 (3) 一)功能简介 (3) 二)程序中的数据说明 (3) 三程序总体设计及流程图 (4) 一)应用到的c语言 (4) 二)程序的总框架 (5) 四功能模块设计及调试 (5) 一)算法说明 (5) 1.总天数的算法 (5) 2.计算输入日期是星期几 (6) 3.对输入信息的汇总 (8) 4..界面的控制 (10) 二)调试结果 (11) 五程序清单 (12) 六结束语 (17)

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

二系统功能和数据说明 (一)功能简介 在我们的日常生活中能接触到很多不同类型的日历,在日历上我们通常希望它能简介明了的给我们最想要的日期信息。在我的万年历当中,就是将日历,月历做的简单明了,很方便我们的使用。下面是它要实现的一些基本功能:用C语言编写万年历 1、输入年份,判断是否为闰年 2、输入年月日,判断改日为星期几 3、输入年份,打出12个月历,输入月份,打出该月的日历 4、要求用多个函数实现 [名称]万年历 [修改]1、对输入的日期进行容错处理 2、增加和修改为英文的月份和星期显示 3、采用指针形式的weeks和month数组 (二)程序中的数据说明 ①int days[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; 这是定义的关于每个月天数的数组,根据大小月以及二月分的特殊情况将每个月的天数最为数组中的元素存入数组当中。其中days[1]=28,是将闰年二月的天数28天作为初始元素存入。在经过theWeek函数后就可以给days[1]中存入正确的月天数。 ②char *weeks[7] ={"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; char *months[12] = {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November",

c语言课程设计报告--万年历,最详细

C语言课程设计报告 -----万年历 设计人:贾伟涛 学号:2013010912 班级:13电信应电班 指导老师:张伟 日期:2014年6月9日

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

目录 一、系统功能和数据说明----------------------- 二、问题分析--------------------------------- 三、程序总体设计及功能结构框图--------------- 四、程序流程图------------------------------- 五、源程序代码------------------------------- 六、使用说明--------------------------------- 七、个人心得--------------------------------- 八、参考文献---------------------------------

万年历实验报告

篇一:电子万年历实验报告 重庆电力高等专科学校 计算机科学系 实训报告 课程名称 实验名称 班级信息0911 姓名廖林单片机应用技术电子万年历 学号 200903020243 教师任照富 日期 2010-12-28 地点一教七机房一、实训任务: 1、看实训要求,计划出自己实训所要用元件,在网上查找资料。 2、思考仿真原理图,然后画出来(具体i/o口暂时不确定)。 3、在网上找一些程序,然后自己改一些,进行编译。 4、编译无误之后,跟原理图相联系,完成最终的仿真图。 5、进行最后的改写,把程序和仿真原理图确定下来。 6、根据仿真图形,制作出实物图。 7、在实物制作过程中,进行电路检查和最后的调试。 二、实训要求: 要求:能显示阳历的年、月、日、星期、时、分、秒; 能显示阴历的年、月、日; 能进行日期、时间的调整。 扩展:能显示当前温度; 有闹钟功能(至少2个) 选择ds1302时钟芯片,温度传感器采用ds18b20数字温度传感器。 三、实训环境(软件、硬件): 软件:keil protues7.5 硬件:计算机2单片机的应用 四、实训意义:在这快速发展的年代,时间对人们来说是越来越宝贵,在快节奏的生活时,人们往往忘记了时间,一旦遇到重要的事情而忘记了时间,这将会带来很大的损失。因此我们需要一个定时系统来提醒这些忙碌的人,而数字化的钟表给人们带来了极大的方便。由于单片机具有灵活性强、成本低、功耗低、保密性好等特点,所以电子日历时钟一般都以单片机为核心,外加一些外围设备来实现。 电子万年历作为电子类小设计不仅是市场上的宠儿,也是是单片机实验中一个很常用的题目。因为它的有很好的开放性和可发挥性,因此对作者的要求比较高,不仅考察了对单片机的掌握能力更加强调了对单片机扩展的应用。而且在操作的设计上要力求简洁,功能上尽量齐全,显示界面也要出色。所以,电子万年历无论作为竞赛题目还是毕业设计题目都是很有价值。对于这个实验项目,我们还要有一些其他的基本知识掌握和意义:(1)在学习了《数字电子技术》和《单片机原理及接口技术》课程后,为了加 深对理论知识的理解,学习理论知识在实际中的运用,为了培养动手能力和解决实际问题的经验,了解专用时钟芯片ds1302,并会用ds1302芯片开发时钟模块,应用到其他系统中去。熟悉keil和protues软件调试程序和仿真. (2)通过实验提高对单片机的认识; (3)通过实验提高焊接、布局、电路检查能力; (4)通过实验提高软件调试能力; (5)进一步熟悉和掌握单片机的结构及工作原理。

万年历C语言课程设计(内附程序)

石家庄铁道大学课程设计 C语言课程设计 万年历 单位电气与电子工程学院(系) 班级 学号 学生姓名 指导教师 完成日期 2013 年7 月 8日

摘要 本课程设计报告介绍的是C语言实习中的万年历项目。该报告共分五章,第一章介绍选题意义,也就是我选择万年历作为课题项目的理由。第二章是系统的分析,包括系统概述,系统的构成,其中包括各个模块功能的分析介绍,该章节的最后介绍了各部分的功能,即组成程序的各个函数的功能介绍。第三章是系统的实现,即为各个功能的实现而服务的十个自定义函数的流程图,通过这十个流程图,您可以快速地明白程序功能的实现过程。第四章是总结,即本人在设计万年历程序过程中的心得,以及在整个程序设计过程中我的工作过程,也体现了我的设计思路。第五章是参考文献,在这里我主要查阅了《C程序设计(第三版)》中的C函数附表,另外有几处欠缺的知识,我借鉴了另一本书上的相关部分。第六章,也是最后一章,我把整个程序的源代码及其注释附上。由于本人水平所限,程序也不可能很完美,必定有一些漏洞和拖沓,还请谅解。好了,从这里开始,我将与你们分享我我在整个万年历程序设计中的所做所想。

目录 1.选题的意义 (4) 2.系统的分析 (5) 2.1系统概述 (5) 2.2系统的构成 (5) 2.3各模块的功能 (5) 2.4系统的运行环境 (5) 3.系统实现 (6) 4.总结 (11) 5.参考文献 (12) 6.附录(程序源代码) (13)

第一章 选题的意义 (1)通过万年历的设计,使我们掌握软件开发过程的问题分析、系统设计、程序编写、测试等基本方法和技能。 (2)通过万年历的设计,熟练掌握C语言中的分支、循环、数组、函数、文件操作等的综合运用。 (3)通过万年历的设计,可以培养独立思考、综合运用所学有关相应知识的能力,更好地巩固《C程序设计》课程中的所学内容。 (4)通过万年历的设计,可以强化自己的动手编程能力,更加深刻地感受C语言的优点。 (5)万年历与我们的生活联系密切,通过万年历的设计,我们可以感受知识与实践相结合的乐趣。

C语言程序设计 万年历程序

#include"stdio.h" int mon_day[]={31,28,31,30,31,30,31,31,30,31,30,31}; int judge(int year,int month) { if(month==1||month==3||month==5||month==7||month==8||month==10||month ==12) return(1); else if(month==2) { if(year%4!=0||year%100==0&&year%400!=0) return(2); else return(3); } else return(4); } void show2() { int year,i,j,a,n,m,k; char ** p; char * week[]={"Sun","Mon","Tue","Wed","Thu","Fri","Sat"}; char*month[]={"January","February","March","April","May","June","July","Augu st","September","October","November","December"}; printf("please inter the year:"); scanf("%d",&year); printf("\n"); printf("the calendar of the year%d.",year); printf("\n"); a=(year+(year-1)/4-(year-1)/100+(year-1)/400)%7; for(i=0;i<12;i++) { n=judge(year,i+1); p=month+i; printf("%s\n",*p); printf("\n"); for(j=0;j<7;j++) {p=week+j; printf("%6s",*p);}

万年历时钟实验报告

万年历时钟设计报告 专业: 年级: 姓名: 学号: 指导老师:

万年历的设计与仿真 一、实验目的; 电子时间显示器现在在任何地方都有涉及到,例如电子表和商场、车站的时间显示等等,所以它是一种既方便又实用的技术,而我们所做的万年历则是在它的基础上做出来的,通过万年历的制作,我们可以进一步了解计数器的使用,了解各个进制之间的转换,以及他的任意进制计数器的构成方法等,并且进一步了解74LS160以及74ls90的性质,以及门电路的使用等。 二、实验要求: A. 设计一个能显示“年月日”、“星期”、“时分秒“的十进制万年历时钟显示器; B. 要求要满足一天24小时,一小时60分,一分60秒; C. 关于显示星期天时,要用8来代替; D. 年月日显示时,要满足大月31天,小月30天,闰年二月29天,平年二月28天; 三、实验器材: ISIS 仿真软件、一些常用逻辑门(与门、非门,或门等); 本实验要用到得芯片有:74ls160 74ls161 74ls160 74ls160: 74ls160是一块十进制上升沿触发计数器如右下图: 其中MR 是异步清零端,LOAD 是同步置数端 CLK 是时钟脉冲输入端;D0、D1、D2、D3是 置数输入端,Q0、Q1、Q2、Q3是计数输出端, RCO 是进位端; 74ls161与74ls160的功能基本相同,74ls160是十进制的,而74ls161是十六进制的。 异步清零端 进位端 同步置数端

置九端 74ls90: 74ls90是一块二—五—十进制计数器其图如下: 其中 2、3端为置零端,6、7端为置九端, CKB 为五进制脉冲输入端,CKA 二进制脉冲输入端, ,Q0、Q1、Q2、Q3是计数输出端; LED 七段显示器: 其功能是将BCD 码以十进制形式显示出来,其图如下: 四、万年历时钟构架图: 万年历时钟显示器需要有显示“年”、“月”、“日”、“星期”、“时”、“分” “秒”的功能,又根据它们之间的进位和置位关系 可知,它们主要有以下各部分组成,其整个电路的 框架图如下图所示: 五进制脉冲输入端 置零端 二进制脉冲输入端

C语言课程设计报告-万年历1

课程设计题目:万年历 实验题目:万年历程序的编写 实验目的:综合运用所学的C语言知识解决一个比较实际的简单问题,侧重对数组、函数、指针、结构体和文件等相关内容的综合应用, 使同学们能进一步熟悉掌握C语言的基本语法,进一步提升自 己的编程能力并逐步培养编程思维,进而不断提高同学们解决问 题的能力,并为以后的语言学习打下良好的基础。 实验要求:万年历设计 主要功能包括: 1、查询某年某月每一天对应星期几。 2、可以查询某年某月的上个月或是下个月的日历情况。 3、查询某年某月某日是这一年的第几天,并查询改天 是星期几。 4、判断该年是闰年还是平年,判断这一年的生肖。 实现思路(要求有文字描述,并画出流程图):

实现过程(要求有文字说明实现的过程,并对相应的代码添加注释):见程序(程序见后)后的解析。。。运行时只要你输入年月日,你要的星系都会显示出来;如果想继续输入日期的话,只需按y就可以,祥结束按n就可以结束。 实验总结(分析程序的得与失): 得:通过这次程序设计,更使我了解了编程序的严谨性,每个问题,每个不走都得有依据,不得盲目乱造,同时也让我获得了一点 编写简单程序的能力,使自己平时在理论课中很多部明白的东 西明白了好多,学会了好多语句的用法,比如会用‘y’ or‘ n’ 来决定程序是否要继续;怎么控制输出格式等等。总之在这次 程序设计中我学到了很多。 失:在编程序过程中有些函数的用法不怎么会用,偶尔会落下写简单的东西。如‘,’‘;’等;同时在编写输出上下个情况及判断 程序是否要继续的程序上花费了好多时间;函数的声明、调用 既然不清楚,感到很惭愧。实验的过失就是成功的阶梯,在过 失中我也学到很多。 心得体会:我体会到了编程序的严谨性,也觉得如果我们要是熟悉课本所讲的内容,不怕麻烦,坚持不懈,我们一定可以将它实现的。 要有耐心,有时候很多的错误就是一个地方引起的,只要认真 检查,一定能突破的,所以在以后的编程序是要细心,有耐心, 人不断调试程序,直至最后成功。 #include struct //定义包含年月日数组结构体 {int year; int month; int day;

C语言课程设计万年历系统

山东交通学院 面向对象课程设计 万年历系统 目录 1课程设计概述 (5) 1.1 万年历系统功能概述 (5) 1.2 开发环境概述 (5) 2万年历系统总体设计 (6) 2.1 问题分析 (6) 2.2 总体设计流程图 (7) 3万年历系统详细设计 (8) 4 程序测试 (9) 4.1 进入程序界面 (9) 4.2 主菜单界面 (9) 4.3 显示当前时间界面 (10) 4.4 查询时间界面 (10)

4.5查询时间出错界面 (11) 4.6退出程序界面 (12) 4.7主菜单选择出错界面..................................................................... 错误!未定义书签。2 5 程序源代码 (13) 设计体会及今后的改进意见 (21) 参考文献 (21) 1课程设计概述 1.1字符统计软件功能概述 模仿Windwos的日历. 1)日历显示功能。能根据系统日期进行初始化,如果没有任何输入, 则显示系统日期所在月份的月历。 2)日历查询、闰年判断功能。输入日期进行查询,显示查询日期所 在月份的月历,还将显示所在年份是否为闰年。 3)参数检查功能。如果输入日期不合法,查询将被拒绝,并显示提 示信息。

1.2开发环境概述 在实验室一人一台微机。 2课程设计概述 2.1问题分析 2.1.1难点在于判断星期,但根据蔡勒公式,可以很容易地有年月日推断出星期:nDay=year-1+(year-1)/4-(year-1)/100+(year-1)/400+nday; w=nDay%7; 其中year:要查询的年份 nday:从该年的一月一日起到该天的天数w:得出的星期数,w==0表示星期天。 2.1.2在打印月历时,只要知道第一天的星期,就可以依次输入后面的日期,通过定长度输出日期,在遇到某天时星期六时,就换行输出,因此可以按照月历的格式输出。对于初始输入当前月历,可以通过中的time 和localtime 函数取出系统时间进行初始化。 time_t timer; struct tm* gmt; time(&timer); gmt=localtime(&timer); gmt就是一个时间结构体,可以从中取出年月日。

C语言课程设计实验报告(万年历)

C语言课程设计 一、题目及功能描述 题目:万年历的设计 利用C语言设计出万年历,使其实现如下要求 1、输入一个年份,在屏幕上输出该年的年历(包括每月的天数和所对应的星期几),并且在每月的左上角或右上角打印出相应的年份和月份,要求输出界面尽可能整齐、美观,符合年历显示规范。假定输入的年份在1-9999年之间。 2、输入年月,输出该月的月历。 3、输入年月日,输出距今天还有多少天,是星期几,是否是公历节日。: 4、指定键盘的某些键,用于控制变换不同年、月、日的显示。即:当前若正在显示2011年的年历,按下键盘“←”方向键后,年历变为2010年的。 二、使用的所有变量的说明 变量说明:(以下均为整型变量) year 表示年份的变量 month 表示月份的变量 day 表示日期的变量 select 表示菜单选择的变量 i 表示月份的变量 j 表示一个月中的某一天的变量

sum 判断某天是一年中的第几天的变量 number判断某天离公元1年1月1日还有几天的变量 a[] 表示每月天数的数组变量 year1 系统时间年份的变量 month1 系统时间月份的变量 day1 系统时间日期的变量 三、程序清单及其说明 #include "time.h" /*包含的头文件*/ #include "stdio.h" #include "math.h" #include "windows.h" #include "conio.h" #define KEYNUMUp 0x48 /*宏定义*/ #define KEYNUMDown 0x50 #define KEYNUMLeft 0x4b #define KEYNUMRight 0x4d #define KEYNUMPageUp 0x49 #define KEYNUMPageDown 0x51

c语言课程设计万年历带源程序

2012-2013学年第二学期《高级语言程序设计》 课程设计报告 题目:万年历查询 专业:网络工程 班级:12(1)班 姓名:xxx 指导教师:xxx 成绩: 计算机与信息工程系 二0一三年六月二十日

目录 1设计内容及要求 (2) 1.1设计容 (2) 1.2设计任务及具体要求 (2) 2概要设计 (3) 2.1设计内容及要求 (3) 2.2该系统的功能简介 (3) 2.3总体程序框图 (3) 2.4各个模块之间的主要关系 (3) 3.3设计过程或程序代码 (4) 3.1各个模块的程序流程图及运行界面 (4) 3.2对关键代码加以分析说明 (4) 4设计结果与分析 (19) 5小结 (22) 致谢 (22) 参考文献 (23) 附:源程序 (18)

1设计内容及要求 1.1设计内容 万年历查询算法。 1.2设计任务及具体要求 设计一个小型信息系统,具有信息录入、信息浏览显示、信息删除修改、信息查询等功能,重点解决是查询的实现问题。利用软件工程中的方法进行系统分析。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力。 2概要设计 2.1该程序可实现的功能主要有以下几点 1、输入一个年份,在屏幕上输出该年的年历(包括每月的天数和所对应的星期几),并且在每月的左上角或右上角打印出相应的年份和月份,要求输出界面尽可能整齐、美观,符合年历显示规范。假定输入的年份在1-9999年之间。 2、输入年月,输出该月的月历。 3、输入年月日,输出距今天还有多少天,是星期几,是否是公历节日。: 4、指定键盘的某些键,用于控制变换不同年、月、日的显示。即:当前若正在显示2011年的年历,按下键盘“↑”方向键后,年历变为2010年的。 2.2程序的流程图:(见下页)

C语言万年历程序设计

. 目录 第1章需求分析 (6) 第2章概要设计 (6) 第3章详细设计 (11) 第四章运行结果及分析 (17) 1.登陆界面 (17) 2.显示某年全年日历 (17) 3.显示某月日历 (18) 第5章课程设计心得 (20) 参考文献 (21) . 资

第1章需求分析 (1)程序运行时,首先给出四个菜单选项和输入提示: 图1-1 (2)用户可以通过主菜单选择不同选项。输入1,通过输入年份可显示一年每个月份的日历;输入2,通过输入年份和月份(中间以空格分开)可显示该月的日历;若输入3,通过输入年份月份和日期(中间以空格分开)可显示该日的星期;输入0,则退出查询系统。 第2章概要设计

. 1.菜单选择界面可通过下面所示函数时现; 主要思路: 通过while语句与swich…case以及if条件语句实现菜单的循环功能和不同选项的功能实现。 闰年与平年的判断: 代码如下: void main() { int year,month,day,a,b; while(1) { printf("\n\n\n\n"); printf(" . 资

**********************************************************\n\n"); printf(" * * \n"); printf(" 欢迎进入万年历查询系统\n"); printf(" * * \n\n"); printf(" **********************************************************\n\n\n"); printf(" 1 年历2 月历3 日历4 退出\n"); printf(" 请输入您的选择<1~4>,按回车键确定: "); scanf("%d",&b); switch(b) { case 1: printf("\n请输入您要查的年份: "); scanf("%d",&year); a=x3(year,1,1); if(a==0) { printf("错误!请您重新输入。\n"); break;} nianli(year); break; case 2: printf("\n请输入您要查的年和月,年月之间用空格隔开: "); scanf("%d%d",&year,&month); a=x3(year,month,1); if(a==0) { printf("错误!请您重新输入。\n"); break;} yueli(year,month); break; case 3: printf("\n请输入您要查的年月日,年月日之间用空格隔开: "); scanf("%d%d%d",&year,&month,&day); a=x3(year,month,day); if(a==0) { printf("错误!请您重新输入。\n");

c语言课程设计报告 万年历 最详细

C语言课程设计报告 -----万年历 设计人:贾伟涛 学号:2013010912 班级:13电信应电班 指导老师:张伟 日期:2014年6月9日 内容提要 通过大一下学期对C语言的学习,了解到了很多C语言的相关知识。学习的过程虽然有很多困惑,但是当自己能够独立的看懂和独立的完成一个简单的程序时,心中就会收获无限的喜悦和成就感。我虽然可以看懂一些简单的程序,编写一些简单的计算程序,更多的是学会了一种思想——编程,它让我在去思考很多日常生活中的事物是怎么样通过一个个小小的函数实现功能的,激发我对c语言的兴趣。 C语言是近年在国内外得到迅速推广应用的一种机器语言。C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。因此,C语言特别适合于编写各种软件。 在这次的课程设计中我将把日常生活中最经常接触的——日历的查询,利用C

语言的程序编成一个简单的万年历查询系统。通过这个小小的系统可以实现很多功能。在程序中你能看到很多熟悉的C语言关键字,同时也加入了很多自己课外了解到的一些关键字。在不断的调试中最终才获得最为完整的程序。接下来就是我的C 语言课程设计的具体内容来了,大家拭目以待吧! 目录 一、系统功能和数据说明----------------------- 二、问题分析--------------------------------- 三、程序总体设计及功能结构框图--------------- 四、程序流程图------------------------------- 五、源程序代码------------------------------- 六、使用说明--------------------------------- 七、个人心得--------------------------------- 八、参考文献--------------------------------- 一、系统功能和数据说明 (一)功能简介 在日常生活中能接触到很多不同类型的日历,在日历上我们通常希望它能简单明了的给我们最想要的日期信息。在我的万年历系统当中,就是将日历,月历做的简

软件工程-万年历实验报告

《软件工程》实验报告 学号:099074069 姓名:朱霄 班级:计092 指导教师:周兵

实验题目:编写一个万年历程序 要求: 输入一个年份(1-3000),然后显示12个月的月历,如屏幕显示不下,则应提供翻页功能。 一:实验目的 1、能按照软件工程的思想,采用面向对象过程的方法开发出一个小型的软件系统 2、在软件系统开发过程中,能综合利用一门编程语言和软件工程等多门课程知识 3、培养良好的软件开发习惯,了解软件企业文化 4、掌握结构话数据流分析技术 5、掌握结构化程序设计的基本概念与技术,并且养成良好的编码风格 6、掌握单元测试的一般步骤及技术 7、掌握集成测试的一般步骤和技术 二:实验内容 1、功能需求分析 ·能列出公元元年到3000年所有月历 ·能解决闰年和平年问题 ·能输出显示结果 2、运行需求分析 ·运行于window xp 及更高版本操作系统上 3、数据流图

4、软件设计与编码 ·检查输入 ·输入数据是否超出程序处理范围 ·输入数据是否非法字符机器处理

while(iserror){ printf("Enter the year:"); scanf("%d",&year); if(year<1||year>3000) printf("input error!\n"); else break; getch(); } ·确定闰年 if((year%4==0)&&(year%100!=0)||year%400==0) ·显示表头 ·计算一月一日 ·程序代码: #include #include #include int isleapyear(int year){ if((year%4==0)&&(year%100!=0)||year%400==0) return 1; else return 0; } void main(){ int isleapyear(int); int i,day,year,temp,temp_i,year_start=1,per_year_days,iserror=1; int month_days[]={31,28,31,30,31,30,31,31,30,31,30,31,29}; long int year_days=0; while(iserror){ printf("Enter the year:"); scanf("%d",&year); if(year<1||year>3000) printf("input error!\n"); else break; getch(); } while(year_start

C语言课程设计万年历

课程设计 课程名称____C语言程序设计__ __ 题目名称万年历 学生学院物理与光电工程学院 专业班级__ 光信息科学与技术 学号____ 3109008862_____ 学生姓名_______陈樟浩_______ 指导教师江志文 2011 年 6 月 24 日

一、题目及已完成的功能描述 (1)题目:万年历的设计 (2)已完成的功能: 1、输入年月日,输出距今天还有多少天,是星期几,是否是公历节日。 2、输入年月,输出该月的月历。 3、输入一个年份,在屏幕上输出该年的年历(包括每月的天数和所对应的 星期几),并且在每月的左上角或右上角打印出相应的年份和月份,要求输出界面尽可能整齐、美观,符合年历显示规范。假定输入的年份在1-9999年之间。 二、使用的所有变量的说明 int IsLeapYear(int year) 调用函数,其中变量名:year;整型;存放信息:某一年。 int month_day(int year,int month)调用函数,其中变量名:year、month;整型;存放信息:某年某月。 int DaySearch(int year,int month,int day)调用函数,其中变量名:year、month、day;整型;存放信息:某年某月某日。 int c=0,变量名:c;整型;存放信息:给c赋以初值3。 float s,变量名:s;浮点型;存放信息:定义浮点型变量。 int m,变量名:m;整型;存放信息:定义整型变量。 long daynum(int year,int month,int day) 调用函数,其中变量名:year、month、day;整型;存放信息:某年某月某日。 int i,变量名:i;整型;存放信息:定义整型变量。 long num=0,变量名:num;长整型;存放信息:给num赋以初值0。 void M_count(int year,int month,int day) 调用函数,其中变量名:year、month、day;整型;存放信息:某年某月某日。 long num1,num2,变量名:num1,num2;长整型;存放信息:定义长整型变量。int PrintAllYear(int year)调用函数,其中变量名:year,整型;存放信息:某一年。

电子万年历实验报告

实验报告 电子万年历: 一、需求分析: 电子万年历系统主要实现以下单个查询功能: 1、查询某一年的日历。要求从键盘输入年份,输出该年12个月份的日历 2、查询某一天某一个月的日历。要求从键盘输入年份和月份,输出该月的日历。 3、查询某一天是星期几。要求从键盘输入年、月、日,输出这一天是星期几。 二、总体设计: 1、功能模块图 计算模块:用于计算天数,判断闰年 输出模块:用于菜单输出和日历输出 查询模块:实现查询某一年的日历。查询某一天某一个月的日历。查询某一天是星期几。 三、详细设计: 1、计算模块: 计算模块主要包含3个函数:LeapYear()、CountYearDays()、CountMonthDays 函数 CountYearDays()功能是计算从公元元年1月1日到某年12月31日一共有多少 天。 CountYearDays()功能是几双当年1月1日到输入日期的前一个月的天数 2、输出模块包含2个函数:Menu()和ListMonth()函数。 Menu()函数用来输出系统提供的功能选项。 ListMonth()函数用来按规定格式输出一个月的日历。 3、查询模块针对系统要实现三个查询功能定义了3个函数:Search1()、 Search2() 和 Search3()函数。 函数Search1()用来显示一年12个月的日历,输入年份后,计算该年1月1日是星期几,然后从1月份开始一次输出每个月的日历,其中调用了函数LeapYear ()、CountYearDays()和CountMonthDays()。 函数Search2()用来显示某年某月的日历,输入年份和月份后,计算出该年该月1日是星期几,然后输出这个月的日历,其中调用了函数LeapYear()和 CountYearDays()、CountMonthDays()和ListMonth()。 函数Search3()用来显示某天是星期几,通过调用函数LeapYear()、CountYearDays()和CountMonthDays()计算出从公元元年1月1日到这一天总 共过去了多少天,用这个总天数除以7得到的余数即为答案。 4、调试与测试:

相关文档
最新文档