万历软件设计部分.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件设计部分 一、任务说明 本次我的软件课设题目是万年历,其要求是用键盘输入年和月份,程序自动准确的打印出该月份的月历。 程序的基本思路是首先判断该年是否为闰年,如果是闰年那么其二月份特殊,如果不是闰年则没有特殊情况。然后将每年分为大月小月和二月,这样随便输入一个月份就可以将其定位。最后难点就是判断每个月的第一天是星期几。 为了能满足改程序的要求,我多次使用了返回函数和条件语句和循环语句。主要是if( )和for( )语句。 二、按照要求完成设计任务 改程序是在main()函数的基础上进行编程的。 1、主函数 图1 主函数流程图 2、子函数 此函数可以说明该年是否为闰年,如果是则返回1,如果不是则返回0。这样编写的好处是闰年二月份多一天,那么其以后的月份对应的月历上面的星期也应该自动加1,如图2所示 图2 判断是否为闰年 在编写程序时判断是否为闰年为该程序的难点之一,要想满足该年为闰年必须满足的条件是:第一年份可以被4整除,第二年份不能被100整除或者年份可以被400整除。如果条件语句错误,那么就不能准确的说明该年份是否为闰年了。 此函数还可以判断每个月一共有多少天。当月份为一、三、五、七、八、十腊时,其每个月都是31天。当月份为四、六、九、十一时,它们每个月的天数都是30天。闰年的二月份为29天,平年的二月份为28天。用if语句将每 年的12个月划分成3部分。如图3所示 图3 将月份进行划分 此函数的最后一个作用就是可以判断每个月的第一天是星期几,编写这部分程序的思路是:将星期几分为五类,第一类是闰年的二月,第二类是闰年的一月,第三类是平年的二月,第四类是平年的一月,其余都为第五类。如果能判断出每个月第一天为周几和每个月的总天数,就能准确的打印出该月份的月历。其流程图如4所示 图4 说明该月的第一天是周几            三、程序调试过程以及实验结果  调试过程:通过程序的设计我们仅输入月份和年份就能得出该月份的月历,输入的格式如:xx月xxxx年。本程序模块划分合理,操作方便,是一个能很好运行的系统,语句采用if嵌套条件语句  实验结果(主要运行几个特殊月份) 2012年7月份月历如图所示 图5 2012年7月的月历 2012年8月份月历如图所示 图6 2012年8月的月历 在编写程序中,我遇到的困难是每个月份的星期一无法确定。只有确定了第一天后我们才可以找出该月份的月历。但是在执行程序中,我又发现了一个错误就是每年的一月份和二月份不可以用和其他月份一样的算法,在编写程序中需要用if条件语句把特殊情况拿出来具体分析。 闰年的二月份月历,如图7所示 图7 2012年2月的月历 闰年一月份月历如图所示 图8 2012年1月的月历 平年一月份月历如图所示 图9 2011年1月的月历 平年二月份月历如图所示 图10 2011年2月的月历 我在第一遍编写程序时没有将月份进行划分,所以每年的一月和二月的月历都是错的。但是如果把闰年、平年、一月、二月都拿出来按条件划分那么就可以准确的输出每个月的第一天,从而输出该月份的月历。 程序大致可以分为两块:返回函数和主函数。返回函数的功能是将年份划为平年和闰年,月份划为大月小月和二月,每月的第一天是周几可划为一月二月和其他月。主函数主要功能是:输入语句编写为月份,年份;输出对应当月的月历。 四、结论 通过对大二下学期软件的学习,我对C++程序有了进一步的了解。在本次课设中我能够独立完成改程序的编写。在编写程序中主要使用了if条件语句和条件语句的嵌套,深度联系了返回函数的使用和文件读写的方法,熟悉了C语言的使用,更加深化了面向过程语言的思想和一些基本算法。 经历过对程序的后期调试,我熟悉了对该程序编写算法是常犯的一些错误,锻炼了思维的严密性和完整性。在本次课设中我的自学能力得到了加强,遇到不会问题只能自己进行研究。在画流程框图是我遇到的有史以来最难解决的问题,再用word画 图时总是出现错误再加上以前对画图不是那么的熟练,所以我在这方面的问题就相当的多。上网查了一些资料以后,我学会了word画图,不过画的还是很慢,在以后的 学习中要加强这方面的练习。当我遇到不会问题时,我会主动找老师或者同学帮我解答,在课设中我也培养了自己的独立思考的能力。 通过对程序的注释和画流程图,形成了一套自己编程的风格和清晰的思路,使思维更加调理化,清晰化。软件课设也是我将理论与编程相结合的一个体现,通过查找书籍和平时对软件知识的了解使我编出了这个程序,在课设中我的进步非常大,因此我要感谢老师对我的培养。 五、参考文献 1.谭浩强 《C程序设计》 清华大学出版社 2005 2.王世元 《C高级实用程序设计》 清华大学出版社 1996 3.梁翎 《C语言程序设计实

文档评论(0)

liyxi26 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档