面向对象程序设计和数据库开发技术课程设计-个人通迅录系统_第1页
面向对象程序设计和数据库开发技术课程设计-个人通迅录系统_第2页
面向对象程序设计和数据库开发技术课程设计-个人通迅录系统_第3页
面向对象程序设计和数据库开发技术课程设计-个人通迅录系统_第4页
面向对象程序设计和数据库开发技术课程设计-个人通迅录系统_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、*课 程 设 计课 程面向对象程序设计和数据库开发技术题 目个人通迅录系统专 业计算机应用技术班 级姓 名指导教师2011年6月18日一、课程设计目的课程设计有肋于大家的动手能力的增强,有利于大家对基础知道的掌握,有利于同学们对面向对象和数据库开发的进一步了解和深刻体会。我所做的系统是为了大家能更好的管理自己的通迅录,妥善管理个人的联系人的信息。二、系统需求分析(简要描述系统业务和功能,开发环境)。 个人通迅录管理系统是在面向对象和数据库开发两方面的基础上开发出来的,它是为了让大家妥善处理自己的联系人的信息,具有一定的保密功能,有利于自己联系人信息的安全性。该系统主要由:用户登陆,用户注册,修

2、改密码,查看,查询,进入登陆界面这六个界面组成,含有对通讯录信息进行添加,修改,删除的功能。还有对用户对象信息的添加和修改功能。对通迅录可以按不同的条件查询。三、系统总体设计1、系统功能模块图修改密码查看个人的通迅录个人管理用户登陆用户注册用户管理添加联系人删除联系人修改联系人通迅录管理个人通迅录系统用户登录一般管理按用户名查询按姓名查询图 系统功能图2、系统功能描述(1) 用户登录模块:分为一般用户和管理员两种身份登录,这两种身份登录后进入同一种主界面。(2) 个人管理模块:这个模块是个人对自己的相关信息进行处理,包括登陆的密码的修改;查看自己的通迅录信息,查看到联系人的具体信息。(3) 用

3、户管理模块:包括用户注册,和用户登陆。(4) 通迅录管理模块:这个部分主要是用户对其进行操作,是用户对自己的通迅录进行添加联系人,修改联系人和删除联系人。 (5) 一般管理模块:这个模块主要是用户进行查询,用户对其他用户的联系人的查询,按照不同的条件进行查询。四、数据库设计1、概念设计(er图)(此部分可以省略)2、逻辑设计用户信息表(用户名,用户密码,用户类型)联系人信息表(用户名,联系人编号,姓名,性别,类别名,移动电话,固定电话,工作单位,生日,) 联系人类别表(类别,类别编号,备注)用户信息表联系人信息表(用户名,用户名)联系人类别表联系人信息表(类别,类别名)3、表的设计,包括表的结

4、构、约束等图 联系人信息表字段名字段类型长度设置键字段约束设置的约束及其说明用户名char10外键not nullforeign key 约束此用户名必须与用户信息表的用户名一样联系人编号char5主键not nullprimary key 约束具有唯一性,它的值不能为空姓名char30not null性别char10not nullcheck 约束性别只能是男或者女类别名char30not nullforeign key 约束此类别名必须与联系人类别表中的类别相同移动电话char30not null工作单位char20not null生日datetimenull固定电话char10null图

5、 用户信息表字段名字段类型长度设置键字段约束设置的约束及其说明用户名char10主键not nullprimary key 约束具有唯一性,它的值不能为空用户密码char30not null用户类型char20not null图 联系人类别表字段名字段类型长度设置键字段约束设置的约束及其说明类别编号char10not nullprimary key 约束具有唯一性,它的值不能为空类别char30主键not null备注char100null4、视图设计(包括视图和作用)视图创建如下:select dbo.user.type, dbo.contactsinfo.username, dbo.con

6、tactsinfo.contactsname, dbo.contactsinfo.contactsid, dbo.contactsinfo.sex, dbo.contactsinfo.workunit, dbo.contactsinfo.birthday, dbo.contactsinfo.classname, dbo.contactsinfo.mobilephone, dbo.contactsinfo.f_telephone from dbo.user inner join dbo.contactsinfo on dbo.user.username = dbo.contactsinfo.us

7、ername作用:可以选取一个表或多个表中的某些字段来建立视图,这样对于某些操作更方便,更简单5、存储过程设计(包括功能算法描述和存储过程代码)(1)性别存储过程如果性别为女,则显示女的联系人的信息,如果是男,则显示男的联系人的信息。代码如下:set ansi_nulls onset quoted_identifier ongo- =- author:name- create date: - description:- =alter procedure dbo.xb - add the parameters for the stored procedure heresex char(10)as

8、begin- set nocount on added to prevent extra result sets from- interfering with select statements.set nocount on; - insert statements for procedure hereselect * from contactsinfo where sex=sexend(2)统计的存储过程根据性别的录入,显示此性别的联系人的数量。代码如下:set ansi_nulls onset quoted_identifier ongo- =- author:name- create d

