




免费预览已结束,剩余41页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
厦门大学软件学院毕业论文 家庭管家系统本 科 毕 业 论 文 家庭管家系统-家庭记事,资产管理,密码管理,通讯录模块Family Housekeeper System- Note, Property, Password Management, Contacts Modules姓 名: 学 号:学院:软件学院系:软件工程专 业:软件工程年 级: 年 月摘要古代家财万贯之富人有专门的管家为他们打理家族内大大小小的事,把家族打理得井井有条,普通人家生活简单,资产也就列一张清单的事,自也不必烦恼。随着社会的进步,人们的生活交际圈子变得越来越大,而一个普通家庭所要处理的事情也越来越多,但要每个家庭都请个管家却又显得不切实际,随着家庭电脑的普及,我们便想到了开发家庭管家系统。它可以像一个真实的管家为你记录家庭各项收入及支出,提醒你今天是什么特别的日子,该做些什么。本系统是在对普通家庭对家庭管理的需求调查上确定设计开发的。本文从以下几部分进行论述:第一部分是引言。简要描述项目起源、开发意义和使用的工具。并且介绍了开发流程以及作者负责的工作。第二部分是系统的总体设计。确定用户需求后,明确系统工作环境和对各功能模块的大致介绍。第三部分是系统的详细设计。该部分详细描述本人负责模块包括的用例,及模块关键功能的实现。第四部分是系统的运行界面截图。关键词:家庭管家系统;.NET;B/S架构AbstractIn ancient times, rich people hired a housekeeper for taking care of their family, big and small things. but for the simple life of ordinary people, assets could be listed in a piece of paper, there is no need to worry. With the advancement of our society, peoples lives have involved larger and larger social circles, and an ordinary family has to deal with more and more things, but it is unrealistic for every family to hire a housekeeper, with the popularity of home computers, we came up with the idea of family housekeeper system. It can keep record of your income and expenses, remind you of what is special about today and what to do. The system is developed based upon the needs of average families. We chose ASP.NET technology for developing the project. The following parts will be discussed in this paper: The first part is the introduction. The origin of the project, the meaning of this project and tools used in the process are briefly explained. What is also mentioned is the development process as well as the parts of the author. The second part is the system design. After determining user needs, we determined the project working environment. We also gave a brief introduction of various functional modules.The third part is the detailed design of the system. We will introduce my parts of modules and the classes in it.The fourth part is some screenshots when the program is running.Key words: Family Housekeeper System;.NET;B/S目录第一章 引言11.1 项目起源11.2 开发意义11.3开发工具21.4 项目开发任务3第二章 系统的总体设计42.1确定需求42.2 确定工作环境42.2.1 硬件环境42.2.2 软件环境42.3概念性系统设计52.3.1 功能模块52.4 系统部署架构62.5 数据库设计62.5.1 数据信息62.5.2确定数据表7第三章 系统的详细设计133.1家庭记事模块133.1.1 模块用例133.1.2关键功能详解143.2资产管理模块173.2.1 模块用例173.2.2关键功能详解183.3密码管理模块203.3.1 模块用例203.3.2关键功能详解213.4通讯录模块233.4.1 模块用例233.4.2关键功能实现详解24第四章 系统实现结果264.1登录系统264.2家庭记事模块274.3资产管理模块294.4密码管理模块314.5通讯录模块32第五章 结论34参考文献36致 谢37ContentsChapter 1 Introduction11.1 Origin of The System11.2 Significance for Developing11.3 Tools for development21.4 Responsibity of The System3Chapter 2 The Overall Design42.1 Requirements42.2 Running Conditions42.2.1 Hardware Conditions42.2.2 Software Conditions42.3 Design in Conception52.3.1 Modules of The System52.4 Deployment of The System62.5 Data Base Design62.5.1 Data Information62.5.2 Data Tables7Chapter 3 Design Elucidation in Details133.1 Family Note Module 133.1.1 Use Case133.1.2 Key Fuction143.2 Property Management Module173.2.1 Use Case173.2.2 Key Fuction183.3 Password Management Module203.3.1 Use Case203.3.2 Key Fuction213.4 Contacts Module233.4.1 Use Case233.4.2 Key Fuction24Chapter 4 Snapshots of Running Results264.1 Login264.2 Family Note Module274.3 Property Management Module294.4 Password Management Module314.5 Contacts Module32Chapter 5 Summary34References36Thanks37第一章 引言1.1 项目起源随着社会的发展,家庭作为一个社会单元所要处理的事情变得越来越复杂及繁锁,管理一个家庭就像管理一家小公司,加之家庭电脑的普及化,由此我们小组想到了开发家庭管家系统,我们的目标是通过家庭管理电子化来实现家庭管理的条理化。通过对大部分家庭所要处理的事务分析及归纳,我们开发的家庭管家系统主要特性有:1:家庭理财2:家庭记事3:资产管理4:密码管理5:通讯录6:提醒7:家庭相册8:系统家庭理财是理财债务的好帮手,记录您家庭的日常收支,统计分析等操作 。家庭记事是记录家庭中发生的任一件事情,可以作为家庭日记使用。资产管理管理家庭中所拥有的资产,记录其购买、使用时间等一系列信息,让您一目了然掌握您的资产。密码管理则是随着网络的普及化应运而生的,让您不再为众多的账号及密码难记而烦恼。通讯录让您不再为记录和查找亲戚朋友的电话而烦恼。提醒就像您的贴心秘书协助您完成一天的要事。家庭相册为您保存家庭生活的美好回忆。系统则可以维护软件。1.2 开发意义家庭管理系统可以让现代家庭更加条理有效地管理好家庭的各项事务,就像是每个家庭的大管家。1.3开发工具1. 开发平台:Windows XP Professional2. 开发工具:Microsoft Visual Studio 2005Visual Studio 是微软公司推出的开发环境。是目前最流行的 windows 平台应用程序开发环境。Visual studio 可以用来创建 windows 平台下的 windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。提供了许多专用的、可编程对象模型。通过这些模型,可以访问 Visual Studio 集成开发环境 (IDE) 及其项目内部的基础组件和事件。每个模型都包含若干类型和成员,用来表示解决方案、项目、工具窗口、代码编辑器、调试器、代码对象、文档和事件等。因此,可以扩展 IDE 的功能、自动执行重复性任务以及将其他应用程序集成到 IDE 中。可以通过以下四种方法中的任何一种访问对象模型:宏、外接程序、向导和 Visual Studio Industry Partner (VSIP) program。3. 开发语言:C#有以下几个特点:语法简洁,C#使用统一的类型系统,摒弃了C+多变的类型系统。因此,不必再去记忆基于不同处理器架构的隐含的类型。面向对象,C#支持所有关键的面向对象概念,如封装,继承和多态性。通过精心的面向对象设计,C#成为创建各种组件的优秀选择。完整的安全性和错误处理能力14. 数据库:AccessMicrosoft Office Access(前名 Microsoft Access)是由微软发布的关联式数据库管理系统。它结合了 Microsoft Jet Database Engine 和 图形用户界面两项特点,是 Microsoft Office的成员之一。Access数据库是一个表,查询,窗体,报表,数据访问页,宏和模块等对象的集合,保存在一个独立的.mdb或.adp文件中。.mdb是标准的Access数据库文件,.adp是Access数据项目文件,用于访问SQL Server数据库2Access具有以下几个优点:存储方式单一 面向对象 Access是一个面向对象的开发工具,利用面向对象的方式将数据库系统中的各种功能对象化,将数据库管理的各种功能封装在各类对象中。界面友好、易操作 Access是一个可视化工具,是风格与Windows完全一样,用户想要生成对象并应用,只要使用鼠标进行拖放即可,非常直观方便。5. 软件测试:NUintNUint工具是网络上的一款免费单元测试工具,针对于.NET语言。是一款为.NET准备的自动化单元测试框架,在.NET中编译通过但不能运行的程序,在测试工具中能具体地给出错误类型和出错位置,使调试避免一定的盲目性。用其可以方便完成单元测试功能,并能快速有效地发现错误所在。1.4 项目开发任务本项目由杨建丽,林琴和我共同负责设计开发。项目进行中,对于遇到的问题,我们在自己努力寻找解决的方法的同时,也得到了指导老师的鼓励和帮助。第二章 系统的总体设计2.1确定需求根据用户提出的需求,通过亲自体验用户的工作过程,写出调研报告并召开会议。从用户引入系统的原因,软件要实现的功能,操作人员的情况等几个方面逐条分析具体流程的有效性和可行,从软件的角度完善其中的细节,在与用户沟通协调后,确定该软件的主要功能包括:家庭各项支出的录入及查询;家庭各项收入的录入及查询;家庭资金的调动录入及查询;家庭资金的调动录入及查询;家庭债权及债务的录入及查询;家庭资金的调动录入及查询;家庭银行账号的录入及查询;家庭资金的调动录入及查询;家庭资金的调动录入及查询;家庭相册的保还及查询;家庭大小事件的记录及查询;家庭资产的记录及查询;密码管理;通讯录管理;提醒的设置及查询;软件的密码设置;软件数据库的维护;软件外观的主题设置;2.2 确定工作环境2.2.1 硬件环境操作系统必须是586以上,64M内存配置:为了更好更快地运行,尽量采用内存较大的电脑。2.2.2 软件环境FrameWork2.0框架,支持ASP.NET2.0开发的软件。应采用统一的软件操作系(XP/Vista),这是为了更好地管理。服务器上安装数据库系统Access2.3概念性系统设计2.3.1 功能模块根据系统分析的需求,确定功能模块图如图2-1所示:图2-1: 系统功能模块图在家庭理财里用户可以对支出,收入,调动,债权,债务,银行账号,及资料进行查询,增加,删除,修改;还可以以图表的方式查看各理财统计图。在家庭记事里用户可以对家庭发生的事情做查询,增加,删除,修改。在资产管理里用户可以对家庭资产做查询,增加,删除,修改。在密码管理中用户可以对家庭中使用的各种密码做查询,增加,删除,修改。在通讯录中用户可以对通讯记录做查询,增加,删除,修改。在提醒中用户可以设定各种类型的提醒,及对这些提醒做删除,修改操作。在系统中用户可以设定家庭管家系统的登陆密码做修改,可以设定软件启动时的LOGO,对软件数据的维护及软件的主题设置。在相册中用户可以查看家庭相册。2.4 系统部署架构本系统采用.net三层架构三层架构,数据层(DAL)、逻辑层(BLL)、表示层(UI);功能:1. 表示层: 位于最外层(最上层),离用户最近。用于显示数据和接收用户输入的数据,为用户提供一种交互式操作的界面2. 业务逻辑层(Business Logic Layer)无疑是系统架构中体现核心价值的部分。它的关注点主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也即是说它是与系统所应对的领域(Domain)逻辑有关,很多时候,也将业务逻辑层称为领域层。3. 数据层: 有时候也称为是持久层,其功能主要是负责数据库的访问,可以访问数据库系统、二进制文件、文本文档或是XML文档。优点:提高程序的可维护性,可以合理快速的开发,提高系统的安全性,提高系统的扩展性。2.5 数据库设计2.5.1 数据信息根据用户需求,可以提炼出以下数据信息表:提醒设置表:提醒的时间及重要性等级及提醒方式。银行账号信息表:银行账号的类别,卡号等。消费性质表:消费性质等。通讯录表:通讯录联系人的姓名,电话,手机等。通讯录类别表:通讯录联系人的分类。债权债务表:债权债务的金额及发生时间等。债务归还表:债务归还的数额及时间。支出信息表:家庭消费支出的明细。收入信息表:家庭收入支出的明细。家庭成员表:家庭成员的资料。家庭记事表:家庭记事的详情,发生时间。记事分类表:家庭记事的分类。资金调动表:资金调动的起始,流向及数额信息。密码类别表:密码的分类。密码信息表:密码归属及本身存储。资产类别表:资产的性质。资产信息表:资产的购入时间,购入价值等信息。收入分类表:收入的分类。2.5.2确定数据表关系型数据库是当前广泛应用的数据库类型,本系统即按照关系数据库设计的要求和标准设计。关系模型中有3类完整性约束:实体完整性,参照完整性和用户定义的完整性。其中实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,由关系系统自动支持。用户定义的完整性是应用领域需要遵循的约束条件3根据提炼的数据信息,按照数据库设计范式,确定本人负责的模块涉及的数据表如下:通讯录类别表(ContactsBookClass)设计如表2-1所示:表2-1:通讯录类别表属性列名数据类型描述Cid自动编号CName文本名称FatherId数字父亲自动编号,为0表示为第一级分类OrderId数字顺序号其中Cid是系统的自动编号,用来标识此通讯录类别,而CName则是此通讯录类别的名称,如“亲人”,“同事”;FatherId则是此通讯类别的父类别的Cid,如“亲人”下的分类“直系”。通讯录(ContactsBook),如表2-2所示:表2-2:通讯录表属性列名数据类型描述AutoId自动编号自动编号CId数字类别自动编号OrderId数字顺序号ConName文本姓名ConCompany文本公司名称ConBirthday日期/时间生日ConTitle文本职称-总经理、董事长、科长等ConFamilyTel数字家庭电话ConOfficeTel数字公司电话ConAddress文本联系地址ConZap数字邮政编码ConEmail文本Email地址ConHomepage文本主页ConFax数字传真ConMobile数字手机ConMemo文本备注ConPhotoOLE 对象照片AutoId是每条通讯录记录的唯一标识,Cid是此条通讯录记录属于通讯录类别的哪个类别,来自通讯录类别表里的Cid,当用户点击查看某特定通讯录类别下的通讯录记录时便可将两张表联合起来查询获得结果。别的字段其意义在描述中容易理解就不一一介绍了。家庭记事类别表(FamilyNoteClass)如表2-3所示:表2-3:家庭记事类别表属性列名数据类型描述CId自动编号自动编号CName文本名称FatherId数字父亲自动编号,为0表示为第一级分类OrderId数字顺序号Cid为记事类别的唯一标识,FatherId为记事类别的父类别的Cid。当点击查询某类别下的所有记事信息时,则可利用此字段将其下所有的子类别的记事记录也查出。家庭记事表(FamilyNotes)如表2-4所示:表2-4:家庭记事表属性列名数据类型描述AutoId自动编号自动编号Subject文本主题ContentOLE 对象內容NewDate日期/时间日期NoteType文本性质:纪念日;重要记事;一般记事AlarmID数字提醒设置中对应的编号CID数字类别AutoId为家庭记事的唯一标识。CID为其归属于这庭记事类别表中的哪一类别。别的字段意义请参考描述。资产类别表(PropertyClass)如表2-5所示:表2-5:资产类别表属性列名数据类型描述CId自动编号自动编号CName文本名称FatherId数字父亲自动编号,为0表示为第一级分类OrderId数字顺序号Cid为资产类别的唯一标识,FatherId为其父类别的Cid。其中由于第一级分类上面再无父类别,故规定值为0时此类别为根类别。资产明细表(PropertyManage)如表2-6所示:表2-6:资产明细表属性列名数据类型描述AutoId自动编号自动编号CId数字类别自动编号OrderId数字顺序号ProName文本资产名称ProSize文本规格ProUnit文本单位ProBuyDate日期/时间购买日期ProBuyPrice数字购买价格ProQty数字购买数量ProBuyPlace文本供应商ProAddress文本联系地址ProTel数字联系电话ProFreeMonth数字保修期(多少月)ProBuyer文本购买者或赠送者ProNowPrice数字目前估价ProStatus文本目前状况:完好,损害,被盗,丢弃,转买ProMemo备注备注ProPhotoOLE 对象图片AutoId为资产唯一标识,Cid为其归属的资产类别Cid按照软件工程开发的基本方法,本系统开发流程如图2-9所示:图2-9: 系统开发流程 本系统开发,本人主要负责数据库设计、详细设计、家庭记事模块,资产管理模块,密码管理模块,通讯录模块。第三章 系统的详细设计3.1家庭记事模块3.1.1 模块用例家庭记事系统用例图如图3-1所示:图3-1: 家庭记事系统用例图3.1.2关键功能详解家庭记事模块功能主要包括增加家庭记事类别,按关键字查找家庭记事记录,查看家庭记事记录,新增家庭记事记录,删除家庭记事记录等,以下就添加家庭记事子类别做介绍:添加家庭记事子类别功能实现如图3-2:图3-2: 添加家庭记事子类别功能实现图UI:此功能首先调用到FamilyNotesMain里的方法AddChildNode,首先通过if ( this.classTreeView.SelectedNode = null)来判断是否选定了家庭记事类别树里的某一个结点,因为子类别的添加首先得找到父类别,如果没有选定父类别结点的话就跳出提醒请选择一个类别。如果选定了的话则调用InputClassName方法来获得用户输入的新类别名。在InputClassName里我们生成一个FamilyNoteClass的实例,即生成一个供用户输入新的家庭记事类别名的窗口来获得类别名。为了添加新的家庭记事类别我们除了需要类别名外还需要获得此类别的父类别ID。我们利用类别树里的每个结点都带有一个数组Tag,其中里面的Tag0存放的即是此结点的ID,那么我们只要获得选中类别(就是用户新添加类别的父类别结点)Tag0就得到了新添加结点的父结点ID。BLL:这时我们生成一个FamilyNotes的实例notesBLL,调用其方法insertNoteClass( string cName,int id),里面的cName是新添加类别的名,id即是其父类别的名。DAL层:insertNoteClass方法又将职责交给DAL层,生成实例notesDAL = new DataDAL(), 调用涵数notesDAL.ExeSQLTool(insert into FamilyNoteClass(cname,fatherid) values( + cName + , + id + ) )最终过将新的类别添加到家庭记事类别表里。此外再介绍家庭记事类别树的显示实现代码:首先实例化notesBLL = new FamilyNotes();从而调用FamilyNotes里的涵数classTable = notesBLL.noteClassTable()返回记事类别表;随后在FamilyNotesMain里调用涵数AddAllNode();来添加结点“全部”;此涵数的实现代码是:public void AddAllNode() TreeNode rootNode = new TreeNode(); this.classTreeView.SelectedNode = rootNode; rootNode.Text = 全部; int nodeTag = new int2; nodeTag0 = -1; nodeTag1 = -1; rootNode.Tag = nodeTag; rootNode.ImageIndex = 1;/添加节点图标 rootNode.SelectedImageIndex = 1; rootNode.ContextMenu = this.rootClassContextMenu; this.classTreeView.Nodes.Add(rootNode); this.classTreeView.ContextMenu = this.rootClassContextMenu; 其中nodeTag0用来存放类别自身的ID,nodeTag1用来存放类别的父类别的ID;而“全部”这个结点是根结点且没在记事类别表中定义,故特别规定其两个值都为-1,并为类别树默认选中结点。添加完“全部”结点后即调用AddTree(0, (TreeNode)null, this.classTreeView, classTable);这是一个递归涵数,请看以下代码:public void AddTree(int ParentID, TreeNode pNode, TreeView treeView, DataTable dt) DataView dvTree = new DataView(dt); /过滤ParentID,得到当前的所有子节点 dvTree.RowFilter = FatherId= + ParentID; foreach (DataRowView Row in dvTree) TreeNode Node = new TreeNode(); if (pNode = null) /添加根节点 Node.Text = RowCName.ToString(); int nodeTag = new int2; nodeTag0 = (Int32)RowCId; nodeTag1 = (Int32)RowFatherId; Node.Tag = nodeTag; this.classTreeView.Nodes.Add(Node); Node.ImageIndex = 0;/添加节点图标 Node.SelectedImageIndex = 2; Node.ContextMenu = this.classContextMenu; /Node.Expanded = true; AddTree(Int32.Parse(RowCId.ToString(), Node, treeView, dt); /再次递归 else /添加当前节点的子节点 Node.Text = RowCName.ToString(); int nodeTag = new int2; nodeTag0 = (Int32)RowCId; nodeTag1 = (Int32)RowFatherId; Node.Tag = nodeTag; /Node.Tag = RowCId; pNode.Nodes.Add(Node); Node.ImageIndex = 0;/添加节点图标 Node.SelectedImageIndex = 2; Node.ContextMenu = this.classContextMenu; /Node.Expanded = true; AddTree(Int32.Parse(RowCId.ToString(), Node, treeView, dt); /再次递归 首次调用时传入的ParentID为0通过dvTree.RowFilter = FatherId= + ParentID;的筛选后则得到所有根类别,因为在数据表设计时规定根类别的FatherId值为0;classTable即为之前获得的家庭记事类别表;此后又用判断语句if (pNode = null)来分别进行根类别结点和非根类别结点的添加,如果是根类别的话其区别于非根类别结点添加的部分是:this.classTreeView.Nodes.Add(Node);将此类别结点直接加到类别树中生成根结点。此后将此结点作为参数传入递规涵数中添加其子结点。如果是非根类别的话则会用语句pNode.Nodes.Add(Node);将新生成的结点添加到传入的父结点下。如此层层递规最终生成类别树。3.2资产管理模块3.2.1 模块用例资产管理模块用例图如图3-3所示:图3-3: 资产管理模块用例图3.2.2关键功能详解资产管理模块功能主要包括增加资产类别,按关键字查找资产记录,查看资产记录,新增资产记录,删除资产记录等,以下就按关键字查找资产记录做代码实现介绍:按关键字查找资产记录功能实现如图3-4:图3-4:按关键字查找资产记录功能实现图UI层:用户单击“查找”后调用FamilyPropertyMain里searchBotton_Click,生成FamilyPropertySearch实例,弹出查询子窗口。在子窗口里用户通过设置查询条件如:名称,购买者,购买日期,购买价格等,再输入具体关键字或日期来查找相关记录。searchResult方法用这两部分来生成不同的查询条件语句赋给conditionSQL,实现代码如下:private void searchResult() string conditionSQL = ; if (this.searchComboBox.SelectedIndex = 0) conditionSQL = where c.ProName like % + this.keyTextBox.Text + % ; else if (this.searchComboBox.SelectedIndex = 1) conditionSQL = where c.ProBuyer like % + this.keyTextBox.Text + % ; propertyTable = new DataTable(); propertyBLL = new FamilyProperty(); propertyTable = propertyBLL.showSearchDefinePropety(conditionSQL); conditionSQL = ; ShowDataView(propertyTable); BLL:此时再实例化一个propertyBLL = new FamilyProperty(),调用其方法showSearchDefinePropety(string condition)并将在BLL层获得的conditionSQL传入返回查询结果。DAL:在showSearchDefinePropety方法里实例化propertyDAL = new DataDAL();并调用ExeSQLdt方法最终返回查询结果。3.3密码管理模块3.3.1 模块用例密码管理模块用例图如图3-5所示:图3-5: 密码管理模块用例图 3.3.2关键功能详解密码管理模块功能主要包括增加密码类别,按关键字查找密码记录,编辑密码记录,新增密码记录,删除密码记录等,以下就编辑密码记录做代码实现介绍:编辑密码记录功能实现如图3-6:图3-6:编辑密码记录功能实现图UI:用户单击“编辑”后,调用方法editButton_Click,方法内首先进行判断 if (this.editButton.Text = 编辑) ShowPasswordDetail(); else if (this.editButton.Text = 保存) updatePassword(); 因为我们没有单独做一个Form供编辑密码,还是用原来的Form,让不同状态时同一个键充当不同的角色,如刚进入密码管理模块时editButton显示为“编辑”,用户单击时进入编辑密码状态,此时editButton显示为“保存”,在用户编辑完成后单击保存信息。ShowPasswordDetail方法里我们将passwordDetailPanel的可见性设为真,将editButton的Text属性改为“保存”,exitButton的属性Text =改为关闭,并将passwordDataGrid.CurrentRow.Cells里信息填入对应的控件中供用户查看编辑。编辑完成后用户单击“保存”即调用方法updatePassword在此方法中实例化passwordBLL = new FamilyPassword()。BLL:实例化passwordBLL = new FamilyPassword()调用其涵数updatePassword将编辑的新数据向数据库更新。DAL:实例化passwordDAL = new DataDAL()调用其涵数ExeSQLTool将数据直接提交数据库。3.4通讯录模块3.4.1 模块用例通讯录模块用例图如图3-7所示:图3-7: 通讯录模块用例图3.4.2关键功能实现详解通讯录模块功能主要包括增加通讯录类别,按关键字查找通讯录记录,编辑通讯录记录,新增通讯录记录,删除通讯录记录等,以下就删除通讯录记录的显示功能做代码实现介绍:删除通讯录记录用能实现如图3-8:图3-8:删除通讯录记录功能实现图UI:调用FamilyContactsMain里的delButton_Click方法,此方法再转调用方法delContacts,跑出对话框让用户确认要删除后,调用方法getContactsID返回要删除通讯录记录的ID,实例化contactsBLL = new FamilyContacts();将ID参数传入其方法deleteContacts中实现通讯录记录的删除。之后再通过判断通讯录类别树上选中显示的类别来重新显示通讯录类别。如果选择的是“全部”,是显示所有通讯录类别,反之显示相应的通讯录类别下的记录。BLL:调用FamilyContacts实例的方法deleteContacts实现对通讯录记录的删除,此后如果通讯录类别树里选择的是“全部”则调用allcontactsTable获得所有通讯记录,选择的是某类别的话则调用definecontactsTable获得指定类别下的所有通讯录记录。DAL:此层中主要调用了方法ExeSQLTool来实现对通讯录记录的最终删除。第四章 系统实现结果4.1登录系统登录系统初始界面如图4-1所示:图4-1: 登录系统初始界面用户在密码框中输入密码,如果连续输错三次以上则会跳出以下提示,如图:4-2图4-2:输错密码提示界面点击“确定”后会要求用户输入问题答案,如图4-3:图4-3:输错密码输问题答案界面如果再连续答错3次的话则会自动退出软件。如果登录成功,如图4-4所示:图4-4: 登录成功界面在这里用户可以选择相应的功能模块进入各功能模块操作界面。4.2家庭记事模块初始界面如图4-5所示:图4-5:家庭记事初始界面在此界面中用户可以右键单击左边的通讯录类别树的某个类别结点进行如下操作:添加记事类别,重命名记事类别,删除所选类别,展开及收缩全部类别。面边则可以进行对家庭记事的查找,查看,编辑,新增及删除操作。按关键字查找家庭记事记录信息如图4-6所示:图4-6:查找家庭记事记录信息在此界面中用户可以在搜索范围里选择按照什么条件搜索,如“记事主题”“记事性质”等,再在关键字里输入关键字点击查找即可将符合条件的结果显示在下方列表中。新增家庭记事记录如图4-7所示:图4-7:新增家庭记事用户可在此界面内输入记事主题,选择发生时间及性质,再详细输入记事内容。4.3资产管理模块初始界面如图4-8所示:图4-8:初始界面在此界面中用户可以右键单击左边的资产类别树的某个类别结点进行如下操作:添加资产类别,重命名资产类别,删除所选类别,展开及收缩全部类别。面边则可以进行对资产的查找,查看,编辑,新增及删除操作。添加资产根类别,子类别,同级类别都如图4-9所示:图4-9:添加资产类别用户输入新增资产类别的名称并点击确定。4.4密码管理模块初始界面如图4-10所示:图4-10:初始界面在此界面中用户可以右键单击左边的密码类别树的某个类别结点进行如下操作:添加密码类别,重命名密码类别,删除所选类别,展开及收缩全部类别。面边则可以进行对密码的查找,查看,编辑,新增及删除操作。编辑选定行密码信息如图4-11所示:图4-11:编辑选定行密码信息用户在此界面内修改相应信息并单击保存提交修改内容。4.5通讯录模块初始界面如图4-12所示:图4-12:初始界面在此界面中用户可以右键单击左边的通讯录类别树的某个类别结点进行如下操作:添加通讯录类别,重命名通讯录类别,删除所选类别,展开及收缩全部类别。面边则可以进行对通讯录的查找,查看,编辑,新增及删除操作。第五章 结论按照软件工程方法学理论,项目各模块的代码编写和单元测试完成后,接下来的关键任务就是进行系统的综合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 职场情商测评题及提升策略
- 工厂电气设备安装维护操作流程
- 现代温室大棚种植技术操作规范
- 白细胞增多症中氧化应激反应机制-洞察及研究
- 医美行业营销推广活动方案
- 读书心得《细节决定成败》范文
- 数据分析在节目内容策划中的作用-洞察及研究
- 农业机械化操作实践指导手册
- 文秘岗位公文处理与会议记录实操题
- 办公应用融合与创新-洞察及研究
- 2024年山西省成考(专升本)大学政治考试真题含解析
- 最高法院第一巡回法庭关于行政审判法律适用若干问题的会议纪要
- 《病历书写基本规范》课件
- 足球场的运营可行性方案
- 重庆市面向西南大学定向选调2024届大学毕业生2024年国家公务员考试考试大纲历年真题3453笔试难、易错历年高频考点荟萃附带答案解析(附后)
- GB/T 2881-2023工业硅
- 小学生电力科普小讲座(课件)-小学常识科普主题班会
- 有限合伙份额质押合同完整版(包含质押登记公证手续)
- GB/T 43299-2023机动车玻璃电加热性能试验方法
- 防水卷材项目可行性研究报告
- 肠道微生态与人体健康
评论
0/150
提交评论