通讯录管理系统《可视化编程技术》课程设计报告_第1页
通讯录管理系统《可视化编程技术》课程设计报告_第2页
通讯录管理系统《可视化编程技术》课程设计报告_第3页
通讯录管理系统《可视化编程技术》课程设计报告_第4页
通讯录管理系统《可视化编程技术》课程设计报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录TOC\o"1-5"\h\z\o"CurrentDocument"一、 设计目的 2\o"CurrentDocument"二、 需求分析 3\o"CurrentDocument"2.1设计题目 3\o"CurrentDocument"2.2设计构思 3\o"CurrentDocument"2.3运行界面需求 4\o"CurrentDocument"2.4开发及运行环境 4\o"CurrentDocument"2.5程序文件清单 42.5.1数据库模块 4\o"CurrentDocument"三、 模块分析及设计 63.1系统功能结构图 63.2系统数据流程图 6\o"CurrentDocument"四、 数据库设计 .7\o"CurrentDocument"4.1数据库需求分析 74.2E-R图 8\o"CurrentDocument"4.3数据表设计 84.3.1登录用户信息表(Users) 84.3.2通讯录信息表(Contact) 9\o"CurrentDocument"五、 制作过程及要点 9\o"CurrentDocument"5.1IsExist类 9\o"CurrentDocument"5.2用户登录与注册模块详细设计 105.3系统主界面设计 16\o"CurrentDocument"5.4通讯录“显示全部”模块 17\o"CurrentDocument"5.5通讯录“添加”模块 19\o"CurrentDocument"5.6通讯录“查找”模块 20\o"CurrentDocument"5.7通讯录“修改”模块 22\o"CurrentDocument"5.8通讯录“删除”模块 24\o"CurrentDocument"六、 设计总结 26七、主要参考书及手册七、主要参考书及手册 27一、设计目的日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。二、需求分析2.1设计题目通讯录管理系统2.2设计构思通讯录管理系统功能需求分析:通讯录管理系统主要功能分为五个模块:用户登录与注册、用户查询、添加记录、修改记录、删除记录。用户登录与注册:实现不同用户的注册跟登录通讯录显示全部:实现用户对所有存在于数据库中的数据的显示,方便用户了解数据存储的情况。查找记录:实现用户在本软件数据库中查找自己需要的数据功能。添加记录:实现用户添加一条完整的记录,包括姓名、生日、电话、邮箱、地址。修改记录:用户对数据库中已存在的记录进行修改,然后保存已经修改过的数据删除记录:用户对数据库中已经存在的记录进行行删除操作,然后保存修改过的数据2.3运行界面需求界面应简洁,使用者易操作2.4开发及运行环境本系统开发平台及运行环境如下:系统开发平台:MicrosoftVisualStudio2005系统开发语言:C#数据库管理软件:SQLServer2000运行平台:WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)运行环境:Microsoft.NETFrameworkSDKv3.0分辨率:最佳效果1024X768像素说明:SP(ServicePack)为Windows操作系统补丁。2.5程序文件清单2.5.1数据库模块数据库名运行平台编程语言简要描述TongXunLuSql2000SQLContact表足艮Users表三、模块分析及设计3.1系统功能结构图3.2系统数据流程图通讯录管理系统显示全部退出系统主界面查修删除找改记记记显示全部退出系统主界面查修删除找改记记记四、数据库设计4.1数据库需求分析1) 针对通讯录管理系统,分别对用户登录、添加通讯录和查找、删除以及修改数据进行详细的调研和分析,总结出如下的需求信息:每条原始记录要有姓名、生日、电话、邮箱、地址信息,其中姓名不能为空。保证查询到的数据与姓名相一致根据相应姓名删除对应的全部数据2) 本数据用于登录用户实体以及通讯录信息实体

