




免费预览已结束,剩余36页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 论 文 家庭管家系统提醒和系统模块 Family Housekeeper SystemAlarm And System Modules姓 名: 学 号:学院:软件学院系:软件工程专 业:软件工程年 级: 指导教师: 年 月摘 要管家这个词从古老时代就有,管家一般为一个家庭规划事务、管理财政。现代,随着人们事务越来越繁忙,财务管理越来越困难,每个家庭对管家的需求更大。然而由于种种原因,比如不信任、负担不起费用等原因,家庭管家并没有普及。而一个电子家庭管家系统可以有效的帮助一个家庭解决这些问题。并且其具有方便,低成本,安全等优点。在几乎人手一台电脑的今天,电子家庭管家系统具有广阔的发展前景。本系统开发采用A技术,C语言。本文主要分为一下几个部分:第一章:引言。主要是简要介绍项目的开发意义,以及开发工具;最后说明本人所负责的模块及事务。第二章:系统的总体设计。对系统从总体方面做一个介绍。首先是说明所需工作环境;之后介绍系统的总体功能;然后概述系统所包含的模块及各模块的功能;最后再说明系统的架构及数据库设计。第三章:初始界面部署。主要介绍系统的登陆界面和主界面的特色及功能实现技术。 第四章:模块的详细设计。详细介绍本人所负责的模块的具体功能。对模块的整体功能提供用例图和流程图,对具体功能提供用例和流程图。 第五章:系统运行结果。简要介绍本人所负责模块各功能的具体运行结果,然后用截图形式显示这些运行结果。 第六章:结束语。对整个工作做一个总结。 最后是致谢语和参考文献。关键词:家庭管家;Net;SQLAbstractthe word of Steward had appeard from the ancient times. A housekeeper generally plan matters, manage finance for a family.Now, as people become increasingly busy, financial management is becoming increasingly difficult,every family has greater needs for a housekeeper. The electronic family housekeeper system solve these problems. And its convenience, low cost, security and so on. The development of the system uses A technologies , C# language. This article is divided into several parts like: Chapter I: Introduction.Mainly giving a brief introduction of the significance of project development. Chapter II: System design.Giving a overall presentation of system.First explain the working environment requirements, and then introducy the systems overall function, and then summarize modules which the system contains and the module function. Finally, elaborate the systems architecture and database design. Chapter III: the detailed design of the system.Giving detail introduce of the specific features of the modules which I am responsible for. Providing use-case diagram and flow chart of overall function of the module. Providing use cases and flow chart to the specific function. Chapter IV: the results of system operation. Briefly introducing the specific results of every function of the modules that I am responsible for. and then use the screenshot to show that the results. Chapter V: Conclusion. Smmarizing the entire work.Key words: family housekeeper;.Net;SQL目录第一章引言11.1 开发意义11.2 开发工具11.3 项目开发任务3第二章系统的总体设计42.1 确定工作环境42.1.1 硬件环境42.1.2 软件环境42.2 系统介绍42.2.1系统简介42.2.2系统模块介绍42.2.3系统用例图72.3系统架构82.4 数据库设计9第三章初始界面部署113.1 登陆界面113.2 系统主界面11第四章模块详细设计134.1提醒模块134.1.1 模块简介134.1.2 用例134.1.3 模块流程144.1.4模块类表174.2 系统模块204.2.1 模块简介204.2.2 用例204.2.3 模块流程214.2.4 模块类图244.3小结25第五章 系统运行结果265.1登录系统265.1.1登陆265.1.2系统界面265.2 提醒模块275.2.1显示特定类型提醒275.2.2增加新题型285.2.3修改提醒285.2.5提醒设置285.3 系统模块295.3.1 基本设置295.3.2 数据维护305.3.3 个性设置31第六章 结束语32参考文献33致谢语34 ContentsChapter 1 Introduction错误!未定义书签。1.1 meaning of development错误!未定义书签。1.2 Development Tools错误!未定义书签。1.3 Project development tasks错误!未定义书签。Chapter 2 System design错误!未定义书签。2.1 Determine the working environment错误!未定义书签。2.1.1 Hardware environment错误!未定义书签。2.1.2 Software Environment错误!未定义书签。2.2 System introduction错误!未定义书签。2.2.1system brief introduction错误!未定义书签。2.2.2system modules introduction错误!未定义书签。2.2.3 system usecase diagram错误!未定义书签。2.3 Systemarchitecture错误!未定义书签。2.4 Database design错误!未定义书签。Chapter3 The deployment of the initial interfac错误!未定义书签。3.1 Landing Interface错误!未定义书签。3.2 System main interface错误!未定义书签。Chapter 4 detaile design错误!未定义书签。4.1 Alarm module错误!未定义书签。4.1.1 module Introduction错误!未定义书签。4.1.2 usecase错误!未定义书签。4.1.3 module process错误!未定义书签。4.1.4 Module Class Table错误!未定义书签。4.2 System module错误!未定义书签。4.2.1 module Introduction错误!未定义书签。4.2.2 usecase错误!未定义书签。4.2.3 module process214.2.4 Module Class Table244.3 Summary25Chapter 5 Concluding remarks265.1 Sign-on system265.1.1 Sign-on265.1.2 System Interface265.2 Alarm module275.2.1 Show a specific type to remind275.2.2 Add new questions285.2.3 Modifications to remind285.2.5 Remind settings285.3 System module295.3.1 Basic Settings295.3.2 Data Maintenance305.3.3 Preferences31Chapter 6 Conclusion32References33Thanks34 第一章 引言1.1 开发意义家庭管家管理系统的使用,很大程度上方便了家庭管理。它可以帮助完成家庭理财、资产管理,并提醒你重要的事物,也可以对家庭一些重要资料进行存储保管。 家庭管家系统具有高效、方便、低成本等诸多优点。对它的使用可以很好的提高家庭的管理效率。1.2 开发工具 本系统所用的开发环境如下:1. 开发技术:.Net.Net框架是创建、部署和运行Web服务及其他应用程序的一个环境。它包括三个主要部分:公共语言运行时、框架类和ASP.NET。.Net框架与编程语言无关。事实上任何语言都可以支持.Net框架,包括本系统所使用的C。在.Net框架中,不仅可以完全访问COM+服务,而且也更容易创建服务组件。.Net框架组件可以被自动添加至COM+应用程序中。在COM+应用程序中,.Net框架可以利用自动服务组件,例如:事务、对象池、排队组队、事件等等。.Net支持大量用于进程间通讯的可插入通道和格式化程序。在托管代码和非托管代码之间进行转换时,.Net使用了COM基础结构,尤其是DCOM(用于进程间通讯的COM基础结构)。所有使用COM+服务的方案都使用了托管到非托管转换,因此默认使用DCOM。对于注重互操作性的进程间通讯,.Net框架也支持SOAP(单对象访问协议)。资料来源:徐可,熊伟,袁和金:Visual C#.Net 深入编程,北京希望电子出版社,2001.5。2开发工具:Microsoft Visual Studio 2005Visual Studio 是微软公司推出的开发环境。是目前最流行的 Windows 平台应用程序开发环境。目前已经开发到 9.0 版本,也就是 Visual Studio 2008。Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。2005 年,微软发布了 Visual Studio 2005。.NET 字眼从各种语言的名字中被抹去,但是这个版本的 Visual Studio 仍然还是面向 .NET 框架的(版本2.0)。它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。.NET Framework 2.0,它是一种稳健的、功能齐备的开发环境,支持创建扩展Visual Studio集成开发环境的工具。3. 开发语言:C#C#是微软公司开发的一种面向对象的现代程序设计语言。这种语言是微软公司在2000年夏季发布的.Net战略的一个组成部分。可以用C和.Net编写Web应用或者在Microsoft Windows环境下运行的程序。正如其名称所暗示的那样,C是各种C和C+语言的后代,它与同样受到C和C+语言很受影响的Java语言有很多相似之处。它们有着相同或近似的语法,但在具体实现细节上却有着很大的不同。C和C+程序可能执行得非常快,但代码里通常会存在一些很难诊断得漏洞。C在这方面有巨大得进步,C程序运行起来更安全。C程序得安全性还体现在其他方面。对于经由网络传播得程序,用户需要确定它们不会对自己得计算机和数据造成破坏。C在这方面是有保障得。C编译器把源代码转换成一个包含有中间语言(intermediate language,简称IL)代码的文件,而这个文件是不能在计算机上直接执行的。IL必须北转换为一个可执行文件才能执行,而这一步骤将由.Net中的CLR组件(Common Language Runtime,通用语言运行库)负责完成。 C沿袭了C语言语法的简洁性,但摒弃了C语言中那些用处不大的东西并增加了许多现代的、面向对象的特性。C语言是各种新、旧程序设计语言的一种近乎完美的组合。资料来源:Charles Pelzold著. 杨涛等译:C#程序设计,北京机械工业出版社,2004.1.5. 数据库设计:AcessMicrosoft Office Access是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。Access能够存取 Access/Jet、Microsoft SQL Server、Oracle(甲骨文软件公司),或者任何 ODBC 兼容数据库内的资料。它提供了表、查询、窗体、报表、页、宏、模块7种用来建立数据库系统的对象;提供了多种向导、生成器、模板,把数据存储、数据查询、界面设计、报表生成等操作规范化;为建立功能完善的数据库管理系统提供了方便,也使得普通用户不必编写代码,就可以完成大部分数据管理的任务。1.3 项目开发任务本人负责项目中系统初始页面部署及提醒和系统模块。初始页面中更多的是拖拉控件,然后添加时间处理。偶尔会利用一些小技巧造成一些视觉上的效果。提醒和系统模块则更多的是和代码打交道,利用代码实现各种功能。第二章 系统的总体设计2.1 确定工作环境2.1.1 硬件环境良好的硬件环境是确保软件运行的先决条件,要保证软件能够正常运行,必须满足下面的最小硬件需求:1. 奔腾系列,450MHz(推荐:奔腾系列,733MHz)2. 内存 256MB3. 一个CD-ROM驱动器(CD-ROM安装)4. 操作系统:Mirosoft Windows 20000 或者Windows982.1.2 软件环境除了硬件环境外,为了更好的运行,还需配备相应的软件环境1. 服务器上安装数据库系统(SQL Server 2005),从而实现信息资源安全化管理。2. FrameWork2.0框架,支持ASP.NET2.0开发的软件。2.2 系统介绍2.2.1系统简介本系统使用MySQL数据库存储家庭基本情况,以实现用户方便的输入、查询、编辑、统计和理财需求。界面美观友好,能考虑多方面的因素,每个家庭都能够真正投入使用。该系统包括家庭理财、家庭记事、家庭通讯录、密码管理、家庭资产管理、提醒、“家庭相册”等功能。2.2.2系统模块介绍系统模块是按照功能划分的,具体分为家庭理财、家庭记事、资产管理、密码管理、通讯录、提醒、系统、家庭相册八大模块。每个模块都有自己的模块功能,下面用简单的系统功能图来演示本系统所包含的模块功能。系统功能图如图21所示: 图21:系统功能图1. 家庭理财模块理财的好帮手,记录家庭的日常收支,统计分析等操作 。其中包括家庭收入、理财统计、债务/债权、资金调动、银行账户、基本资料等子模块,适合中国广大家庭使用,操作简单。具体性能介绍:家庭理财家庭收入:(1)显示家庭收入列表。(2)新增、编辑、删除、查找、导出某次收入(日期、用途、金额、消费性质、银行账户、消费者、备注)。 家庭理财理财统计:(1)收入来源统计。(2)收入者统计。(3)消费性质统计。(4)消费者统计。(5)账户余额统计。(6)月收支对比。(7)年收支对比。 家庭理财债务/债权:(1)显示债务(借入列表)/债权(借出列表)。(2)新增、编辑、删除某次债务/债权记录(债务/债权日期、债务/债权对象、金额、预计还款日、借入/借出方式、备注、是否结束)。家庭理财资金调动:(1)显示资金调动列表。(2)新增、编辑、删除、查找、导出某次资金调动(调动日期、调前账号、调后账号、调动金额、备注)。(3)注意查找的方式。 家庭理财银行账户:(1)显示已有银行账户(都显示了什么)。(2)新增、编辑、删除某个银行账号(银行名称、帐号、密码、卡号、卡密码、开户名、开户日期、开户银行地址、备注、并显示该账户余额)。 家庭理财基本资料:(1)收入来源类别(1.显示收入来源类别列表。2.新增、删除具体类别)。(2)消费性质类别(1.显示消费性质类别列表。2.新增、删除具体类别)(3)家庭成员(1.显示家庭成员列表。2.新增、删除具体成员)。2. 家庭记事模块记录家庭中发生的任一件事情,可以作为家庭日记使用。方便用户查阅已发生事件。具体性能介绍:(1)具体类型事件分类(显示具体类型事件分类下的所有事件列表)。(2)显示全部事件列表(其中每个事件包括主题、发生日期、性质、内容)。3资产管理模块 资产管理管理家庭中所拥有的资产,记录其购买、使用时间等一系列信息,让您一目了然掌握您的资产。具体性能介绍:将具体资产分为:家电电器,卫生洁器,家具等。每个资产资料有:名称、规格、购买日期、保修、购买价格、数量/单位、供应商、联系电话、购买地点、目前状况、目前估价、备注、显示所属类别。4 密码管理模块 密码管理集中管理您生活工作中设置的密码,免去您担心密码忘记的烦恼,密码经过一定的加密处理,保证其安全性。具体性能介绍:将密码管理分类为:电子邮件,论坛,文件。每个密码资料有:名称,账号,密码。5. 通讯录模块 通讯录让您不再记录和查找亲戚朋友的电话而烦恼。 具体性能介绍:先将联系人分类分为: 朋友,同事,亲戚,客户,上司。存储信息包括:姓名、工作单位、单位电话、家庭电话、传真、移动电话、生日、家庭地址、邮政编码、职称、电子邮箱、主页、备注、对象照片。6. 提醒模块 提醒功能,让电脑记忆您要办的事情,让您不再担心自己键忘的记忆,可以设置不同的声音提醒不同的事情。具体性能介绍:提醒:大类分为:定时提醒,每天提醒,每周提醒,每月提醒。可查得类型,内容,开始时间,结束时间。并有提醒设置,可设置的选项有无声提醒,及各种铃声选择。7. 系统模块“系统”则负责对整个软件的管理,保证对用户保存资料的保密性及对软件使用的个性化设定。具体性能介绍:包括基本设置、数据维护数据初始化、个性设置。其中基本设置包括密码设置和启动Logo设置。数据维护包括数据初始化、备份原数据、恢复数据库。个性设置就是更换主题。8. 家庭相册模块把家庭一些珍贵相片存储起来,既能保存回忆、又能增加乐趣。具体性能介绍:可以用幻灯片查看相片,也可以对相片进行打印,导出HTML文件。2.2.3系统用例图用例图是被称为参与者的外部用户所能观察到的系统功能的模型图,呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。系统用例图如图22所示:图22:系统用例图2.3系统架构系统采用.net三层架构技术。三层架构,数据层(DAL)、逻辑层(BLL)、表示层(UI);1.表示层:位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面2.业务逻辑层:业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。例如Martin Fowler在Patterns of Enterprise Application Architecture一书中,将整个架构分为三个主要的层:表示层、领域层和数据源层。作为领域驱动设计的先驱Eric Evans,对业务逻辑层作了更细致地划分,细分为应用层与领域层,通过分层进一步将领域逻辑与领域逻辑的解决方案分离。业务逻辑层在体系架构中的位置很关键,它处于数据访问层与表示层中间,起到了数据交换中承上启下的作用。由于层是一种弱耦合结构,层与层之间的依赖是向下的,底层对于上层而言是“无知”的,改变上层的设计对于其调用的底层而言没有任何影响。如果在分层设计时,遵循了面向接口设计的思想,那么这种向下的依赖也应该是一种弱依赖关系。因而在不改变接口定义的前提下,理想的分层式架构,应该是一个支持可抽取、可替换的“抽屉”式架构。正因为如此,业务逻辑层的设计对于一个支持可扩展的架构尤为关键,因为它扮演了两个不同的角色。对于数据访问层而言,它是调用者;对于表示层而言,它却是被调用者。依赖与被依赖的关系都纠结在业务逻辑层上,如何实现依赖关系的解耦,则是除了实现业务逻辑之外留给设计师的任务。 3.数据层:数据访问层:有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。2.4 数据库设计数据库设计(Database Design)是指根据用户的需求,在某一具体的数据库管理系统上,设计数据库的结构和建立数据库的过程。由于本人所完成的模块是提醒和系统模块,所以下面各处这两个模块所对应的AlarmReminder和SystemUnitData数据库设计1. 提醒记录表:主要存储提醒记录,当在提醒模块新增一条提醒成功,提醒记录表就会增加一条记录;当在提醒模块删除一条提醒时,提醒记录表就会减少一条记录;当在提醒模块修改一条提醒是,提醒记录表中相应的提醒也会做相应的改变。提醒记录表如图2-1所示:表21 :提醒记录表(AlarmReminder)属性列名数据类型描述AutoId自动编号编号以一递增AlarmType文本提醒类型(定时、每天、每周、每月、每年)Subject文本提醒主题Content文本提醒详细内容CLevel数字提醒的重要性(紧急程度 1-5)CType文本提醒的类别StartDate数字指示月份号数MonthNo日期/时间开户日期AlarmTime文本指示时间EndDate日期/时间截止时间点soundFile文本提醒对应铃声信息soundLoop数字铃声是否重复播放(0:循环播放 1: 只播放1次IsReminded是/否是否已经提醒IsFinish是/否提醒是否已经过期2. 系统设置表:主要存储跟系统设置有关的一些记录。包括密码设置、Logo设置和系统主题设置。当对这些设置进行更改的时候,系统设置表也会做相应的更改。系统设置表如图2-2所示:表22 :系统设置表(SystemUnitData)属性列名数据类型描述AutoId自动编号Pwd文本密码PwdPrompt文本密码提示问题PwdAnswer文本密码提示问题的答案LogoPic文本Logo图片SysTheme文本系统主题第三章 初始界面部署3.1 登陆界面这是系统运行时第一个出现的界面。它的主要特色就是一开始Logoin界面会渐渐出现,然后再转化为登陆界面。下面介绍主要功能实现技术:1.Logoin界面渐现首先设置FamilyLoginMain(logonin界面的form)为可视,loginPanel(登陆界面的panel)为不可视。然后在代码层用startTimer_Tick进行事件处理。startTimer_Tick方法主要是一个if判断循环。先是逐渐增加lgogin界面的清晰度( this.Opacity += 0.05)。当清晰度值大于一时,重设界面大小(this.Size = new Size(306, 176)),然后将loginPanel设为可视(this.loginPanel.Visible = true)。2.登录按钮事件处理简单调用LoginDone()方法3.取消按钮事件处理利用disposi方法(this.Dispose())清理正在使用的资源。3.2 系统主界面这是登录进入系统之后出现的界面,各个要从这个界面点击进入。它的主要特色就是鼠标靠近控件时,控件的浮动。下面介绍主要功能的技术实现。1. 鼠标停留或离开选项的事件处理以提醒为例,在MouseEnter事件处理中设置所指向图为图提醒2(this.alarmLabel.Image = global:FamilyManageSystem.Properties.Resources.提醒2)在_MouseLeave事件处理中设置所指向图为图提醒(this.alarmLabel.Image = global:FamilyManageSystem.Properties.Resources.提醒)。而图提醒比图提醒2大,这样在鼠标移动过程中就会造成浮动效果。2.选项单击事件处理家庭理财:通过将背景设为不可见(this.mainBackPanel.Visible = false)、将家庭理财面板设为可见(this.financePanel.Visible = true)来实现。家庭记事、资产管理、密码管理、通讯录、提醒、系统、相册:先将本身面板设为不可见,之后将背景面板设为可见,然后新建一个form(FamilySystemOptionMain familySystemMain = new FamilySystemOptionMain())。退出:利用MsgBoxResult设置对话框的返回值及对话框的显示内容和标题(MsgBoxResult = MessageBox.Show(确定退出系统, 提示)),如果对话框的返回值为YES则退出,如果为NO则返回。第四章 模块详细设计这里主要详细介绍本人所负责的提醒模块和系统模块。4.1提醒模块4.1.1 模块简介提醒模块主要是用提醒记录提醒您可能会忘记的一些任务,约会等活动。1. 分类提醒大类分为:今日提醒,未来提醒,过去提醒,全部提醒。小类分为定时提醒,每天提醒,每周提醒,每月提醒。可查得类型,内容,开始时间,结束时间。并有提醒设置,可设置的选项有无声提醒,及各种铃声选择。2. 功能具体功能包括显型示特定类提醒、新增提醒、修改特定提醒、删除特定提醒、标记特定提醒为已提醒、设置提醒。4.1.2 用例提醒模块的功能包括了显型示特定类提醒、新增提醒、修改特定提醒、删除特定提醒、标记特定提醒为已提醒、设置提醒六大功能,用例图可以简单清晰的用例之间以及同用例参与者之间是怎样相互联系的。提醒模块用例图如图41:图41:图提醒模块用例图4.1.3 模块流程1.模块的总体流程在界面层点击提醒按钮显示提醒界面,然后进行添加、修改、删除等功能时先调用BLL层方法,进行方法处理,然后BLL层方法调用DAL层,执行SQL语句,最后DAL层调用数据库,进行数据存储、更改,而数据库会将存储、更改后的数据依层次上传到界面层显示。提醒模块流程图如图4-2所示:图42:提醒模块流程图2. 一些比较重要的功能的流程图(1)显示特定提醒类别功能:首先在界面层,用户用鼠标点击所要显示的提醒类别,然后系统就会调用BLL层的显示方法getDefineAlarmEvents,之后getDefineAlarmEvents会调用DAL层的SqlCommand执行ExecuteNonQuery命令,最后进入数据库搜索匹配的数据,依层次返回界面层,显示结果。显示特定提醒类别功能流程如图43所示:图43:显示特定提醒类别功能流程图(2)新增特定类型提醒功能:首先在界面层选择增加新提醒,然后系统就会调用BLL层的新增方法insertDefineAlarmEvent,之后会调用DAL层的SqlCommand执行ExecuteNonQuery命令,最后进入数据库添加新数据,之后当返回提醒显示界面的时候更改后的数据会从数据库依层次返回界面层,显示结果。新增特定类型提醒功能流程如图44图44:新增特定类型提醒功能流程图(3)删除提醒功能:首先在界面层,用户用鼠标点击删除提醒,然后系统就会调用BLL层的删除方法DelDefineAlarmEvents,之后DelDefineAlarmEvents会调用DAL层的SqlCommand执行ExecuteNonQuery命令,最后进入数据库搜索匹配的数据,依层次返回界面层,显示结果。删除提醒功能流程如图45所示:图45:删除提醒功能流程图4.1.4模块类表类表主要以列表形式提供类的属性、方法提醒模块包括了三个类:FamilyAlarm、FamilyAlarmAction、RegistryManager。下面就这三个类提供列表并进行解释。1. FamilyAlarm类:定义提醒数据表的操作表4-1:FamilyAlarm类表定义描述注释主要属性private DataTable alarmTable提醒列表private DataDAL alarmDAL;数据获取功能类主要方法getTodayAlarmEvents()获取今天提醒事件记录列表getAllAlarmEvents()显示所有提醒记录getDefineAlarmEvents()显示特定提醒类别的提醒记录insertDefineAlarmEvent()新增特定提醒类型的提醒记录updateDefineAlarmEvent()更新特定提醒类型的提醒记录updateAlarmEventReminded()更新特定提醒记录为已提醒delDefineAlarmEvent()删除特定提醒类型的提醒记录(1)getTodayAlarmEvents():实现了获取今天提醒事件记录列表。先利用一个switch条件句把每天都对应到星期几;再设置一个Condition条件句;然后利用SQL语句(select AutoID,AlarmType,Subject,Content,CLevel,CType,MonthNo, WeekNo, AlarmTime, soundFile,soundLoop from AlarmReminder + condition + )提取符合条件的提醒,最后通过返回alarmTable获取提醒事件记录列表。(2)getAllAlarmEvents():实现了显示所有提醒。主要就是利用SQL语句获取所有提醒属性,然后通过返回alarmTable获取所有提醒事件记录列表。(3)getDefineAlarmEvents():实现了显示特定提醒类别的提醒记录。其与显示所有提醒方法实现的不同之处在于SQL语句后面添加了condition以使所显示的提醒限制在特定类型。(4)insertDefineAlarmEvent():实现了新增特定提醒类型的提醒记录。方法把所增加提醒的各种属性及限制条件方法参数。通过insert 语法的SQL语句实现插入。(5)updateDefineAlarmEvent():实现更新特定提醒类型的提醒记录。同增加提醒类似,更新提醒也是把提醒的各种属性及限制条件所谓参数。通过update语法的SQL语句实现更新。(6)updateAlarmEventReminded():实现更新特定提醒记录为已提醒。先将提醒id和限制条件作为参数。通过SQL语句讲id和condion符合条件的提醒的IsReminded属性更新为ture(7)delDefineAlarmEvent():实现删除特定提醒类型的提醒记录。方法以id作为传入参数。通过del语法的SQL语句把跟以参数传递进来的id相同的提醒删除。2. FamilyAlarmAction类:定义事件需要提醒时winform的显示方式。表4-2:FamilyAlarmAction类表定义描述注释主要属性private Timer timerFlash;定时器类private Point startPosition;起始坐标private Point stopPosition;终止坐标private Form currentForm;当前页主要方法public FamilyAlarmAction()实例化public void BalloonStyle(Form frm)气球式上升法private void BalloonStyle_Tick(object sender, EventArgs e)定时器的触发事件(1)public FamilyAlarmAction():实现了对成员的实例化。实现代码是this.timerFlash = new Timer();(2)BalloonStyle():实现了FamilyAlarmNotity的气泡式上升。先对起始坐标和终止坐标进行初始化,然后重设坐标。定时器的间隔时间为50毫秒,每50毫秒起始坐标就会增加10个单位的偏移量。(3)BalloonStyle_Tick():当计时器间隔已过去而且计时器处于启用状态是发生2. RegistryManager类:实现提醒模块的子程序FamilyWhenevrAlarm.exe在注册表中的操作表4-3:RegistryManager类表定义描述注释主要属性private static string keyName键的名字private static string keyPath键的路径private static string keyValue键的值主要方法public static void AddKey()添加启动项public static bool ExistKey()检查键是否存在public static void DeleteKey()删除启动项public static void CheckAutoRun(bool addReg)检查启动项是否正常(1)AddKey():实现了添加启动项。通过k.SetValue(keyName, keyValue)实现(2)ExistKey():实现了检查键是否存在。通过foreach循环,寻找是否有相符的键存在,如果有则返回ture。(3)DeleteKey():实现了删除启动项。通过foreach循环,寻找是否有相符的键存在,有存在则删除。(4)CheckAutoRun():实现了检查启动项是否正常。检查是否已有启动项,如果有,重新写入或者增加新项。如果没有,则用addReg判断是否增加新项。4.2 系统模块4.2.1 模块简介 系统”负责对整个软件的管理,保证对用户保存资料的保密性及对软件使用的个性化设定。具体性能介绍:包括基本设置、数据维护数据初始化、个性设置。其中基本设置包括密码设置和启动Logo设置。数据维护包括数据初始化、备份原数据、恢复数据库。个性设置就是更换主题。 4.2.2 用例系统模块用例图如图46所示:图46:系统模块用例图4.2.3 模块流程1. 模块的总体流程:在界面层点击系统按钮显示系统界面,然后进行设置、初始化等功能时先调用BLL层方法,进行方法处理,然后BLL层方法调用DAL层,执行SQL语句,最后DAL层调用数据库,进行数据存储、更改,而数据库会将存储、更改后的数据依层次上传到界面层显示。系统模块流程图如图47:2.图47:系统模块流程图3. 一些比较重要的功能的流程图(1)启动Logo设置:首先在界面层,用户用鼠标选择所更新的Logo,然后系统就会调用BLL层的修改方法UpdateSystemLogo,之后会调用DAL层的SqlCommand执行ExecuteNonQuery命令,之后进入数据库更改数据,最后依层次返回界面层,显示结果。启动Logo设置功能流程图如图48所示:图4-8:启动Logo设置功能流程图(2)初始化数据:首先在界面层,用户点击初始化数据按钮,然后系统就会调用BLL层的修改方法InitSystemData,之后会调用DAL层的SqlCommand执行ExecuteNonQuery命令,最后进入数据库初始化数据。初始化数据功能流程图如图49所示:图49:初始化数据功能流程图(3)更换系统主题:首先在界面层,用户用鼠标选择所更新的系统主题,然后系统就会调用BLL层的修改方法UpdateSystemTheme,之后会调用DAL层的SqlCommand执行ExecuteNonQuery命令,之后进入数据库进行更改,最后依层次返回界面层,显示结果。更换系统主题功能流程图如图410所示:图410:更换系统主题功能流程图4.2.4 模块类图系统模块包括了一个类:FamilySystemOption。下面提供这个类的类表,并进行解释表4-4:FamilySystemOption类表定义描述注释主要属性private DataTable optionTable系统列表 private DataDAL optionDAL;数据获取功能类主要方法public DataTable getOptionTable()获取系统设置数据的DataTablepublic int updateTheme(string sysTheme)更新系统主题设置public int updateSystemPwd(string pwd,string pwdtip,string pwdanswer)更新系统密码和密码提示问题及答案public int updateSystemLogo(string logono)更新系统启动Logo画面public int initSystemData()初始化数据库(1)getOptionTable():实现获取系统设置数据的DataTable。使用SQL语句(select * from SystemUintData)从数据库中获取所有信息,然后通过返回optionTable获得系统设置数据的DataTable。(2)updateTheme():实现更新系统主题设置。以sysTheme(系统主题)作为传入参数,使用SQL语句update SystemUintData set SysTheme = + sysTheme + where autoid = 1然后通过返回flag实现更新。(3)updateSystemPwd():实现了更新系统密码和密码提示问题及答案。以pwd(系统密码)、pwdtip(密码提示问题)及pwdanswer(答案)作为传入参数,使用update语法的SQL语句实现对密码、密码提示问题及答案的更新。(4)updateSystemLogo():实现了更新系统启动Logo画面。以logono(系统启动Logo编号)作为传入参数,使用update语法的SQL语句实现更新。(5)initSystemData():实现了初始化数据库。通过一个for循环反复执行SQL语句来实现初始化。SQL语句如下:delete from + namei+ alter table + namei + alter autoid counter(1,1)4.3小结提醒模块和系统模块虽然都不是很大,但是所涉及的技术知识点比较多,特别是提醒模块,有一些知识点比较繁琐。比如进行提醒事件的分类读取和写入,难点主要是SQL语句的编写,需要查阅比较多的资料,才能写出正确的语句。还有就是C#编辑windows注册表、对时间到的事件进行提醒,这些是之前不了解或者没有学过的知识
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论