C语言编程万年历程序说明书.docx

上传人:b****1 文档编号:2334634 上传时间:2023-05-03 格式:DOCX 页数:11 大小:18.23KB
下载 相关 举报
C语言编程万年历程序说明书.docx_第1页
第1页 / 共11页
C语言编程万年历程序说明书.docx_第2页
第2页 / 共11页
C语言编程万年历程序说明书.docx_第3页
第3页 / 共11页
C语言编程万年历程序说明书.docx_第4页
第4页 / 共11页
C语言编程万年历程序说明书.docx_第5页
第5页 / 共11页
C语言编程万年历程序说明书.docx_第6页
第6页 / 共11页
C语言编程万年历程序说明书.docx_第7页
第7页 / 共11页
C语言编程万年历程序说明书.docx_第8页
第8页 / 共11页
C语言编程万年历程序说明书.docx_第9页
第9页 / 共11页
C语言编程万年历程序说明书.docx_第10页
第10页 / 共11页
C语言编程万年历程序说明书.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言编程万年历程序说明书.docx

《C语言编程万年历程序说明书.docx》由会员分享,可在线阅读,更多相关《C语言编程万年历程序说明书.docx(11页珍藏版)》请在冰点文库上搜索。

C语言编程万年历程序说明书.docx

C语言编程万年历程序说明书

目录

 

前言……………………………………………………………………3

正文……………………………………………………………………4-6

本次课程总结……………………………………………………………7

附录…………………………………………………………………8-16

前言

 

一.设计题目

模仿现实生活中的挂历。

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

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

二.要求简析

根据题目要求,实现当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几)。

并且在系统时间变化时能够自动翻转页数。

三.实现功能与设计目的

题目中要求尽量模仿生活中的挂历,在起始页显示当前的时间以及当前月的月历,目的是使使用者能够直接获取时间,月内周次显示等生活便捷信息。

在功能上有一定创新,表现在周次查询,闰年查询和全年年历查询等便捷功能,操作要求也很快捷,在起始页按下对应数字即可,实现了程序使用上的简便性和快捷性。

另外,功能界面上具有持续性,即可让使用者选择性的持续使用谋一个固定的功能,方便快速使用。

同时,实现了快速回复主菜单的功能,在每个功能菜单上,都可以通过一键快速启用主菜单,从而在功能转换方面得到了很好的提升,方便使用。

通过本程序,实现查询方便,功能持续,转换快捷等有利于方便人们生活的功能,达到了时间知识,灵活运用的目的。

 

正文

一.需求分析

(1)输入的形式和输入值的范围;

程序输入要求包含数字输入和字母输入两个部分,回车键确定,数字输入部分主要为年份,月份,日期查询命令时使用,要求了固定的输入格式年份规定位数为四位正数,月份和日期固定为两位正数。

字母输入部分主要为功能转换和输入确定使用。

若输入出错将提示使用者“输入有错,请从新确定输入”。

(2)输出的形式;

输出形式以汉字和数字结合的方式输出,输出环境汉语显示,简单明了,数字排列简明,读数方便。

(3)程序所能达到的功能;

程序所能达到的功能包括五个方面:

1、当前时间,精确到分钟;

2、当前月的月历;

3、周次查询功能;

4、闰年查询功能;

5、任意年全年年历查询功能。

(4)测试数据:

包括正确的输入及输出结果和含有错误的输入及其输出结果;

1、正确输入的数据,比如主菜单下输入“1+回车”“2010,03,26+回车”可以显示为“2010-3-26是星期六,是否继续使用该项功能(y/n)”。

在比如主菜单下输入“3+回车”“2010+回车”显示为2010年全年年历

2、错误输入的数据,比如主菜单下输入“5+回车”将会出现错误提示,显示为“错误提醒:

您的输入有错,请从新确定输入”

二.设计概要

本程序主要运用的数据结构主要为数组,类型包括字符型和整形等,程序结构上,使用了循环体结构,选择性结构,选择性结构包含switch语句,do语句,if……else语句,while语句等,算法上使用了符合逻辑语句,运用各种逻辑运算符和赋值语句,使程序简洁明了,函数调用方面,使用了数组函数的调用方式,快速简明,使用了指针调用,同时,在程序中使用了调用系统当时时间,同时,使用了一部分结构体变量服务程序。

主函数通过switch……case语句调用了各个小函数,且通过switch……case语句逐渐展开。

三.详细设计

伪代码算法概要:

1、闰年算法:

Whenyear%4iszero

Andyear%100isnotone100

Oryear%400iszero

The

Theyearisleapyear!

2、周次算法:

Amon_dayisdefferent

Thenputittogether

