程序设计综合应用万年历论.doc_第1页
程序设计综合应用万年历论.doc_第2页
程序设计综合应用万年历论.doc_第3页
程序设计综合应用万年历论.doc_第4页
程序设计综合应用万年历论.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要摘 要 在现代信息社会里,人们越来越重视时间的有效利用,而万年历也成了工作生活中必不可少的一部分,方便实用的万年历对于提高现代人的时间观念,优化时间使用效率具有重要意义。随着时代的发展,尽管日历的品种增多、花样也不断翻新,但仍旧保持着古老日历的格局。日历在当今社会的影响也是毋庸置疑的!同时,随着个人电脑的普及,简单的桌面万年历成为人们日常作息及重要事件提醒记录的重要工具。简易万年历可以运行在电脑桌面上,使用者可以通过各种不同的标记对重要时间及节假日和备忘事件等方面进行有效的查询和管理。这套系统旨在为用户方便有效地进行重要事件的查询和管理。 本系统采用C+语言编写,接针对简单的有效查询信息化系统。该系统具有完整的查询功能,充分满足了广大用户的基本需求。关键字:信息化,万年历,c+语言21ABSTRACTIn the modern information society, there is growing emphasis on effective use of time, while the calendar has become an essential part of working life, convenient and practical calendar for the modern concept of time to improve and optimize the efficient use of time is important. With the development, despite the increasing variety of calendars, patterns have been renovated, but still maintained the pattern of the ancient calendar. The impact of the calendar in todays society is unquestionable!Meanwhile, with the popularity of personal computers, a simple desktop calendar and important events of peoples daily routines an important tool to remind the record. Simple calendar can be run on your desktop, the user can mark a variety of different time and holidays and on important events and so cheat the query and manage effective.The system is designed to facilitate the effective conduct of the users query and management of important events. The system uses C + + language, then query for a simple and effective information system. The system has complete information inquiry function, fully meet the basic needs of the majority of users.Keywords:Information; calendar; C + + Language目 录第1章引言11.1 课题的背景11.2 课题的意义11.3 课题的现状1第2章设计总体规划22.1 实现的功能3 2.2 结构模块分析3 2.3 系统框架设计4第3章系统的实现53.1 算法实现描述5 3.2 各模块功能的实现7第4章总结11参考文献13致谢14附录15电子科技大学成都学院课程设计第1章 引言1.1 课题的背景在现代信息社会里,人们越来越重视时间的有效利用,而万年历也成了工作生活中必不可少的一部分,方便实用的万年历对于提高现代人的时间观念,优化时间使用效率具有重要意义。同时,随着个人电脑的普及,简单的桌面万年历成为人们日常作息及重要事件提醒记录的重要工具。简易万年历可以运行在电脑桌面上,使用者可以通过各种不同的标记对重要时间及节假日和备忘事件等方面进行有效的查询和管理。1.2课题的意义 掌握一种编程工具和面向对象程序设计的基本思想和方法,培养我们学生综合利用某种语言进行程序设计的能力,培养我们学生利用系统提供的功能进行创新设计的能力,培养我们学生充分利用计算机的功能和特点分析实际问题及解决实际问题的能力。为我们提供一个综合运用所学知识解决实际问题的机会,增强我们学生的实践动手能力和工程实践能力,并培养和锻炼我们学生的自学创新能力。为了能更好地了解C+语言,因此开设了此次课程设计,程序设计教学课程的目的不是为了单独的课堂学习,而是要让我们学生掌握程序设计的基本思想及方法。一方面,在课程设计过程中,可以明确的指导为什么而学,还能对所学知识得到应用,更重要的是可以让我们学生掌握一些基本函数的用法,从而不在对编程序感到茫然,经过设计,可以让我们熟悉简单程序的设计方法和编写,对程序设计及该门课程设计语言的应用得到理解。1.3 课题的现状 目前的计算机日历程序,比较典型的是Windows各版本中的日历程序以及基于该程序所开发的各种应用程序中的日历程序。然而,这些程序都是千遍一律的局限于一个很短的时间内。但是,很多情况下,特别是在众多的科学领域中,一个时间跨度较大的程序是有参考价值的。C+程序设计语言充分发挥了其自身无与伦比的优越性,用极短的程序文本就弥补了这一领域的空白。万年历作为日常中的一种小工具,它具有多方面的小工能,主要在日期的显示上给人以直观的表达效果,在日期的查询上方便简洁,还有就是在某些节日的提醒上都给我们带来极大的方便,是一种比较实用的小工具。给人的需求性很大,学生在做此万年历课程设计的同时,能够认识到C+编程给人带来的便捷,也能够清楚万历年表编程的出入。对培养学生的创新能力和动手能力具有很大的作用。电子科技大学成都学院课程设计第2章 设计总体规划2.1 设计要求(1)基本要求试设计一个万年历系统,使之能提供以下基本功能:1) 能够模拟现实中日历的形式现实公历;2) 第一行显示月份(中英文都可以)3) 下一行显示星期,从周日到周六,中英文都可以4) 下一行开始显示日期从1号开始,并按其是星期几实际情况与上 111111面的星期数垂直对齐5) 输入公历年月日能够显示农历日期;6) 信息输入功能:对某一天输入代办事项,纪念日等文字;7) 信息删除功能:能够删除某日期对应的纪念日等文字;(2) 创新要求达到上述基本要求后,可进行创新设计,如对功能扩展等。2.2系统模块划分 1.进入系统时显示菜单界面及当前系统时间 2.年历查询:输入年代时,系统输出改年所有月份的日历并以 日历的格式输出。 3.月历查询:输入年代,月份时,系统输出该月所有天数的日历并以日历的格式输出。 4.日历查询:当输入年,月,日时,系统输出该天的日历信息, 包括星期,农历,节日。 5.农历查询:用户输入年、月、日。系统输出该天对应的农历信息,包括天干地支,农历。 6.记事本:当输入年、月、日时,系统首先查询该时间是否有记事,如果没有提示是否记事,若记事则用户输入记事内容,系统将该记事内容以文本文档的形式保存。若有记事则显示该记事,并提示是否删除,若用户选择删除,则系统将该时间对应的文本删除。若不删除,则退出系统。 7.定时关机工具:进入该功能,系统提示用户选择:关机、重启、取消计划、退出。其中关机和重启具有定时功能。2.3系统框架设计第3章 系统的实现3.1算法实现描述【一】阳历相关 平年365天(52周+1天),闰年366天(52周+2天)。平年2月28天,闰年2月29天。由于公元1月1日设为星期六,故3月1日为星期三。注意这个“三”为使算法达到最简,故本算法以“星期”为计算单位。且选3月1日为基月。 每400年整一闰,或每4年且不为百年的一闰。(原因:地球绕太阳一周的时间是365天5小时46秒,为了使一年的天数为整数,将一年的天数定为365天,余下的时间积累起来,四年就是23小时15分4秒,将近一天,把这一天加在某年的二月而成29天,该年称为闰年,其它年称为平年。但四年加一天又多用了44分56秒,这个数积满400年为三天。因此400年中只能有97个闰年,所以凡能被400整除,或不能被100整除但能被4整除的年份为闰年。) 每 4年(3个平年+1个闰年)共208周+5天。每百年共100*(208周+5天)-1天=5217周+5天 (整百年暂设为平年), 每400年共4*(5217周+5天)+1天(整400年闰)=20871周+0天(4个整百年只有一个闰年) 即400年一轮回!【二】农历相关1.年份的确定1864年1月0日是农历癸亥年,所以用当年减去1864,用10除得的余数作为年份天干的,用12除得的余数作为年份的地支,数字对应的天干和地支如下。数字 0 1 2 3 4 5 6 7 8 9 10 11天干 甲 乙 丙 丁 戊 己 庚 辛 壬 癸地支 子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥当年的1月0日换算为积日,可以用年份减去1900得到的年数被4整除,所得商数作为 y(D4),余数作为y(M4),y(M4)为零的年份是公历闰年,积日是 D(1) = 1461 * y(D4) - 1y(M4)不为零的年份是公历平年,积日是D(1) = 1461 * y(D4) + 365 * y(M4)2. 月份的确定 计算前一年冬至的积日F(0),并用F(0)计算冬至所在的朔月m及其朔日M(0),就可以推算冬至的农历日期,冬至所在的农历月份总是十一月。计算下一个中气F(1)和下一个朔日M(1),如果F(1)查询该天是今年的第几天 * 入口参数:year,month,day * 返回参数:该天是今年的第几天 * 调用函数:day1(int year,int month) int Year_Day(int year,int month,int day) int i,sum=0; for(i=1;i查询该天是本周的第几天 * 入口参数:year,month,day * 返回参数:返回该天是本周的第几天 * 调用函数:day2(int year,int month,int day) int Week_Day1(int year,int month,int day) int number=(year-1)+(year-1)/4-(year-1)/100+(year-1)/400+Year_Day(year,month,day); number%=7; return number; /* * 函数名:星期查询 * 入口参数:number * 返回参数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论