还剩19页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程考查报告书课程名称.NET程序设计题目个人通信薄系统的设计与开发系名信息工程系专业班级软件姓名学号授课教师:个人通信薄系统
1、开发环境硬件环境微机系列,内存在1G以上,软件环境MicrosoftWindowsXP
2、开发工具、技术和平台Visualstudio2005SQLServer2005SQLServer数据库应用技术,C#语言设计
3、完成时间
2012.
6.18-----
2012.
6.
244、需求分析
4.1概述个人通信薄系统的设计与开发是在面向对象和数据库开发两方面的基础上开发出来的,它是为了让大家妥善处理自己的联系人的信息,具有一定的保密功能,有利于自己联系人信息的安全性本个人通讯录工具主要实现五大功能联系人的查询;通过姓名查询;添加联系人以删除联系人信息及修改联系人信息含有对通讯薄信息进行添加,查询,删除的功能还有对用户对象信息的添加和修改功能对通迅录可以按不同的条件查询
4.2基本功能本个人通讯录工具主要实现五大功能联系人的查询;通过姓名查询;添加联系人以删除联系人信息及修改联系人信息
4.3具体需求分析
4.
3.1用户登录用户进入系统登陆界面后在界面上对应的密码和用户名输入框中输入相应信息后点击登录按钮,系统自动根据数据库中的用户信息来进行用户登录验证,如果用户名和密码正确则进入功能界面;否则提示密码或者用户名输入错误,请重新输入数据名称使用人员组成名称格式范围精度说明密码字符16-登录时输入的密码姓名字符16-使用人员的姓名备注姓名、密码在登录的时候,大小写敏感
4.
3.2查看所有联系人信息用例用户可以在功能界面上点击查看所以联系人按钮进行查看数据库中所有的联系人及其相应的信息
4.
3.3查询联系人用例用户打开功能界面,功能界面为查询用例提供入口;用户选择“查询联系人”功能项,页面直接跳转到查询联系人界面,在界面上面可以看到输入框,可以输入联系人姓名,然后在点击查找按钮,系统则根据输入的姓名在数据库中查找联系人,并将联系人信息显示在对应的显示框中
4.
3.4添加、删除、更改联系人信息用例点击功能界面上的添加按钮,进入增加联系人界面输入联系人的基本信息,单击添加联系人按钮,则在数据中添加的此次输入的联系人信息,并且会在显示添加效果;删除和更改联系人方式都是类是与添加联系人信息
5、系统总体设计
5.1总体设计思路完成用户需求只需将所有功能实现即可,首先在SQLServer2000中将相应的数据表,存储过程建好;然后通过VisualStudio2005中将所以的功能界面设计完善,再就是编程代码设计,最后进行程序测试和更能测试在代码设计过程中各个击破一个一个模块的功能实现
5.2体系结构使用ADO.NET技术与后台数据库进行连接并能调试运行该系统将能够实现用户登录功能,通过选择对应菜单项对联系人信息进行增加、删除、修改和查询等功能总体架构如图系统用例图
5.3概念设计(ER图)(此部分可以省略)
5.4逻辑设计用户信息表(用户名,用户密码,用户类型)联系人信息表(用户名,联系人编号,姓名,性别,生日,手机号码,固定电话,E-mail,家庭住址)联系人类别表(类别,类别编号,备注)用户信息表—联系人信息表(用户名,用户名)联系人类别表—联系人信息表(类别,类别名)
5.5表的设计,包括表的结构、约束等图联系人信息表字段名字段类型长度设置键字段约束设置的约束及其说明用户名nchar10外键NotnullFOREIGNKEY约束此用户名必须与用户信息表的用户名一样密码nchar5主键NotnullPRIMARYKEY约束具有唯一性,它的值不能为空姓名char30—Notnull性别char10—NotnullCHECK约束性别只能是男或者女生日datetime——null手机号码char30—Notnull固定电话char10—nullE-mailNchar20—Notnull家庭住址Nchar20—null图用户信息表字段名字段类型长度设置键字段约束设置的约束及其说明用户名char10主键NotnullPRIMARYKEY约束具有唯一性,它的值不能为空用户密码char30—Notnull用户类型char20—Notnull图联系人类别表字段名字段类型长度设置键字段约束设置的约束及其说明类别编号char10—NotnullPRIMARYKEY约束具有唯一性,它的值不能为空类别char30主键Notnull备注char100—null
5.4运行环境客户程序硬件要求具有PentiumIII处理器且满足以下要求的计算机最低64MB内存最小
2.1GB硬盘鼠标键盘服务器硬件需求具有PentiumIII处理器且满足以下要求的计算机最低256MB内存最小8GB硬盘鼠标键盘客户程序多需软件Windows7或更高版本数据库服务器软件Windows7或更高版本SQLServer
20086、系统详细设计在VisualStudio2005中建立名为个人通讯簿的Windows应用程序,在SQLServer2000中建立名为MyDatabase1的数据库
6.1存储过程设计(包括功能算法描述和存储过程代码)
6.
1.1性别存储过程如果性别为女,则显示女的联系人的信息,如果是男,则显示男的联系人的信息代码如下setANSI_NULLSONsetQUOTED_IDENTIFIERONgo--=============================================--Author:Name--Createdate:--Description:--=============================================ALTERPROCEDURE[dbo].[xb]--Addtheparametersforthestoredprocedurehere@sexchar10ASBEGIN--SETNOCOUNTONaddedtopreventextraresultsetsfrom--interferingwithSELECTstatements.SETNOCOUNTON;--InsertstatementsforprocedurehereSELECT*fromContactsInfowhereSex=@sexEND
6.
1.2统计的存储过程根据性别的录入,显示此性别的联系人的数量代码如下setANSI_NULLSONsetQUOTED_IDENTIFIERONgo--=============================================--Author:Name--Createdate:--Description:--=============================================ALTERPROCEDURE[dbo].[liugan]--Addtheparametersforthestoredprocedurehere@sexchar10@countint=0ASBEGIN--SETNOCOUNTONaddedtopreventextraresultsetsfrom--interferingwithSELECTstatements.SETNOCOUNTON;--InsertstatementsforprocedurehereSELECT@count=countSexfromContactsInfowhereSex=@sexreturn@countEND
6.2系统功能模块实现
6.
2.1存储过程设计
6.
2.
1.1登录连接用的存储过程代码setANSI_NULLSONsetQUOTED_IDENTIFIERONgoALTERPROCEDURE[dbo].[mima]@usenamenchar15@passwordnchar18ASselect用户名from用户where用户名=@usenameand密码=@passwordRETURN
6.
2.
1.2添加联系人的存储过程代码setANSI_NULLSONsetQUOTED_IDENTIFIERONgoALTERprocedure[dbo].[insertRecordDe]@namenchar15@sexchar2@birthchar15@shoujichar11@gudingchar11@Emailnchar20@jiatingnchar20Asinsertinto联系人values@name@sex@birth@shouji@guding@Email@jiating
6.
2.
1.3查找联系人的存储过程代码setANSI_NULLSONsetQUOTED_IDENTIFIERONgoALTERprocedure[dbo].[QueryT1]@namenchar15asselect姓名from联系人where姓名=@nameRETURN
6.
2.
1.4删除联系人的存储过程代码setANSI_NULLSONsetQUOTED_IDENTIFIERONgoALTERprocedure[dbo].[shanchu]@namenchar15asdeletefrom联系人where姓名=@name
6.
2.2登录模块登录模块分为两种身份,一种是普通用户,一种是管理员通过这个模块进入相同的主界面首先调用数据库连接的,然后读取数据库,将登陆的内容判断是否为空,为空则输入内容,并且其内容要与数据库的内容相同,否则登陆失败,同时登陆时显示登陆的时间,有利于用户了解时间界面设计如图所示代码如下usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceWindowsApplication2{publicpartialclassForm3:Form{publicForm3{InitializeComponent;}privatevoidbutton1_ClickobjectsenderEventArgse{SqlConnectionconn=newSqlConnectionProperties.Settings.Default.maoConnectionString;SqlCommandcmd=newSqlCommandStoredProcedure2conn;cmd.CommandType=CommandType.StoredProcedure;cmd.Parameters.Add@usenameSqlDbType.NChar.Value=textBox
1.Text;cmd.Parameters.Add@passwordSqlDbType.NChar.Value=textBox
2.Text;try{conn.Open;ifcmd.ExecuteScalar!=null{Form1fr1=newForm1;fr
1.Show;this.Hide;}else{MessageBox.Show用户名和密码不匹配!;}}catchExceptionc{MessageBox.Showc.Message;}}privatevoidForm3_LoadobjectsenderEventArgse{textBox
1.MaxLength=10;toolTip
1.InitialDelay=0;toolTip
1.ReshowDelay=0;toolTip
1.SetToolTiptextBox1用户名不能超过10个字符,而且只能是汉字,字母和数字;toolTip
1.SetToolTiptextBox2密码不能少于6个字符,而且只能是字母和数字;errorProvider
1.BlinkStyle=ErrorBlinkStyle.AlwaysBlink;}privateboolValidatingTextTextBoxtextboxstringerrorMessage{strings=textbox.Text;boolisValid=true;forinti=0;is.Length;i++{ifchar.IsLetterOrDigits[i]==false{errorProvider
1.SetErrortextboxerrorMessage;isValid=false;break;}}ifisValiderrorProvider
1.SetErrortextboxstring.Empty;returnisValid;}privatevoidbutton2_ClickobjectsenderEventArgse{this.Close;}privatevoidtextBox1_ValidatingobjectsenderCancelEventArgse{ValidatingTexttextBox1用户名中包含了非汉字,字母和数字的字符;}privatevoidtextBox2_ValidatingobjectsenderCancelEventArgse{boolisValid=ValidatingTexttextBox2密码中包含了非汉字,字母和字母的字符;ifisValid{iftextBox
2.Text.Length6errorProvider
1.SetErrortextBox2密码长度小于6;elseerrorProvider
1.SetErrortextBox2string.Empty;}}}}
6.
2.3功能界面设计及代码
6.
2.
3.1查看所有联系人界面设计及部分代码部分代码如下usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceWindowsApplication2{publicpartialclassForm1:Form{SqlDataAdapteradapter;DataTabledt;DataTabletable;stringconnectionString;publicForm1{InitializeComponent;connectionString=Properties.Settings.Default.maoConnectionString;}privatevoidForm1_LoadobjectsenderEventArgse{dataGridView
1.AllowUserToAddRows=false;dataGridView
1.AllowUserToDeleteRows=false;}privatevoidbutton1_ClickobjectsenderEventArgse{SqlConnectionconn=newSqlConnectionconnectionString;SqlDataAdapteradapter=newSqlDataAdapterselect*fromfriendconn;table=newDataTable;adapter.Filltable;dataGridView
1.DataSource=table;}privatevoidbutton2_ClickobjectsenderEventArgse{Form2fr2=newForm2;fr
2.Show;}privatevoidbutton3_ClickobjectsenderEventArgse{SqlConnectionconn=newSqlConnectionconnectionString;SqlDataAdapteradapter=newSqlDataAdapterselect*fromfriendconn;DataTabletable=newDataTable;adapter.Filltable;bindingSource
1.DataSource=table;ifdataGridView
1.SelectedRows.Count==0{MessageBox.Show请先选择要删除的列,;}else{ifMessageBox.Show确定要删除所选行吗?小心MessageBoxButtons.YesNoMessageBoxIcon.Warning==DialogResult.Yesforinti=dataGridView
1.SelectedRows.Count-1;i=0;i--{dataGridView
1.Rows.RemovedataGridView
1.SelectedRows[i];}}}privatevoidbutton5_ClickobjectsenderEventArgse{try{iftextBox
1.Text.Length==0MessageBox.Show请输入姓名;else{SqlConnectionconn=newSqlConnectionconnectionString;SqlDataAdapteradapter=newSqlDataAdapterselect*fromfriendwherename=+textBox
1.Text+conn;dt=newDataTable;adapter.Filldt;dataGridView
1.DataSource=dt;}}catchExceptionex{MessageBox.Showex.Message;}}privatevoidbutton4_ClickobjectsenderEventArgse{//dataGridView
1.EndEdit;try{//table=DataTabledataGridView
1.DataSource;//adapter.UpdatemaoDataSet
1.;/*this.Validate;bindingSource
1.EndEdit;adapter.UpdatemaoDataSet
1.Tables[mao];*/MessageBox.Show保存成功!;}catchExceptionexc{MessageBox.Showexc.Message保存失败;}}privatevoiddataGridView1_CellContentClickobjectsenderDataGridViewCellEventArgse{}}}
6.
2.
3.2新增联系人功能界面设计及代码部分代码如下usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceWindowsApplication2{publicpartialclassForm2:Form{SqlDataAdapteradapter;publicForm2{InitializeComponent;}privatevoidbutton1_ClickobjectsenderEventArgse{SqlConnectionconn=newSqlConnectionProperties.Settings.Default.maoConnectionString;SqlCommandcmd=newSqlCommandStoredProcedure1conn;cmd.CommandType=CommandType.StoredProcedure;cmd.Parameters.Add@nameSqlDbType.VarChar.Value=textBox
1.Text;cmd.Parameters.Add@genderSqlDbType.VarChar.Value=textBox
5.Text;cmd.Parameters.Add@birthdaySqlDbType.VarChar.Value=textBox
6.Text;cmd.Parameters.Add@telSqlDbType.VarChar.Value=textBox
7.Text;cmd.Parameters.Add@FixedtelSqlDbType.VarChar.Value=textBox
2.Text;cmd.Parameters.Add@E_mailSqlDbType.VarChar.Value=textBox
3.Text;cmd.Parameters.Add@addrSqlDbType.VarChar.Value=textBox
4.Text;try{conn.Open;cmd.ExecuteNonQuery;this.Close;}catchExceptiont{MessageBox.Showt.Message;}}privatevoidlabel2_ClickobjectsenderEventArgse{}privatevoidForm2_LoadobjectsenderEventArgse{}}}
6.
2.
3.3修改联系人方式界面设计及代码部分代码如下usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceWindowsApplication2publicpartialclassForm5:Form{SqlDataAdapteradapter;DataTabletable;publicForm5{InitializeComponent;toolTip
1.ReshowDelay=0;toolTip
1.SetToolTiptextBox1姓名不能超过15个字符!;toolTip
1.SetToolTiptextBox2性别不能超过两个字符!;toolTip
1.SetToolTiptextBox3生日不能超过15个字符!;toolTip
1.SetToolTiptextBox4手机号码不能超过11个字符,而且必须填写!;toolTip
1.SetToolTiptextBox5固定电话不能超过11个字符!;toolTip
1.SetToolTiptextBox6E-mail不能超过20个字符,且必须填写!;toolTip
1.SetToolTiptextBox7家庭地址不能超过20个字符!;}privatevoidbutton1_ClickobjectsenderEventArgse{stringconnectionString=Properties.Settings.Default.MyDatabase1ConnectionString1;SqlConnectionconn=newSqlConnectionconnectionString;adapter=newSqlDataAdapterselect*from联系人where姓名=+textBox
1.Text+conn;table=newDataTable;adapter.Filltable;dataGridView
1.DataSource=table;}privatevoidbutton2_ClickobjectsenderEventArgse{stringconnectionString=Properties.Settings.Default.MyDatabase1ConnectionString1;SqlConnectionconn=newSqlConnectionconnectionString;iftextBox
2.Text!=nulladapter=newSqlDataAdapterUpdate联系人set性别=+textBox
2.Text+where姓名=+textBox
1.Text+conn;iftextBox
3.Text!=nulladapter=newSqlDataAdapterUpdate联系人set生日=+textBox
3.Text+where姓名=+textBox
1.Text+conn;iftextBox
4.Text!=nulladapter=newSqlDataAdapterUpdate联系人set手机号码=+textBox
4.Text+where姓名=+textBox
1.Text+conn;iftextBox
5.Text!=nulladapter=newSqlDataAdapterUpdate联系人set固定电话=+textBox
5.Text+where姓名=+textBox
1.Text+conn;iftextBox
6.Text!=nulladapter=newSqlDataAdapterUpdate联系人setE-mail=+textBox
6.Text+where姓名=+textBox
1.Text+conn;iftextBox
7.Text!=nulladapter=newSqlDataAdapterUpdate联系人set家庭住址=+textBox
7.Text+where姓名=+textBox
1.Text+conn;table=newDataTable;adapter.Filltable;dataGridView
1.DataSource=table;}privatevoidbutton3_ClickobjectsenderEventArgse{Form2form2=newForm2;form
2.Show;this.Hide;}}}
6.
2.
3.4修改密码设计及代码usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.Data.SqlClient;namespaceWindowsFormsApplication{publicpartialclassxiugaimima:Form{Stringconnectionstring;publicxiugaimima{InitializeComponent;connectionstring=WindowsFormsApplication.Properties.Settings.Default.lianxiConnectionString;//这就是连接数据库}privatevoidbutton1_ClickobjectsenderEventArgse{stringt1=textBox
1.Text.Trim;stringt2=textBox
2.Text.Trim;signlogin=newsign;stringusername=login.fanhui;ift
1.Equalst2{SqlConnectionconn=newSqlConnectionconnectionstring;//然后这个也是conn.Open;//这个是把连接打开,格式都一样可以复制//然后我们下面要做的仅仅只是有一点点不同,局势执行SQL语句不同stringsql=updateyonghusetmima=+t1+whereusername=+username+;SqlCommandcmd=newSqlCommandsqlconn;cmd.ExecuteNonQuery;//执行这句表示要开始执行我们写的SQLYUJU到数据库里面了,不过执行不会有返回值MessageBox.Show修改成功;//上面的语句能成功执行就表示插入成功this.Hide;}}}}
7、系统调试和测试该系统是由登陆界面决定后面的很多内容,如用户名杨妮,密码123,进入主界面,再跳入查看界面时,查看界面中的用户名不用录入,它就是就是登陆的用户名如果从主界面跳入修改密码界面,修改密码界面的用户名和密码就是登陆的用户名和密码,而且它的文本框是只可读的,不能录入只有登陆成功了,才能进行查看,添加,修改,删除,查询等一切的操作登陆界面可以直接跳入注册界面,注册就是添加用户信息表登陆成功进入主界面,主界面中有个人管理中心(修改密码,退出,返回登陆),查询,查看等查询可以按不同条件进行查询查看中可以添加个人的联系人,删除联系人,修改联系人信息,可以在文本框中查看联系人的具体信息
7.1输入数据类型错误取数据库数据时数据类型转换时发生异常错误解决方法将数据进行强制转换保存在局部变量中,然后再发送到控件的value上;
7.2测试登陆测试输入错误的密码,系统是否有信息弹出并提示;主界面模块测试在任务添加中输入相同的任务ID,或任务间隔中加入
7.
2.1测试过程中密码验证功能不能实现解决方法通过调用存储过程进行密码验证,将用户输入的用户名和密码传递给存储过程然后有存储过程进行验证并且返回验证的值存在对应的用户则进入系统否则提示密码或者用户名错误,重新输入
7.
2.2删除功能不能实现开始只能实现表面的删除,而不能真正的在数据库中进行删除解决方法将删除方法改为调用存储过程,通过输入的姓名进行删除
8、结束语通过一周的C#课程设计,基本完成了个人通信薄的设计与实现在这个系统中,可实现由计算机代替人工执行一系列诸如联系人添加、联系人删除等操作,使我又从中收获了不少知识,界面漂亮,调用了视图和存储过程,还调用了几个函数但是系统比较简单,对于某些小细节考虑得不够全面,技术量不高,需多加练习我充分体会到面向对象的思想以及在代码设计时能充分运用自己所学的知识设计出目标要求的系统,我感到十分高兴虽然任务过程中困难有很多,但是能够和同学一起讨论并完成任务感觉很有收获和成就感总之,本次项目实践是对自己以前所学的知识进行系统的综合升华,使自己收获匪浅在本次毕业设计过程中,在老师的耐心指导及同学们帮助下,基本上完成了预定目标
9、参考文献
[1]黄梯云.管理信息系统[M].北京经济科学出版社1999年8月.
[2]张海藩.软件工程导论[M].北京人民邮电出版社2002年3月.
[3]萨师煊.数据库系统概论[M].北京高等教育出版社2002年5月.
[4]马俊主.《C#程序设计及应用教程》(第二版).北京人民邮电出版社,2009年5月..
[5]夏敏捷.《VisualC#.NET开发技术原理与实践教程》.北京电子工业出版社,2008年.
[6]夏冰冰.《数据库原理及应用-SQLServer2000》.北京国防工业出版社,2009年12月.
[7]杨晓光.《面向对象设计程序》(C#实现.)北京清华大学出版社,2011年1月..个人通讯薄系统登录查看所有联系人检索联系人新增联系人修改联系方式删除联系人用户登录系统查看所有联系人新增联系人修改联系方式检索联系人删除联系人。