软件综合实训设计报告题目:个人通讯录管理系统的开发和实现班级:姓名:学号:指导教师:2015年6月17日题目:个人通讯录管理系统的开发和实现摘要:通讯录是当前每个人不可缺少的信息系统,利用vs20013制作个人通讯录管理系统,从根本上改变纸介质基础通讯录难以长久保存、容易丢失的弊端,从而提高信息管理和存储效率。在对系统进行分析和设计的基础上,创建各种项目组件,若干个功能模块连编成个人通讯录管理系统。关键字:通讯录管理系统信息检索敏感词汉字首拼后台管理WPF1.概述1.1目的个人通讯录是当前每个人不可缺少的信息系统,通讯录、联系本是每个人不可缺少的工具,目前以纸介质的通讯录最为普遍。手工的信息管理存在许多弊端,如信息容易丢失、查找费时、存储量有限等。随着科技的发展与人民生活水平的提高,计算机进入了千家万户。作为计算机应用的一部分,使用计算机对通讯录进行管理,具有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高通讯录管理的效率。因此,开发一套通讯录信息管理软件是很有必要的,并且意义重大。从根本上改变纸介质基础通讯录难以长久保存、容易丢失的弊端,从而提高信息管理和存储效率。1.2背景随着互联网的爆炸性发展,人们越来越习惯于利用电脑实现所需的服务,电脑已深深影响到人们生活的各个方面,广泛的人际关系成为一个人的重要资源。另外,传统的纸质通讯录不能满足一部分现代人的需要,而电子通讯录,由于其不受时间与空间的限制同时又具有传统通讯录的大部分功能,能够满足各类用户的常规与特殊需求,处理大量的联系人信息和众多的联系方式,而且其方便快捷,实现技术又比较成熟,受到当代人的喜爱,是我们开发个人通信管理系统的主要缘由。1.3研究内容该系统主要分为两部分:联系人部分和通讯部分。为了方便用户查找自己想要的联系人信息,要将联系人按照组别进行分类或者按照姓拼音首拼进行分类。读者可以按照组别进行查找,也可以按照联系人姓拼音首拼进行查找。本系统还可让用户之间进行通讯交流,同时信息传递过程中会进行敏感词系统自动审查。管理员会定期审查违章信息,并且进行数据统计以及对公共联系人进行操作,从而是让用户使用个人管理系统,有更好的体验。2.需求分析2.1组织机构操作方式上的可行性我们团队的成员都是同一个班级的,相互之间也很熟悉,所以很有利于相互之间的交流和探讨,更好的完成系统设计工作。因为团队的个人学习水平及擅长的不同,但我们很好地分配了任务。我们的组长范志俊,平时学习非常刻苦,功底也比较扎实,技术水平也很高,所以由他担任我们的组长,来管理和给我们成员分配任务,管理我们系统的设计工作。我们团队的其他成员非常善于合作服从管理,也对工作尽职尽责。我们团队内部各尽其责,竭尽全力,共同完成系统工作。所以在组织机构操作方式上是可行的。2.2基础数据的可行性个人通讯录管理系统所需的数据、资料等大部分都可以从图书馆相关书籍中获取,同时有些相关数据可以通过教材以及周围的同学、朋友获取,所以在基础数据上是可行的。2.3经济上的可行性我们小组是以分工形式来进行本次课程设计,保证了项目的开发周期,节约了时间成本,也极大缩短了成员对开发、实现本系统的培训环节。所以我们的经济成本是极低的,所以在经济上是可行的。2.4技术上的可行性软件需求:操作系统Windows数据库:SqlSever2008E_R制图部分:亿图配置需求:计算机(配置要求不高)因为我们系统界面设计采用C#+WPF语言、VS20013软件实现,并且这些软件所能实现的基本功能所需的知识我们基本都有所了解,所以在技术上是可行的。2.6目标分析个人通信录管理系统通过计算机技术给用户对其通讯录的管理带来便利。3.数据库外部设计3.1标识符和状态数据库软件的名称:SqlSever2008数据库的名称为:DB_PER_ADDRESSLIST3.2命名约定3.2.1表命名命名全部以T_为开头,加上表所存储数据所代表的意义的英文名。用户登录表:T_UserLogin(id,user_name_user_password,type,user_pic,warn_num,delete_tf,register_time)联系人表:T_Linkman(id,first_name,last_name,phone_number,mobile_number,e_mail,group_id,user_id,linkman_pic,first_py,last_py,delete_tf)公共联系人表:T_Common_Linkman(id,linkman_name,tel_number,name_py)组别表:T_Group(id,name,user_id)好友表:T_Friend(id,first_uid,second_uid)信息表:T_Message(id,send_id,receive_id,messgae,subtle,datetime,warn_tf)敏感词表:T_Subtle(id,subtle_name)汉字首拼字库:T_Word_PY(id,hz,py,zm)3.2.2触发器命名全部以TRI_为开头,加上对应的表名以及进行的操作类型,二者之间用下划线分割。公共联系人Insert触发器:TRI_Name_Py_Set_Insert联系人Insert触发器:TRI_Firstname_Lastname_Py_Set_Insert信息Inset触发器:TRI_Message_Inset3.2.3存储过程命名全部以Pro_作为开头,加上进行操作的所对应的英文名。敏感词去重:Pro_Distinct_Subtle联系人与组别表联合查询:Pro_Select_Linkman_GroupId用户违章数:Pro_User_Warn_Num所有的数据库命名都是以具体表的英文词汇组成,这样能够统一数据库表的命名,也能够更好的规范数据库表命名。3.3设计约定所有数据库的设计,采用面向对象的设计方法,首先进行对象实体的设计,最后将对象持久化到数据库中,所有的表和表之间的关联,这样能够将整个系统的设计和数据库设计有机的结合起来。4.数据库结构设计4.1概念结构设计概念结构是独立于实际数据模型的信息结构,必须将其转化为逻辑结构后才能进行数据库应用的设计。也就是要将概念上的结构转化为数据库系统所支持的实际数据模型。第一种转化是将实体转化为关系表。这种转化较简单,需要将实体的属性定义为表的属性即可。第二种转化是联系的转化。即将各个实体之间的联系转化为表格之间的关系,如外部键的定义。数据库概念结构设计是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这个阶段不用考虑所采用的数据库管理系统、操作系统类型、机器类型等问题。这阶段可用的工具很多。用的最多的是E-R图(Entity-Relation,实体-关系图),另外还有许多计算机辅助工具(ComputerAidedSoftwareEngineering,CASE)可以帮助进行设计。本系统采用了E-R图的方法进行数据库概念结构设计。E-R图是描述数据实体关系的一种直观描述工具。这种图中有:(1)实体:用方框表示,方框内为实体的名称。(2)实体的各种属性:用椭圆表示,椭圆内为属性名称。使用线段将其和响应的实体连接起来。(3)实体之间的联系:用菱形表示,菱形内为联系的名称。实体和实体之间的联系较多,比较常见的联系有l:1,l:N和M:N这三种。在上面工作的基础上归纳出人员管理数据库表格的组成之间的联系等等。该数据库系统具有以下方面的特点:结构合理,对一个人员建立多条记录。所建立的数据冗余度小,独立性强。建档、修改、查询、统计快速而准确。保密性好、可靠性好。个人通讯录管理系统中要有登陆,登陆是管理系统中密不可分的部分,因此要创建一用户登录实体,用来保存登陆用户的详细信息。用户登录实体属性图如图4-1所示。图4-1用户登录实体属性图联系人是个人通讯录管理系统重要组成部分之一,这里创建了一个联系人信息实体,用来存储联系人的详细信息。联系人信息实体E-R图如图4.2所示。图4-2联系人信息实体属性图公共联系人是个人通讯录管理系统重要组成部分之一,这里创建了一个公共联系人实体,用来存储公共联系人的详细信息。公共联系人实体E-R图如图4.3所示。图4-3公共联系人信息实体属性图组别是个人通讯录管理系统重要组成部分之一,这里创建了一个组别信息实体,用来存储联系人组别的详细信息。组别信息实体E-R图如图4.4所示。图4-4组别信息实体属性图好友是个人通讯录管理系统通信模块重要组成部分之一,这里创建了一个好友信息实体,用来存储用户好友的详细信息。好友信息实体E-R图如图4.5所示。图4-5好友信息实体属性图个人通讯录管理系统通信模块需要有信息记录,这里创建了一个通信信息实体,用来存储用户之间通信信息的详细信息。通信信息实体E-R图如图4.6所示。图4-6通信信息实体属性图个人通讯录管理系统通信模块需要有敏感词过滤,这里创建了一个敏感词实体,用来存储敏感词的详细信息。敏感词实体E-R图如图4.7所示。图4-7通信信息实体属性图个人通讯录管理系统联系人模块为了查找方便,我们设置了拼音首字母查找的功能,这里创建了一个汉子拼音字库实体,用来存储汉字对应的拼音的详细信息。汉字拼音字库实体E-R图如图4.8所示。图4-8汉子拼音字库实体属性图实体-联系图4.2逻辑结构设计4.2.1用户登录表(T_UserLogin)IdidautoincrementintPK非空user_name用户名varchar(50)非空user_password密码varchar(50)非空type用户类型int非空user_pic用户头像varchar(50)warn_num违章信息数int0delete_tf是否删除int0register_time注册时间datetime(getdate())4.2.2联系表(T_Linkman)IdidautoincrementintPK非空first_name姓varchar(4)非空last_name名varchar(8)非空phone_number宅电varchar(20)mobile_number手机inte_mail邮箱varchar(50)group_id组idintFK0user_id所属用户idintFK非空linkman_pic联系人头像varchar(50)first_py姓首拼varchar(5)last_py名首拼varchar(5)delete_tf是否删除Int04.2.3公共联系表(T_Common_Linkman)IdidautoincrementintPK非空linkman_name联系人名varchar(50)非空tel_number名varchar(20)非空name_py宅电varchar(10)4.2.4好友表(T_Friend)IdidautoincrementintPK非空first_uid当期用户idintFK非空second_uid好友idintFK非空4.2.5组别表(T_Group)IdidautoincrintPK非空ementname组别名varchar(20)非空user_id所属用户idintFK非空4.2.6信息表(T_Message)IdidautoincrementintPK非空send_id发信人idintFK非空receive_id接信人idintFK非空messgae信息varchar(max)非空datetime发信时间datetime(getdate())subtle邮箱varchar(50)warn_tf是否违章smallint04.2.7组别表(T_Subtle)IdidautoincrementintPK非空subtle_name敏感词名varchar(50)非空4.2.8汉字首拼表(T_Word_PY)Ididautoincrem