超市会员系统详细代码Word文件下载.docx

上传人:b****6 文档编号:21683481 上传时间:2023-01-31 格式:DOCX 页数:20 大小:345.91KB
下载 相关 举报
超市会员系统详细代码Word文件下载.docx_第1页
第1页 / 共20页
超市会员系统详细代码Word文件下载.docx_第2页
第2页 / 共20页
超市会员系统详细代码Word文件下载.docx_第3页
第3页 / 共20页
超市会员系统详细代码Word文件下载.docx_第4页
第4页 / 共20页
超市会员系统详细代码Word文件下载.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

超市会员系统详细代码Word文件下载.docx

《超市会员系统详细代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《超市会员系统详细代码Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。

超市会员系统详细代码Word文件下载.docx

文本

6

DCode(密码)

12

DUserSta(登录身份)

50

表3.2会员基本信息数据表

MNO(用户账号)

MName(用户姓名)

20

MID(身份证号)

18

MTel(联系电话)

MAdd(联系地址)

表3.3职员基本信息数据表

EID(职员号)

EName(职员姓名)

EStatus(职员职位)

表3.4会员积分信息数据表

MNO(会员账号)

MScore(用户积分)

数字(double)

——

MGrade(用户等级)

数字(long)

MDiscount(用户折扣)

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_msgBOOLOnToolTipText(UINTnID,NMHDR*pNMHDR,LRESULT*pResult);

2登录页面

系统运行后,首先展现给用户的是用户登录界面,用户登录成功后进入到主页面,用户登录界面如下图所示:

图4-3用户登录界面

用户登录有三种身份,管理员、普通职员、会员。

管理员登录成功后,可以对系统各模块进行操作;

普通职员登录成功后,除对职员的添加、删除外,均可实现操作;

会员,则只能对自己的一些基本信息进行操作。

登录界面由函数voidCLoginDlg:

:

OnOK()实现处理,具体代码如下:

//实现该功能的SQL语句

sql="

select*fromLoginwhereDNO='

"

+Name+"

'

andDCode='

+ECode+"

andDUserSta='

+EStatus+"

;

m_pRs->

Open((_bstr_t)sql,theApp.conn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);

//登录成功与否、登录次数判断

if(m_pRs->

GetRecordCount()<

=0)

{

if(m_LoginNum<

=3)//登录次数小于3次

MessageBox("

用户名或密码、身份错误!

"

提示"

64);

}

if(m_LoginNum==3)//3次登录不成功

用户登录3次不成功!

即将关闭程序......"

CDialog:

OnOK();

//向应用程序发送WM_QUIT消息,请求退出

PostQuitMessage(0);

