c语言课程设计报告万年历,c语言课程设计报告-万年历系统.doc

学号

《》

课程设计报告

万年历系统专业: 网络工程(对口)班级: 16(3)姓名: 代应豪指导教师: 代美丽成绩:

计算机学院

2017年4月25日目 录

1.设计内容2

1.1 课程设计的内容2

1.2 课程设计的要求2

2.概要设计3

2.1 系统总体设计3

2.2功能模块设计3

3.设计过程或程序代码4

3.1算法提示:4

3.2程序源代码5

4.设计结果与分析15

4.1设计结果15

4.2 程序分析18

1.设计内容1.功能结构框图:

2.闰年的判断:

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

3.2程序源代码

#include

#include

char *NameOfMonth[12]={"January","February","March","April","May","June","July","August","September","October","November","December"};

char *WeekDay[7]={"星期日","星期一","星期二","星期三","星期四","星期五","星期六"};

int IsLeapYear (int year)

{

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

{

return 1;//闰年返回1

}else

{

return 0;//平年返回0

}

}

int DateCheck(int uYear,int uMonth,int uDay)//合法返回true,非法或超出范围返回false

{

if (uYear<1901||uYear>9999||uMonth<1||uMonth>12||uDay<1||uDay>31)

{

return 0;

}

if (uMonth==4||uMonth==6||uMonth==9||uMonth==11)

{

if (uDay>30)

{

return 0;

}

}else if (uMonth==2)

{

if (IsLeapYear(uYear))

{

if (uDay>29)

{

return 0;

}

}else

{

if (uDay>28)

{

return 0;

}

}

}

return 1;

}

int GetDays (int year,int month,int day)

{

int sum=0;

if (DateCheck(year,month,day)==0)

{

return -1;//日期有误

}

if(year>=1901)

{

int X=(int)(year/100);//世纪数

int Y=X-(int)(X/4);//如果按4年一闰来算,Y指的是比实际上多算的天数,在下面需要减去

if (month<=2&&month>0)

{

year--;//把1月、2月视为上一年的13月、14月(纯粹为了计算需要)

month+=12;

}

sum=(int)(365.25*(year-1900))+(int)(30.6*(month+1))+day-Y-49;//以365.25(本来实际太阳年是365.2425天)来计算是为了计算按4年一闰的整数年总天数,加上月份天数再加上余下天数,减掉多闰天数,再减掉一个偏差值(多加的)

//月份以30.6天的平均值计算。最后减去的49,是多加的一个月以及其余相差天数的和,可得到1900年1月1日的积日为0

}

return sum;//返回距离1900年1月1日的总天数(积日)

}

int GetDayOfMonth(int month,int year)

{

int tmp_days=GetDays(year,month,1);//本月积日

int DayOfMonth=0;

month++;//下个月

if (month>12)

{

month=1;//遇到月份为12月的情况,月份为1,年份加1

year++;

}

DayOfMonth=GetDays(year,month

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
八、心得体会 1. 目前流行的计算机日历程序,比较典型的是Windows各版本中的日历程序以及基础于该程序所开发的各种应用程序中的日历程序。然而,这些程序都千篇一律的局限在一个很短的时间范围内。(Windows各个版本一般都局限在1980年至2099年这一范围内),但是,在很多情况下,特别是在众多的科学研究领域中,一个时间跨度较大的日历程序是很有参考价值的。C程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本填补了这一领域的空白,同时用铁的事实强有力的告诉世人:C程序设计语言作为计算机语言家族的新生事物,其发展前景是极为广阔的。 2. 经过上一个学期对《C程序设计》的学习,我们学习了理论知识,了解了C语言程序设计的思想,这些知识都为我们的下一步学习打下了坚实的基础。通过课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。 3. 通过对c语言万年历的设计进一步的巩固了用c语言编写程序,并且有利于更好的掌握c语言! 4. 在万年历的编写过程中也体会到了做事情一顶要细心、认真。更加知道了要掌握好基础知识。还有体会到了成功的感觉!在万年历的设计过程中更加体会到了团队合作的重要性,“一个诸葛亮比不上三个臭皮匠。”知道了只有团队合作才会更好的完成设计!也体会到以后在工作中团队合作的必要性和重要性! 5. 通过本项课程设计也培养了我独立思考、 综合运用所学有关相应知识的能力,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关! 6. 由于C语言是近年在国内外得到迅速推广应用的一种语言。C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。通过这次的c语言程序设计更加了解了c语言的好处和其可用性! 7. 在这次课程设计中也知道了自己的动手能力不强有待进一部的提高!在设计过程中不能够把书本上的知识与实践相结合,这也就增加了设计不好该程序的想法!在设计过程中的一次次设计错误增加了我放弃的想法!不过经过大家的努力终于完成了课程设计!完成该程序后想起自己以前的每一次对自己失去信心,就觉得并不是在知识掌握上打败了,而是自己对自己缺乏信心!只要自己对自己不失去信心相信就可以完成那些以前认为完成不了的事情!也让我懂得了要想成功首先就必须有很强的自信心!懂得了自己以后要在做任何事情时都要自信!当自己都不相信自己能够成功时还可能会获得成功吗?

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值