超市会员管理系统.docx
- 文档编号:28898878
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:40
- 大小:519.14KB
超市会员管理系统.docx
《超市会员管理系统.docx》由会员分享,可在线阅读,更多相关《超市会员管理系统.docx(40页珍藏版)》请在冰豆网上搜索。
超市会员管理系统
超市会员管理系统
超市会员管理系统要求建立起数据一致性和完整性强、数据安全性好的库。
本系统主要是对超市会员和职员的基本信息进行有序管理,主要包括的功能模块有:
会员信息管理、积分信息管理、基本信息管理、统计、系统信息等。
该系统是在MicrosoftVisualC++6.0的开发工具前提下进行的,运用VisualC++语言,连接了MicrosoftAccess2003数据库,进行数据库的管理。
简单目录:
一.可行性研究
1.技术可行性
2.经济可行性
3.操作可行性
二.功能需求
1.会员信息
2.积分信息
3.基本信息管理
4.统计
5.系统信息
6.退出系统
7.系统工具栏
三.环境需求
四.总体设计
1.系统登录权限
2.系统结构图
3.各具体功能模块图
4.基本信息管理模块
5.统计
6.系统信息
五.数据库设计
1.系统数据库分析
2.数据库概念结构设计
3.系统数据库的设计
4.表之间的关系
六.详细设计与实现
1.系统首页
2.登录页面
3.会员信息模块
4.积分信息模块
5.基本信息管理模块
6.统计
7.系统信息
8.退出系统
9.数据库连接设计与实现
可行性研究
可行性研究并不是解决问题,而是确定问题是否值得去解决,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
可行性研究最根本的任务是对以后的行动方针提出建议。
以下进行对超市会员管理系统的可行性分析:
1.技术可行性:
系统使用VC++作为开发工具,数据库使用MicrosoftAccess。
支持的操作系统有WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)等。
2.经济可行性:
开发本系统为会员,职员和管理员带来了极大的方便,节省了人力、物力、技术、资金等方面的花费,所以今后获得的经济效益一定会大于开发成本。
3.操作可行性:
超市会员管理系统简单易用,对用户的计算机水平要求不高,对于一般用户很容易学会。
同时用计算机的高速度和自动化来替代手工的巨大工量,用计算机的高准确性来避免手工的错误和误差。
功能需求
功能模块的划分需要遵循低耦合、高内聚的原则,根据这一原则对该超市会员管理系统进行功能模块划分,下面详细叙述。
本系统针对三种层次的权限的用户:
管理员、普通职员、会员。
对于想使用超市会员管理系统的用户,可以利用自己的登录账号,密码,用户权限登录该系统。
进入系统后跟据自己权限执行相应权限的操作。
1.会员信息
单击子菜单中的查看基本信息,可以查看会员的基本信息。
单击子菜单中的修改会员密码,可以修改会员的登录密码。
2.积分信息
单击子菜单中的积分查询,可以查看该用户的会员积分。
单击子菜单中的积分兑换,可以进行积分兑换。
单击子菜单中的消费加分,可以根据会员的消费金额增加其积分。
此操作只能由超市职员或管理员进行。
对于会员,其权限不允许对该模块操作。
单击子菜单中的优惠讯息,可以查看超市的积分优惠政策。
3.基本信息管理
本模块的功能:
职员信息管理和会员信息管理。
该模块功能只允许超市职员和管理员进行操作。
(1)职员信息管理:
超市职员只能使用职员信息子菜单中的查询和修改密码功能。
管理员可对职员信息管理的全部功能进行操作:
查询职员信息、修改职员信息、添加、删除职员信息。
(2)会员信息管理:
该模块可对会员信息进行查询、添加、修改、删除。
有超市职员或管理员执行,不允许会员操作。
4.统计
超市职员或管理员成功登录后,可以通过此模块对会员的积分情况进行统计分析,得到分析结果。
5.系统信息
用户成功登录后,可以点击系统信息下的帮助和关于子菜单。
该模块功能可以帮助用户了解该系统的使用。
单击子菜单中的用户帮助,系统弹出帮助文件,用户可以通过阅读帮助文件使用该系统。
单击子菜单中的关于,用户可以了解该系统版本及版权。
6.退出系统
用户登录成功后,操作进行完毕即可点击退出菜单将退出系统,同时关闭数据库。
7.系统工具栏
用户登录成功后,点击工具栏按钮可以快捷进入积分查询、会员查询、会员密码修改、关于系统及退出系统模块。
此外,在开发过程中,为工具栏按钮添加了鼠标提示功能。
这样能使用户更方便的获取工具栏信息。
环境需求
系统开发平台:
MicrosoftVisualC++6.0
系统开发语言:
VC++
数据库系统:
MicrosoftAccess2003
运行平台:
WindowsXP(SP2)/Windows2000(SP4)/WindowsServer2003(SP1)
运行环境:
MicrosoftVisualC++6.0
开发工具简介:
C++是一种使用非常广泛的计算机编程语言。
C++是一种静态数据类型检查的,支持多重编程范式的通用程序设计语言。
它支持过程化程序设计、数据抽象、面向对象程序设计、制作图标等等泛型程序设计等多种程序设计风格。
C++是C语言的一个高级版本,支持中文,界面高级,不需要启动母文件即可运行程序。
VisualC++所使用的编程语言是C/C++。
VisualC++继承了C/C++语言的简单、高效、易用的优点,代码结构清晰,可读性好,并且融入了面向对象、过程可视化、事件驱动等软件开发的最新技术,是C/C++语言编程技术发展到一个新的高度。
VisualC++是Microsoft公司推出的目前使用极为广泛的基于Windows平台的可视化编程环境。
VisualC++6.0是在以往版本不断更新的基础上形成的,由于其功能强大、灵活性好、完全可扩展,以及具有强有力的Internet支持,在各种C++语言开发工具中脱颖而出,成为目前最为流行的C++语言集成环境。
VisualC++6.0分为标准版、专业版和企业板三种,但其基本功能是相同的。
数据库是一种数据管理技术,是计算机科学的重要分支。
它具有数据结构化、最低冗余度、较高的程序与数据独立性、易于扩充、易于编制应用程序等优点,许多较大的系统都是建立在数据库设计的基础上的。
数据库的管理系统主要有Access数据库管理系统、SQLServer数据库管理系统、Oracle数据库管理系统等。
SQL是StructuredQueryLanguage(结构化查询语言)的缩写。
SQL已经成为了最流行的关系查询语言。
用户如果要想开发和使用数据库,就必须先掌握结构化查询语言SQL。
SQL的功能十分强大,其主要特点如下。
(1)SQL是非结构化语言,使用SQL查询数据库时,只需告诉它做什么而不用告诉它如何去做.
(2)SQL本身不提供任何程序流程控制结构,而是通过PL/SQL提供SQL语言的过程化功能。
(3)SQL提供相对固定的数据类型,用户一般不需要进行扩展,
(4)SQL本身是非常灵活的,实现同一目的,可以有很多不同的方法。
SQL语句可以分为四大类
①数据定义语言(DDL),用于定义数据结构。
②数据操作语言(DML),用户检索和修改数据。
③数据控制语言(DCL),用于规定数据库用户的各种权限。
④数据库事务处理,用来保证数据库的完整性。
总体设计
超市会员管理系统业务流程:
首先由系统管理员将使用该系统的用户分为三种类型,管理员、普通职员和超市会员。
普通职员拥有对超市会员的信息管理,即查、添、删、改的功能;还可对会员积分进行管理,如:
将会远的消费金额转换为消费积分;同时,超市职员还可对自己的信息进行查询,并可修改自己的登录密码。
超市会员只可对自己的信息进行查询,或对自己的积分进行兑换、查询。
超级管理员具有所有权限。
1.系统登录权限如图所示:
图3-1系统登录权限图
在系统的总体设计中我采用结构化设计(StructureDesign,简称SD),首先将整个系统化分为几个小问题,小模块。
然后,进一步细分模块,添加细节。
根据前面的系统功能需求分析和超市会员管理系统实现的功能可分解成七个主要功能模块,它们分别是用户登录模块、会员信息模块、积分信息模块、基本信息管理模块、统计模块、系统信息模块、退出系统模块。
这七个主要功能模块分别可以分为多个具体模块,下面介绍各个具体模块。
2.系统结构图如下图所示:
图3-2 超市会员管理系统总体结构图
3.各具体功能模块图
1).用户登录模块
登录界面实现的程序流程图为:
图3-3用户登录程序流程图
2).会员信息模块
(1).会员基本信息查询
用户登录成功后,可以根据用户账号或身份证号查询会员的基本信息,还可以进行全表查询。
流程图如下:
图3-4会员信息查询流程图
(2).会员密码修改
此模块用于修改会员的登录密码。
流程图如下:
图3-5会员密码修改流程图
3)积分信息模块
(1).积分查询
实现原理如会员信息模块中的会员查询。
(2).积分兑换
该模块实现会员的积分兑换。
程序流程图如下:
图3-6积分兑换流程图
(3).消费加分
该模块功能将会员的消费金额换为消费积分。
流程图如下:
图3-7消费加分模块流程图
(4).优惠讯息
该模块为静态功能。
超市职员可将点击优惠讯息菜单即出现超市积分的优惠政策及兑换政策的对话框。
4)基本信息管理模块
(1). 职员信息管理
查询基本信息
该模块功能实现基本与会员基本信息查询相同,在此不再赘述。
修改职员信息
该模块功能修改超市职员的基本信息,其实现流程图如下:
图3-8职员信息修改流程图
修改密码
职员修改密码模块与会员密码修改类似,此处不再赘述。
添加职员信息
管理员进入系统后可以按照需求添加职员信息,下面是添加职员程序流程图:
图3-9添加职员信息流程图
删除职员信息
该模块由管理员进行操作,填入职工号后,系统检查是否存在于数据库中,若存在则按照职员号删除该职员记录信息,流程图如下:
图3-10删除职员信息流程图
会员信息管理
会员信息管理包括会员信息查询、会员信息修改、会员注册、会员注销四个模块,功能实现同职员信息管理模块中响应功能。
5)统计
统计模块用于统计会员积分等级。
(1)打开记录集,获得各等级人数;
(2)绘制柱形图
图3-11统计分析柱形图实现流程图
6)系统信息
1.用户帮助
系统调用帮助文件Market-Help.chm,对于不熟悉本系统的用户可以通过阅读帮助文件了解系统如何使用。
2.关于本系统
本功能调用系统关于对话框,为用户提供系统版本及版权情况。
数据库设计
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.系统数据库的设计
根据需求分析与概念结构设计,建立数据库系统支持的数据模型,即数据库的逻辑结构。
本系统利用MicrosoftAccess2003创建了名为SuperMarket的数据库。
本系统主要建立了以下四张表:
表3.1用户登录数据表
字段名
数据类型
字段大小
是否主键
DNO(登陆账号)
文本
6
是
DCode(密码)
文本
12
否
DUserSta(登录身份)
文本
50
否
表3.2会员基本信息数据表
字段名
数据类型
字段大小
是否主键
MNO(用户账号)
文本
6
是
MName(用户姓名)
文本
20
否
MID(身份证号)
文本
18
否
MTel(联系电话)
文本
50
否
MAdd(联系地址)
文本
50
否
表3.3职员基本信息数据表
字段名
数据类型
字段大小
是否主键
EID(职员号)
文本
6
是
EName(职员姓名)
文本
20
否
EStatus(职员职位)
文本
50
否
表3.4会员积分信息数据表
字段名
数据类型
字段大小
是否主键
MNO(会员账号)
文本
6
是
MScore(用户积分)
数字(double)
——
否
MGrade(用户等级)
数字(long)
——
否
MDiscount(用户折扣)
数字(double)
——
否
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次登录不成功
{
MessageBox("用户登录3次不成功!
即将关闭程序......","提示",64);
CDialog:
:
OnOK();
//向应用程序发送WM_QUIT消息,请求退出
:
:
PostQuitMessage(0);
}
}
else{//如果登录成功,则关闭数据库
CDialog:
:
OnOK();
CCMarketDlgdlg;
dlg.m_LoginSta=EStatus;
dlg.DoModal();
}
3会员信息模块
(1)会员基本信息查询
会员基本信息查询如下图:
图4-4会员信息查询界面
用户登录成功后,可以根据用户账号或身份证号查询会员的基本信息,还可以进行全表查询。
查询前,首先要选择及填写查询条件,若未填写,则出现系统提示。
查询条件填写正确后,点击查询即可会员详细信息。
查询和显示全部单击事件实现分别由函数voidCMemberDlg:
:
OnOK()和voidCMemberDlg:
:
OnBUTTONListAll()实现,具体代码如下:
记录集打开同上。
在列表框中显示的实现:
while(!
m_pRs->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);
}
m_pRs->MoveNext();
row+=1;
}
4.3.2会员密码修改
此模块用于修改会员的登录密码。
图4-5会员密码修改界面
填入用户账号和旧密码后,系统检查数据库中是否有该记录,如果存在该记录,则可填写新密码进行修改;若不存在,则系统给出提示信息。
如下图:
图4-6会员密码修改提示信息界面
该模块单击事件由函数voidCECodeModifyDlg:
:
OnOK()实现,具体代码如下:
sql="UpdateLoginsetDCode='"+NewCode+"'whereDNO='"+Name+"'";
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);
var=m_pRs->GetCollect("MGrade");
if(var.vt!
=VT_NULL)
str2=(LPCSTR)_bstr_t(var);
GetDlgItem(IDC_EDIT_Grade)->SetWindowText(str2);
var=m_pRs->GetCollect("MDiscount");
if(var.vt!
=VT_NULL)
str3=(LPCSTR)_bstr_t(var);
GetDlgItem(IDC_EDIT_Discout)->SetWindowText(str3);
(2)积分兑换
积分兑换功能的实现界面如下:
图4-8积分兑换功能实现界面
用户输入账号和密码后,点击兑换按钮,该按钮的实现中,首先检查用户合法性。
若用户已兑换过积分,则提示及兑换;若积分不够兑换等级,则提示积分不够;若兑换成功后,则显示用户等级和优惠折扣。
该模块实现单击事件函数处理为:
voidCEXchangeDlg:
:
OnOK(),具体实现如下:
//修改数据库中积分
sql="UpdateScoresetMGrade=1,MDiscount=0.1whereMNO='"+mzh+"'";
try
{
theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);
}
catch(_com_error&e)
{
AfxMessageBox(e.Description());
}
AfxMessageBox("兑换成功");
(3)消费加分
该模块功能将会员的消费金额换为消费积分,如下图:
图4-9消费加分模块界面实现图
输入用户账号和消费金额后,首先检查数据库中是否存在该记录,如果存在,则将该用户积分增加其消费金额数目,如不存在,系统弹出提示信息。
模块单击事件处理由函数voidCXiaoFeiDlg:
:
OnOK()实现,具体代码如下:
sql="UpdateScoresetMScore=MScore+'"+JiE+"'whereMNO='"+UserZH+"'";
try
{
theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);
}
catch(_com_error&e)
{
AfxMessageBox(e.Descript
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 超市 会员 管理 系统