万年历系统 zuihaoWord格式文档下载.docx

上传人:b****2 文档编号:1375908 上传时间:2023-04-30 格式:DOCX 页数:18 大小:129.31KB
下载 相关 举报
万年历系统 zuihaoWord格式文档下载.docx_第1页
第1页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第2页
第2页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第3页
第3页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第4页
第4页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第5页
第5页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第6页
第6页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第7页
第7页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第8页
第8页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第9页
第9页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第10页
第10页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第11页
第11页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第12页
第12页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第13页
第13页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第14页
第14页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第15页
第15页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第16页
第16页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第17页
第17页 / 共18页
万年历系统 zuihaoWord格式文档下载.docx_第18页
第18页 / 共18页
亲,该文档总共18页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

万年历系统 zuihaoWord格式文档下载.docx

《万年历系统 zuihaoWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《万年历系统 zuihaoWord格式文档下载.docx(18页珍藏版)》请在冰点文库上搜索。

万年历系统 zuihaoWord格式文档下载.docx

4调试与测试7

5课程设计总结10

参考文献11

附录12

万年历系统的设计

1课程设计目的及要求

1.1设计题目

万年历系统

1.2设计要求

模仿现实中的日历

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

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

1.3其他要求

1、只能使用c/c++语言,源程序要有适当的注释,使程序容易阅读。

2、至少采用文本菜单界面。

3、学生可自动增加新功能模块。

2课题总体设计

2.1系统功能模块图

图1-1系统功能模块图

2.2系统流程图

图1-2系统流程图

3.详细设计

3.1printWNL()

图1-3printWNL()模块设计图

模块说明:

prinWNL()先后调用week(),getdays()打印出简单的日历。

3.2isRunNian()模块设计

图1-4isRunNian()函数模块设计图

模块说明:

若该年不是闰年,则输出0,相反则输出1;

设年数为X,先判断X能否被4整除,若不能则输出0;

若能整除,则判断X能否被100整除,若不能则输出1;

若能整除,则判断X能否被400整除,若不能则输出0,若能则输出1。

3.3getDays模块设计

图1-5getDays模块设计图

判断系统月份,以月份为主,三十一天的有一月,三月,五月,七月,八月,十月,十二月;

三十天的有四月,六月,九月,十一月。

若是闰年,则二月为二十九天,不是,则为二十八天。

3.4主函数main()模块设计

图1-6主函数体main()模块设计图

主函数体主要调用printWNL函数对由getsystime函数读取的主板时间进行相应的编辑和输出,并根据用户指令“↑↓←→”Esc实现年份及月份的调整,并退出程序

4调试与测试

此课程设计要求如生活中的挂历,要以当前页以系统当前日期的月份为准,显示当前月的每一天,并且当系统日期变到下一个月是,系统自动翻页到下一月。

然而在调试过程中首先自己没有注意到区分闰年,没有考虑到二月有二十八天,与二十九天的区别,其次没有做到每一天对应的每个星期,再次在调用函数时出错,本代码无法做到在改变系统年份或月份时,不能立即运行,需要重新调试,所以此代码还是有不足之处的。

经过不断的修改与尝试,最终将代码完成。

当对上面的程序进行了调试后运行会出现下面图2-1所示:

图2-1

满足当前页以系统当前日期的月份为准,显示当前月的每一天。

按“↑”键其下面接着会显示上一月的万年历,如图2-2

图2-2

按“↓”键其下面会接着显示下一月的万年历,如图2-3

图2-3

按“→”键下面将会接着显示当年上一个月的万年历,如题2-4

图2-4

按“←”键将会在下面接着显示当年下一个月的万年历,如图2-5

图2-5

以上所显示按EsC后将会退去该程序。

以上运行的结果可知该C语言所设计的万年历满足设计要求

5课程设计总结

课程设计时一个很好的提高我们专业编程水平的方法,让我们充分了解我们自己的水平,自主学习一些我们所短缺的知识。

主动督促我们去补充我们的知识漏洞。

在这期间我对于我所不知道的问题,我总是去查考一些资料,从那些书中我了解到了许多,同时我也知道书是多么的重要。

与此同时,在这个课设的过程中,我更了解到团队合作的重要,同学们总是给我一些重要的资料,出奇的想法,老师则对我的课设中的不足的提出宝贵的意见,供我参考、提高,因此,我才能完成这次课程设计。

从这次课设中我认为编写程序中掌握总体思想是其中的重要部分,清晰的思路能让我们快速的解决问题。

这次课程设计,我改了好几次,每次的改动让我对编程体会更加深刻,相信经过多次的训练后,我的编程能力会更上一层楼。

总而言之,从这次课设,我得到了很多人的帮助,感谢那些帮助过我的同学、老师。

通过对C语言万年历的设计进一步的巩固了用C语言编写程序,并且有利于更好的掌握C语言。

