《C#论文通讯录管理系统.doc》由会员分享,可在线阅读,更多相关《C#论文通讯录管理系统.doc(30页珍藏版)》请在三一办公上搜索。
1、郑州科技学院C#课程设计 设计(论文)题目: 通讯录管理系统 所 在 院: 信息工程学院 专 业 班 级: 10计算机科学与技术2班 学 生 姓 名: 郑全有 学 号: 201015075 指 导 教 师: 王玉萍 2013年5月30日目录摘 要1一、设计目的2二、需求分析22.1设计题目22.2设计构思32.3运行界面需求32.4开发及运行环境3三、 模块分析及设计43.1系统功能结构图43.2系统数据流程图53.2.1 登陆模块设计53.2.2 联系人管理模块设计6四、 数据库设计74.1数据库需求分析74.2 数据表设计74.2.1、用户表(Users)74.2.2、通讯录联系人表(Pe
2、rson)8五、系统实现85.1 ClassesManage类85.2 登录模块的实现125.3验证完成后进入主界面如下图155.4、添加模块的实现185.5、联系人信息管理模块实现20六、设计总结25致谢26参考文献27摘 要通讯录管理系统是一个非常通用的管理系统。很多地方都需要拥有自己的通讯录管理系统,以便对自己的同学、同事、朋友等信息资料的管理及使用。本毕业设计以通用的通讯录管理系统为实例,运用SQL Server 2005和Microsoft Visual Studio 2008进行程序设计,讲述如何开发通讯录管理系统。此设计具有很强的实用性,使用者只要根据具体情况稍加修改,就可以把它
3、应用到实际需要中。本设计主要包括系统用户管理模块、用户基本资料模块。我们根据这些功能,设计出系统的功能模块,每一个功能模块都需要针对不同的表完成相同的数据库操作,具体实现了用户和人员信息的查看和预览;更新(添加、修改、删除)模块,具体实现了用户和(新)人员信息的登记,修改和删除;生成预览报表,具体实现了人员信息的总的查看和浏览。设计利用Microsoft Visual Studio 2008 、SQL Server 2005数据库技术的基本特点,提高了编成效率和可靠性.关键词:通讯录管理系统、数据库、SQL、VS 一、设计目的 日益繁多的人际交往使得我们很难搞清楚与每个人之间的联系方式,特别是
4、对于做经常出差的人来说更是难,所以通讯录能够便捷的给我们带来所需要的相关信息。而随着计算机的普及,人们的生活摆脱了传统式的记事本、电话簿,越来越多的靠计算机来帮助人们记住这些事情,极其简便。这就需要有一个使用的通讯录管理系统,用户可以方便的通过自己电脑的通讯录管理系统,来随时查阅自己所需要的信息,而不必再大费周折去翻开那繁琐的记事本。通讯录管理系统是一个专门针对储存用户联系方式以及一些简单个人信息的实用管理系统,它方便了用户对众多客户、朋友、同事等个人信息的储存和快速查阅的功能,大大减少了查找过程的时间。二、需求分析2.1设计题目通讯录管理系统2.2设计构思通讯录管理系统功能需求分析:通讯录管
5、理系统主要功能分为五个模块:用户登录、用户查询、添加记录、修改记录、删除记录。用户登录与注册:实现不同用户的注册跟登录通讯录显示全部:实现用户对所有存在于数据库中的数据的显示,方便用户了解数据存储的情况。查找记录:实现用户在本软件数据库中查找自己需要的数据功能。添加记录:实现用户添加一条完整的记录,包括姓名、年龄、电话、地址。修改记录:用户对数据库中已存在的记录进行修改,然后保存已经修改过的数据删除记录:用户对数据库中已经存在的记录进行行删除操作,然后保存修改过的数据2.3运行界面需求界面应简洁,使用者易操作2.4开发及运行环境本系统开发平台及运行环境如下:系统开发平台:Microsoft V
6、isual Studio 2008系统开发语言:C#数据库管理软件:SQL Server 2005运行平台:Windows XP (SP2) / Windows2000 (SP4) / Windows Server 2003 (SP1)三、 模块分析及设计3.1系统功能结构图通讯录管理系统管理通讯录系统添加联系人系统修改信息联系人年龄联系人电话查找信息删除信息联系人住址联系人姓名 3.2系统数据流程图3.2.1 登陆模块设计 登录界面为用户提供用户登录,用户首先需要选择登陆对象,然后在输入用户名,密码,系统将数据提交到后台进行处理,如果校验成功,则跳转到系统主界面,如果校验失败,则跳转到登陆页
7、.根据分析做出登录模块流程图,如下图所示.进入首页输入用户名、密码报错信息判断数据输入是否合法?结 束开 始 用户登录模块流程3.2.2 联系人管理模块设计用户可以点联系人信息管理查看自己的个人信息,并可在上面进行修改,点修改按钮会将修改后的数据提交到数据库。根据上面的分析得出同学录的流程图,如下图所示用户登录查看他人修改个人中心提交到数据库返回查询条件分页显示失败提示查询对象是否存在操作成功四、 数据库设计4.1数据库需求分析针对通讯录管理系统,分别对用户登录、添加通讯录和查找、删除以及修改数据进行详细的调研和分析,总结出如下的需求信息:1.每条原始记录要有姓名、年龄、电话、地址信息,其中姓
8、名不能为空。2.保证查询到的数据与姓名相一致3.根据相应姓名删除对应的全部数据4.2 数据表设计4.2.1、用户表(Users)字段名数据类型长度主键否允许空描述UserNamechar10是否登录名UserPwdchar16否是登录密码4.2.2、通讯录联系人表(Person)字段名数据类型长度主键否允许空编号int10是否姓名Varchar20否否年龄Int4否是电话Varchar50否否地址Varchar50否是五、系统实现5.1 ClassesManage类开发项目时,以类的形式来组织、封装一些常用的方法和事件,以便提高代码的重用率,大大方便了代码的管理。本系统中创建了一个公共类:Cl
9、assesManage.cs,主要是用来判断后台数据库里是否存在用户输入的内容如果存在就返回true,否则返回false。using System;using System.Collections.Generic;using System.Text;using System.Data;using System.Data.SqlClient;namespace 通讯录管理系统 class ClassesManage #region ClassID ClassName OrderBy ClassTel ClassAddress 定义全局变量 / / 定义变量 / public int ClassI
10、D = 0; public string ClassName = ; public int OrderBy = 0; public string ClassTel = ; public string ClassAddress = ; #endregion #region bool ClsAdd 类别添加 / / 添加类别 / / public bool ClsAdd() SqlConnection conn = new SqlConnection(dbBase.ConStr); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = i
11、nsert into Classes (ClassName,orderby,ClassTel,ClassAddress) values ( + ClassName + , + OrderBy + ,+ClassTel +,+ClassAddress +); try conn.Open(); cmd.ExecuteNonQuery(); return true; catch return false; finally conn.Close(); #endregion #region bool ClsUpdate 修改类别 / / 修改类别 / / public bool ClsUpdate()
12、SqlConnection conn = new SqlConnection(dbBase.ConStr); SqlCommand cmd = conn.CreateCommand(); cmd.CommandText = update classes set ClassName= + ClassName + ,orderby= + OrderBy + ,ClassTel=+ClassTel +,ClassAddress=+ClassAddress + where ClassID= + ClassID; try conn.Open(); cmd.ExecuteNonQuery(); retur
13、n true; catch return false; finally conn.Close(); #endregion #region bool ClsDel 删除类别 / / 删除类别 / / public bool ClsDel() SqlConnection conn=new SqlConnection(dbBase.ConStr); SqlCommand cmd=conn.CreateCommand(); cmd.CommandText=delete from classes where classid=+ClassID; try conn.Open(); cmd.ExecuteNo
14、nQuery(); return true; catch return false; finally conn.Close(); #endregion #region DataSet ClsSelect 查询类别表中的内容 / / 查询类别表中的内容,返回dataset / / public DataSet ClsSelect() SqlDataAdapter DApt=new SqlDataAdapter(select classid as 编号,className as 姓名,orderby as 年龄,classTel as 电话,classAddress as 地址 from Clas
15、ses order by orderby asc,dbBase.ConStr); DataSet ds=new DataSet(); DApt.Fill(ds); return ds; #endregion 5.2 登录模块的实现登录模块是系统中重要的组成部分,当用户进入系统时必须先通过身份验证,即验证用户登录时输入的用户名和密码是否与数据库中数据表的相关信息相符,并验证校验码是否正确.如果通过验证,则将用户对象存入session中.登陆界面如下:关键代码如下:using System;using System.Collections.Generic;using System.Componen
16、tModel;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Text;using System.Windows.Forms;namespace 通讯录管理系统 public partial class FormLogin : Form public int count = 0; public FormLogin() InitializeComponent(); private void button2_Click(object sender, EventArgs e) this.C
17、lose(); private void button1_Click(object sender, EventArgs e) if (txtZH.Text.Equals() MessageBox.Show(帐号不能为空); txtZH.Focus(); return; else if (txtMM.Text.Equals() MessageBox.Show(密码不能为空); txtMM.Focus(); return; else string sql = select * from admin where userName= + txtZH.Text + and userPass= + txt
18、MM.Text + ; SqlConnection conn = new SqlConnection(dbBase.ConStr); SqlCommand cmd = new SqlCommand(sql, conn); conn.Open(); SqlDataReader dr = cmd.ExecuteReader(); if (dr.Read() FormMain fm = new FormMain(); this.Hide(); fm.Show(); else MessageBox.Show(登录失败); count = count + 1; if (count = 3) button
19、1.Enabled = false; else button1.Enabled=true; conn.Close(); private void FormLogin_Load(object sender, EventArgs e) 5.3验证完成后进入主界面如下图主要代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;nam
20、espace 通讯录管理系统 public partial class FormMain : Form public FormMain() InitializeComponent(); private void 通讯录ToolStripMenuItem_Click(object sender, EventArgs e) private void 联系方式管理ToolStripMenuItem_Click(object sender, EventArgs e) private void toolStripStatusLabel3_Click(object sender, EventArgs e)
21、 private void 退出系统ToolStripMenuItem_Click(object sender, EventArgs e) Application.Exit(); private void 添加联系人信息ToolStripMenuItem_Click(object sender, EventArgs e) formClassAdd fcAdd = new formClassAdd(); fcAdd.MdiParent = this; fcAdd.Show(); private void 管理联系人信息ToolStripMenuItem_Click(object sender,
22、EventArgs e) frmClassManage fcm = new frmClassManage(); fcm.MdiParent = this; fcm.Show(); private void FormMain_FormClosed(object sender, FormClosedEventArgs e) Application.Exit(); private void FormMain_Load(object sender, EventArgs e) 5.4、添加模块的实现 当在主界面中单击联系人信息添加会出现如下窗体,然后单击添加,输入的数据会自动保存在数据库中:主要代码如下
23、:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.SqlClient;using System.Drawing;using System.Text;using System.Windows.Forms;namespace 通讯录管理系统 public partial class formClassAdd : Form public formClassAdd() InitializeComponent(); private v
24、oid comboBox1_SelectedIndexChanged(object sender, EventArgs e) private void formClassAdd_Load(object sender, EventArgs e) for (int i = 0; i = 100; i+) comboBox1.Items.Add(i); private void button2_Click(object sender, EventArgs e) this.Close(); private void button1_Click(object sender, EventArgs e) C
25、lassesManage ClsMg = new ClassesManage(); ClsMg.ClassName = textBox1.Text.Trim(); ClsMg.OrderBy = Convert.ToInt32(comboBox1.Text.Trim(); ClsMg.ClassTel = textBox2.Text.Trim(); ClsMg.ClassAddress = textBox3.Text.Trim(); if (ClsMg.ClsAdd() MessageBox.Show(人员添加成功); else MessageBox.Show(人员添加失败nn请检测输入数值的
26、正确性); 5.5、联系人信息管理模块实现 联系人信息管理模块包括查询、修改、删除功能,通过以下操作实现:主要代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;namespace 通讯录管理系统 public partial class frmClassManage : Form ClassesManage cmg = n
27、ew ClassesManage(); public frmClassManage() InitializeComponent(); private void InitDgv() DataSet ds = new DataSet(); ds = cmg.ClsSelect(); dataGridView1.DataSource = ds.Tables0; private void frmClassManage_Load(object sender, EventArgs e) InitDgv(); for (int i = 0; i = 100; i+) comboBox1.Items.Add(
28、i); private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) try textBox1.Text = Convert.ToString(dataGridView1.CurrentRow.Cells1.Value); comboBox1.SelectedItem = Convert.ToInt32(dataGridView1.CurrentRow.Cells2.Value); textBox2.Text = Convert.ToString(dataGridView1.
29、CurrentRow.Cells3.Value); textBox3.Text = Convert.ToString(dataGridView1.CurrentRow.Cells4.Value); catch MessageBox.Show(选择越界); private void button1_Click(object sender, EventArgs e) cmg.ClassID =Convert.ToInt32(dataGridView1.CurrentRow.Cells0.Value); cmg.ClassName = textBox1.Text.Trim(); cmg.OrderB
30、y = Convert.ToInt32(comboBox1.Text.Trim (); cmg.ClassTel = textBox2.Text.Trim(); cmg.ClassAddress = textBox3.Text.Trim(); if (cmg.ClsUpdate() MessageBox.Show(修改成功!); InitDgv(); else MessageBox.Show(修改失败nn请检测输入数据的正确性!); private void button2_Click(object sender, EventArgs e) cmg.ClassID = Convert.ToIn
31、t32(dataGridView1.CurrentRow.Cells0.Value); if (cmg.ClsDel() MessageBox.Show(删除成功); InitDgv(); else MessageBox.Show(删除失败); 六、设计总结这次的课程设计是对我们这学期c#学习的一次大检验。自己动手,自己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次课程设计中彻底暴露出来,经过不断思考,不断查阅资料和上机运行,解决其中大部分问题,当然还存在一些问题没有解决。我相信在以后的学习能够解决好它们。当然从这次课程设计使我们学到了以前没有学过的很多知识,在具体的程序实践
32、中主要是对数据库连接和一些控件的应用有了更深的认识。使我们对VS程序设计有了更深层次的认识和理解,懂得了VS窗体应用程序基本设计流程和SQL Server 2005数据库设计。这次我们是小组作业,为了使各自做的界面能够更好的结合到一起,我们这次设计的数据库比较简单。我们分工合作最后共同努力把程序的基本功能基本上都实现了。我们通过对课本的研究,通过几天的努力终于将已经完成了的程序在界面是进行了美化,可以使用户在使用的时候能够赏心悦目。最后,在此由衷的向我的指导老师表示衷心的感谢,是他们的悉心指导和严格要求,才使我的课程设计有了较为完善的一面,才有了我能力的提高,得到了充分的锻炼。致谢值此论文完成之际,首先,要感谢我的父母对我学习的大力支持和默默的关心,他们的支持和我今天所取得的成绩是密切相关的。其次,我要感谢我的指导老师王玉萍