8通讯录管理系统C#编程_课程设计_图文.由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言通讯录管理系统”。
福建工程学院
课程名称:C#.NET程序设计 设计题目:通讯录管理系统 学生班级: 学生姓名: 指导教师: 完成日期:
一、设计目的(1
二、需求分析(2 2.1设计题目(2 2.2设计构思(2 2.3运行界面需求(3 2.4开发及运行环境(3 2.5程序文件清单(3 2.5.1数据库模块(3
三、模块分析及设计(4 3.1系统功能结构图(4 3.2系统数据流程图(4
四、数据库设计(5
4.1数据库需求分析(5 4.2E-R图(6 4.3数据表设计(6 4.3.1登录用户信息表(Users(6 4.3.2通讯录信息表(Contact(7
五、制作过程及要点(7 5.1IsExist类(7 5.2用户登录与注册模块详细设计(8 5.3系统主界面设计(14 5.4通讯录“显示全部”模块(15 5.5通讯录“添加”模块(17 5.6通讯录“查找”模块(18 5.7通讯录“修改”模块(20 5.8通讯录“删除”模块(22
六、设计总结(24
七、主要参考书及手册(25
一、设计目的日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信
息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。
通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。
二、需求分析 2.1设计题目 通讯录管理系统 2.2设计构思
通讯录管理系统功能需求分析: 通讯录管理系统主要功能分为五个模块:用户登录与注册、用户查询、添加记录、修改记录、删除记录。
用户登录与注册:实现不同用户的注册跟登录通讯录
显示全部:实现用户对所有存在于数据库中的数据的显示,方便用户了解数据存储的情况。
查找记录:实现用户在本软件数据库中查找自己需要的数据功能。添加记录:实现用户添加一条完整的记录,包括姓名、生日、电话、邮箱、地址。
修改记录:用户对数据库中已存在的记录进行修改,然后保存已经修改过的数据
删除记录:用户对数据库中已经存在的记录进行行删除操作,然后保存修改过的数据
2.3运行界面需求 界面应简洁,使用者易操作 2.4开发及运行环境
本系统开发平台及运行环境如下: 系统开发平台:Microsoft Visual Studio2008 系统开发语言:C# 数据库管理软件:SQL Server2005 运行平台:Windows XP(SP2/Windows2000(SP4/Windows Server 2003(SP1 运行环境:Microsoft.NET Framework SDK v3.0 分辨率:最佳效果1024×768像素
说明:SP(Service Pack为Windows操作系统补丁。2.5程序文件清单 2.5.1数据库模块
数据库名运行平台编程语言简要描述 TongXunLu Sql2005SQL Contact表跟Users表
三、模块分析及设计 3.1系统功能结构图
通讯录管理系统 注册侧 登录 显示全部 添加查找修改删 除 退出系统
3.2系统数据流程图 用户 注册登录 通讯录管理系统 通讯录管理系统主界面 显示全部查 找 记 录 修 改 记
录 删 除 记 录 退 出 系 统
四、数据库设计 4.1数据库需求分析
1针对通讯录管理系统,分别对用户登录、添加通讯录和查找、删除以及修改数据进行详细的调研和分析,总结出如下的需求信息: 1.每条原始记录要有姓名、生日、电话、邮箱、地址信息,其中姓
名不能为空。
2.保证查询到的数据与姓名相一致 3.根据相应姓名删除对应的全部数据
2本数据用于登录用户实体以及通讯录信息实体 4.2E-R 图
用户 用户名密码 信息 操作 N 1 姓名 生日 邮箱 电话 地址
4.3数据表设计
·数据库名称:TongXunLu,共有2个表:
1、用户表(Users2、通讯录联系表(Contact 4.3.1登录用户信息表(Users
4.3.2通讯录信息表(Contact
五、制作过程及要点 5.1IsExist类
开发项目时,以类的形式来组织、封装一些常用的方法和事件,以便提高代码的重用率,大大方便了代码的管理。本系统中创建了一个公共类:IsExist.cs,主要是用来判断后台数据库里是否存在用户输入的内容如果存在就返回true,否则返回false。using System;using System.Collections.Generic;using System.Text;using System.Data.SqlClient;namespace TongXun { cla IsExist { public bool isNameExist(string str { string checkString=“select*from Contact where姓名='”+str+“'”;SqlConnection sqlcon=new SqlConnection(;sqlcon.ConnectionString=“Initial Catalog=TongXunLu;Data Source=(local;Integrated Security=true”;SqlCommand sqlcmd=new SqlCommand(;
sqlcon.Open(;sqlcmd.CommandText=checkString;sqlcmd.Connection=sqlcon;SqlDataReader dr=sqlcmd.ExecuteReader(;if(dr.HasRows { return true;} else return false;} } } 5.2用户登录与注册模块详细设计 初始登录注册界面 以下为初始界面:
主要代码实现如下: namespace TongXun { public partial cla Login:Form { private Input_Check ckInput=new Input_Check(;public Login({ InitializeComponent(;}
private void Form1_Load(object sender,EventArgs e { } private void register_btn_Click(object sender,EventArgs e { Register_Form reg=new Register_Form(;reg.Show(;this.Hide(;} private void login_btn_Click(object sender,EventArgs e { if(!ckInput.UserNameCheck(textBox_name.Text||!ckInput.PaWordCheck(textBox_pwd.Text { MeageBox.Show(“您输入的用户名或密码格式错误!请查正后输入。”;return;}
string checkString=“select*from Users where UsersName='”+textBox_name.Text+“'and UsersPwd='”+textBox_pwd.Text+“'”;try { SqlConnection sqlcon=new SqlConnection(;sqlcon.ConnectionString=“Initial Catalog=TongXunLu;Data Source=(local;Integrated Security=true”;SqlCommand sqlcmd=new SqlCommand(;sqlcon.Open(;sqlcmd.CommandText=checkString;sqlcmd.Connection=sqlcon;SqlDataReader dr=sqlcmd.ExecuteReader(;if(dr.HasRows { Home HomePage=new Home(;HomePage.Show(;this.Hide(;} else
{ MeageBox.Show(“用户名或密码错误!”;} } catch(Exception error { MeageBox.Show(error.ToString(;} } //检验输入数据正确性 public cla Input_Check { public bool UserNameCheck(string strInput { Regex re=new Regex(@“^[a-zA-Z]w{0,15}$”;if(!re.IsMatch(strInput { return false;}
return true;} public bool PaWordCheck(string strInput { Regex re=new Regex(@“^{0,20}$”;if(!re.IsMatch(strInput { return false;} return true;} } private void textBox_pwd_KeyPre(object sender,KeyPreEventArgs e { if(e.KeyChar==13 { if(!ckInput.UserNameCheck(textBox_name.Text ||!ckInput.PaWordCheck(textBox_pwd.Text {
MeageBox.Show(“您输入的用户名或密码格式错误!请查正后输入。”;return;} string checkString=“select*from Users where UsersName='”+ textBox_name.Text+“'and UsersPwd='”+textBox_pwd.Text+“'”;try { SqlConnection sqlcon=new SqlConnection(;sqlcon.ConnectionString=“Initial Catalog=TongXunLu;Data Source=(local;Integrated Security=true”;SqlCommand sqlcmd=new SqlCommand(;sqlcon.Open(;sqlcmd.CommandText=checkString;sqlcmd.Connection=sqlcon;SqlDataReader dr=sqlcmd.ExecuteReader(;if(dr.HasRows { Home HomePage=new Home(;HomePage.Show(;
this.Hide(;} else { MeageBox.Show(“用户名或密码错误!”;} } catch(Exception error { MeageBox.Show(error.ToString(;} } } } } 注册中显示的界面:
主要代码实现如下: namespace TongXun { public partial cla Register_Form:Form { public Input_Check ckInput=new Input_Check(;public Register_Form({ InitializeComponent(;} private void button_confirm_Click(object sender,EventArgs e {
if(!ckInput.UserNameCheck(textBox_name.Text { MeageBox.Show(“请输入合法用户名!”;textBox_name.Focus(;return;} else if(!ckInput.PaWordCheck(textBox_pwd.Text { MeageBox.Show(“请输入符合要求的密码!”;return;} else if(textBox_pwd.Text!=textBox_ensurePwd.Text { MeageBox.Show(“两次密码输入不同,请重新输入!”;textBox_ensurePwd.Focus(;textBox_pwd.Focus(;} //若输入无误,则与后台数据库同步 SqlConnection conn=new SqlConnection(;
conn.ConnectionString=“initial catalog=TongXunLu;Data Source=(local;integrated security=true;”;conn.Open(;SqlCommand cmd=conn.CreateCommand(;string RegisterString=“INSERT INTO Users(UsersName,UsersPwd VALUES('”+textBox_name.Text+“','”+textBox_pwd.Text+“'”;cmd.CommandText=RegisterString;cmd.ExecuteNonQuery(;MeageBox.Show(“注册成功!”;this.Close(;Login log=new Login(;log.Show(;} //检验输入数据正确性 public cla Input_Check { public bool UserNameCheck(string strInput { Regex re=new Regex(@“^[a-zA-Z]w{0,15}$”;
if(!re.IsMatch(strInput { return false;} return true;} public bool PaWordCheck(string strInput { Regex re=new Regex(@“^{0,20}$”;if(!re.IsMatch(strInput { return false;} return true;} } private void button_cancel_Click(object sender,EventArgs e { Login L=new Login(;L.Show(;
this.Hide(;} } } 5.3系统主界面设计 主界面运行截图如下:
主要代码实现如下: private void button_cancel_Click(object sender,EventArgs e { this.panel_Delete.Show(;
this.panel_WeIcome.Show(;} 5.4通讯录“显示全部”模块
用户进入主界面之后,点击显示全部按钮,则系统将数据库中数存储的所有联系人的记录显示到dataGridView2界面中,按照一定的规格排列。其中各项中的数据则严格按照数据库中的要求排列显示。
显示全部功能截图如下:
主要代码实现如下: private void button_ShowAll_Click(object sender,EventArgs e {
this.panel_ShowAll.Show(;this.panel_add.Hide(;this.panel_Search.Hide(;this.panel_Modify.Hide(;this.panel_Delete.Hide(;this.panel_WeIcome.Hide(;SqlConnection conn=new SqlConnection(;conn.ConnectionString=“initial catalog=TongXunLu;Data Source=(local;integrated security=true;”;conn.Open(;//创建SqlDataAdapter对象实例
SqlDataAdapter dataSelect=new SqlDataAdapter(“select*from Contact ”,conn;//创建DataTable对象实例 DataTable dt=new DataTable(;dataSelect.Fill(dt;//填充控件
dataGridView2.DataSource=dt.DefaultView;this.dataGridView2.RowHeadersVisible=true;conn.Close(;
} 5.5通讯录“添加”模块
用户进入通讯录系统主界面,点击添加,进行通讯录的添加操作,填写相应的内容,系统会自动判定是否符合规定要求,例如姓名、生日、年龄、电话号码、地址不能为空,相应属性的字段长度不能超出范围,邮箱格式要符合要求。可用已定义的Input_Check类中EmailCheck(方法进行检验。相关运行界面如下:
主要代码实现如下: private void button_add_Click(object sender,EventArgs e { if(textBox_Name.Text==“” {
MeageBox.Show(“请确认姓名输入是否正确!”;return;} else if(!ckInput.PaWordCheck(textBox_birth.Text { MeageBox.Show(“请确认生日日期是否正确!”;return;} else if(!ckInput.PaWordCheck(textBox_phoneNum.Text { MeageBox.Show(“请确认电话号码是否正确!”;return;} else if(!ckInput.EmailCheck(textBox_Mail.Text { MeageBox.Show(“请确认电子邮箱格式是否正确!”;return;} else if(textBox_Addre.Text==“”
{ MeageBox.Show(“地址不能为空!”;} else { SqlConnection conn=new SqlConnection(;conn.ConnectionString=“initial catalog=TongXunLu;Data Source=(local;integrated security=true;”;conn.Open(;SqlCommand cmd=conn.CreateCommand(;string AddString=“INSERT INTO Contact(姓名,生日,电话,邮箱,地址
VALUES('”+textBox_Name.Text+“','”+textBox_birth.Text+“','”+textBox_phoneNum.Text+ “','”+textBox_Mail.Text+“','”+textBox_Addre.Text+“'”;cmd.CommandText=AddString;cmd.ExecuteNonQuery(;MeageBox.Show(“添加联系人成功!”;conn.Close(;textBox_Name.Clear(;textBox_birth.Clear(;textBox_phoneNum.Clear(;
textBox_Mail.Clear(;textBox_Addre.Clear(;} 5.6通讯录“查找”模块
按姓名查找,若数据库中有要查找的记录则通过dataGridView1显示
出来,若不存在该记录则返回“没有您要查找的内容!”的消息框。相关截图如下:
主要代码实现如下: private void button_Search_Click(object sender,EventArgs e { try
{ if(textBox_SearchName.Text==“” { MeageBox.Show(“查找的姓名不能为空!”;} else if(textBox_SearchName.Text!= “”&&ise.isNameExist(textBox_SearchName.Text { string searchString=“select*from Contact where姓名='”+ textBox_SearchName.Text+“'”;SqlConnection conn=new SqlConnection(;conn.ConnectionString=“initial catalog=TongXunLu;Data Source=(local;integrated security=true;”;conn.Open(;//创建SqlDataAdapter对象实例
SqlDataAdapter dataSelect=new SqlDataAdapter(searchString,conn;//创建DataTable对象实例 DataTable dt=new DataTable(;dataSelect.Fill(dt;//填充控件
dataGridView_Search.DataSource=dt.DefaultView;this.dataGridView_Search.RowHeadersVisible=true;conn.Close(;textBox_SearchName.Clear(;} else { MeageBox.Show(“没有您要查找的内容!”;textBox_SearchName.Text=“”;textBox_SearchName.Focus(;} } catch(Exception exc { MeageBox.Show(exc.ToString(;} } 5.7通讯录“修改”模块
要修改的记录必需是数据库中已存在的记录。
主要代码实现如下: private void button_Modify_Click(object sender,EventArgs e { if(textBox_ModName.Text==“” { MeageBox.Show(“请输入要修改的姓名!”;} else if(textBox_ModName.Text!=“”&& ise.isNameExist(textBox_ModName.Text { SqlConnection conn=new SqlConnection(;
conn.ConnectionString=“initial catalog=TongXunLu;Data Source=(local;integrated security=true;”;conn.Open(;SqlCommand cmd=conn.CreateCommand(;string ModifyString=“UPDATE Contact SET姓名='”+ textBox_ModName.Text+“',”+“生日='”+textBox_ModBirthDay.Text+“',”+“电话='”+ textBox_ModPhone.Text+“',”+“邮箱='”+textBox_ModMail.Text+“',”+“地址='”+ textBox_ModAddre.Text+“'where姓名='”+textBox_ModName.Text+“'”;cmd.CommandText=ModifyString;cmd.ExecuteNonQuery(;MeageBox.Show(“修改成功!”;textBox_ModName.Clear(;textBox_ModBirthDay.Clear(;textBox_ModPhone.Clear(;textBox_ModMail.Clear(;textBox_ModAddre.Clear(;} else { MeageBox.Show(“您要修改的记录不存在!”;
textBox_ModName.Clear(;textBox_ModBirthDay.Clear(;textBox_ModPhone.Clear(;textBox_ModMail.Clear(;textBox_ModAddre.Clear(;} } 5.8通讯录“删除”模块
在TextBox中输入要删除的记录的姓名,确认删除后连接数据库进行删除记录。若该记录不存在则返回提示信息,若操作成功,则返回“删除成功”的信息框提示。“返回首页”按钮则实现返回到登录时的界面。
主要代码实现如下: private void button_delete_Click(object sender,EventArgs e { if(textBox_deleName.Text==“” { MeageBox.Show(“请输入要删除的姓名!”;} else if(textBox_deleName.Text!=“”&& ise.isNameExist(textBox_deleName.Text { SqlConnection conn=new SqlConnection(;
conn.ConnectionString=“initial catalog=TongXunLu;Data Source=(local;integrated security=true;”;conn.Open(;SqlCommand cmd=conn.CreateCommand(;string ModifyString=“DELETE FROM Contact WHERE姓名='”+ textBox_deleName.Text+“'”;cmd.CommandText=ModifyString;cmd.ExecuteNonQuery(;MeageBox.Show(“删除成功!”;textBox_deleName.Text=“”;} else {MeageBox.Show(“您输入的姓名不存在!”;textBox_deleName.Text = “”;} }
六、设计总结 这次的课程设计是对我们这学期 c#学习的一次大检验。自己动 手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好 的知识在这次课程设计中彻底暴露出来,经过不断思考,不断查阅资 料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。当然从这次课程设计使我们学 到了以前没有学过的很多知识,在具体的程序实践中主要是对数据库 连接和一些控件的应用有了更深的认识。使我们对 VS 程序设计有了 更深层次的认识和理解,懂得了 VS 窗体应用程序基本设计流程和 SQL Server 2000 数据库设计。这次我们是小组作业,为了使各自做的界面能够更
好的结合到一 起,我们这次设计的数据库比较简单。我们分工合作最后共同努力把 程序的基本功能基本上都实现了。我们通过对课本的研究,通过几天 的努力终于将已经完成了的程序在界面是进行了美化,可以使用户在 使用的时候能够赏心悦目。最后,在此由衷的向我的指导老师们表示衷心的感谢,是他们的 悉心指导和严格要求,才使我的课程设计有了较为完善的一面,才有-了我能力的提高,得到了充分的锻炼。
七、主要参考书及手册 [1] 李海涛,Visual Studio.NET 2008 开发一册通。化学工业出版社,2010 年 [2] 江维华,江维清,C#.NET 程序设计使用教程,人民邮电出版社,2007 年 [3] 明日科技,Visual C#开发技术大全,人民邮电出版社,2007 年 [4](美James Foxall,Visual C# 2008 入门经典,人民邮电出版社,2009 年
信息科学与技术学院 程序设计基础课程设计报告题目名称: 通信管理系统 学生姓名: 学 号: 专业班级: 指导教师:2016年 12月 31日 目录1.课程设计题目与要求 ...........................
目录一、设计目的 .............................................1二、需求分析 .............................................2 2.1系统需求简介...........................
摘 要为了人们对他人信息的记忆方便而设计,开发的一套“通讯录管理系统“软件。 通过该题目的设计过程,可以培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结......
淮北师范大学软件系列课程设计通讯录管理系统学院计算机科学与技术学院学 生 姓 名陈 文 超学号20081201011指导教师姓名陈 美 荣 2010年 06月 20日 目 录 摘 要 ...............
课 程 设 计 任 务 书题目C语言课程设计系(部)专业班级学生姓名学号06 月信息科学与电气工程学院计算机科学与技术计职141王雪14081913921 日至07 月04 日共2 周 指导教......