9、ate: - description:- =alter procedure dbo.liugan - add the parameters for the stored procedure heresex char (10), count int = 0asbegin- set nocount on added to prevent extra result sets from- interfering with select statements.set nocount on; - insert statements for procedure hereselect count=count(

10、sex) from contactsinfowhere sex=sexreturn countend五、系统功能模块实现包括每个功能模块的算法说明,界面图,关键代码如:1登录模块登录模块分为两种身份,一种是普通用户,一种是管理员。通过这个模块进入相同的主界面。首先调用数据库连接的,然后读取数据库,将登陆的内容判断是否为空,为空则输入内容,并且其内容要与数据库的内容相同,否则登陆失败,同时登陆时显示登陆的时间,有利于用户了解时间。界面设计如图1所示代码如下:using system;using system.collections.generic;using system.componentmo

11、del;using system.data;using system.drawing;using system.text;using system.windows.forms;using system.data.sqlclient;namespace liugan public partial class frmlogin : form public frmlogin() initializecomponent(); private void frmlogin_load(object sender, eventargs e) private void btnlogin_click(object

12、 sender, eventargs e) sqlconnection conn = new sqlconnection(); conn.connectionstring = data source=.;initial catalog=lg;integrated security=true; string username = txtusername.text.trim(); string password = txtpassword.text.trim(); string type = combobox1.text.trim(); string sql1 = string.format(se

13、lect count(*) from user where username=0, username); string sql2 = string.format(select password from user where username=0, username); string sql3 = string.format(select type from user where username=0, username); sqlcommand cmd = new sqlcommand(sql1,conn); try conn.open(); int num = (int)cmd.execu

14、tescalar(); if (num = 0) messagebox.show(你输入的用户名不存在!); txtusername.focus(); txtusername.select(); return; else sqlcommand cmd2 = new sqlcommand(sql2,conn); string password = (string)cmd2.executescalar(); if (password != password) messagebox.show(密码输入错误!); txtpassword.focus(); txtpassword.select(); r

15、eturn; else sqlcommand cmd3 = new sqlcommand(sql3,conn); string type = (string)cmd3.executescalar(); if (type!=type) messagebox.show(此类型的用户不存在!); combobox1.focus(); combobox1.select(); return; this.hide(); messagebox.show(欢迎进入个人通讯录管理系统:+username); frmmain aa = new frmmain(); aa.zhang.text = txtusern

