日程万年历详细设计说明书第四组Word格式文档下载.docx
- 文档编号:8571659
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:14
- 大小:365.28KB
日程万年历详细设计说明书第四组Word格式文档下载.docx
《日程万年历详细设计说明书第四组Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《日程万年历详细设计说明书第四组Word格式文档下载.docx(14页珍藏版)》请在冰点文库上搜索。
3.2.1体系中用户结构分析5
3.2.2详细体系结构应用模型6
4问题域设计7
4.1、完善域模型7
4.2、状态建模8
4.3、交互建模9
5.程序界面设计10
5.1程序运行主界面11
5.2不同城市时间查询界面12
5.3加载界面13
5.4日程管理界面13
5.5闹钟管理界面15
5.6铃声选择16
6.数据管理设计17
7.关键算法概述18
1引言
1.1编写目的
根据《需求规格说明书》、《概要设计说明书》,在仔细考虑讨论之后,我对《万年历日程工具》软件的功能划分、数据结构、软件总体结构的实现有了进一步的想法。
我们将这些想法记录下来,作为详细设计说明书,为进一步设计软件、编写代码打下基础。
在前一阶段(概要设计说明书)中,已解决了实现该系统需求的程序模块设计问题。
包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及数据结构、模块结构的设计等。
在以下的详细设计报告中将对在本阶段中对系统所做的所有详细设计进行说明。
在本阶段中,确定应该如何具体地实现所要求的系统,从而在编码阶段可以把这个描述直接翻译成用具体的程序语言书写的程序。
主要的工作有:
根据在《需求分析说明书》中所描述的数据、功能、运行、性能需求,并依照《概要设计说明书》所确定的处理流程、总体结构和模块外部设计,设计软件系统的结构设计、逐个模块的程序描述(包括各模块的功能、性能、输入、输出、算法、程序逻辑、接口等等)
1.2背景
a.待开发系统:
日程万年历工具
b.项目任务提出者:
JAVA课设
c.开发者:
软件学院142011班第四组
d.最终用户:
用户个人
万年历是日常生活中不可或缺的小工具,用万年历我们可以准确地查到当前,以后或是过去的日期,极大地方便了我们的生活。
在万年历上添加了显示本地时间以后会更加准确地显示时间。
无论是对于我们学生还是上班族或是自由职业者需要经常查看和查找万年历来规划自己将要做得一些事情,或是回忆在过去的时间里已经做过的事情,使之更加有利于提升我们的学习或是工作进度
1.3定义
暂无
1.4参考资料
1、舒坚、陈斌全.软件工程.高等教育出版社2014
2、艾文.软件自动化测试研究及在网银系统的应用[D].吉林大学2012
3、沈亮.一种基于面向对象技术的自动化测试平台的设计与实现[D].电子科技大学2009
4、梁勇著,戴开宇译,java语言程序设计.机械工业出版社2015
2系统结构
3体系结构设计
3.1体系结构设计的定义
随着软件系统的规模和复杂度不断增长,系统结构的描述和设计变得越来越重要,结构问题包括:
(1)组成系统的结构元素和界面。
(2)全局的控制结构。
(3)通信协议和同步。
(4)数据访问。
(5)元素中协作的特定行为。
(6)软硬件的物理部署。
这就是所谓的体系结构设计。
体系结构设计就是系统设计,体系结构设计优于软件结构设计,且体系结构不能别标准化,没一个实际系统都对应着唯一的体系结构。
3.2体系结构具体设计
3.2.1体系中用户结构分析
“万年历系统”用户结构
表示层
应用层
数据层
用户
3.2.2详细体系结构应用模型
“万年历系统”体系结构
(1)表示层
也即是Web层,在客户端就是一个界面,以界面的形式呈现于Web界面,用户通过Web界面操作,实现查询日程安排,添加提醒,城市时间查询等。
(2)应用层
通过个人pc实现的,它用于处理用户请求,包含了具体的业务逻辑的组织方式和实现方式,在整个系统的数据交换中起着桥梁纽带的作用。
(3)数据层
通过和应用层实现数据的交换,用来存储文件,实现对文件的管理,日常维护管理。
三层结构是一个更加灵活的体系结构,它把显示逻辑,业务逻辑文件存储相互独立起来,有利于提高系统的扩展性,伸缩性,移植性和安全性。
4问题域设计
4.1、完善域模型
对问题域模型做的一些补充或修改内容
1、补充几个类:
日历类,日程类,定时提醒类。
2、丰富完善了类的属性与操作、调整了类与类之间的关系、补充遗漏的类。
3、进行了职责分配。
4、符合系统功能性需求和业务规则要求的、正确且完备的域模型如下
4.2、状态建模
主要对创建提醒进行了分析。
定时提醒生命周期图示如下
4.3、交互建模
以增加日程安排用例为例,介绍设计的交互建模
增加日程安排的活动图如下:
分解“增加日程安排提醒”动作,由以下几个步骤组成:
1.创建一个日程安排对象。
2.根据日程安排创建对象是否提醒。
3.存储该定时提醒到文件。
4.完成增加日程安排提醒。
5.存储该日程安排到文件
5.程序界面设计
5.1程序运行主界面
以下界面为最终的大致模型,在背景图片的选择等方面与最终成品存在一定差异。
功能:
本模块的主要功能是年月的更新,当前时刻的动态展示,公历的展示等等。
其窗体如图5-1所示:
图5-1程序运行主界面
5.2不同城市时间查询界面
本模块的主要功能是查询不同城市时间,不同城市时间查询模块的界面,如图5-2所示:
图5-2不同城市时间查询界面
5.3加载界面
本模块的主要功能是转换界面时的加载,该模块的加载界面,如图5-3所示:
图5-3加载界面
5.4日程管理界面
本模块的主要功能是添加日程管理,删除日程管理,查询日程管理,添加提醒。
注:
当增加日程安排的提醒框为true并点击保存时,该日程会自动添加到闹钟管理界面。
(1)日程管理模块界面,如图5-4所示:
图5-4日程管理界面
(2)日程管理模块用例图,如图5-4-1所示:
图5-4-1日程管理模块用例图
5.5闹钟管理界面
本模块的主要功能是闹钟的增删保存以及铃声的设置,闹钟管理的界面,如图5-5所示:
图5-5闹钟管理界面
5.6铃声选择
本模块的主要功能是铃声的选择,选择的界面,如图5-6所示:
图5-6-1文件选择界面
图5-6-2铃声选择界面
5.7定时提醒界面
本模块的主要当提醒时间与当前时间吻合时自动弹出的窗口,并伴随着闹铃,当点击“知道啦”,当前窗口和铃声都会关闭,如图5-7所示
图5-7闹钟提醒界面
6.数据管理设计
介绍:
考虑到此种软件的相关情况不适合使用数据库,故使用文件来进行数据的保存。
关键算法:
要想达到要求,必须先实现用户界面对txt文件的读写等相关操作。
关键语句:
//写入
file=newFile("
E:
/Eclipse/jstudy/date.txt"
);
FileWriterfw=newFileWriter(file,true);
bw=newBufferedWriter(fw);
bw.write(temp)
bw.close();
//读取
Scannerin=newScanner(newFile("
));
while(in.hasNextLine()){
Stringstr=in.nextLine();
splitt(str)}//字符串的解析
7.关键算法概述
算法一:
公历转农历
农历:
农历是我国传统历法,又称夏历、中历、国历、俗称阴历。
定月的方法是用朔望月周期给出,朔所在日为初一,朔望月长约29天半,所以农历大月30天,小月29天。
农历平年有十二个月,全年354天或355天,闰年为十三个月,其中某一月为闰月,月名依前一月名而定,如前月是八月,闰月则为闰八月。
闰年全年383天或384天。
设置闰月的方法是:
农历月份中无“中气”的月份则是闰月。
概述:
由于农历是以月份中有无“中气”来判定是否为闰月,因此要想得到某月以及某年的天数,必须靠节气来判断
算法2:
判断每个月一号为星期几
由于要根据年份以及月份选择框来确定当前月份的日期情况,就必须判断该月一号为星期几以及该月的天数
蔡勒(Zeller)公式
计算星期可以用蔡勒(Zeller)公式(只适合于1582年10月15日之后的情形):
w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1
公式中的符号含义如下:
c:
世纪(年的高两位数);
y:
年(年的低两位数);
m:
月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月
来计算,比如2005年1月1日要看作2004年的13月1日来计算);
d:
日;
[]代表取整,即只要整数部分。
w:
星期;
w对7取模得:
0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,
5-星期五,6-星期六
以2005年2月14日为例:
c=20,y=4,m=14,d=14
w
=
4
+
[4/4]
[20/4]
-
2*20
[26*(14+1)/10]
14
1
1
5
40
39
22
(除以7余1)
所以2005年2月14日是星期一。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 日程 万年历 详细 设计 说明书 第四