else{//如果登录成功,则关闭数据库

CCMarketDlgdlg;

dlg.m_LoginSta=EStatus;

dlg.DoModal();

3会员信息模块

(1)会员基本信息查询

会员基本信息查询如下图:

图4-4会员信息查询界面

用户登录成功后,可以根据用户账号或身份证号查询会员的基本信息,还可以进行全表查询。

查询前,首先要选择及填写查询条件,若未填写,则出现系统提示。

查询条件填写正确后,点击查询即可会员详细信息。

查询和显示全部单击事件实现分别由函数voidCMemberDlg:

OnOK()和voidCMemberDlg:

OnBUTTONListAll()实现,具体代码如下:

记录集打开同上。

在列表框中显示的实现:

while(!

adoEOF)

CStringtemp;

m_EList.InsertItem(1000,"

);

for(inti=0;

i<

3;

i++)

temp=(TCHAR*)(_bstr_t)m_pRs->

GetFields()->

GetItem((long)i)->

Value;

m_EList.SetItemText(row,i,temp);

MoveNext();

row+=1;

4.3.2会员密码修改

此模块用于修改会员的登录密码。

图4-5会员密码修改界面

填入用户账号和旧密码后,系统检查数据库中是否有该记录,如果存在该记录,则可填写新密码进行修改;

若不存在,则系统给出提示信息。

如下图:

图4-6会员密码修改提示信息界面

该模块单击事件由函数voidCECodeModifyDlg:

OnOK()实现,具体代码如下:

UpdateLoginsetDCode='

+NewCode+"

whereDNO='

try

theApp.conn->

Execute((_bstr_t)sql,NULL,adCmdText);

catch(_com_error&

e)

AfxMessageBox(e.Description());

AfxMessageBox("

修改成功"

4.积分信息模块

(1)积分查询

该功能实现界面如下:

图4-7积分查询界面

输入会员账号后,点击确定按钮,系统首先检查账号是否存在,若存在则输出该会员积分信息;

若不存在,输出提示信息。

实现原理如会员信息模块中的会员查询。

实现函数为:

voidCJQueryDlg:

OnOK()。

在编辑框中的显示实现为:

var=m_pRs->

GetCollect("

MScore"

if(var.vt!

=VT_NULL)

str1=(LPCSTR)_bstr_t(var);

GetDlgItem(IDC_EDIT_Jifen)->

SetWindowText(str1);

MGrade"

=VT_NULL)

str2=(LPCSTR)_bstr_t(var);

GetDlgItem(IDC_EDIT_Grade)->

SetWindowText(str2);

MDiscount"

str3=(LPCSTR)_bstr_t(var);

GetDlgItem(IDC_EDIT_Discout)->

SetWindowText(str3);

(2)积分兑换

积分兑换功能的实现界面如下:

图4-8积分兑换功能实现界面

用户输入账号和密码后,点击兑换按钮,该按钮的实现中,首先检查用户合法性。

若用户已兑换过积分,则提示及兑换;

若积分不够兑换等级,则提示积分不够;

若兑换成功后,则显示用户等级和优惠折扣。

该模块实现单击事件函数处理为:

voidCEXchangeDlg:

OnOK(),具体实现如下:

//修改数据库中积分

UpdateScoresetMGrade=1,MDiscount=0.1whereMNO='

+mzh+"

兑换成功"

(3)消费加分

该模块功能将会员的消费金额换为消费积分,如下图:

图4-9消费加分模块界面实现图

输入用户账号和消费金额后,首先检查数据库中是否存在该记录,如果存在,则将该用户积分增加其消费金额数目,如不存在,系统弹出提示信息。

模块单击事件处理由函数voidCXiaoFeiDlg:

UpdateScoresetMScore=MScore+'

+JiE+"

whereMNO='

+UserZH+"

添加成功"

(4)优惠讯息

该模块为静态功能。

点击优惠讯息菜单即出现超市积分的优惠政策及兑换政策的对话框。

5基本信息管理模块

1).职员信息管理

(1).查询基本信息

该模块功能实现基本与会员基本信息查询相同,在此不再赘述。

实现该功能的函数为:

voidCEmployeeDlg:

OnOK();

实现该功能的SQL语句为:

select*fromEmployeewhereEID='

+EmpID+"

(2).修改职员信息

该模块功能修改超市职员的基本信息。

函数实现:

voidCMIMDlg:

其实现如下:

GetDlgItem(IDC_EDIT1_EmpName)->

GetWindowText(EXm);

GetDlgItem(IDC_COMBO_EmpSta)->

GetWindowText(EZw);

if(EZw=="

管理员"

)EZw="

0"

elseif(EZw=="

普通职员"

1"

UpdateEmployeesetEName='

+EXm+"

EStatus='

+EZw+"

whereEID='

+EMId+"

(3).修改密码

职员修改密码模块与会员密码修改类似,实现函数为:

voidCMModifyDlg:

OnOK(),此处不再赘述。

具体SQL语句实现为:

try{

(4).添加职员信息

管理员进入系统后可以按照需求添加职员信息,该模块首先检验输入是否为空,若不为空,则可以进行添加,此功能同时将信息添加到Login表和Employee表中,界面实现如图:

图4-10添加职工信息

实现该事件的函数为:

voidCEAddEmplyeeDlg:

OnOK(),下面是添加职员信息的具体实现:

InsertintoEmployee(EID,EName,EStatus)values('

+Eno+"

'

+Ename+"

+Esta+"

)"

SQL="

InsertintoLogin(DNO,DCode,DUserSta)values('

+Ecode+"

Execute((_bstr_t)SQL,NULL,adCmdText);

(5).删除职员信息

该模块只能由管理员进行操作,管理员成功登录后,可以按照职员号删除职员信息,如图所示:

图4-11删除职工信息图

在删除前,系统会给出提示,提醒用户是否确定要删除。

点击是,则将该记录从数据库中删除;

点击否,则撤销删除行为。

实现函数为voidCDelEmpDlg:

OnOK(),代码如下:

if(MessageBox("

确定要删除该记录吗?

MB_YESNO)==IDYES)

deletefromEmployeewhereEID='

+EmpNO+"

deletefromLoginwhereDNO='

删除成功"

2会员信息管理

会员信息管理包括会员信息查询、会员信息修改、会员注册、会员删除四个模块,功能实现同职员信息管理模块中响应功能。

实现函数分别为:

voidCMemberDlg:

OnOK()、voidCModifyMemDlg:

OnBUTTONModify()、voidCMemAddDlg:

OnBUTTONDel()。

此处以会员信息修改和删除为例,其他功能实现略写。

图4-12会员信息修改

图中,灰色编辑框表示不可改。

如果要修改信息则填入要修改的值,点击“确定修改”,即可修改成功;

如果要删除该条记录,则点击“确定删除”,系统会提示,是否真的删除,若是,则从数据库表中将该记录删除,若否,则退出删除。

此处实现的相关的SQL语句为:

//修改

UpdateMembersetMName='

+UserName+"

MTel='

+UserTel+"

MAdd='

+UserAdd+"

+UserNO+"

//删除

deletefromMemberwhereMNO='

6统计

统计模块是对超市会员积分进行统计,可以统计出各登记人数及所占百分比,并以柱形图的形式显示出来。

图4-13统计分析功能实现图

voidCStatDlg:

OnOK()

具体实现:

(1)打开记录集,获得各等级人数;

(2)绘制柱形图

//获取静态图片空间大小

CWnd*pWnd=this->

GetDlgItem(IDC_DRAW);

pWnd->

GetClientRect(&

rectPic);

//获取设备环境指针

CDC*pDC=pWnd->

GetDC();

//重新填充静态图片区域

CBrushNewBrush;

NewBrush.CreateSolidBrush(RGB(238,238,237));

CBrush*pOldBrush=pDC->

SelectObject(&

NewBrush);

pDC->

Rectangle(&

SelectObject(pOldBrush);

//确定每个柱形条的宽度

intnLength=(rectPic.right-rectPic.left)/6;

//定义五种颜色,用来填充柱形图

COLORREFRGBArray[6]={RGB(0,255,0),RGB(128,0,255),RGB(0,0,255),RGB(255,255,0),RGB(255,0,0),RGB(0,128,255)};

//定义一个矩形,表示柱形条

CRectrect;

for(inti=0;

i<

6;

i++)

//确定柱形条的位置

rect.left=rectPic.left+i*nLength;

rect.top=rectPic.bottom-rectPic.Height()*s[i]/num;

rect.right=rectPic.left+(i+1)*nLength;

rect.bottom=rectPic.bottom;

//创建画刷,填充图形

NewBrush.CreateSolidBrush(RGBArray[i]);

rect);

//释放设备环境

this->

ReleaseDC(pDC);

7系统信息

1用户帮助

系统调用帮助文件Market-Help.chm,对于不熟悉本系统的用户可以通过阅读帮助文件了解系统如何使用。

点击用户帮助菜单或帮助工具栏按钮后,即打开帮助文件,如图所示:

图4-14用户帮助功能实现图

具体实现为:

voidCCMarketDlg:

OnMENUHelp()

charbuf[MAX_PATH];

GetCurrentDirectory(MAX_PATH,buf);

//获取程序根目录路径

ShellExecute(NULL,"

open"

"

Market-Help.chm"

SW_SHOW);

2关于本系统

OnMENUAbout()

CDialogabout(IDD_ABOUTBOX

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 法律文书 > 辩护词

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1