日历记事本的设计实现分析.docx
《日历记事本的设计实现分析.docx》由会员分享,可在线阅读,更多相关《日历记事本的设计实现分析.docx(25页珍藏版)》请在冰点文库上搜索。
日历记事本的设计实现分析
课程设计报告
(2013--2014年度第二学期)
名称:
软件设计与实践
题目:
日历记事本的设计与实现
院系:
计算机系
班级:
学号:
学生姓名:
指导教师:
设计周数:
2
成绩:
日期:
年月日
软件设计与实践
任务书
一、目的与要求
目的:
通过综合性实验的设计,使学生综合训练自己的需求分析、系统设计、编程、测试等各种能力,积累软件开发的经验,提高学生进行软件开发所需具备的专业素质以及团队协作能力。
要求:
完成一个GUI界面的日历记事本的分析、设计、编程、测试工作。
二、主要内容
1.编写一个GUI界面的日历记事本,结合两者的功能。
2.用户可以方便地在任何日期记录下有关内容或查看某个日期的记录内容;
3.能够在对应的日期时间给用户以提醒;
三、进度计划
序号
设计(实验)内容
完成时间
备注
1
查阅资料,完成系统需求分析
1天
完成《需求规格说明书》
2
完成系统总体设计及详细设计
1天
完成《设计说明书》
3
程序编码及测试
7天
完成后须经教师验收。
4
撰写实验报告
1天
四、设计(实验)成果要求
程序代码注释丰富,经过测试,运行正常、合理。
程序页面友好,使用方便。
五、考核方式
1.平时成绩占10%。
2.综合实验完成情况占30%。
3.实验问答占20%
4.实验报告占40%。
学生姓名:
指导教师:
软件设计与实践教学组
年月日
一、课程设计的目的与要求
1.目的:
通过综合性实验的设计,使学生综合训练自己的需求分析、系统设计、编程、测试等各种能力,积累软件开发的经验,提高学生进行软件开发所需具备的专业素质以及团队协作能力。
2.要求:
完成一个GUI界面的日历记事本的分析、设计、编程、测试工作。
二、设计正文
1设计说明书
1.1用例图
1.2功能结构图
日历记事本功能:
(1)添加事件:
1)添加生日:
出生日期、姓名
2)添加行程:
日期、时间、地点、内容、提示音、提示日期、提示时间
3)添加纪念日:
日期、时间、地点、内容
(2)管理事件:
1)管理生日
a)按条件查询:
查询全部、按姓名查询,将相应的查询结果显示在列表框中
b)删除选中的一条记录(从数据库中删除)
c)清空全部记录(数据库和列表框中同时清空)
2)管理行程
a)按条件查询:
查询全部、查询今日以前的记录、查询今日以后的记录、选择某一日期查询(缺省为今日),将相应的查询结果显示在列表框中
b)删除选中的一条记录(从数据库和列表框中删除)
c)清空全部记录(数据库和列表框中同时清空)
3)管理纪念日
a)查询全部记录并将其显示在列表框中
b)删除选中的一条记录(从数据库中删除)
c)清空全部记录(数据库和列表框中同时清空)
(3)便签:
1)显示全部:
将数据库中的便签算有记录显示在文本框中
2)添加便签:
将便签内容添加至数据库并将新添加的便签内容显示在文本框中
3)定时删除:
对于添加的任意一条便签,系统默认在数据库中保存一日,一日后系统自动从数据库中删除。
(4)日历显示:
1)显示今日的日期(公历及农历)和时间
2)显示日历控件被选中的日期(公历和农历),缺省为今日
3)显示对应于日历控件中被选中日期的事件(包括行程、生日、纪念日),缺省为今日
4)返回今日:
使日历控件显示今日日期,并且刷新今日的事件并显示
1.3数据库设计
1.3.1实体属性图
1.3.2逻辑设计
字段名
数据类型
数据长度
描述
含义
Jdate
date
不允许为空,主键
行程日期
Jtime
time(0)
不允许为空,主键
行程时间
Jplace
varchar
50
允许为空
地点
Jcontent
varchar
MAX
不允许为空
行程的内容
Jstrike
varchar
MAX
允许为空
提示音的地址
Jsdate
date
允许为空
提示日期
Jstime
time(0)
允许为空
提示时间
行程信息表
字段名
数据类型
数据长度
描述
含义
MDdate
date
不允许为空,主键
纪念日期
MDtime
time(0)
不允许为空,主键
纪念时间
MDplace
varchar
50
允许为空
地点
MDcontent
varchar
MAX
不允许为空
纪念内容
纪念日信息表
字段名
数据类型
数据长度
描述
含义
Bdate
date
不允许为空,主键
出生日期
Bname
varchar
10
不允许为空,主键
姓名
生日信息表
字段名
数据类型
数据长度
描述
含义
NPdatetime
datetime2(0)
不允许为空,主键
添加日期和时间
NPcontent
varchar
50
不允许为空
便签的内容
1.3.3数据库实现
生日信息表tb_Birthday
行程信息表tb_Journey
纪念日信息表tb_MemorialDay
便签信息表tb_NotePaper
2编码与实现
2.1功能实现
(1)数据库连接Adosql
(2)添加功能(以添加行程为例)
(3)删除功能(以删除行程为例)
(4)查询功能(以查询行程为例)
(5)清空功能
(6)显示当前系统日期及时间
在BOOLCCalendarTextDlg:
:
OnInitDialog()设置定时器:
在voidCCalendarTextDlg:
:
OnTimer(UINTnIDEvent)中添加处理代码:
在OnDestroy()中销毁定时器:
(7)播放提示音
在voidCCalendarTextDlg:
:
OnTimer(UINTnIDEvent)中添加处理代码:
其中,JourneySound()函数获得要播放的音乐的地址,代码如下:
(8)公历转农历
(9)便签中定时删除:
BOOLCNotePaperDlg:
:
OnInitDialog()函数
(10)返回今日:
其中,
SearchMemDay(st.wMonth,st.wDay);
SearchBirthday(st.wMonth,st.wDay);SearchJourney(st.wYear,st.wMonth,st.wDay);
分别获取日期为st.wMonth月st.wDay日的纪念日和生日,日期为st.wYear年st.wMonth月st.wDay日的行程并返回。
2.2运行结果展示:
三、课程设计总结或结论
通过这次为期一周的软件设计与实践的实验,我是受益匪浅。
通过此次实验,我对软件设计更加了解,对于数据库SQL语句理解更深刻,而且对于数据库的操作——增删改查,也了解的更多,运用的也更加熟练,对于ADO,也有了进一步的认识,对记录集Recordset也更加熟悉。
除此之外,对于日期和时间的操作也很了解了,尤其是对于时间的比较要助于格式方面。
好久没用的MFC编程,通过这次实验,我也算是复习了一遍,并且这次对MFC编程、VC++编程有了更全面的了解,理解的也更深一点,运用也更加顺手。
同时通过这次实验,我对软件的分析过程更加了解,对以后的实践会有所帮助。
四、参考文献
[1]作者1,作者2书名.出版单位,版本.出版日期
附录(设计流程图、程序、表格、数据等)