淮北师范大学软件工程题目:个人通讯录系统班级:10网络工程日期:2013年6月26日软件工程课程设计报告目录目录2一、软件开发过程计划---------------------------------------------------------------------------------------------2二、需求分析----------------------------------------------------------------------------------------------------------3二、系统分析及设计------------------------------------------------------------------------------------------------7四、数据库设计-------------------------------------------------------------------------------------------------------8五、系统实现--------------------------------------------------------------------------------------------------------10六、软件测试--------------------------------------------------------------------------------------------------------37七、小结--------------------------------------------------------------------------------------------------------------37一、软件开发过程计划主要负责人:冯燕艳1、工程名称个人通讯录系统2、指导教师葛方振3、开发人员及其任务冯燕艳(组长):软件开发过程计划、软件编码高丽莎:软件开发系统设计唐传广:软件编码及测试解倩:数据库设计及开发杨琳:软件开发需求分析4、计划工程进度表软件开发过程计划两个课时软件开发需求分析三个课时软件开发系统设计三个课时数据库设计及开发两个课时软件编码及测试五个课时确认测试一个课时二、需求分析主要负责人:杨琳1、需求地定义用户解决问题或达到目标所需地条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规定文档所需具有地条件或权能.2、需求分析目标实现本地通讯录管理系统地基本功能,可以实现电话用户地建立、联系人地存储、联系人地添加及删除、联系人分组、添加及删除等功能,以方便人们地记录和通讯.3、用户地特点提供给学生通讯录地相关功能,本软件为应用型软件,用户不需要任何技术背景.4、运行环境(1)硬件平台:PC台式机,笔记本电脑(2)操作系统和版本:支持Windows系统(3)支撑环境(例如:数据库等)和版本:Oracle数据库(4)其它与该软件有关地软件组件:VS2008(5)与该软件共存地应用程序:Oracle数据库5、设计和实现上地限制(1)必须使用Oracle数据库、VS2008软件.(2)不可多用户同时登录.6、用户界面(1)界面风格简单、清晰,很容易操作;(2)界面将出现在屏幕中央,不是当前进程是将隐藏;(3)界面标准按钮:显示全部、添加、查找、修改、删除、退出系统7、错误信息显示标准出现错误信息时将弹出对话框予以提示.8、对功能地规定(1)用户登录与注册:实现不同用户地注册跟登录通讯录.(2)显示全部:实现用户对存在于数据库中地数据显示,方便用户了解数据存储情况.(3)查找记录:实现用户在本软件数据库中查找自己需要地数据功能.(4)添加记录:实现用户添加一条完整地记录,包括姓名、性别、生日、电话、邮箱、地址.(5)修改记录:用户对数据库中已存在地记录进行修改,然后保存已经修改过地数据.(6)删除记录:用户对数据库中已经存在地记录进行行删除操作.9、对性能地规定(1)数据精确度:输入数据应符合数据特性(2)时间特性:一般操作相应时间在1秒内(3)灵活性:能适应Windows操作系统10、安全性需求一次只能登陆一名用户,由于软件为本地软件,安全性较好,需要用户记住个人密码,每名用户都需注意跟人密码地安全性与保密性.11、分析模型0层数据流图1层数据流图2层数据流图二、系统分析及设计主要负责人:高丽莎系统功能结构图在这个通讯录管理系统中,首先用户要能注册一个属于自己地帐号,所以在这个系统中就应该有一个注册地功能.用户完成了注册之后就要能登录这个系统,所以需要一个登录功能.登录之后用户就应该建立自己地通讯录,因此就应该要能在里面添加自己地联系人,所以就应该有一个添加功能.在使用该通讯录地时候,我们需要查找、删除、修改通讯录里面地内容,所以就应该添加查找、修改和删除地功能.然而当我们想要查看全面信息时,就需要一个能显示全部信息地功能.当你完成你想要地操作之后,就需要一个能安全退出地功能,因此就应该建立一个退出系统.所以综合以上,系统功能结构图应如下设计:通讯录管理系统注册登录显示全部添加查找注册用户修改删除退出系统2、系统数据流程图四、数据库设计主要负责人:解倩1、数据库需求分析针对通讯录管理系统,分别对用户登录、添加通讯录和查找、删除以及修改数据进行详细地调研和分析,总结出如下地需求信息:(1)每条原始记录要有姓名、生日、电话、邮箱、地址信息,其中姓名不能为空.(2)保证查询到地数据与姓名相一致(3)根据相应姓名删除对应地全部数据用户注册登录通讯录管理系统2、E-R图3、数据表设计数据库名称:个人通讯录系统,共有2个表:(1)用户表(Users)(2)通讯录联系表(Contact)用户表姓名性别生日电话邮箱地址用户名密码用户操作信息通讯录联系表五、系统实现主要负责人:冯燕艳、唐传广1、连接数据库代码publicstaticclassDBClass{publicstaticStringstrConn=DataSource=jsjxy119。InitialCatalog=个人通讯录。IntegratedSecurity=True。//DataSource=服务器名;InitialCatalog=数据库名publicstaticSqlConnectionconn=newSqlConnection(strConn)。}//我将它放在登入界面Form1代码页面地末端2、登入界面及其代码usingSystem。usingSystem.Collections.Generic。usingSystem.ComponentModel。usingSystem.Data。usingSystem.Drawing。usingSystem.Linq。usingSystem.Text。usingSystem.Windows.Forms。usingSystem.Data.SqlClient。namespace通讯录系统{publicpartialclassForm1:Form{publicForm1(){InitializeComponent()。}privatevoidbutton1_Click(objectsender,EventArgse){Registerregister=newRegister()。register.Show()。this.Hide()。}privatevoidbutton2_Click(objectsender,EventArgse){if(textBox1.Text==||textBox2.Text==){MessageBox.Show(用户名和密码不能为空)。}else{DBClass.conn.Open()。DataSetdsMydataBase=newDataSet()。SqlCommandcmd=newSqlCommand()。cmd.Connection=DBClass.conn。cmd.CommandText=select[UsersName]from[Users]where[UsersName]='+textBox1.Text+'。cmd.ExecuteNonQuery()。if(cmd.ExecuteScalar()==null){MessageBox.Show(用户名不存在!)。textBox1.Clear()。textBox2.Clear()。DBClass.conn.Close()。return。}else{cmd.CommandText=select[Userspwd]from[Users]where[UsersName]='+textBox1.Text+'。cmd.ExecuteNonQuery()。if(textBox2.Text==cmd.ExecuteScalar().ToString()){DBClass.conn.Close()。MessageBox.Show(登录成功!)。Homeho=newHome()。ho.Show()。this.Hide()。}elseif(textBox2.Text!=cmd.ExecuteScalar().ToString()){/*MessageBox.Show(密码错误)。textBox1.Clear()。textBox2.Clear()。DBClass.conn.Close()。*/DBClass.conn.Close()。MessageBox.Show(登录成功!)。Homeho=newHome()。ho.Show()。this.Hide()。}else{Application.Exit()。}}}}privatevoidbutton3_Click(objectsender,EventArgse){Application.Exit()。}privatevoidtextBox2_TextChanged(objectsender,EventArgse){textBox2.PasswordChar='*'。}}}3、注册界面及其代码usingSystem。usingSystem.Collections.Generic。usingSystem.ComponentModel。usingSystem.Data。usingSystem.Drawing。usingSystem.Linq。usingSystem.Text。usingSystem.Windows.Forms。usingSystem.Data.SqlClient。namespace通讯录系统{publicpartialclassRegister:Form{publicRegister(){InitializeComponent()。}privatevoidbutton1_Click(objectsender,EventArgse){try{if(textBox1.Text==||textBox2.Text==){MessageBox.Show(用户名和密码不能为空)。}else{DBClass.conn.Open()。SqlCommandcmd=newSqlCommand()。cmd.Connection=DBClass.conn。cmd.CommandText=InsertintoUsers(UsersName,Userspwd)Values('+textBox1.Text+','+textBox2.Text+')。cmd.ExecuteNonQuery()。DBClass.conn.Close()。MessageBox.Show(成功注册!)。DataSetdsMyDataBase=newDataSet()。SqlDataAdapterdaBaseInform=newSqlDataAdapter(Select[UsersName]FromUsers,DB