个人通讯录系统课程设计说明书.docx
- 文档编号:6788837
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:34
- 大小:1.81MB
个人通讯录系统课程设计说明书.docx
《个人通讯录系统课程设计说明书.docx》由会员分享,可在线阅读,更多相关《个人通讯录系统课程设计说明书.docx(34页珍藏版)》请在冰豆网上搜索。
个人通讯录系统课程设计说明书
************
课程设计
课程
面向对象程序设计和数据库开发技术
题目
个人通迅录系统
专业
计算机应用技术
班级
姓名
指导教师
2011
年
6
月
18
日
一、课程设计目的
课程设计有肋于大家的动手能力的增强,有利于大家对基础知道的掌握,有利于同学们对面向对象和数据库开发的进一步了解和深刻体会。
我所做的系统是为了大家能更好的管理自己的通迅录,妥善管理个人的联系人的信息。
二、系统需求分析(简要描述系统业务和功能,开发环境)。
个人通迅录管理系统是在面向对象和数据库开发两方面的基础上开发出来的,它是为了让大家妥善处理自己的联系人的信息,具有一定的保密功能,有利于自己联系人信息的安全性。
该系统主要由:
用户登陆,用户注册,修改密码,查看,查询,进入登陆界面这六个界面组成,含有对通讯录信息进行添加,修改,删除的功能。
还有对用户对象信息的添加和修改功能。
对通迅录可以按不同的条件查询。
三、系统总体设计
1、系统功能模块图
图系统功能图
2、系统功能描述
(1)用户登录模块:
分为一般用户和管理员两种身份登录,这两种身份登录后进入同一种主界面。
(2)个人管理模块:
这个模块是个人对自己的相关信息进行处理,包括登陆的密码的修改;查看自己的通迅录信息,查看到联系人的具体信息。
(3)用户管理模块:
包括用户注册,和用户登陆。
(4)通迅录管理模块:
这个部分主要是用户对其进行操作,是用户对自己的通迅录进行添加联系人,修改联系人和删除联系人。
(5)一般管理模块:
这个模块主要是用户进行查询,用户对其他用户的联系人的查询,按照不同的条件进行查询。
四、数据库设计
1、概念设计(ER图)(此部分可以省略)
2、逻辑设计
用户信息表(用户名,用户密码,用户类型)
联系人信息表(用户名,联系人编号,姓名,性别,类别名,移动电话,固定电话,工作单位,生日,)
联系人类别表(类别,类别编号,备注)
用户信息表—联系人信息表(用户名,用户名)
联系人类别表—联系人信息表(类别,类别名)
3、表的设计,包括表的结构、约束等
图联系人信息表
字段名
字段类型
长度
设置键
字段约束
设置的约束及其说明
用户名
char
10
外键
Notnull
FOREIGNKEY约束
此用户名必须与用户信息表的用户名一样
联系人编号
char
5
主键
Notnull
PRIMARYKEY约束
具有唯一性,它的值不能为空
姓名
char
30
—
Notnull
性别
char
10
—
Notnull
CHECK约束
性别只能是男或者女
类别名
char
30
—
Notnull
FOREIGNKEY约束
此类别名必须与联系人类别表中的类别相同
移动电话
char
30
—
Notnull
工作单位
char
20
—
Notnull
生日
datetime
—
—
null
固定电话
char
10
—
null
图用户信息表
字段名
字段类型
长度
设置键
字段约束
设置的约束及其说明
用户名
char
10
主键
Notnull
PRIMARYKEY约束
具有唯一性,它的值不能为空
用户密码
char
30
—
Notnull
用户类型
char
20
—
Notnull
图联系人类别表
字段名
字段类型
长度
设置键
字段约束
设置的约束及其说明
类别编号
char
10
—
Notnull
PRIMARYKEY约束
具有唯一性,它的值不能为空
类别
char
30
主键
Notnull
备注
char
100
—
null
4、视图设计(包括视图和作用)
视图创建如下:
SELECTdbo.[User].Type,dbo.ContactsInfo.UserName,dbo.ContactsInfo.ContactsName,dbo.ContactsInfo.ContactsId,dbo.ContactsInfo.Sex,dbo.ContactsInfo.WorkUnit,dbo.ContactsInfo.Birthday,dbo.ContactsInfo.ClassName,dbo.ContactsInfo.Mobilephone,dbo.ContactsInfo.F_TelephoneFROMdbo.[User]INNERJOINdbo.ContactsInfoONdbo.[User].UserName=dbo.ContactsInfo.UserName
作用:
可以选取一个表或多个表中的某些字段来建立视图,这样对于某些操作更方便,更简单
5、存储过程设计(包括功能算法描述和存储过程代码)
(1)性别存储过程
如果性别为女,则显示女的联系人的信息,如果是男,则显示男的联系人的信息。
代码如下:
setANSI_NULLSON
setQUOTED_IDENTIFIERON
go
--=============================================
--Author:
Name
--Createdate:
--Description:
--=============================================
ALTERPROCEDURE[dbo].[xb]
--Addtheparametersforthestoredprocedurehere
@sexchar(10)
AS
BEGIN
--SETNOCOUNTONaddedtopreventextraresultsetsfrom
--interferingwithSELECTstatements.
SETNOCOUNTON;
--Insertstatementsforprocedurehere
SELECT*fromContactsInfowhereSex=@sex
END
(2)统计的存储过程
根据性别的录入,显示此性别的联系人的数量。
代码如下:
setANSI_NULLSON
setQUOTED_IDENTIFIERON
go
--=============================================
--Author:
Name
--Createdate:
--Description:
--=============================================
ALTERPROCEDURE[dbo].[liugan]
--Addtheparametersforthestoredprocedurehere
@sexchar(10),
@countint=0
AS
BEGIN
--SETNOCOUNTONaddedtopreventextraresultsetsfrom
--interferingwithSELECTstatements.
SETNOCOUNTON;
--Insertstatementsforprocedurehere
SELECT@count=count(Sex)fromContactsInfo
whereSex=@sex
return@count
END
五、系统功能模块实现
包括每个功能模块的算法说明,界面图,关键代码
如:
1.登录模块
登录模块分为两种身份,一种是普通用户,一种是管理员。
通过这个模块进入相同的主界面。
首先调用数据库连接的,然后读取数据库,将登陆的内容判断是否为空,为空则输入内容,并且其内容要与数据库的内容相同,否则登陆失败,同时登陆时显示登陆的时间,有利于用户了解时间。
界面设计如图1所示
代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceliugan
{
publicpartialclassFrmLogin:
Form
{
publicFrmLogin()
{
InitializeComponent();
}
privatevoidFrmLogin_Load(objectsender,EventArgse)
{
}
privatevoidbtnLogin_Click(objectsender,EventArgse)
{
SqlConnectionconn=newSqlConnection();
conn.ConnectionString="DataSource=.;InitialCatalog=lg;IntegratedSecurity=True";
stringUserName=txtUserName.Text.Trim();
stringPassword=txtPassword.Text.Trim();
stringType=comboBox1.Text.Trim();
stringsql1=string.Format("SELECTCOUNT(*)FROM[User]WHEREUserName='{0}'",UserName);
stringsql2=string.Format("SELECTPasswordFROM[User]WHEREUserName='{0}'",UserName);
stringsql3=string.Format("selectTypefrom[User]whereUserName='{0}'",UserName);
SqlCommandcmd=newSqlCommand(sql1,conn);
try
{
conn.Open();
intnum=(int)cmd.ExecuteScalar();
if(num==0)
{
MessageBox.Show("你输入的用户名不存在!
");
txtUserName.Focus();
txtUserName.Select();
return;
}
else
{
SqlCommandcmd2=newSqlCommand(sql2,conn);
stringpassword=(string)cmd2.ExecuteScalar();
if(Password!
=password)
{
MessageBox.Show("密码输入错误!
");
txtPassword.Focus();
txtPassword.Select();
return;
}
else
{
SqlCommandcmd3=newSqlCommand(sql3,conn);
Stringtype=(string)cmd3.ExecuteScalar();
if(Type!
=type)
{
MessageBox.Show("此类型的用户不存在!
");
comboBox1.Focus();
comboBox1.Select();
return;
}
this.Hide();
MessageBox.Show("欢迎进入个人通讯录管理系统:
"+UserName);
FrmMainaa=newFrmMain();
aa.zhang.Text=txtUserName.Text;
aa.UserType.Text=comboBox1.Text;
aa.mima.Text=txtPassword.Text;
aa.ShowDialog();
}
}
}
catch(SqlExceptionex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
}
privatevoidbtnClose_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbtnRegister_Click(objectsender,EventArgse)
{
this.Hide();
FrmRegisterregister=newFrmRegister();
register.ShowDialog();
}
}
}
2.修改密码模块
这是管理员和一般用户为了使自己的账号受到保护而可以自己修改自己的密码。
用户名是自己的用户名,旧密码和用户名都是只读的,方便修改。
设计界面如下:
代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceliugan
{
publicpartialclassFrmUpdatePassword:
Form
{
publicFrmUpdatePassword()
{
InitializeComponent();
}
privatevoidbtnConfirm_Click(objectsender,EventArgse)
{
stringstr="DataSource=.;InitialCatalog=lg;IntegratedSecurity=True";
stringsqlstr=string.Format(@"update[User]setPassword='{0}'whereUserName='{1}'andPassword='{2}'",txtNewPwd.Text.Trim(),txtUserName.Text.Trim(),txtOldPwd.Text.Trim());
SqlConnectionconn=newSqlConnection(str);
conn.ConnectionString="DataSource=.;InitialCatalog=lg;IntegratedSecurity=True";
SqlCommandcmd=newSqlCommand(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(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();
}
privatevoidbtnNew_Click(objectsender,EventArgse)
{
txtOldPwd.Text="";
txtNewPwd.Text="";
txtRnewPwd.Text="";
txtOldPwd.Focus();
}
privatevoidbtnExit_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidtxtUserName_TextChanged(objectsender,EventArgse)
{
}
}
}
3.注册模块
这个模块主要就是用户注册,这个模块也要连接数据库,相当于是添加用户信息表的内容。
设计界面如下:
代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
usingSystem.IO;
namespaceliugan
{
publicpartialclassFrmRegister:
Form
{
stringstr="DataSource=.;InitialCatalog=lg;IntegratedSecurity=True";
publicFrmRegister()
{
InitializeComponent();
}
privatevoidbtnReg_Click(objectsender,EventArgse)
{
try
{
if(txtUserName.Text==""||txtPassword.Text==""||comboBox1.Text=="")
{
if(MessageBox.Show("请输入完整的个人信息","信息提示",
System.Windows.Forms.MessageBoxButtons.YesNo,
System.Windows.Forms.MessageBoxIcon.Warning)
==
System.Windows.Forms.DialogResult.Yes)
{
if(txtUserName.Text=="")
txtUserName.Focus();
elseif(txtPassword.Text=="")
txtPassword.Focus();
elseif(comboBox1.Text=="")
comboBox1.Focus();
return;
}
else
this.Close();
}
else
if(txtRep.Text=="")
{
if(MessageBox.Show("请输入确认密码","提示",
System.Windows.Forms.MessageBoxButtons.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,
System.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);
}
stringsqlstr;
sqlstr=string.Format(@"insertinto[User](UserName,Password,Type)values('{0}','{1}','{2}')",txtUserName.Text.Trim(),
txtPassword.Text.Trim(),comboBox1.Text.Trim());
SqlConnectionconn=newSqlConnection(str);
conn.ConnectionString="DataSource=.;InitialCatalog=lg;IntegratedSecurity=True";
SqlCommandcmd=newSqlCommand(sqlstr,conn);
try
{
conn.Open();
cmd.ExecuteNonQue
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 通讯录 系统 课程设计 说明书