学生通讯录管理系统说明书Word文档格式.docx
《学生通讯录管理系统说明书Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生通讯录管理系统说明书Word文档格式.docx(22页珍藏版)》请在冰豆网上搜索。
正式开发管理信息系统之前进行调研是非常必要的,其必要性主要表现在以下几个方面。
(1)明确用户的要求,以便根据调查结果进行可行性分析,确认系统的开发是否可行。
(2)提出新系统的人员并不都是系统研究人员,有些人对功能和处理数据的方法没明确的认识。
他们只是根据自已业务工作的需要提出了要求,系统开发人员要对此进行详细的调查和分析,确认用户的要求可以通过现有的计算技术来实现,保证开发的管理信息系统的功能与用户提出的要求相吻合。
2.1.2系统分析
本着人性化的设计,此系统包括了联系人的学号,姓名、电话、家庭住址、E-mail、qq、和宿舍等信息,利用此系统可以对联系人进行查询、增加、修改、删除等操作,基本上可以满足我们对通讯录的所需。
对于通讯录功能的实现采用添加控件的方法,在程序设计中,采用了面向对象解决问题的方法。
程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以应用在商业中解决实际问题。
2.1.3系统总体设计
系统的功能结构是根据需求分析的结果来设计的,根据系统详细分析,超市管理系统共分为六个模块,分别为:
数据输入、数据添加、数据修改、查找、删除、浏览。
系统功能模块图如图1所示。
图1系统功能模块图
2.2数据库设计
2.2.1实体-属性图
这一设计阶段是在需求分析的基础上,设计出能满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
E-R图为实体-联系图,提供了表示实体型、属性和联系的方法,用来描述现实世界的概念模型。
将现实世界的实体,属性和联系转化为抽象的概括的概念模型。
构成E-R图的基本要素是实体型、属性和联系。
通讯录管理的实体-属性图,如图2所示。
图2通讯录管理的实体-属性图
2.2.2数据库逻辑设计
将关系模型转换成具体DBMS支持的实际关系数据模型,如下面的几个表格所示。
列名
数据类型
是否为空
字段宽度
默认值
说明
编号
int
否
20
主键
姓名
字符型
10
性别
手机号码
QQ号码
电子邮件
家庭地址
当前地址
图2数据库结构
图3数据库
在上面的实体以及实体之间的关系的基础上,形成数据库中的表格和各个表格之间的关系,即关系模型。
设计关系模型并对其进行优化:
确定数据依赖,给出关系模式中的主码,明确其依赖关系。
对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。
对照数据依赖的理论对各个关系模式逐一进行分析,考察是否存在部分函数依赖、传递函数依赖、多值依赖,确定各个关系模式分别所属的范式类型。
按照需求分析阶段得到的处理要求,分析对于这样的应用环境这些模式是否合适,对某些模式检查是否有合并或分解的需要。
对关系模式进行必要的分解,提高数据操作效率和存储空间的利用率。
2.2.3连接数据库
#defineProvider"
Provider=SQLOLEDB.1;
IntegratedSecurity=SSPI;
PersistSecurityInfo=False;
InitialCatalog=Catering"
voidADOConn:
:
OnInitADOConn()
{
HRESULThr;
:
CoInitialize(NULL);
try
{
hr=m_pCon.CreateInstance("
ADODB.Connection"
);
if(SUCCEEDED(hr))
m_pCon->
ConnectionTimeout=3;
//m_pCon->
Open("
Provider=Microsoft.Jet.OLEDB.4.0;
DataSource=Catering.mdb"
"
"
adModeUnknown);
Open(_bstr_t(Provider),"
"
adModeUnknown);
}
else
AfxMessageBox("
创建连接对象失败!
catch(_com_errorexp)
数据库未连接"
AfxMessageBox(exp.Description());
}
2.3详细设计
图形界面设计主界面如图5所示
图5主界面
添加的控件
ID号
标题
其他属性
文本框
IDC_STATIC_SELECT1(TextControl)
通讯录中所有记录如下表所示
数据窗口
IDC_ADDRESSLIST
按钮
IDC_ADD
添加
IDC_MODIFY
修改
IDC_DELETE
删除
IDC_SEARCH
查找
IDC_BUTTON1
显示全部
IDOK
退出
主要有实现查询功能的CEx_ODBC29View:
OnButtonQuery()函数,实现添加功能的CEx_ODBC29View:
OnRecAdd()函数,实现修改功能的voidCEx_ODBC29View:
OnRecEdit()函数,实现删除功能的CEx_ODBC29View:
OnRecDel()
OnButtonQuery()函数的内容和功能:
m_strQuery是控件IDC_EDIT_QUERY的变量,这个变量用来判断查询的姓名是否为空关闭记录集,m_pSet->
m_strFilter.Format("
pname='
%s'
m_strQuery)语句用于指定查询的条件,pname是表connection的字段名;
m_pSet->
m_strSort="
ptelephone"
语句用于按ptelephone字段从小到大排序,ptelephone是表connection的字段名;
UpdateData(FALSE)自动更新表单中控件显示的内容。
MessageBox("
要查询的联系人不能为空!
),MessageBox("
没有查到你要找的联系人!
)用于反馈用户操作。
在主界面上选择添加按钮如图6所示
图6添加记录
输入框
IDC_DEIT_NAME
下拉列表框
IDC_COMBO_GENDER
确定
IDCANCEL
取消
IDC_NAME1
姓名:
IDC_GENTER
性别:
IDC_TELEPHONE
手机号码:
IDC_EDIT_TELE
IDC_QQ
QQ号码:
IDC_EMAIL
电子邮箱:
IDC_HOEMADDRESS
家庭地址:
IDC_CURRENTADDRESS
当前地址:
IDC_EDIT_QQ
IDC_EDIT_EAMIL
IDC_EDIT_HOME
IDC_EDIT_CURRENT
OnRecAdd()函数的内容和功能:
由于增加和显示记录在同一个界面出现,容易造成误操作。
因此,在修改和添加记录数据之前,往往设计一个对话框用于获得所需要的数据,然后用该数据进行当前记录的编辑。
这样就能避免它们的相互影响,且保证代码的相对独立性。
获得所需数据的对话框名为“联系人信息表”,对话框资源的ID号是IDD_INFO_TABLE,对话框资源对应的类名为CInfoDlg,要进行添加操作,首先为这个类添加一个对象[2],以便引用控件变量,添加完信息确定之后,“联系人信息表”的内容传值给主界面对应的变量,如m_pSet->
m_ptelephone=dlg.m_strPersonTelephone。
在主界面上点击修改按钮如图7所示
图7修改记录
OnRecEdit()函数的内容和功能:
修改函数首先选中要修改的信息,即把主界面的信息传值给“联系人信息表”如dlg.m_strPersonTelephone=m_pSet->
m_ptelephone;
确定修改信息,则把“联系人信息表”的信息传值给主界面如m_pSet->
m_ptelephone=dlg.m_strPersonTelephone;
完成修改操作,也引用了系统功能函数m_pSet->
Edit()修改当前记录,m_pSet->
Update()将新记录存入数据库
在主界面上点击查找按钮如图8所示
图8查找记录
IDC_STATIC_SELECT
请输入姓名:
编辑框
IDC_EDIT_SELECT
单选框
IDC_RADIO_NAME
IDC_RADIO_TELE
IDC_RADIO_QQ
在OnRecDel()函数中,m_pSet->
GetStatus(status)获取当前记录集状态,m_pSet->
Delete()删除当前记录if(status.m_lCurrent