.. . MDiscount(用户折扣) 数字—否 (double) — 4. 表之间的关系 表之间存在的关系如下:
1.在会员基本信息表(Member)中添加信息的同时,把信息添加到用户登录信息表(Login)中,同时将信息添加到积分信息表(Score)中。
2.在会员基本信息表(Member)中删除会员信息的同时,把用户登录信息表(Login)和用户积分信息(Score)中该会员信息删除。
3.在职员基本信息表(Member)中添加信息的同时,将志愿的基本信息添加到用户登录信息表(Login)中。
4.在职员基本信息表(Member)中删除职员信息的同时,把用户登录信息表(Login)中该职员信息删除。
z
.. .
详细设计与实现
1. 系统首页
图4-1 超市会员管理系统首页
自定义工具栏按钮及鼠标提示信息的设计与实现:
图4-2 主页面工具栏
在对话框的OnInitDialog方法中常见工具栏窗口和图像列表窗口,关联图像列表,设置工具栏按钮文本,启动工具栏的EnableToolTip方法激活提示功能。
鼠标提示信息的实现,处理TTN_NEEDTEXT消息的响应函数OnToolTipText
z
.. .
(),通过函数的参数获得工具栏按钮的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 登录页面
系统运行后,首先展现给用户的是用户登录界面,用户登录成功后进入到主页面,用户登录界面如下图所示:
z
.. .
图4-3 用户登录界面
用户登录有三种身份,管理员、普通职员、会员。管理员登录成功后,可以对系统各模块进行操作;普通职员登录成功后,除对职员的添加、删除外,均可实现操作;会员,则只能对自己的一些基本信息进行操作。
登录界面由函数void CLoginDlg::OnOK()实现处理,具体代码如下: //实现该功能的SQL语句 sql=\
*
from
Login
where
DNO='\
and
DCode='\
m_pRs->Open((_bstr_t)sql,theApp.conn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);
//登录成功与否、登录次数判断 if ( m_pRs->GetRecordCount()<=0 ) {
if ( m_LoginNum<=3 ) // 登录次数小于3次 {
MessageBox(\用户名或密码、身份错误!\提示\
z
.. .
}
if ( m_LoginNum==3) // 3次登录不成功 {
MessageBox(\用户登录3次不成功!即将关闭程序......\提示\CDialog::OnOK();
// 向应用程序发送WM_QUIT消息,请求退出 ::PostQuitMessage(0); } }
else{// 如果登录成功,则关闭数据库 CDialog::OnOK(); CCMarketDlg dlg; dlg.m_LoginSta=EStatus; dlg.DoModal(); }
3 会员信息模块
(1) 会员基本信息查询 会员基本信息查询如下图:
z