桌面电子日历制作

上传人:cl****1 文档编号:485315967 上传时间:2023-05-29 格式:DOCX 页数:29 大小:210.82KB
返回 下载 相关 举报
桌面电子日历制作_第1页
第1页 / 共29页
桌面电子日历制作_第2页
第2页 / 共29页
桌面电子日历制作_第3页
第3页 / 共29页
桌面电子日历制作_第4页
第4页 / 共29页
桌面电子日历制作_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《桌面电子日历制作》由会员分享,可在线阅读,更多相关《桌面电子日历制作(29页珍藏版)》请在金锄头文库上搜索。

1、冻”电力犬总软件类设计实训电子日历软件设计作者:学号:学 院: 自动化工程学院 班 级: 院系:自动化工程学院专 业:自动化指导者:年 月 吉林本次课设是设计一个桌面日历,要求能实现以数字形式显示日期和时间并能 对时间进行修改和调整功能。因此首先需要显示日历,从系统中获取时间进行初 始化;然后按要求进行显示,再通过软件进行时间修改,将修改过的时间进行保 存,使时间能够在修改过后自主进行计时。在修改时间时,不能同时对时分秒中 的任意两个或三个进行修改,当输入值不在正常范围值时,软件会自主进行报错。 同时,本软件也能实现日期的查询与调整。同样地,不能同时对年月日中的任意 两个或三个进行修改,当输入

2、值不在正常范围值之内时,软件会弹出对话框进行 报错。由于本设计是由C+builder软件设计的,程序部分看起来会比较简单; 但由于C+builder中组件属性值要求的类型是固定的,所以在调试过程中曾出 现大量错误和漏洞。因此一些看似不必要的程序势必不可少的。关键字:C+builder,万年历,C语言目录第1章绪 论31.1设计目的31.2设计内容和要求31.3设计工作任务及工作量的要求3第2章 设计思路及程序流程42.1总设计思路与总流程图42.1. 1总设计思路42.1.2总流程图42.2模块流程图及程序介绍62.2.1时间的获取62.2.2检查时间正确性72.2.3日期及时间的更新102.

3、2.4时间及日期的修改12第3章部分补丁程序简介133.1多个输入框不能同时为空133.2不同时间段时间获取14第4章软件操作说明164.1按键简介174.1.1今天按键174.1.2修改按键174.1.3上取消按键174.1.4下取消按键174.2输入框简介17第4章心得体会18参考文献18附录19第1章绪论1.1设计目的本次实训是自动化(卓越班)专业重要的实践性环节之一,是在学生学习完 程序设计类课程后进行的一次全面的综合实践。具体的实训目的和任务如下:(1)巩固和加深学生对程序设计语言类课程基本知识的理解和掌握;(2)掌握程序设计和调试的基本技能;(3)掌握书写程序设计说明文档的能力;(

4、4)提高运用程序设计语言解决实际问题的能力。1.2设计内容和要求利用相关的程序设计语言设计电子日历软件设计程序,要求能够显示日历和 实现信息,具体实现以下要求:(1)能够以数字形式显示年月日;(2)能够以数字形式显示时分秒;(3)具有时间修改和调整功能。1.3设计工作任务及工作量的要求(1)画出系统工作的软件流程图;(2)撰写软件实训的设计说明书;(3)给出相应子程序的入口参数和出口参数;(4)说明软件工作的基本原理和实现方法;(5)程序的可靠性设计和相关说明;(6)必须能够编译链接生成可执行文件。第2章 设计思路及程序流程2.1总设计思路与总流程图2.1.1总设计思路首先,程序要有初始时间,

5、进行输出。由于,我们做的是一款用C+builder 设计的日历软件,所以可以从系统中获取时间进行初始化,初始化后直接输出当 前的日期与时间。其次,我们需要通过此软件实现时间的查询或修改功能。由于 本软件具有直接输入功能,所以有可能输入的时间并不存在,因此在获取时间后 要对时间进行正确性检查。然后,当我们输入的时间合法时,但时间依然在不停 的流逝,所以此软件必须能够自主更新时间,即自主刷新,实现计时功能。最后, 当一切正常进行时,日期和时间要在规定区域内进行输出。2.1.2总流程图如图1,此流程图只是对本次设计的一个大概描述,是一个总体框架结构。 在此流程图中,我们可以看到我的设计思路和软件的大

6、致流程。自主刷新时间7图1:总流程图2.2模块流程图及程序介绍2.2.1时间的获取获取时间有两种方法,一是初始化时从系统中获取日期和时间;二是当我们 要查询日期或进行时间的调整时,获取我们输入的日期和时间。由于我们要能实 现对年月日时分秒每一个独立的调整,所以这里我添加了六个CSpinEdit组件, 每个组件程序基本相同。流程图如图2。开始2.2.2检查时间正确性检查时间的正确性分两部分,一是要检查年月日的正确性;二是要时分秒的 正确性。(一)检查年月日正确性在检查年月日正确性时要先判断当年是否为闰年,这是因为如果当年是闰 年,则二月有二十九天;如果当年是平年,则二月有二十八天。这会影响后面程

