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

    万年历系统课程设计报告.docx

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

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

    万年历系统课程设计报告.docx

    1、万年历系统课程设计报告信息科学与技术学院程序设计基础课程设计报告题目名称: 万年历系统 学生姓名: 学 号: 2011508020 专业班级: 指导教师: 2012年 7 月 1 日目 录1 课程设计目的及要求 11.1设计题目 11.2设计要求 11.3其他要求 12课题总体设计 22.1系统功能模块图 22.2系统流程图 .23.详细设计 33.1 printWNL() 33.2 isRunNian()模块设计 43.3 getDays模块设计 53.4 主函数main()模块设计 64调试与测试 75课程设计总结 10参考文献 11附 录 12万年历系统的设计1 课程设计目的及要求1.1

    2、设计题目万年历系统1.2设计要求模仿现实中的日历1.、当前页以系统当前日期的月份为准,显示当前月的每一天(显示出日及对应的星期几);2、当系统日期变到下一个月时,系统自动翻页到下一月。1.3其他要求1、只能使用c/c+语言,源程序要有适当的注释,使程序容易阅读。2、至少采用文本菜单界面。3、学生可自动增加新功能模块。2课题总体设计2.1系统功能模块图图1-1 系统功能模块图2.2系统流程图 图1-2 系统流程图3.详细设计3.1 printWNL()图1-3 printWNL()模块设计图 模块说明:prinWNL()先后调用week(),getdays()打印出简单的日历。3.2 isRun

    3、Nian()模块设计 图1-4 isRunNian()函数模块设计图 模块说明: 若该年不是闰年,则输出0,相反则输出1;设年数为X,先判断X能否被4整除,若不能则输出0;若能整除,则判断X能否被100整除,若不能则输出1;若能整除,则判断X能否被400整除,若不能则输出0,若能则输出1。3.3 getDays模块设计图1-5 getDays模块设计图 模块说明:判断系统月份,以月份为主,三十一天的有一月,三月,五月,七月,八月,十月,十二月;三十天的有四月,六月,九月,十一月。若是闰年,则二月为二十九天,不是,则为二十八天。3.4 主函数main()模块设计 图1-6 主函数体main()模

    4、块设计图模块说明:主函数体主要调用printWNL函数对由getsystime函数读取的主板时间进行相应的编辑和输出,并根据用户指令“”Esc实现年份及月份的调整,并退出程序4调试与测试此课程设计要求如生活中的挂历,要以当前页以系统当前日期的月份为准,显示当前月的每一天,并且当系统日期变到下一个月是,系统自动翻页到下一月。然而在调试过程中首先自己没有注意到区分闰年,没有考虑到二月有二十八天,与二十九天的区别,其次没有做到每一天对应的每个星期,再次在调用函数时出错,本代码无法做到在改变系统年份或月份时,不能立即运行,需要重新调试,所以此代码还是有不足之处的。经过不断的修改与尝试,最终将代码完成。

    5、当对上面的程序进行了调试后运行会出现下面图2-1所示:图2-1满足当前页以系统当前日期的月份为准,显示当前月的每一天。按“ ”键其下面接着会显示上一月的万年历,如图2-2图2-2按“ ”键其下面会接着显示下一月的万年历,如图2-3 图2-3按“”键下面将会接着显示当年上一个月的万年历,如题2-4图2-4按“ ”键将会在下面接着显示当年下一个月的万年历,如图2-5图2-5以上所显示按EsC后将会退去该程序。以上运行的结果可知该C语言所设计的万年历满足设计要求5课程设计总结课程设计时一个很好的提高我们专业编程水平的方法,让我们充分了解我们自己的水平,自主学习一些我们所短缺的知识。主动督促我们去补充

    6、我们的知识漏洞。在这期间我对于我所不知道的问题,我总是去查考一些资料,从那些书中我了解到了许多,同时我也知道书是多么的重要。与此同时,在这个课设的过程中,我更了解到团队合作的重要,同学们总是给我一些重要的资料,出奇的想法,老师则对我的课设中的不足的提出宝贵的意见,供我参考、提高,因此,我才能完成这次课程设计。从这次课设中我认为编写程序中掌握总体思想是其中的重要部分,清晰的思路能让我们快速的解决问题。这次课程设计,我改了好几次,每次的改动让我对编程体会更加深刻,相信经过多次的训练后,我的编程能力会更上一层楼。总而言之,从这次课设,我得到了很多人的帮助,感谢那些帮助过我的同学、老师。通过对C语言万

    7、年历的设计进一步的巩固了用C语言编写程序,并且有利于更好的掌握C语言。在C语言程序设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!都是要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!为以后的工作打下良好的知识基础和技能基础!在万年历的编写过程中我也体会到了做事情一顶有耐心呢、细心,认真。也培养了我独立思考、 综合运

    8、用所学有关相应知识的能力,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加知道了要掌握好基础知识的重要性。在万年历的设计过程中更加体会到了团队合作的重要性,三个臭皮匠抵上一个诸葛亮。大家在合作中共同努力,共同进步!团队合作才会更好的完成设计!我也体会到以后在工作中团队合作的必要性和重要性!通过这次课程设计让我在以后的学习中更加有信心! 参考文献1 刘振安,刘燕君.C程序设计课程设计M.北京:机械工业出版社,2004年9月2 谭浩强.C程序设计(第三版).清华大学出版社,2005年7月3 严蔚敏,吴伟民.数据结构(C语言版).清华大学出版社,1997年4月4

    9、张岳新,Visual C+ 程序设计.苏州大学出版社,2007年12月5 徐宝文,The C Programming Language .机械工业出版社,2004年1月6 黄明,梁旭,周绍斌,Visual C+ 信息系统设计与开发实例.机械工业出版社, 2005年3月7 AL KELLEY等著,麻志毅译.C语言解析教程.北京:机械工业出版社,2002年8 李志球,实用C语言程序设计教程.北京:电子工业出版社,1999年9 王立柱,C/C+与数据结构.北京:清华大学出版社,2002年10 李大友,C语言程序设计.清华大学出版社,1999年附 录#include #include #include

    10、 #include #include #define CURU 72#define CURD 80#define CURL 75#define CURR 77#define ESC 27void printWNL(int, int); /简单格式打印万年历int Week(int,int,int); /求星期几int getDays(int, int); /计算某个月的天数int isRunNian(int); /判断是否闰年/*简单格式打印万年历*参数: y 整型,接收年份值; m 整型,接收月份值;*返回值: 无*/void printWNL(int y, int m) int i,j;

    11、int day = 1 - Week(y,m,1); /天数初始值,定位1号的位置 int days = getDays(y,m); printf( %4d年%2d月n,y,m); printf( 日 一 二 三 四 五 六n); for(i = 1; i = 6; i+) for(j = 1; j = 7; j+) if(day days) printf( ); else printf(%3d,day); day+; printf(n); printf( 提示:【】减年 【】加年 【】减月 【】加月 【ESC】退出n);/*求星期几*参数: y 整型,接收年份值; m 整型,接收月份值; d

    12、 整型,接收天的号数*返回值: 整型, 是0,1-6七个数之间的一个数,0代表星期日,1-6代表星期一至星期六*/int Week(int y,int m,int d) int days = 0; /总天数 int i; for(i = 1; i y; i+) /累计1到y-1年的天数 days += isRunNian(i) ? 366 : 365; for(i = 1; i m; i+) /累计y年第1月到第m-1月的天数 days += getDays(y,i); days += d; /累计当月的天数。return days % 7; /返回星期值/*判断是否闰年*参数: y 整型,

    13、接收年份值*返回值: 整型, 只为0或1, 0代表假, 1代表真*/int isRunNian(int y) return (y % 4 = 0 & y % 100 != 0 | y % 400 = 0) ? 1 : 0;/*计算某个月的天数*参数: y 整型,接收年份值; m 整型,接收月份值;*返回值: 整型, 是0, 28, 29, 30, 31之间的一个数*注意: 返回值为0,表示你调用该函数时传递了不正确的年份值或月份值.*/int getDays(int y, int m) int days = 0; switch(m) case 1: case 3: case 5: case 7

    14、: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break; case 2: days = isRunNian(y) ? 29 : 28; break; default:; return days;/*主函数,应用程序入口*/void main() int year,month; struct tm t; char ch;_getsystime(&t); /标准函数, 获得系统当前时间 year = t.tm_year + 1900; /得到当前年份 month

    15、= t.tm_mon + 1; /得到当前月份 do system(cls); /调用DOS清屏命令 printWNL(year,month); /自定义函数, 打印万年历 ch = getch(); /获得无回显控制台输入字符 if(ch = ESC) /ESC键,退出循环,结束程序 break; else if(ch = 0) /若值为零,则用户敲了功能键,继续获取后续代码。 ch = getch(); switch(ch) case CURL: year-; break; /左键减年 case CURR: year+; break; /右键加年 case CURU: /上键减月 month-; if(month = 0) month = 12; year-; break; case CURD: /下键加月 month+; if(month = 13) month = 1; year+; break; default:; while(1); printf(nnt谢谢使用,欢迎常来!再见。n);


    注意事项

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

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




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

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

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


    收起
    展开