4.2E-R图4.3数据表设计•数据库名称:TongXunLu,共有2个表:1、用户表(Users)2、通讯录联系表(Contact)4.3.1登录用户信息表(Users)字段名数据类型长度主键否允许空UserNamechar12是否UserPwdchar16否是描述登录名登录密码为设计表"Users",蔻置是"TonsIimLu"中、"(local)"±列名数据类型长度允许空珂1cihar12IJserePwi!□h:iT164.3.2通讯录信息表(Contact)字段名数据类型长度主键否允许空描述姓名char10是否记录用户姓名生日datetime8否是记录用户生日电话char11否是记录用户电话邮箱char20否是记录用户邮箱地址char50否是记录用户家庭地址釉设计表"Corrtaf.待言旱"TongXunLu"中、"(locals上列名数据类里长度允在空蹈char10生日■Latetimes电话char11邮箱char£0地址char503福讳五、制作过程及要点5.1IsExist类开发项目时,以类的形式来组织、封装一些常用的方法和事件,以便提高代码的重用率,大大方便了代码的管理。本系统中创建了一个公共类:IsExist.cs,主要是用来判断后台数据库里是否存在用户输入的内容如果存在就返回true,否则返回false。usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data.SqlClient;namespaceTongXun{classIsExist{publicboolisNameExist(stringstr){stringcheckString=""select*fromContactwhere姓名='"+str+"SqlConnectionsqlcon二newSqlConnection();sqlcon.ConnectionString="InitialCatalog=TongXunLu;DataSource=(local);IntegratedSecurity=true";SqlCommandsqlcmd=newSqlCommand();sqlcon.Open();sqlcmd.CommandText=checkString;sqlcmd.Connection=sqlcon;SqlDataReaderdr=sqlcmd.ExecuteReader();if(dr.HasRows){returntrue;}elsereturnfalse;}}}5.2用户登录与注册模块详细设计初始登录注册界面以下为初始界面:

W通讯W通讯口▽A洛主要代码实现如下:namespaceTongXun(publicpartialclassLogin:Form(privateInput_CheckckInput=newInput_Check();publicLogin()(InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse)(privatevoidregister_btn_Click(objectsender,EventArgse)(Register_Formreg=newRegister_Form();reg.Show();this.Hide();}privatevoidlogin_btn_Click(objectsender,EventArgse)(if(!cklnput.UserNameCheck(textBox_name.Text)||!cklnput.PassWordCheck(textBox_pwd.Text))(MessageBox.Show("您输入的用户名或密码格式错误!请查正后输入。");return;}stringcheckString="select*fromUserswhereUsersName='"+textBox_name.Text+"'andUsersPwd='"+textBox_pwd.Text+"'";try(SqlConnectionsqlcon=newSqlConnection();sqlcon.ConnectionString="lnitial Catalog=TongXunLu;DataSource=(local);lntegratedSecurity=true";SqlCommandsqlcmd=newSqlCommand();sqlcon.Open();sqlcmd.CommandText=checkString;sqlcmd.Connection=sqlcon;SqlDataReaderdr=sqlcmd.ExecuteReader();if(dr.HasRows)(HomeHomePage=newHome();HomePage.Show();this.Hide();}else(MessageBox.Show("用户名或密码错误!");}}catch(Exceptionerror)(MessageBox.Show(error.ToString());}}〃检验输入数据正确性publicclasslnput_Check(publicboolUserNameCheck(stringstrlnput)Regexre=newRegex(@"A[a-zA-Z]\w{0,15}$");if(!re.IsMatch(strInput)){returnfalse;}returntrue;}publicboolPassWordCheck(stringstrInput){Regexre=newRegex(@"A{0,20}$");if(!re.IsMatch(strInput)){returnfalse;}returntrue;}}privatevoidtextBox_pwd_KeyPress(objectsender,KeyPressEventArgse){if(e.KeyChar==13){if (!ckInput.UserNameCheck(textBox_name.Text)||!cklnput.PassWordCheck(textBox_pwd.Text)){MessageBox.Show("您输入的用户名或密码格式错误!请查正后输入。");return;}stringcheckString="select*fromUserswhereUsersName='"+textBox_name.Text+"'andUsersPwd='"+textBox_pwd.Text+""';try{SqlConnectionsqlcon=newSqlConnection();sqlcon.ConnectionString="InitialCatalog=TongXunLu;DataSource=(local);IntegratedSecurity=true";SqlCommandsqlcmd=newSqlCommand();sqlcon.Open();sqlcmd.CommandText=checkString;sqlcmd.Connection=sqlcon;SqlDataReaderdr=sqlcmd.ExecuteReader();if(dr.HasRows){HomeHomePage=newHome();HomePage.Show();this.Hide();}else{MessageBox.Show("用户名或密码错误!");}}catch(Exceptionerror){MessageBox.Show(error.ToStringO);}}}}}注册中显示的界面:主要代码实现如下:namespaceTongXun(publicpartialclassRegister_Form:Form(publiclnput_CheckckInput=newlnput_Check();publicRegister_Form()(InitializeComponent();privatevoidbutton_confirm_Click(objectsender,EventArgse)(if(!cklnput.UserNameCheck(textBox_name.Text))(MessageBox.Show("请输入合法用户名!");textBox_name.Focus();return;}elseif(!ckInput.PassWordCheck(textBox_pwd.Text))(MessageBox.Show("请输入符合要求的密码!");return;}elseif(textBox_pwd.Text!=textBox_ensurePwd.Text)(MessageBox.Show("两次密码输入不同,请重新输入!");textBox_ensurePwd.Focus();textBox_pwd.Focus();}〃若输入无误,则与后台数据库同步SqlConnectionconn=newSqlConnection();conn.ConnectionString="initialcatalog=TongXunLu;DataSource=(local);integratedsecurity=true;";conn.Open();SqlCommandcmd=conn.CreateCommand();stringRegisterString="INSERTINTOUsers(UsersName,UsersPwd)VALUES('"+textBox_name.Text+"','"+textBox_pwd.Text+"')";cmd.CommandText=RegisterString;cmd.ExecuteNonQuery();MessageBox.Show("注册成功!");this.Close();Loginlog=newLogin();log.Show();}〃检验输入数据正确性publicclassInput_Check(publicboolUserNameCheck(stringstrInput)(Regexre=newRegex(@"A[a-zA-Z]\w{0,15}$");if(!re.IsMatch(strInput)){returnfalse;}returntrue;}publicboolPassWordCheck(stringstrInput){Regexre=newRegex(@"A{0,20}$");if(!re.IsMatch(strInput)){returnfalse;}returntrue;}}privatevoidbutton_cancel_Click(objectsender,EventArgse){LoginL=newLogin();L.Show();this.Hide();}}}5.3系统主界面设计主界面运行截图如下:E1在成长的溫悠上,没有fl-lk比技门尤黒的百诋史祈掣段们一起击过脂E1在成长的溫悠上,没有fl-lk比技门尤黒的百诋史祈掣段们一起击过脂吸站石触準環的日子•那我臼子,我們一起+是过主要代码实现如下:privatevoidbutton_cancel_Click(objectsender,EventArgse)(this.panel_Delete.Show();this.panel_Welcome.Show();}5.4通讯录“显示全部”模块用户进入主界面之后,点击显示全部按钮,则系统将数据库中数存储的所有联系人的记录显示到dataGridView2界面中,按照一定的规格排列。其中各项中的数据则严格按照数据库中的要求排列显示。显示全部功能截图如下:主要代码实现如下:privatevoidbutton_ShowAll_Click(objectsender,EventArgse)(this.panel_ShowAll.Show();this.panel_add.Hide();this.panel_Search.Hide();this.panel_Modify.Hide();this.panel_Delete.Hide();this.panel_Welcome.Hide();SqlConnectionconn=newSqlConnection();conn.ConnectionString="initialcatalog=TongXunLu;DataSource=(local);integratedsecurity=true;";conn.Open();〃创建SqlDataAdapter对象实例SqlDataAdapterdataSelect=newSqlDataAdapter("select*fromContact",conn);〃创建DataTable对象实例DataTabledt=newDataTable();dataSelect.Fill(dt);〃填充控件dataGridView2.DataSource=dt.DefaultView;this.dataGridView2.RowHeadersVisible=true;conn.Close();5.5通讯录“添加”模块用户进入通讯录系统主界面,点击添加,进行通讯录的添加操作,填写相应的内容,系统会自动判定是否符合规定要求,例如姓名、生日、年龄、电话号码、地址不能为空,相应属性的字段长度不能超出范围,邮箱格式要符合要求。可用已定义的lnput_Check类中EmailCheckO方法进行检验。相关运行界面如下:主要代码实现如下:privatevoidbutton_add_Click(objectsender,EventArgse)(if(textBox_Name.Text=="")(MessageBox.Show("请确认姓名输入是否正确!");return;}elseif(!cklnput.PassWordCheck(textBox_birth.Text))(MessageBox.Show("请确认生日日期是否正确!”);return;}elseif(!ckInput.PassWordCheck(textBox_phoneNum.Text))(MessageBox.Show("请确认电话号码是否正确!”);return;}elseif(!ckInput.EmailCheck(textBox_Mail.Text))(MessageBox.Show("请确认电子邮箱格式是否正确!”);return;}elseif(textBox_Address.Text=="")(MessageBox.Show("地址不能为空!");}else(SqlConnectionconn=newSqlConnection();conn.ConnectionString="initialcatalog=TongXunLu;DataSource=(local);integratedsecurity=true;";conn.Open();SqlCommandcmd=conn.CreateCommand();stringAddString="INSERTINTOContact(姓名,生日,电话,邮箱,地址)VALUES('"+textBox_Name.Text+"','"+textBox_birth.Text+"','"+textBox_phoneNum.Text+"','"+textBox_Mail.Text+"','"+textBox_Address.Text+"')";cmd.CommandText=AddString;cmd.ExecuteNonQuery();MessageBox.Show("添加联系人成功!");conn.Close();textBox_Name.Clear();textBox_birth.Clear();textBox_phoneNum.Clear();textBox_Mail.Clear();textBox_Address.Clear();}5.6通讯录“查找”模块按姓名查找,若数据库中有要查找的记录则通过dataGridView1显示出来,若不存在该记录则返回“没有您要查找的内容!”的消息框。相关截图如下:主要代码实现如下:privatevoidbutton_Search_Click(objectsender,EventArgse)(try(if(textBox_SearchName.Text=="")(MessageBox.Show("查找的姓名不能为空!");}else if (textBox_SearchName.Text !=""&&ise.isNameExist(textBox_SearchName.Text))(stringsearchString="select*fromContactwhere姓名='"+textBox_SearchName.Text+""';SqlConnectionconn=newSqlConnection();conn.ConnectionString="initialcatalog=TongXunLu;DataSource=(local);integratedsecurity=true;";conn.Open();〃创建SqlDataAdapter对象实例SqlDataAdapterdataSelect=newSqlDataAdapter(searchString,conn);〃创建DataTable对象实例DataTabledt=newDataTable();dataSelect.Fill(dt);〃填充控件dataGridView_Search.DataSource=dt.DefaultView;this.dataGridView_Search.RowHeadersVisible=true;conn.Close();textBox_SearchName.Clear();}else{MessageBox.Show("没有您要查找的内容!");textBox_SearchName.Text="";textBox_SearchName.Focus();}}catch(Exceptionexc){MessageBox.Show(exc.ToString());}}5.7通讯录“修改”模块要修改的记录必需是数据库中已存在的记录。□E®□E®主要代码实现如下:privatevoidbutton_Modify_Click(objectsender,EventArgse)(if(textBox_ModName.Text=="")(MessageBox.Show("请输入要修改的姓名!");}elseif (textBox_ModName.Text != "" &&ise.isNameExist(textBox_ModName.Text))(SqlConnectionconn=newSqlConnection();conn.ConnectionString="initialcatalog=TongXunLu;DataSource=(local);integratedsecurity=true;";conn.Open();SqlCommandcmd=conn.CreateCommand();stringModifyString="UPDATEContactSET姓名='"+textBox_ModName.Text+"',"+"生日='"+textBox_ModBirthDay.Text+"',"+"电话='"+textBox_ModPhone.Text+"',"+"邮箱='"+textBox_ModMail.Text+"',"+"地址='"+textBox_ModAddress.Text+"'where姓名='"+textBox_ModName.Text+"'";cmd.CommandText=ModifyString;cmd.ExecuteNonQuery();MessageBox.Show("修改成功!");textBox_ModName.Clear();textBox_ModBirthDay.Clear();textBox_ModPhone.Clear();textBox_ModMail.Clear();textBox_ModAddress.Clear();}else{MessageBox.Show("您要修改的记录不存在!");textBox_ModName.Clear();textBox_ModBirthDay.Clear();textBox_ModPhone.Clear();textBox_ModMail.Clear();textBox_ModAddress.Clear();}}5.8通讯录“删除”模块在TextBox中输入要删除的记录的姓名,确认删除后连接数据库进行删除记录。若该记录不存在则返回提示信息,若操作成功,则返回“删除成功”的信息框提示。“返回首页”按钮则实现返回到登录时的界面。主要代码实现如下:privatevoidbutton_delete

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论