课程设计万年历系统.docx
《课程设计万年历系统.docx》由会员分享,可在线阅读,更多相关《课程设计万年历系统.docx(16页珍藏版)》请在冰点文库上搜索。
课程设计万年历系统
课程设计-万年历系统
课程设计报告
设计名称:
程序语言课程设计
设计题目:
万年历系统
软件学院课程设计任务书
学生姓名
学号
1402120134
专业班级
软件工程12级1班
设计题目
万年历系统
内容概要:
设计或开发环境:
VC++6.0技术:
C语言
满足当前页以系统当前日期的月份为准,显示当前月的每一天。
按“Up”键其下面接着会显示上一年该月的万年历,按“Down”键其下面会接着显示下一年该月的万年历,按“←”键下面将会接着显示当年上一个月的万年历,按“→”键将会在下面接着显示当年下一个月的万年历,以上所显示按Esc后将会退去该程序。
文献资料:
谭浩强.《C程序设计》(第三版).清华大学出版社,2005年7月
陈维兴林小茶文献名:
C++面向对象程序设计(第3版)出版地:
清华大学出版年:
2009.10
其他一些万年历系统
设计要求:
工作期限:
设计工作自2013年12月9日至2013年12月23日止。
指导教师:
院长:
日期:
2013年12月9日
软件学院课程设计进度安排表
学生姓名:
易海门学号:
1402120134专业:
软件工程班级:
12级1班
起止日期
内容
备注
12月9日
下达任务书,制定进度安排计划
12月10日~12月12日
系统整体设计和详细设计
12月13日~12月17日
系统编码实现
12月18日~12月19日
系统测试
12月20日~12月23日
撰写课程设计报告
12月25日
演示软件和答辩
指导教师签名:
2013年12月11日
成绩评定表
学生姓名:
易海门学号:
1402120134专业:
软件工程班级:
12级1班
类别
合计
分值
各项分值
评分标准
实际得分
合计得分
平时表现
10
10
按时参加设计指导,无违反纪律情况。
完成情况
30
20
按设计任务书的要求完成了全部任务,能完整演示其设计内容,符合要求。
10
能对其设计内容进行详细、完整的介绍,并能就指导教师提出的问题进行正确的回答。
报告质量
35
10
报告文字通顺,内容翔实,论述充分、完整,立论正确,结构严谨合理;报告字数符合相关要求,工整规范,整齐划一。
5
课题背景介绍清楚,综述分析充分。
5
设计方案合理、可行,论证严谨,逻辑性强,具有说服力。
5
符号统一;图表完备、符合规范要求。
5
能对整个设计过程进行全面的总结,得出有价值的结论或结果。
5
参考文献数量在2篇以上,格式符合要求,在正文中正确引用。
答辩情况
25
10
在规定时间内能就所设计的内容进行阐述,言简意明,重点突出,论点正确,条理清晰。
15
在规定时间内能准确、完整、流利地回答教师所提出的问题。
总评成绩:
分
指导教师:
(签字)
日期:
2013年12月25日
摘要
摘要:
在现代信息社会里,人们越来越重视时间的有效利用,而万年历也成了工作生活中必不可少的一部分,方便实用的万年历对于提高现代人的时间观念,优化时间使用效率具有重要意义。
随着时代的发展,尽管日历的品种增多、花样也不断翻新,但仍旧保持着古老日历的格局。
日历在当今社会的影响也是毋庸置疑的!
同时,随着个人电脑的普及,简单的桌面万年历成为人们日常作息及重要事件提醒记录的重要工具。
简易万年历可以运行在电脑桌面上,使用者可以通过各种不同的标记对重要时间及节假日和备忘事件等方面进行有效的查询和管理。
这套系统旨在为用户方便有效地进行重要事件的查询和管理。
本系统采用C语言编写,接针对简单的有效查询信息化系统。
该系统具有完整的信息查询功能,充分满足了广大用户的基本需求。
关键词:
信息化;万年历;c语言
摘要………………………………………………………………………………………II
第一章课题背景(或绪论、概述)……………………………………………………...3
1.1课题设计的背景.................................................................................3
1.2课题设计的目的.................................................................................3
1.3课题设计的意义.................................................................................3
1.4主要问题........................................................................................3
1.5达到的技术要求..................................................................................3
第二章设计简介及设计方案论述………………………………………………………...6
2.1概念设计.......................................................................................6
2.2逻辑设计.......................................................................................6
2.3物理设计.......................................................................................6
第三章详细设计…………………………………………………………..………………..7
3.1leap()模块设计................................................................................7
3.2show()模块设计................................................................................8
3.3主函数main()模块设计.........................................................................9
总结…….……………………………………………………..……………………….…10
参考文献…….………………..………………………………..………………………….11
第一章课题背景(或绪论、概述)
1.1课题设计的背景
随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。
由其是单片机技术的应用产品已经走进了千家万户。
电子万年历的出现给人们的生活带来的诸多方便。
本系统以C语言进行软件设计,增加了程序的可读性和可移植性,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简明了。
1.2课题设计的目的
1、巩固并加深对C语言程序设计知识的理解;
2、掌握和提高C语言编程和程序的基本调试的基本技能;
3、进一步理解和运用结构化程序的思想和方法;
4、提高运用C语言解决实际问题的能力;
5、初步掌握开发小型实用软件的基本方法;
6、掌握书写程序设计开发文档的能力。
1.3课题设计的意义
对C语言进一步了解,复习。
学习更多的编程知识。
为今后的工作打结实的基础。
1.4主要问题
1.判断是否为润年
2.取主板时间
3.用日历的格式显示出来
1.5达到的技术要求
此课程设计要求如生活中的挂历,要以当前页以系统当前日期的月份为准,显示当前月的每一天,并且当系统日期变到下一个月是,系统自动翻页到下一月。
然而在调试过程中首先自己没有注意到区分闰年,没有考虑到二月有二十八天,与二十九天的区别,其次没有做到每一天对应的每个星期,再次在调用函数时出错,本代码无法做到在改变系统年份或月份时,不能立即运行,需要重新调试,所以此代码还是有不足之处的。
经过不断的修改与尝试,最终将代码完成。
以下为调试结果
1.满足当前页以系统当前日期的月份为准,显示当前月的每一天
2.按“Up”键其下面接着会显示上一年该月的万年历
3.按“Down”键其下面会接着显示下一年该月的万年历
4.按“←”键下面将会接着显示当年上一个月的万年历,
5.按“→”键将会在下面接着显示当年下一个月的万年历
以上所显示按Esc后将会退去该程序。
以上运行的结果可知该c语言所设计的万年历满足设计要求
第二章设计简介及设计方案论述
2.1概念设计
对用户要求描述的现实世界,通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。
这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。
所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。
第二步再将前面得到的多个用户的局部视图集成为一个全局视图,即用户要描述的现实世界的概念数据模型。
概念设计的最终目的是要确定这一程序的功能达到预想的效果,所以自己的设计想法要清晰,准确的表达出来。
在进行概念设计时不拘泥小节,着重于它所能体现出的功能效果,大概的写出设计代码,然后在一一补充,使其完美。
2.2逻辑设计
主要工作是将现实世界的概念数据模型设计成数据库的一种逻辑模式,即适应于某种特定数据库管理系统所支持的逻辑数据模式。
与此同时,可能还需为各种数据处理应用领域产生相应的逻辑子模式。
这一步设计的结果就是所谓“逻辑数据库”。
根据设计实践任务书以及所开发的环境,利用这些信息获取,分析需求,优化解决方案。
使得所设计的代码达到所应具有的功能,即使万年历系统具有现实中挂历的作用。
2.3物理设计
根据开发环境和逻辑对象,数具实体的关系中进一步整理和细化得到的设计方案,即进一步的细化万年历系统的设计代码,明确其所应具有的功能。
还要考虑到实现的可能性和最终系统的性能。
具体每个模块的实现算法
第三章详细设计
3.1leap()模块设计
开始
4整除?
100整除?
400整除?
“1”
“0”
是
否
否
是
是
否
结束
图3-1leap()函数模块设计图
模块说明:
若该年不是闰年,则输出0,相反则输出1;
设年数为X,先判断X能否被4整除,若不能则输出0;
若能整除,则判断X能否被100整除,若不能则输出1;
若能整除,则判断X能否被400整除,若不能则输出0,若能则输出1。
3.2show()模块设计
图3-2show()模块设计图
模块说明:
判断系统月份,以月份为主,三十一天的有一月,三月,五月,七月,八月,十月,十二月;
三十天的有四月,六月,九月,十一月。
若是闰年,则二月为二十九天,不是,则为二十八天。
3.3主函数main()模块设计
开始
Time()取主板时间
调用show()函数
定义“↑↓←→”运算及退出指令
用户操作界面
结束
图3-3主函数体main()模块设计图
模块说明:
主函数体主要调用show()函数对由time()函数读取的主板时间进行相应的编辑和输出,并根据用户指令“↑↓←→”Esc实现年份及月份的调整,并退出程序
总结
通过上一个学期对C语言的学习,我们学习了理论知识,了解了C语言程序设计的思想,这都为我们的下一步学习打下了坚实的基础。
通过本次课程设计,一方面是检查了我们一个学期的学习成果,另一方面也让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。
由于C语言是近年在国内外得到迅速推广应用的一种语言。
C语言功能丰富,表达能力强,使用灵活方便,应用面广,目标程序效率高,可移植性好,既具有高级语言的优点,又具有低级语言的许多特点。
所以学好c语言对我们来说是非常必要的。
通过这次的c语言程序设计更加了解了c语言的好处和其可用性!
在这次课程设计中我也知道了自己的动手能力不强还有待进一部的提高!
在设计过程中不能够把书本上的知识与实践相结合,在设计过程中的一次次设计错误鞭策着我更加努力前进!
最后经过大家的努力终于完成了课程设计!
以下是在课程设计中发现的自己在编译过程中的诸多问题。
如书写标识符时,忽略了大小写字母的区别。
(编译程序把a和A认为是两个不同的变量名,而显示出错信息。
C语言认为大写字母和小写字母是两个不同的字符。
习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。
);忽略了“=”与“==”的区别。
(在C语言中,“=”是赋值运算符,“==”是关系运算符。
if(a==3)a=b;前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。
由于习惯问题,我往往会犯这样的错误。
)忽略了变量的类型,进行了不合法的运算;将字符常量与字符串常量混淆;C语言的变量一定要先定义才能使用;对应该有花括弧的复合语句,忘记加花括弧……
通过对c语言万年历的设计进一步的巩固了用c语言编写程序,并且有利于更好的掌握c语言。
在C语言程序设计的过程中也知道了自己在以前的学习中有很大的不足导致在设计过程中出现了很多的问题,有些地方看不懂也不知道怎么去设计,但是在设计过程中也学习了很多,掌握了自己以前没有学好的知识,虽然一时可以掌握完以前没有学好的知识,不过也给自己敲响了警钟,在学习中不可以伏于表面,要想学好每一门课程都要踏踏实实,做什么都不是给别人看的!
都是要更好的掌握该门知识,提高自己的自身的修养,提高自己的能力!
为以后的工作打下良好的知识基础和技能基础!
在万年历的编写过程中我也体会到了做事情一顶有耐心呢、细心,认真。
也培养了我独立思考、综合运用所学有关相应知识的能力,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!
更加知道了要掌握好基础知识的重要性。
在万年历的设计过程中更加体会到了团队合作的重要性,三个臭皮匠抵上一个诸葛亮。
大家在合作中共同努力,共同进步!
团队合作才会更好的完成设计!
我也体会到以后在工作中团队合作的必要性和重要性!
通过这次课程设计让我在以后的学习中更加有信心!
参考文献
[1]谭浩强.《C程序设计》(第三版).清华大学出版社,2005年7月
[2]ALKELLEY等著,麻志毅译.《C语言解析教程》.北京:
机械工业出版社,2002年
[3]王立柱,《C/C++与数据结构》.北京:
清华大学出版社,2002年
[4]李大友,《C语言程序设计》.清华大学出版社,1999年
[5]刘振安,刘燕君.《C程序设计课程设计》[M].北京:
机械工业出版社,2004年9月
[6]BrianW.Kernighan/DennisM.Ritchie.《c程序设计语言》清华大学出版社
[7]凯尼格.《c陷阱与缺陷》.人民邮电出版社
[8]SteveMaguire.《编程精粹》.人民邮电出版社