欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    C语言万年历课程设计报告书.docx

    • 资源ID:2373924       资源大小:536.70KB        全文页数:21页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言万年历课程设计报告书.docx

    1、C语言万年历课程设计报告书C语言课程设计报告书万年历系统设计学院:理学院专业:信息与计算科学 姓名: 指导教师:序言 经过一个学期对C程序设计的学习,同学们都认为真正的学到了有用知识,可能有一些人学的不够理想,但无论如何,这些知识都为我们的下一步学习打下了坚实的基础。做这么一个课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。 本程序是一个万年历程序,可以查询1970年1月1日到2100年1月1日中任意一天是星期几,只要在运行程序时按照要求输入年,月,日,程序就会把这一天是星期几显示子啊

    2、屏幕上;也可以输入一个年份和一个月份,程序就会把该月份的月历显示在屏幕上,使人一目了然。该程序能与目前天文学研究中所采用的各种日历程序所能计算的结果相一致。还有许多功能等着你去探讨。 这个程序花费了很多时间,用了一天的时间去设计程序和调试程序,而在调试程序的过程中,经常会出现一些不如意的地方,所以程序就要修改。所以这样经过一次又一次的修改之后,程序更显得人性化。通过这一次程序的设计,让我深深的感受到程序员的辛苦。 2012年6月11日 【课程设计题目:万年历系统】【要求】1:程序的功能多样;2:输入日期能够判断该日期是星期几;3:输入一个年份能够显示出该年的全部月历;4:输入一个年月能够显示该

    3、月的月历;5:输入一个年份能够判断该年是闰年还是平年;6:能够退出。 【系统总体功能设计框架】 Y,y N【系统功能模块图】主要功能模块1:输入year,month,day计算month与当年的1月间隔了多少天rr=r+(year/4)*1461+(year%4)*365+dayr=r%7r=0r=1r=2r=3r=4r=5r=6SatSunMonTueWedThuFirY或y返回菜单其他输入均退出程序代码:printf(please input the day you want(2100,1,1*,*,*1970,1,1):); scanf(%d,%d,%d,&year,&month,&da

    4、y); for(b=0,r=0;b2006) days=(year-2006)*365+count_leap(year)+monthdays(month,year); weekday=days%7; else if(year2006) days=(2005-year)*365+count_leap(year)+monthdays(month,year); weekday=7-days%7; else days=monthdays(month,year);weekday=days%7; for (i=1;iweekday+2;i+) printf (t); for (i=1;i=y;i+) if

    5、 (i+weekday-1)%7=0) printf (nt%3dt,i); else printf (%3dt,i); 主要功能模块3: 输入的年份 判断从定义年到输入的年份中每个年份是否为闰年是 否闰年每年为366天 平年每年为365天 返回该年的天数程序代码: int i; if (year%4=0&year%100!=0|year%400=0) i=1; else i=0; return i;【用到的语句】1., /*头文件*/2.main() /*主函数*/3.printf(),4.scanf()5.a /*数组*/6.if 语句7.for 语句8.void /*要调用到的函数*/【

    6、源程序代码】#include#include int main() /主函数 int leap_year(int y); int count_leap(int year); int monthdays(int month,int year); void monthprint(int year,int month); int year,month,day,b,r,number; /定义变量 char choose; int a=0,31,28,31,30,31,30,31,31,30,31,30,31;printf(*mainMeun*n);printf( 1:ri qixing qi ji.n

    7、);printf( 2:yue li.n);printf( 3:ri li.n);printf( 4:run nian pan duan. n);printf( 5:exitn);printf(n);printf(*n);printf ( please input the number:);scanf(%d,&number);if(number=1) printf(please input the day you want(2100,1,1*,*,*1970,1,1):); scanf(%d,%d,%d,&year,&month,&day); /输入要查询的日期 for(b=0,r=0;b*0

    8、):); scanf(%d,&year); /输入要查询的年份 for(month=1;month*,*1970,1):); scanf(%d,%d,&year,&month); /输入要查询的年,月 printf( %dyear %dmonthn,year,month); printf(*n); printf( Sun Mon Tue Wen Thu Fri Satn); monthprint(year,month); / printf(n); printf(*n); choose=getchar(); printf(Continue?(y/n):nn); scanf(%c,&choose)

    9、; if (choose=y|choose=Y) main(); else if(number=4) printf( please input a year5000*0:); scanf(%d,&year); /输入要查询的年份 if(leap_year(year)printf(This is runyear.n); else printf(This is pingyear.n); choose=getchar(); printf(Continue?(y/n):nn); scanf(%c,&choose); if (choose=y|choose=Y) main(); else /选择其他则退

    10、出return 0;int leap_year(int year) /判断是否闰年 int i; if (year%4=0&year%100!=0|year%400=0) i=1; else i=0; return i;int count_leap(int year) int i=0,j,min,max; if(year2006) min=2006;max=year; else min=year+1;max=2006; for(j=min;j=2006) static int t12=31,0,31,30,31,30,31,31,30,31,30,31; j=month-1; if(leap_

    11、year(year) t1=29; else t1=28; for(i=0;ij;i+) sum=sum+ti; else static int t112=31,30,31,30,31,31,30,31,30,31,0,31; j=12-month; if(leap_year(year) t110=29; else t110=28; for(i=0;i2006) days=(year-2006)*365+count_leap(year)+monthdays(month,year); weekday=days%7; else if(year2006) days=(2005-year)*365+c

    12、ount_leap(year)+monthdays(month,year); weekday=7-days%7; else days=monthdays(month,year);weekday=days%7; for (i=1;iweekday+2;i+) /输出该月第一天所在位置之前的空格 printf (t); for (i=1;i=y;i+) /输出该月的月历 if (i+weekday-1)%7=0) printf (nt%3dt,i); else printf (%3dt,i);【调试及分析过程】1:在代码编辑器上输入以上程序代码后,保存并f9到tc3.0上运行结果输出:分析:运行后

    13、出现“菜单”,选项意思是:输入1,则确定一个日期是星期几。输入2,则是查询某年的12个月历。输入3,则是查询某年某月的月历。4,则是判断输入年是闰年还是平年。5,退出。2:选择1后,再根据提示输入*,*,*:2011,10,28 结果输出:分析:输入你要查询的年月日后,程序会经过计算输出该日的星期号。然后,输出结果后,系统会询问你是否继续,输入y或Y,继续;输入N或n或其他字母都会直接退出。3:选择y后结果输出:4:选择2后,再根据提示输入你想查询的年份*:2012结果输出:分析:输入你要查询的年份后,系统会经过计算得出每月的月历,然后输出。但因为输出窗口限制,结果只能看到部分。同样的,输出结

    14、果后,系统仍然会询问是否继续。5:选择3后,再根据提示输入你要查询的月份*,*:2012,6结果输出:分析:输入你要查询的月份后,系统会经过计算得出该月的月历图,然后输出。同样的系统依然会询问是否继续。6:选择4后,再根据提示输入你要查询的年份*:2100结果输出:7:在程序成功测试之前出现主要的问题是:错误:程序经计算后得出的月历的开头第一行对不上下面的。分析:原因是在给每月的第一天的前面空格时多空了一个位只要将“i=weekday;”改为“iweekday;”即可。【总结】经历了这次课程设计的设计和制作的整个过程,我才发现我知识的贫乏和知识面的狭窄,真实的感受到程序设计的困难性,只说时间上

    15、面,我总共花了二十几个小时。这次作课程设计我也是收获很大,首先,我对C语言有了更深的了解,使用起来也更加的熟练,原来有一些不知道和不熟悉的函数,我学会用了。其次,我这一次找了不少的资料,找专业的书籍、上网找各方面的资料,也使我学到了一些书本中学不到的知识,让我长了见识。同时我们同学之间也互相的探讨,也增进了我们同学之间的感情。这次作的这一个设计,虽然我自己觉的很有的成就感,但是这必竟是我第一次作C语言的课程设计,必然会有很多的不足之处有待改进,相信以后我一定会做的更好。对C语言在编写程序时的用处有了更明确的认识,懂得了编写C程序的一般法方步骤。最大的收获是,编写程序时一定要有信心和勇气,要相信自己一定可以把这个程序编写出来。分析问题做出算法,想好思路,在心里有个大致的框架,然后按部就班的记下自己想到的每一点内容,把写下的东西认真整理,查缺补漏,把一些细节的地方补上,就这样一个貌似很难的程序就写出来了。其实编程并不难,关键是要投入,要钻到里面去。下一步就是读程序了,读程序时一定要小心仔细,一条语句一条语句的读,看是否能输出自己想要输出的结果,如果发现错误要马上改过来,再接着向下读,直到把程序调试的完美无缺为止。


    注意事项

    本文(C语言万年历课程设计报告书.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开