Theyare{31,28,31,30,31,30,31,31,30,31,30,31;

Iftheyearisleapyear

Thenthesecondnumberis29

Elseitis28

GetdaySearch(intyear,intmonth,intday

Whendayism

Whenmisonemisnotbiggerthanmonth

Mismaddone

Andcaddday

Sisyearcut1addyearcutone/4addyearcutone/100addyearcutone/400cut40addc;

四.调试分析

(1)遇到的问题

问题主要包括

1、函数调用方面

数组结构调用出现失误,出现调用数组但不能赋值或者是赋值后不能显示;调用系统函数是也出现了调用失误的现象,处理时提示调用失误无法显示等提示。

处理时灵活运用书本知识,分析清楚变量之间的关系。

2、字符方面

特别注意符合问题和拼写问题,比如漏写“;“和“,”等一出错。

(2)经验和体会

处理问题灵活分析,熟悉运用课本知识处理问题,另外,细心分析,耐心处理问题很重要。

五.用户使用说明

运行程序起始界面,根据汉字提示,按需要输入相关指令前面对应的数字,以回车键确定,得出结果后,若需要继续使用该项功能,输入y,以回车键确定,否车输入n,以回车键确定,在主菜单选择其他功能,操作要求简单明了,用户只需要根据汉字提示输入相关数字或是字母,回车确定即可。

六.测试结果

例:

(1)主菜单下输入“1+回车”“2010,03,26+回车”可以显示为“2010-3-26是星期六,是否继续使用该项功能(y/n)”。

(2)主菜单下输入“2010+回车”显示为“2010年不是闰年,是否继续使用该项功能(y/n)”

(3)主菜单下输入“3+回车”“2010+回车”显示为2010年全年年历

(4)主菜单下输入“5+回车”将会出现错误提示,显示为“错误提醒:

您的输入有错,请从新确定输入”

本次课程设计总结

C语言博大精深,是一门要求细心与耐心的课程,c语言灵活多变,但是入门要求高,取得入门时一个努力攀登的过程。

但是,使用好c语言,确能改使用者带来许多乐趣,能够在使用过程中感受创造之美和改变之美,更能领略到计算机科学的神奇之处。

而且,学习c语言不能急于求成,冰冻三尺,非一日之寒,要好好体会,多读多练,熟悉各种程序的编程技巧,计算方法,而且要在自己的程序中熟练使用,这样才能有所提高。

要熟悉生活,熟悉各种生活需要,然后运用编程的方法处理生活中的问题,学有所用,这样才能是学习更有趣味,才能有不竭的学习动力。

当然,作为一个c语言初学者,未来还有不少东西要学,希望能在以后的生活中得到更好的提高,不断提升个人能力。

附录

#include

#include

#include

char*month_str[]={"一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"};

char*week[]={"星期一","星期二","星期三","星期四","星期五","星期六","星期天"};

intIsLeapYear(intyear)

{

if((year%4==0&&year%100!

=0)||(year%400==0))

return1;

else

return0;

}

intmonth_day(intyear,intmonth)

{

intmon_day[]={31,28,31,30,31,30,31,31,30,31,30,31};

if(IsLeapYear(year)&&month==2)

return29;

else

return(mon_day[month-1]);

}

intDaySearch(intyear,intmonth,intday)

{

intc=0;

floats;

intm;

for(m=1;m

c=c+month_day(year,m);

c=c+day;

s=year-1+(float)(year-1)/4+(float)(year-1)/100+(float)(year-1)/400-40+c;

return((int)s%7);

}

intPrintAllYear(intyear)

{

inttemp;

inti,j;

printf("\n\n%d全年历\n",year);

for(i=1;i<=12;i++)

{

printf("\n\n%s(%d)\n",month_str[i-1],i);

printf("SMTWTFS\n\n");

temp=DaySearch(year,i,1);

for(j=1;j<=month_day(year,i)+temp;j++)

{

if(j-temp<=0)

printf("");

elseif(j-temp<10)

printf("%d",j-temp);

else

printf("%d",j-temp);

if(j%7==0)

printf("\n");

}

}

return0;

}

 

intmain()

{

intoption,da;

charch;

intyear,month,day;

longinttimer;

structtm*timenow;

inti,j;

intmonth_day[]={31,28,31,30,31,30,31,31,30,31,30,31};

 

printf("您好!

!

!

\n\n欢迎使用万年历系统!

\n");

timer=time(0);

timenow=localtime(&timer);

printf("\n现在的时间是:

%d年%d月%d日%d时%d分",(*timenow).tm_year+1900,(*timenow).tm_mon+1,(*timenow).tm_mday,(*timenow).tm_hour,(*timenow).tm_min);

printf("\n\n本月月历\n");

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

da=DaySearch(year,month,day);

for(i=1;i<=month_day[(*timenow).tm_mon];i++)

{

j=(*timenow).tm_wday;

if(((*timenow).tm_mday%7-(*timenow).tm_wday)!

=0)

printf("");

else

printf("%d",i);

if(i%7==0)

//printf("\n");

putchar('\n');

}

 

while

(1)

{

printf("\n请选择服务的种类:

\n");

printf("\n1周次查询");

printf("\n2闰年查询");

printf("\n3全年年历");

printf("\n4退出\n");

scanf("%d",&option);

 

switch(option)

{

case1:

while

(1)

{

printf("\n请按该格式输入年月日(XXXX,XX,XX):

");

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

da=DaySearch(year,month,day);

printf("\n%d-%d-%d是%s,是否继续使用该项服务?

(Y/N)",year,month,day,week[da]);

fflush(stdin);

scanf("%c",&ch);

if(ch=='N'||ch=='n')

break;

}

break;

case2:

while

(2)

{

printf("\n请按格式输入查询年份(XXXX)");

scanf("%d",&year);

if(IsLeapYear(year))

printf("\n%d是闰年,是否继续使用该项服务?

(Y/N)",year);

else

printf("\n%d不是闰年,是否继续使用该项服务?

(Y/N)?

",year);

fflush(stdin);

scanf("%c",&ch);

if(ch=='N'||ch=='n')

break;

}

break;

case3:

while(3)

{

printf("\n请按格式输入查询年份(XXXX)");

scanf("%d",&year);

PrintAllYear(year);

printf("\n是否继续使用该项服务(Y/N)?

");

fflush(stdin);

scanf("%c",&ch);

if(ch=='N'||ch=='n')

break;

}

break;

case4:

fflush(stdin);

printf("确定退出?

(Y/N)");

scanf("%c",&ch);

if(ch=='Y'||ch=='y')

exit(0);

break;

default:

printf("\n错误提醒:

输入出错,请从新确定输入!

\n");

break;

}

}

return0;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2