16、ame.text; aa.usertype.text = combobox1.text; aa.mima.text = txtpassword.text; aa.showdialog(); catch(sqlexception ex) messagebox.show(ex.tostring(); finally conn.close(); private void btnclose_click(object sender, eventargs e) this.close(); private void btnregister_click(object sender, eventargs e)

17、this.hide(); frmregister register = new frmregister(); register.showdialog(); 2.修改密码模块这是管理员和一般用户为了使自己的账号受到保护而可以自己修改自己的密码。用户名是自己的用户名,旧密码和用户名都是只读的,方便修改。设计界面如下:代码如下:using system;using system.collections.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using s

18、ystem.windows.forms;using system.data.sqlclient;namespace liugan public partial class frmupdatepassword : form public frmupdatepassword() initializecomponent(); private void btnconfirm_click(object sender, eventargs e) string str = data source=.;initial catalog=lg;integrated security=true; string sq

19、lstr = string.format(update user set password=0where username=1and password=2,txtnewpwd.text.trim(),txtusername.text.trim(),txtoldpwd.text.trim(); sqlconnection conn = new sqlconnection(str); conn.connectionstring = data source=.;initial catalog=lg;integrated security=true; sqlcommand cmd = new sqlc

20、ommand(sqlstr,conn); if (txtoldpwd.text.trim() != txtnewpassword.text.trim() messagebox.show(你输入的旧密码不正确!); this.txtoldpwd.clear(); ; this.txtoldpwd.focus(); else if(txtnewpwd.text!= txtrnewpwd.text) messagebox.show(你输入的密码不一致!请重新输入!); txtnewpwd.clear(); txtrnewpwd.clear(); txtnewpwd.focus(); else if

21、(messagebox.show(你确定要修改吗?, 提示, system.windows.forms.messageboxbuttons.yesno, system.windows.forms.messageboxicon.question) = system.windows.forms.dialogresult.yes) conn.open(); cmd.executenonquery(); messagebox.show(修改密码成功!); else this.close(); private void btnnew_click(object sender, eventargs e) t

22、xtoldpwd.text = ; txtnewpwd.text = ; txtrnewpwd.text = ; txtoldpwd.focus(); private void btnexit_click(object sender, eventargs e) this.close(); private void txtusername_textchanged(object sender, eventargs e) 3.注册模块这个模块主要就是用户注册,这个模块也要连接数据库,相当于是添加用户信息表的内容。设计界面如下:代码如下:using system;using system.collec

23、tions.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using system.data.sqlclient;using system.io;namespace liugan public partial class frmregister : form string str = data source=.;initial catalog=lg;integrated security=true; p

24、ublic frmregister() initializecomponent(); private void btnreg_click(object sender, eventargs e) try if (txtusername.text = | txtpassword.text = | combobox1.text = ) if (messagebox.show(请输入完整的个人信息, 信息提示, system.windows.forms.messageboxbuttons.yesno, system.windows.forms.messageboxicon.warning) = sys

25、tem.windows.forms.dialogresult.yes) if (txtusername.text = ) txtusername.focus(); else if (txtpassword.text = ) txtpassword.focus(); else if (combobox1.text = ) combobox1.focus(); return; else this.close(); else if (txtrep.text = ) if (messagebox.show(请输入确认密码, 提示, system.windows.forms.messageboxbutt

26、ons.yesno, system.windows.forms.messageboxicon.warning) = system.windows.forms.dialogresult.yes) txtrep.clear(); txtrep.focus(); return; else this.close(); else if (txtrep.text != & txtpassword.text != txtrep.text) if (messagebox.show(输入的密码不一致!, 提示, system.windows.forms.messageboxbuttons.yesno, syst

27、em.windows.forms.messageboxicon.warning) = system.windows.forms.dialogresult.yes) txtpassword.clear(); txtrep.clear(); txtpassword.focus(); return; else this.close(); else messagebox.show(你的信息已经保存成功!, 提示, system.windows.forms.messageboxbuttons.ok, system.windows.forms.messageboxicon.information); st

28、ring sqlstr; sqlstr = string.format(insert into user(username,password,type) values(0,1,2), txtusername.text.trim(), txtpassword.text.trim(), combobox1.text.trim(); sqlconnection conn = new sqlconnection(str); conn.connectionstring = data source=.;initial catalog=lg;integrated security=true; sqlcomm

29、and cmd = new sqlcommand(sqlstr, conn); try conn.open(); cmd.executenonquery(); catch finally conn.close(); conn.dispose(); cmd.dispose(); if (messagebox.show(恭喜您!成功注册!, 信息提示, system.windows.forms.messageboxbuttons.yesno, system.windows.forms.messageboxicon.information) = system.windows.forms.dialog

30、result.yes) frmlogin login = new frmlogin(); login.showdialog(); frmregister register = new frmregister(); register.hide(); catch private void btnreturn_click(object sender, eventargs e) this.hide(); frmlogin login = new frmlogin(); login.showdialog(); 4.通讯录查看模块代码如下:using system;using system.collect

31、ions.generic;using system.componentmodel;using system.data;using system.drawing;using system.text;using system.windows.forms;using system.data.sqlclient;namespace liugan public partial class frmsee : form private bindingmanagerbase mybind; public frmsee() initializecomponent(); private void button9_

32、click(object sender, eventargs e) this.close(); private void button5_click(object sender, eventargs e) mybind.position = 0; private void button6_click(object sender, eventargs e) if (mybind.position = 0) mybind.position = mybind.count - 1; else mybind.position = mybind.position - 1; private void but

33、ton7_click(object sender, eventargs e) if (mybind.position = mybind.count - 1) mybind.position = 0; else mybind.position = mybind.position + 1; private void button8_click(object sender, eventargs e) mybind.position = mybind.count - 1; private void frmsee_load(object sender, eventargs e) / todo: 这行代码

34、将数据加载到表“lgdataset.v_contactsinfo”中。您可以根据需要移动或移除它。 this.v_contactsinfotableadapter.fill(this.lgdataset.v_contactsinfo); / todo: 这行代码将数据加载到表“lgdataset.v_contactsinfo”中。您可以根据需要移动或移除它。 this.v_contactsinfotableadapter.fill(this.lgdataset.v_contactsinfo); this.button4.enabled = false; string aa = string.f

35、ormat(select * from v_contactsinfo where username=0, textbox7.text); sqlconnection conn = new sqlconnection(); conn.connectionstring = data source=.;initial catalog=lg;integrated security=true; sqldataadapter ad = new sqldataadapter(aa,conn); ad.fill(this.lgdataset, v_contactsinfo); mybind = this.bi

36、ndingcontextthis.lgdataset, v_contactsinfo; mybind.position = 0; this.datagridview1.datasource = this.lgdataset; this.datagridview1.datamember = v_contactsinfo; aaaa(); private void aaaa() this.textbox1.databindings.add(text, this.lgdataset, v_contactsinfo.contactsid); this.textbox2.databindings.add

37、(text, this.lgdataset, v_contactsinfo.contactsname); this.textbox3.databindings.add(text, this.lgdataset, v_contactsinfo.sex); this.textbox4.databindings.add(text, this.lgdataset, v_contactsinfo.classname); this.textbox5.databindings.add(text, this.lgdataset, v_contactsinfo.mobilephone); this.textbox6.databindings.add(text, this.lgdataset, v_contactsinfo.workunit); this.textbox8.databindings.add(text, this.lgdataset, v_contactsinfo.birthday); this.textbox9.databindings.add(text, this.lgdataset, v_contactsinfo.f_telephone); private voi

温馨提示

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

评论

0/150

提交评论