超市会员管理系统详细代码
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据库设计
1 系统数据库分析
数据库设计是建立数据库及其应用系统的技术,是系统开发和建设中的核心技术。具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效的存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库结构设计的好坏直接对应用系统的效率以及实现的效果产生影响。
根据超市会员管理系统功能设计的需要,数据库结构设计如下所示:
(1). 用户登录信息数据表(Login):(用户账号,密码,登录身份);
(2). 会员基本信息数据表(Member):(用户账号,用户姓名,身份证号,联系方式,联系地址);
(3). 职员基本信息数据表(Employee):(职员号,职员姓名,职员职位);
(4). 会员积分信息数据表(Score):(会员账号,会员积分,会员等级,会员折扣);
2 数据库概念结构设计
根据上节的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为以后的逻辑结构设计打下基础,这些实体包括各种具体信息,通过相互之间的作用形成数据的流动。
各种实体具体的描述E-R图如下。
1. 用户登录信息实体图主要描述了登录用户的基本情况,包括了用户的用户账号,密码,登录身份。如图3-11所示,用户登录信息实体E-R图。
图3-12 用户登录实体的E-R图
2. 会员基本信息实体图主要描述会员的基本情况,包括了会员基本信息的用户账号,用户姓名,身份证号,联系方式,联系地址,得出如图3-12所示会员基本信息实体E-R图。
图3-13 会员基本信息实体的E-R图
3. 职员基本信息实体图主要描述新生的基本情况,包括了职员基本信息的职员号,职员姓名,职员职位,得出如图3-13所示职员基本信息实体E-R图。
图3-14 职员基本信息实体的E-R图
4. 会员积分信息实体图主要描述会员积分的基本情况,包括了会员积分基本信息的会员账号,会员积分,会员等级,会员折扣,得出如图3-14所示会员积分信息实体E-R图。
图3-15 会员积分信息实体的E-R图
实体之间的关系E-R图主要描述实体间的关系。
图3-16 各实体之间的关系
3.系统数据库的设计
根据需求分析与概念结构设计,建立数据库系统支持的数据模型,即数据库的逻辑结构。本系统利用Microsoft Access 2003创建了名为SuperMarket的数据库。
本系统主要建立了以下四张表:
表3.1 用户登录数据表
表3.2 会员基本信息数据表
表3.3 职员基本信息数据表
表3.4 会员积分信息数据表
4. 表之间的关系
表之间存在的关系如下:
1.在会员基本信息表(Member)中添加信息的同时,把信息添加到用户登录信息表(Login)中,同时将信息添加到积分信息表(Score)中。
2.在会员基本信息表(Member)中删除会员信息的同时,把用户登录信息表(Login)和用户积分信息(Score)中该会员信息删除。
3.在职员基本信息表(Member)中添加信息的同时,将志愿的基本信息添加到用户登录信息表(Login)中。
4.在职员基本信息表(Member)中删除职员信息的同时,把用户登录信息表(Login)中该职员信息删除。
详细设计与实现
1. 系统首页
图4-1 超市会员管理系统首页
自定义工具栏按钮及鼠标提示信息的设计与实现:
图4-2 主页面工具栏
在对话框的OnInitDialog方法中常见工具栏窗口和图像列表窗口,关联图像列表,设置工具栏按钮文本,启动工具栏的EnableToolTip方法激活提示功能。
鼠标提示信息的实现,处理TTN_NEEDTEXT消息的响应函数OnToolTipText (),通过函数的参数获得工具栏按钮的ID,从而根据ID获取提示信息文本。
1.添加消息映射(最好写在AFX_MSG_MAP宏外,否则可能出现编译
错误)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW,0,0xFFFF,OnToolTipText)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA,0,0xFFFF,OnToolTipText)
2.添加事件声明(最好写在AFX_MSG宏外,否则可能出现编译错误)
afx_msg BOOL OnToolTipText(UINT nID, NMHDR* pNMHDR, LRESULT* pResult);
2 登录页面
系统运行后,首先展现给用户的是用户登录界面,用户登录成功后进入到主页面,用户登录界面如下图所示:
图4-3 用户登录界面
用户登录有三种身份,管理员、普通职员、会员。管理员登录成功后,可以对系统各模块进行操作;普通职员登录成功后,除对职员的添加、删除外,均可实现操作;会员,则只能对自己的一些基本信息进行操作。
登录界面由函数void CLoginDlg::OnOK()实现处理,具体代码如下:
//实现该功能的SQL语句
sql="select * from Login where DNO='"+Name+"' and DCode='"+ECode+"' and DUserSta='"+EStatus+"'";
m_pRs->Open((_bstr_t)sql,theApp.conn.GetInterfacePtr(),adOpenKeys et,adLockOptimistic,adCmdText);
//登录成功与否、登录次数判断
if ( m_pRs->GetRecordCount()<=0 )
{
if ( m_LoginNum<=3 ) // 登录次数小于3次
{
MessageBox("用户名或密码、身份错误!","提示",64);
}
if ( m_LoginNum==3) // 3次登录不成功
{
MessageBox("用户登录3次不成功!即将关闭程序......","提示",64);
CDialog::OnOK();
// 向应用程序发送WM_QUIT消息,请求退出