在C语言程序设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!

都是要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!

为以后的工作打下良好的知识基础和技能基础!

在万年历的编写过程中我也体会到了做事情一顶有耐心呢、细心,认真。

也培养了我独立思考、综合运用所学有关相应知识的能力,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!

更加知道了要掌握好基础知识的重要性。

在万年历的设计过程中更加体会到了团队合作的重要性,三个臭皮匠抵上一个诸葛亮。

大家在合作中共同努力,共同进步!

团队合作才会更好的完成设计!

我也体会到以后在工作中团队合作的必要性和重要性!

通过这次课程设计让我在以后的学习中更加有信心!

参考文献

[1]刘振安,刘燕君.《C程序设计课程设计》[M].北京:

机械工业出版社,2004年9月

[2]谭浩强.《C程序设计》(第三版).清华大学出版社,2005年7月

[3]严蔚敏,吴伟民.《数据结构》(C语言版).清华大学出版社,1997年4月

[4]张岳新,《VisualC++程序设计》.苏州大学出版社,2007年12月

[5]徐宝文,《TheCProgrammingLanguage》.机械工业出版社,2004年1月

[6]黄明,梁旭,周绍斌,《VisualC++信息系统设计与开发实例》.机械工业出版社,2005年3月

[7]ALKELLEY等著,麻志毅译.《C语言解析教程》.北京:

机械工业出版社,2002年

[8]李志球,《实用C语言程序设计教程》.北京:

电子工业出版社,1999年

[9]王立柱,《C/C++与数据结构》.北京:

清华大学出版社,2002年

[10]李大友,《C语言程序设计》.清华大学出版社,1999年

附录

#include<

stdio.h>

time.h>

stdlib.h>

conio.h>

ctype.h>

#defineCURU72

#defineCURD80

#defineCURL75

#defineCURR77

#defineESC27

voidprintWNL(int,int);

//简单格式打印万年历

intWeek(int,int,int);

//求星期几

intgetDays(int,int);

//计算某个月的天数

intisRunNian(int);

//判断是否闰年

/*

*简单格式打印万年历

*参数:

y整型,接收年份值;

m整型,接收月份值;

*返回值:

*/

voidprintWNL(inty,intm)

{

inti,j;

intday=1-Week(y,m,1);

//天数初始值,定位1号的位置

intdays=getDays(y,m);

printf("

%4d年%2d月\n"

y,m);

日一二三四五六\n"

);

for(i=1;

i<

=6;

i++)

{

for(j=1;

j<

=7;

j++)

if(day<

=0||day>

days)

"

else

%3d"

day);

day++;

}

\n"

提示:

【←】减年【→】加年【↑】减月【↓】加月【ESC】退出\n"

}

*求星期几

d整型,接收天的号数

整型,是0,1-6七个数之间的一个数,0代表星期日,1-6代表星期一至星期六

intWeek(inty,intm,intd)

intdays=0;

//总天数

inti;

y;

i++)//累计1到y-1年的天数

days+=isRunNian(i)?

366:

365;

m;

i++)//累计y年第1月到第m-1月的天数

days+=getDays(y,i);

days+=d;

//累计当月的天数。

returndays%7;

//返回星期值

*判断是否闰年

y整型,接收年份值

整型,只为0或1,0代表假,1代表真

intisRunNian(inty)

return(y%4==0&

&

y%100!

=0||y%400==0)?

1:

0;

*计算某个月的天数

整型,是0,28,29,30,31之间的一个数

*注意:

返回值为0,表示你调用该函数时传递了不正确的年份值或月份值.

intgetDays(inty,intm)

switch(m)

case1:

case3:

case5:

case7:

case8:

case10:

case12:

days=31;

break;

case4:

case6:

case9:

case11:

days=30;

case2:

days=isRunNian(y)?

29:

28;

default:

;

returndays;

*主函数,应用程序入口

voidmain()

intyear,month;

structtmt;

charch;

_getsystime(&

t);

//标准函数,获得系统当前时间

year=t.tm_year+1900;

//得到当前年份

month=t.tm_mon+1;

//得到当前月份

do

system("

cls"

//调用DOS清屏命令

printWNL(year,month);

//自定义函数,打印万年历

ch=getch();

//获得无回显控制台输入字符

if(ch==ESC)//ESC键,退出循环,结束程序

elseif(ch==0)//若值为零,则用户敲了功能键,继续获取后续代码。

switch(ch)

caseCURL:

year--;

//左键减年

caseCURR:

year++;

//右键加年

caseCURU:

//上键减月

month--;

if(month==0)

month=12;

caseCURD:

//下键加月

month++;

if(month==13)

month=1;

}while

(1);

\n\n\t谢谢使用,欢迎常来!

再见。

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

当前位置:首页 > 小学教育 > 语文

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

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