




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
河南城建学院可视化编程技术课程设计报告题目: 通讯录管理系统姓 名: 学 号: 061408213 班 级: 0614082班 指导老师: 专 业: 计算机科学与技术 2011年 02月 25日 一、设计目的3二、需求分析42.1设计题目52.2设计构思52.3运行界面需求52.4开发及运行环境62.5程序文件清单62.5.1数据库模块6三、模块分析及设计73.1系统功能结构图83.2系统数据流程图8四、数据库设计94.1数据库需求分析94.2 E-R图104.3 数据表设计104.3.1登录用户信息表(Users)104.3.2通讯录信息表(Contact)11五、制作过程及要点115.1 IsExist类115.2 用户登录与注册模块详细设计125.3系统主界面设计185.4 通讯录“显示全部”模块195.5 通讯录“添加”模块215.6 通讯录“查找”模块225.7 通讯录“修改”模块245.8 通讯录“删除”模块26六、设计总结28七、主要参考书及手册29一、设计目的日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。二、需求分析2.1设计题目通讯录管理系统2.2设计构思通讯录管理系统功能需求分析:通讯录管理系统主要功能分为五个模块:用户登录与注册、用户查询、添加记录、修改记录、删除记录。用户登录与注册:实现不同用户的注册跟登录通讯录显示全部:实现用户对所有存在于数据库中的数据的显示,方便用户了解数据存储的情况。查找记录:实现用户在本软件数据库中查找自己需要的数据功能。添加记录:实现用户添加一条完整的记录,包括姓名、生日、电话、邮箱、地址。修改记录:用户对数据库中已存在的记录进行修改,然后保存已经修改过的数据删除记录:用户对数据库中已经存在的记录进行行删除操作,然后保存修改过的数据2.3运行界面需求界面应简洁,使用者易操作2.4开发及运行环境本系统开发平台及运行环境如下:系统开发平台:Microsoft Visual Studio 2005系统开发语言:C#数据库管理软件:SQL Server 2000运行平台:Windows XP (SP2) / Windows2000 (SP4) / Windows Server 2003 (SP1)运行环境:Microsoft.NET Framework SDK v3.0分辨率: 最佳效果 1024768 像素说明:SP(Service Pack)为Windows操作系统补丁。2.5程序文件清单2.5.1数据库模块数据库名运行平台编程语言简要描述TongXunLuSql2000 SQLContact表跟Users表三、模块分析及设计3.1系统功能结构图通讯录管理系统注册侧登录显示全部添加查找修改删 除退出系统 3.2系统数据流程图用户注册登录通讯录管理系统通讯录管理系统主界面显示全部查找记录修改记录删除记录退出系统四、数据库设计4.1数据库需求分析1)针对通讯录管理系统,分别对用户登录、添加通讯录和查找、删除以及修改数据进行详细的调研和分析,总结出如下的需求信息:1. 每条原始记录要有姓名、生日、电话、邮箱、地址信息,其中姓名不能为空。2. 保证查询到的数据与姓名相一致3. 根据相应姓名删除对应的全部数据2)本数据用于登录用户实体以及通讯录信息实体4.2 E-R图用户用户名密码信息操作N1姓名生日邮箱电话地址4.3 数据表设计数据库名称:TongXunLu,共有2个表: 1、用户表(Users)2、通讯录联系表(Contact)4.3.1登录用户信息表(Users)字段名数据类型长度主键否允许空描述UserNamechar12是否登录名 UserPwdchar16否是登录密码4.3.2通讯录信息表(Contact)字段名数据类型长度主键否允许空描述姓名char10是否记录用户姓名生日datetime8否是记录用户生日电话char11否是记录用户电话邮箱char20否是记录用户邮箱地址char50否是记录用户家庭地址 五、制作过程及要点5.1 IsExist类开发项目时,以类的形式来组织、封装一些常用的方法和事件,以便提高代码的重用率,大大方便了代码的管理。本系统中创建了一个公共类:IsExist.cs,主要是用来判断后台数据库里是否存在用户输入的内容如果存在就返回true,否则返回false。using System;using System.Collections.Generic;using System.Text;using System.Data.SqlClient;namespace TongXun class 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 class 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.PassWordCheck(textBox_pwd.Text) MessageBox.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 MessageBox.Show(用户名或密码错误!); catch(Exception error) MessageBox.Show(error.ToString(); /检验输入数据正确性 public class Input_Check public bool UserNameCheck(string strInput) Regex re = new Regex(a-zA-Zw0,15$); if (!re.IsMatch(strInput) return false; return true; public bool PassWordCheck(string strInput) Regex re = new Regex(0,20$); if (!re.IsMatch(strInput) return false; return true; private void textBox_pwd_KeyPress(object sender, KeyPressEventArgs e) if (e.KeyChar = 13) if (!ckInput.UserNameCheck(textBox_name.Text) | !ckInput.PassWordCheck(textBox_pwd.Text) MessageBox.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 MessageBox.Show(用户名或密码错误!); catch (Exception error) MessageBox.Show(error.ToString(); 注册中显示的界面:主要代码实现如下:namespace TongXun public partial class 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) MessageBox.Show(请输入合法用户名!); textBox_name.Focus(); return; else if (!ckInput.PassWordCheck(textBox_pwd.Text) MessageBox.Show(请输入符合要求的密码!); return; else if (textBox_pwd.Text != textBox_ensurePwd.Text) MessageBox.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(); MessageBox.Show(注册成功!); this.Close(); Login log = new Login(); log.Show(); /检验输入数据正确性 public class Input_Check public bool UserNameCheck(string strInput) Regex re = new Regex(a-zA-Zw0,15$); if (!re.IsMatch(strInput) return false; return true; public bool PassWordCheck(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=) MessageBox.Show(请确认姓名输入是否正确!); return; else if (!ckInput.PassWordCheck(textBox_birth.Text) MessageBox.Show(请确认生日日期是否正确!); return; else if (!ckInput.PassWordCheck(textBox_phoneNum.Text) MessageBox.Show(请确认电话号码是否正确!); return; else if (!ckInput.EmailCheck(textBox_Mail.Text) MessageBox.Show(请确认电子邮箱格式是否正确!); return; else if (textBox_Address.Text = ) MessageBox.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_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显示出来,若不存在该记录则返回“没有您要查找的内容!”的消息框。相关截图如下:主要代码实现如下: private void button_Search_Click(object sender, EventArgs e) try if(textBox_SearchName.Text=) MessageBox.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 MessageBox.Show(没有您要查找的内容!); textBox_SearchName.Text = ; textBox_SearchName.Focus(); catch(Exception exc) MessageBox.Show(exc.ToString(); 5.7 通讯录“修改”模块要修改的记录必需是数据库中已存在的记录。主要代码实现如下: private void button_Modify_Click(object sender, EventArgs e) if (textBox_ModName.Text = ) MessageBox.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_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中输入要删除的记录的姓名,确认删除后连接数据库进行删除记录。若该记录不存在则返回提示信息,若操作成功,则返回“删除成功”的信息框提示。“返回首页”按钮则实现返回到登录时的界面。主要代码实现如下: private void button_delete_Click(object sender, EventArgs e) if (textBox_deleName.Text = ) MessageBox.Show(请输入要删除的姓名!);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 玻纤织布带工专业技能考核试卷及答案
- 拉链制作工岗前考核试卷及答案
- 化工检修钳工作业指导书
- 2025年不锈钢波纹管补偿器行业研究报告及未来行业发展趋势预测
- 损伤演化规律与有限元模拟-洞察及研究
- Unit 4《Lesson4 I love my family.》(教学设计)-2024-2025学年闽教版(2024)英语三年级上册
- 首付比例明确型旅游服务首付款合同范本模板
- 2025年垂盆草颗粒行业研究报告及未来行业发展趋势预测
- 密闭鼓风炉备料工协作考核试卷及答案
- 北京理工·2015(第2版)说课稿-2025-2026学年中职中职专业课工商管理类73 财经商贸大类
- 会计师事务所公司质量控制制度范本
- 实习生劳务合作合同6篇
- 2025《义务教育信息科技课程标准(2022年版)》测试题库及答案(共4套)
- 环境监测业务流程
- 房屋提前移交免责协议书5篇
- DB36-T 954-2024 低产低效林改造技术规程
- 《环境保护法》知识参考试题库200题(含答案)
- 食堂食材配送采购投标方案(技术标)
- 交通安全防御性驾驶
- 护理情景模拟演练脚本
- 征信异议申诉合同(2篇)
评论
0/150
提交评论