7、 序的判断,而且影响日期的更变。判断闰年在后续程序中也要用到,所以在这里 我们要将其单独拿出。图3是判断闰年的程序流程图。图3:判断闰年判断完闰年后,要对日期进行检查。在每年的1,3,5,7, & 10,12月份是31天,在每年 的4,6,9,11月份是30天,闰年2月是29天,平年2月是28天。当日期超出合法日期范围 时,本软件会进行报错。程序框图如图4。图4:检查日期(二)检查时分秒正确性检查时分秒的正确性较为简单,只需保证小时保证在023范围内,分 钟在059范围内,秒在059范围内。当出现不在此区间内的时间是系统 进行报错。2.2.3日期及时间的更新本软件是一款日历软件,因此要有计时功

8、能,并能够实现日期及时间的更新。 此更新方法比较简单。即:每60秒增加一分钟,每60分钟增加1个小时,每24个小时,增加一天, 当上一天是月末时,日期变为下个月的第一天,在这里我们需要月份判断天数, 再由当前日期确定是否变更为下个月的第一天;在判断当前月份的天数时,我们 可能需要判断当年是否为闰年。当月份增加时,要看上个月是不是十二月,若为 十二月是我们要使年份加一。这部分程序是需要每秒钟执行一次的,在这里我使 用了 Time组件,将其Interval属性设为1000。具体程序如下:void _fastcall TForm1:Timer5Timer(TObject *Sender)if(CSp

9、inEdit4-Text=IICSpinEdit5-Text=IICSpinEdit6-Text=)Timer5-Enabled=false;return;elseTimer5-Enabled=true;int j=CSpinEdit3-Value;讦(CSpinEdit4-Value=0&CSpinEdit5-Value=0&CSpinEdit6-Value=0) +j;int y=CSpinEditl-Value;int m=CSpinEdit2-Value;switch(m)case 1:case 3:case 5:case 7:case 8:case 10:if(j=32)CSpinE

10、dit3-Value=1;CSpinEdit2-Value=+m;elseCSpinEdit3-Value=j;break;case 12:if(j=32)CSpinEdit3-Value=1;CSpinEdit2-Value=1;CSpinEdit1-Value=+y; elseCSpinEdit3-Value=j;break;case 4:case 6:case 9:case 11: if(j=31)CSpinEdit3-Value=1;CSpinEdit2-Value=+m; elseCSpinEdit3-Value=j;break;default:if(y%400=0ll(y%4=0&

11、y%100!=0)&(j=30)CSpinEdit3-Value=1; CSpinEdit2-Value=+m;elseif(y%400=0|(y%4=0&y%100!=0)=0&(j=29)CSpinEdit3-Value=1; CSpinEdit2-Value=+m; elseCSpinEdit3-Value=j;2.2.4时间及日期的修改时间的修改是比较简单的,只要在输入框中进行改变即可;但日期的修改 则略麻烦点。当修改完日期后,我们还能通过此软件进行日期查询;查询完后还 能返回到刚才修改过的日期,不能再从系统中获取时间,这便需要软件保存修改 过的时间。在这里我定义了三个全局整型变量来实

12、现,日期的修改。第3章部分补丁程序筒介3.1多个输入框不能同时为空输入框不能同时为空。在这里我使用的是C+builder中的CSpi nEdi t组件, 它的输入要求是正型变量。所以在输入不是数字是软件将会出现故障,这是我所 未能完成的。当输入框为空时,也是不符合 CSpinEdit属性要求的,所以要在每个 CSpinEdit组件命令输入:if(CSpi nEdi t1-Text=)return;这只实现了在我们用键盘输入时,能够清空输入框,使程序正常运行。但我 们有时会清空了一个输入框,再去输入另一个,这时软件会再次出错。这里我使 用了一个计时器Time组件,当修改一个输入框,其他输入框是不

13、能被修改的。 在这个Time组件中的程序如下:void _fastcall TForml:Timer4Timer(T0bject *Sender)if(CSpinEditl-Text二二“)CSpinEdit2-Enabled二false;CSpinEdit3-Enabled二false;CSpinEdit4-Enabled二false;CSpinEdit5-Enabled二false;CSpinEdit6-Enabled二false;if(CSpinEdit2-Text二二)CSpinEditl-Enabled二false;CSpinEdit3-Enabled二false;CSpinEdit

14、4-Enabled二false;CSpinEdit5-Enabled二false;CSpinEdit6-Enabled二false;if(CSpinEdit3-Text二二)CSpinEditl-Enabled二false;CSpinEdit2-Enabled二false;CSpinEdit4-Enabled二false;CSpinEdit5-Enabled二false;CSpinEdit6-Enabled二false; if(CSpinEdit5-Text=)CSpinEditl-Enabled二false;CSpinEdit2-Enabled二false;CSpinEdit3-Enabled二false;CSpinEdit4-Enabled二false;CSpinEdit6-Enabled二false;if(CSpinEdit4-Text二二)CSpinEditl-Enabled二false;CSpinEdit2-Enabled二false;CSpinEdit3-E

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号