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

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c万年历系统-课程设计报告

学号 《》 课程设计报告 万年历系统 专业: 网络工程(对口) 班级: 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 stdio.h #include windows.h 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==0year%100!=0||year%400==0) { return 1;//闰年返回1 }else { return 0;//平年返回0 } } int DateCheck(int uYear,int uMonth,int uDay)//合法返回true,非法或超出范围返回false { if (uYear1901||uYear9999||uMonth1||uMonth12||uDay1||uDay31) { return 0; } if (uMonth==4||uMonth==6||uMonth==9||uMonth==11) { if (uDay30) { return 0; } }else if (uMonth==2) { if (IsLeapYear(uYear)) { if (uDay29) { return 0; } }else { if (uDay28) { 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=2month0) { 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 (month12) { month=1;//遇到月份为12月的情况,月份为1,年份加1 year++; } DayOfMonth=GetDays(year,month,1);//下个月的积日 DayOfMonth-=tmp_days;//下月1日的总天数(距离1900年1月1日的积

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档