版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一 引言通讯录是我们日常生活中经常用到的抽象通讯管理工具,用其自身齐全的功能给人们带来通讯的方便。本通讯录系统用计算机管理电子通讯录,是一种计算机应用技术的创新,在计算机还未普及之前通讯管理都是由联系人采用名片,笔录手工记帐的方式来操作的。现在一般的通讯录管理都是采用计算机作为工具的实用的计算机通讯录管理程序来帮助人们进行更有效的通讯录信息管理。通讯录管理系统是典型的信息管理系统(MIS),要求应用程序功能完备,易使用等特点。管理信息系统(MIS)的应用已深入到社会的各行各业,它是信息、软件与科学管理相结合的产物。而通讯录管理系统是典型的信息管理系统(MIS)。MIS的开发过程是从可行性研究开
2、始,经过系统分析、系统设计、系统实施等主要阶段的规范开发过程。在本次的课程设计中用Visual C#.NET设计了这个通讯录系统。本系统实现了通讯录的添加、修改、删除及查询功能。提供筛选功能,即程序能够按照姓名、性别等多项进行筛选,列出满足条件的人员名单。设计界面美观,大方、实用。这是一个基于SQL Server2000的通讯录系统。系统的主要功能是:分组信息以及联系人信息录入功能,各种数据修改和删除功能以及多项查询和统计功能。数据库技术的产生与发展源于对于数据的组织和管理,数据库技术的基本思想是对数据实行集中、统一、独立的管理,用户可以最大限度的共享数据资源。数据库系统实际上是一个应用系统,
3、它是在计算机硬、软件系统支持下,由用户、数据库管理系统、存储在存储设备上的数据和数据库应用程序构成的数据处理系统。数据库系统是由数据、数据库管理系统、应用程序以及用户组成。本系统以Microsoft Visual Studio 2005为开发平台,Micrsoft SQL Server2000为后台数据库。二 总体设计1 系统需求分析数据库原理与应用课程设计是学习完数据库原理与应用课程后进行的一次全面的综合性上机实验。本次课程设计使用平台进行开发,开发软件有Microsoft Visual Studio 2005和Microsoft SQL Server2000。本次的课程设计,主要是设计一个
4、通讯录系统,包含编号、姓名、单位、通信地址、邮箱和联系 等基本信息,应该具有以下功能:(1)录入信息 ,将录入的信息导入数据表;(2)删除,将指定的信息(按姓名或分组)删除并保存;(3)修改,将指定的信息(按姓名或分组)修改并保存;(4)浏览,将录入的全部信息显示出来,以便用户查看;(5)查找,按姓名、 等各种条件查找指定的信息;(6)保存,保存所录入,修改,删除的信息。2 系统的主要功能(1)联系人分组管理:创建、删除、修改联系人与用户关系类别;(2)联系人管理: 可以对联系人进行多项查询,可按分组类别、姓名、性别、联系 等个人信息进行模糊查询; 可以添加新的联系人信息; 可以对已添加的联系
5、人信息执行修改、删除、查看的操作;(3)用户管理:可以对当前用户执行修改密码的操作;(4)重新登录:退出当前通讯录系统返回用户登录界面;(5)用户登录界面:可进行用户登录,以及新用户的注册,当注册新用户后旧的用户信息以及联系人信息将被删除;(6)退出系统:跳转至start页面,点击退出按钮关闭窗口。3 系统的基本内容(1)在用户登录页面输入用户名以及密码,如果密码输入正确,则进入通讯录管理系统,可以对数据库进行信息录入、数据修改和删除等功能。(2)用户可以使用多种条件进行模糊查询,将相应的信息进行查询统计。(3)数据库要包含的表有:user(name、password)group(groupI
6、D、Gname)infrmation(ID、name、sex、mobileNum、familyNum、officialNum、QQ、Email、address、groupID)(4)对数据库进行完整性设计:给每个表实施主外键约束,设定缺省约束、非空约束,实施CHECK约束以及对相应字段实施规则。(5)使用C#语言编写前台,更方便用户对数据库的操作、维护。4 通讯录系统流程图本系统为通讯录系统,用户通过登录界面进入系统主页面,在主页面用户可以根据自己的需要选择菜单项,进行下一步操作,通讯录系统流程图如图2-1所示:图2-1 通讯录系统流程图三 数据库设计1 个人通讯录系统E-R图通过对通讯录系统
7、的分析,共有两个E-R图,如图3-1、图3-2所示:图3-1 通讯录系统用户E-R图图3-2 通讯录系统联系人信息E-R图2 数据库表该系统共用到三个数据表,其中在user表中,“name”为主键;在group表中,“groupID”为主键;在infrmation表中“ID”是主键,“groupID”为infrmation表的外码。三个数据表的设计如下所示:表1 user表字段名称字段类型字段大小允许为空备注namevarchar8否(主键)用户名passwordvarchar16否用户密码表2 group表字段名称字段类型字段大小允许为空备注groupIDint4否(主键)分组编号Gname
8、varchar16否分组名称表3 infrmation表字段名称字段类型字段大小允许为空备注IDint4否(主键)联系人编号namevarchar8否姓名sexvarchar4否性别mobileNumvarchar13是 号码familyNumvarchar15是家庭 officialNumvarchar15是办公 QQvarchar15是QQ号码Emailvarchar30是电子邮箱addressvarchar50是 groupIDint4否所在组3 数据库表间关系图在本系统中,information表中的groupID字段与group表中的ID字段是相对应的,这样可以保证数据的完整性,保证
9、每个联系人的分组是正确的。通讯录系统数据关系如图3-3所示:图3-3 通讯录系统数据库关系图4 逻辑结构设计(1)建库:新建数据库命名为db1,采用Windowns身份验证方式连接数据库。create database db1 ON PRIMARY(name= db1_data, log on filename=d: db1.mdf,size=10,maxsize=unlimited,filegrowth=10%)(name= db1_log,filename=d: db1L.ldf, size=10,maxsize=50,filegrowth=1)(2)建表:创建user表:create t
10、able user( name varchar(8) primary key, password varchar(16) not null,) 创建group表:create table group( groupID int primary key, Gname varchar(16) not null, )创建information表:create table information( ID int primary key, name varchar(8) not null, sex varchar(4) not null, mobileNum varchar(13), familyNum
11、varchar(15), officialNum varchar(15), QQ varchar(15), Email varchar(30), address varchar(50), groupID int null ) 各组中联系人信息视图:SELECT dbo.group.Gname, , rmation.sex, rmation.mobileNum,rmation.familyNum, rmation.officialNum, FROM dbo.group INNER JOIN四
12、主要功能模块设计1 用户登录模块设计用户登录模块的设计原理是将前台界面和数据源连接后,绑定记录集,用户登录时,通过输入正确的用户名以及密码进入系统主界面,如果该用户还未注册,可以点击“注册”跳转到新用户注册页面。用户登录界面如图4-1所示:图4-1 用户登录界面该模块功能实现代码入下: protected void login_Click(object sender, EventArgs e) string name, pass; name = this.Text_name.Text; pass = this.Text_pass.Text; string sql=select*from use
13、r where name=+name+and password=+pass+; DataSet ds = DBLayer.DB.Execute(sql); if (ds.Tables0.Rows.Count = 1) Sessionname = name; Response.Write(alert(登录成功!);window.location.href=main.htm); return; else Response.Write(alert(用户名或密码错误!); 2 用户注册模块设计在用户注册模块进行注册时,用户需要添加名称、密码以及确认密码进行注册,因为在设计通讯录系统时考虑的是单个用户的
14、使用,所以在注册新用户的同时会将默认用户信息进行删除操作,即清空数据表。用户注册界面如图4-2所示:图4-2 用户注册界面该模块功能实现代码如下:string sql = delete from user; DBLayer.DB.ExecuteNonQuery(sql); string sql0 = delete from group; DBLayer.DB.ExecuteNonQuery(sql0); string name,password; password=this.TextBox_password.Text; string sql1 = insert into user (name,
15、password) values( + name + , + password + ); DBLayer.DB.ExecuteNonQuery(sql1); Response.Write(alert(添加新用户成功!旧通讯录已清除!);window.location.href=Default.aspx);3 系统主界面设计在该模块中使用了框架技术,由top.htm、left.htm、star.htm即主界面,通过部分的菜单项进行相应的操作,而与所选操作相对应的界面将在star.htm部分中显示。本通讯录系统主界面如图4-3所示:图4-3 通讯录系统主界面该模块主要代码如下:主页面4 创建分组模
16、块设计在该界面用户可以添加新的分组,用户只需添加分组名称,分组编号已经设为自动编号,无需手动添加。创建分组界面如图4-4所示:图4-4 创建分组界面该模块功能实现代码入下:protected void Button1_Click(object sender, EventArgs e) string Gname; Gname = this.TextBox_name.Text; string sql = insert into group(Gname) + values( + Gname + ); DBLayer.DB.ExecuteNonQuery(sql); Response.Write(al
17、ert(添加成功!);window.location.href=star.htm); 5 分组信息维护模块设计在该模块中,所有的分组都会显示出来,通过用户的选择进行各个分组的修改、删除操作。如果用户选择修改则会跳转到该组相应的修改界面,如果选择删除则会直接删除该分组。分组信息维护界面如图4-5所示:图4-5 分组信息维护界面 该模块功能实现代码如下:private void GetList() string strcnn = ConfigurationManager.ConnectionStringsfundlink.ConnectionString.ToString(); SqlConnec
18、tion ConnAcc = new SqlConnection(strcnn); ConnAcc.Open(); string RecordCountSQL = select count(*) From information ; SqlCommand command1 = new SqlCommand(RecordCountSQL, ConnAcc); MyPaper1.RecordCount = (int)command1.ExecuteScalar(); string SearchSQL = select * From information ; DataSet set1 = new
19、DataSet(); SqlDataAdapter adapter1 = new SqlDataAdapter(SearchSQL, ConnAcc); adapter1.Fill(set1, MyPaper1.DataSet_StartIndex, MyPaper1.PageSize, TableName); GridView1.DataSource = set1; GridView1.DataBind(); ConnAcc.Close(); 6 分组信息修改模块设计该模块实现分组名称的修改,该操作是在分组维护界面进行选择的,所以原分组名称是已知的,用户无需再输入原名称进行修改。分组信息修改
20、界面如图4-6所示:图4-6 分组信息修改界面功能实现代码如下: protected void Button1_Click(object sender, EventArgs e) string Gname = this.TextBox_name.Text; string sql = update group set Gname= + Gname + where id= + Request.QueryStringid; DBLayer.DB.ExecuteNonQuery(sql); Response.Write(alert(修改成功!);window.location.href=star.ht
21、m); protected void Button2_Click(object sender, EventArgs e) Response.Redirect(group_m.aspx); 7 添加联系人信息模块设计该模块实现联系人信息的添加,其中带星号的内容为必填项,联系人编号为自动编号,无需手动添加。而所在组名称字段使用的是下拉框工具,其内容是从group表中查询得到的,确保数据的完整性。添加联系人信息界面如图4-7所示:图4-7 添加联系人信息界面该模块功能实现代码如下:string name, sex, mobileNum, familyNum, officialNum, QQ, Ema
22、il, address, groupID; name = this.TextBox1.Text;2.Text; mobileNum = this.TextBox3.Text; familyNum = this.TextBox4.Text; officialNum = this.TextBox5.Text; QQ = this.TextBox6.Text; Email = this.TextBox7.Text; address = this.TextBox8.Text; groupID = this.DropDownList1.Text; string sql=Select * from use
23、r where name=+name+; DataTable dt = DBLayer.DB.Execute(sql).Tables0; if (dt.Rows.Count != 0) Response.Write(alert(已添加该联系人!);); return;string sql0=insert into information (name,sex,mobileNum,familyNum,officialNum,QQ,Email,address,groupID) +values( + name + , + sex + , + mobileNum + , + familyNum + ,
24、+ officialNum + , + QQ + , + Email + , + address + , + groupID + ); DBLayer.DB.ExecuteNonQuery(sql0); Response.Write(alert(添加联系人成功!);window.location.href=information_modify.aspx;);8 联系人信息维护模块设计在该模块中将联系人信息陈列出来,使用分页控件将全部信息设为每五条信息为一页,在该模块用户可以选择“查看”、“修改”、“删除”选项对联系人信息进行操作,通过选择上一页、下一页或输入页码查看更多的信息。“查看”和“修改
25、”功能被选择后会跳转到相应的页面,选择“删除”则会弹出确认删除对话框进行相应操作。联系人信息维护界面如图4-8所示:图4-8 联系人信息维护界面该模块功能实现代码如下:string sql = delete from information where id= + this.GridView1.Rowse.RowIndex.Cells0.Text; DBLayer.DB.ExecuteNonQuery(sql); fill(); GetList(); protected void GridView1_RowDataBound(object sender, GridViewRowEventArg
26、s e) if (e.Row.RowType != DataControlRowType.Header) e.Row.Cells5.Attributes.Add(onclick, return confirm(确认要删除吗?););9 联系人信息查询模块设计在该模块用户可以根据自己的需要进行多项条件的查询,该查询界面也支持模糊查询,查询结果将显示在页面下方,每页显示五条信息,用户可以通过点击“查看详细信息”跳转到联系人详细信息查看界面。联系人信息查询界面如图4-9所示:图4-9 联系人信息查询界面功能实现代码入下:string str = ; if (this.TextBox_name.Tex
27、t != ) str = str+and name like% + this.TextBox_name.Text + %; if (this.sex.Text != ) if (this.sex.Text = 全部) str = str + and (sex=男 or sex=女); else str = str + and sex like% + this.sex.Text + %; if (this.TextBox_mobile.Text != ) str = str + and mobileNum like% + this.TextBox_mobile.Text + %; if (thi
28、s.TextBox_family.Text!=) str = str+and familyNum like% + this.TextBox_family.Text + %; if (this.TextBox_offical.Text!= ) str = str+and officialNum like% + this.TextBox_offical.Text + %; if (this.TextBox_QQ.Text != ) str = str + and QQ like% + this.TextBox_QQ.Text + %; if (this.TextBox_Email.Text !=
29、) str = str + and Email like% + this.TextBox_Email.Text + %; if (this.TextBox_address.Text!=) str = str+and address like% + this.TextBox_address.Text + %; if(this.CheckBox1.Checked = false) str = str + ; if (this.CheckBox1.Checked = true) this.Label1.Text = this.fenzu.Text; str = str + and groupID=
30、+ this.Label1.Text; 10 联系人信息修改模块设计该模块实现联系人信息的修改,在联系人信息修改界面中显示了改联系人的所有信息,用户可以根据自己的需求对相应内容进行修改,点击“修改”按钮进行修改。如果用户希望放弃本次修改,只需点击“取消”按钮就会将信息还原。联系人信息修改界面如图4-10所示:图4-10 联系人信息修改界面,功能实现代码入下:string name =this.TextBox1.Text ; string sex = this.TextBox2.Text; string mobileNum=this.TextBox3.Text; string familyNum
31、=this.TextBox4.Text; string officialNum=this.TextBox5.Text; string QQ=this.TextBox6.Text; string Email=this.TextBox7.Text; string address=this.TextBox8.Text; string groupID=this.TextBox9.Text; string sql = update information set name= + name + ,sex= + sex + ,mobileNum= + mobileNum + ,familyNum= + fa
32、milyNum + ,officialNum= + officialNum + ,QQ= + QQ + ,Email= + Email + ,address= + address + ,groupID= + groupID + where ID= + Request.QueryStringid; DBLayer.DB.Execute(sql); Response.Write(alert(修改成功!);window.location.href=information_modify.aspx;);11 联系人信息查看模块设计该模块实现联系人详细信息的查看,用户不能对其进行操作只能浏览信息,用户可以
33、在联系人查询界面以及联系人信息维护界面进入到该界面进行查看。联系人信息查看界面如图4-11所示:图4-11 联系人信息查看界面该模块主要代码入下:string sql = select * from information where ID= + Request.QueryStringid; DataTable dt = DBLayer.DB.Execute(sql).Tables0; this.Label1.Text = dt.Rows0name.ToString(); this.Label2.Text = dt.Rows0sex.ToString(); this.Label3.Text =
34、 dt.Rows0mobileNum.ToString(); this.Label4.Text = dt.Rows0familyNum.ToString(); this.Label5.Text = dt.Rows0officialNum.ToString(); this.Label6.Text = dt.Rows0QQ.ToString(); this.Label7.Text = dt.Rows0Email.ToString(); this.Label8.Text = dt.Rows0address.ToString(); string sql0 = SELECT group.Gname, information.ID FROM group INNER JOIN information ON group.ID = information.groupID WHERE information.ID= + Request.QueryStringid; DataTable DT= DBLayer.DB.Execute(sql0).
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年吉安县医疗事业单位人员招聘笔试模拟试题及答案解析
- 2026年东至县医疗事业单位人员招聘笔试备考试题及答案解析
- 2026年芒康县医疗事业单位人员招聘笔试参考题库及答案解析
- 2026年嘉善县医疗事业单位人员招聘笔试备考试题及答案解析
- 2026年通城县医疗事业单位人员招聘笔试备考题库及答案解析
- 2026年固安县医疗事业单位人员招聘考试备考题库及答案解析
- 2026年霍山县带编教师招聘笔试备考题库及答案解析
- 2026年彝良县医疗事业单位人员招聘考试参考题库及答案解析
- 2026年田东县医疗事业单位人员招聘笔试参考题库及答案解析
- 2026年临朐县医疗事业单位人员招聘笔试备考题库及答案解析
- 美国STEM教育的探析及启示
- 护理管理学基础郑翠红
- JB-T 4149-2022 臂式斗轮堆取料机
- 风机齿轮箱介绍课件
- 幼儿一日活动保育-生活活动保育(婴幼儿保育课件)
- 山东2023年青岛银行西海岸分行社会招聘考试参考题库含答案详解
- 2022年江苏苏州张家港经开区(杨舍镇)学校公益性岗位招聘笔试备考题库及答案解析
- GB/T 11668-1989图书和其它出版物的书脊规则
- 地暖工程施工方案()
- 生物高考真题卷-天津卷(含答案解析)
- 人教版小学一年级道德与法治上册全册教学完整课件
评论
0/150
提交评论