版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.数据库设计1系统数据库分析数据库设计是建立数据库及其应用系统的技术,是系统开发和建设中的核心技术。具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效的存储数据,满足各种用户的应用需求(信息要求和处理要求)。数据库结构设计的好坏直接对应用系统的效率以及实现的效果产生影响。谢谢阅读根据超市会员管理系统功能设计的需要,数据库结构设计如下所示:精品文档放心下载(1).用户登录信息数据表(Login):(用户账号,密码,登录身份);感谢阅读(2).会员基本信息数据表(Member):(用户账号,用户姓名,身份证号,联系方式,联系地址);感谢阅读(3).职员基本信息数据表(Employee):(职员号,职员姓名,职员职位);精品文档放心下载(4).会员积分信息数据表(Score):(会员账号,会员积分,会员等级,会员折扣);精品文档放心下载2数据库概念结构设计根据上节的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为以后的逻辑结构设计打下基础,这些实体包括各种具体信息,通过相互之间的作用形成数据的流动。感谢阅读各种实体具体的描述E-R图如下。1.用户登录信息实体图主要描述了登录用户的基本情况,包括了用户的用户精品文档放心下载.账号,密码,登录身份。如图3-11所示,用户登录信息实体E-R图。谢谢阅读用户登录*用户账号 密码 登录身份图3-12用户登录实体的E-R图会员基本信息实体图主要描述会员的基本情况,包括了会员基本信息的用户账号,用户姓名,身份证号,联系方式,联系地址,得出如图3-12所示会员基本信息实体E-R图。谢谢阅读会员基本信息用户姓名 联系方式*用户账号身份证号 联系地址图3-13会员基本信息实体的E-R图职员基本信息实体图主要描述新生的基本情况,包括了职员基本信息的职员号,职员姓名,职员职位,得出如图3-13所示职员基本信息实体E-R图。精品文档放心下载职员基本信息*职员号 职员姓名 职员职位图3-14职员基本信息实体的E-R图.会员积分信息实体图主要描述会员积分的基本情况,包括了会员积分基本信息的会员账号,会员积分,会员等级,会员折扣,得出如图3-14所示会员积分信息实体E-R图。感谢阅读会员积分信息*会员账号 会员积分 会员等级 会员折扣图3-15会员积分信息实体的E-R图实体之间的关系E-R图主要描述实体间的关系。用户姓名 联系方式*用户账号 身份证号 联系地址*职员号会员基本信息N1职员1管理获得职员姓名基本信息N1职员职位 会员积分信息*会员账号 会员积分 会员等级 会员折扣图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获取提示信息文本。感谢阅读添加消息映射(最好写在AFX_MSG_MAP宏外,否则可能出现编谢谢阅读译错误)ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW,0,0xFFFF,OnToolTipText)感谢阅读ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA,0,0xFFFF,OnToolTipT感谢阅读ext)添加事件声明(最好写在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会员信息模块会员基本信息查询会员基本信息查询如下图:.图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)->Val感谢阅读ue;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.积分信息模块积分查询该功能实现界面如下:.图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("兑换成功");.消费加分该模块功能将会员的消费金额换为消费积分,如下图:图4-9消费加分模块界面实现图输入用户账号和消费金额后,首先检查数据库中是否存在该记录,如果存在,则将该用户积分增加其消费金额数目,如不存在,系统弹出提示信息。感谢阅读模块单击事件处理由函数voidCXiaoFeiDlg::OnOK()实现,具体代码如下:感谢阅读sql="Update Score set MScore=MScore+'"+JiE+"' where感谢阅读MNO='"+UserZH+"'";try{theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);精品文档放心下载}catch(_com_error&e){AfxMessageBox(e.Description());感谢阅读}AfxMessageBox("添加成功");.(4)优惠讯息该模块为静态功能。点击优惠讯息菜单即出现超市积分的优惠政策及兑换政策的对话框。感谢阅读5基本信息管理模块1).职员信息管理(1).查询基本信息该模块功能实现基本与会员基本信息查询相同,在此不再赘述。实现该功能的函数为:voidCEmployeeDlg::OnOK();实现该功能的SQL语句为:精品文档放心下载sql="select*fromEmployeewhereEID='"+EmpID+"'";谢谢阅读(2).修改职员信息该模块功能修改超市职员的基本信息。函数实现:voidCMIMDlg::OnOK()。精品文档放心下载其实现如下:GetDlgItem(IDC_EDIT1_EmpName)->GetWindowText(EXm);GetDlgItem(IDC_COMBO_EmpSta)->GetWindowText(EZw);if(EZw=="管理员")EZw="0";感谢阅读elseif(EZw=="普通职员")EZw="1";谢谢阅读sql="UpdateEmployeesetEName='"+EXm+"',EStatus='"+EZw+"'whereEID='"+EMId+"'";感谢阅读try.{theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);精品文档放心下载}catch(_com_error&e){AfxMessageBox(e.Description());精品文档放心下载}AfxMessageBox("修改成功");(3).修改密码职员修改密码模块与会员密码修改类似,实现函数为:voidCMModifyDlg::OnOK(),此处不再赘述。感谢阅读具体SQL语句实现为:sql="UpdateLoginsetDCode='"+NewCode+"'whereDNO='"+Name+"'";精品文档放心下载try{theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);感谢阅读}catch(_com_error&e){AfxMessageBox(e.Description());谢谢阅读}(4).添加职员信息.管理员进入系统后可以按照需求添加职员信息,该模块首先检验输入是否为空,若不为空,则可以进行添加,此功能同时将信息添加到Login表和Employee表中,界面实现如图:精品文档放心下载图4-10添加职工信息实现该事件的函数为:voidCEAddEmplyeeDlg::OnOK(),下面是添加职员信息的具体实现:感谢阅读sql="InsertintoEmployee(EID,EName,EStatus)values('"+Eno+"','"+Ename+"','"+Esta+"')";谢谢阅读SQL="InsertintoLogin(DNO,DCode,DUserSta)values('"+Eno+"','"+Ecode+"','"+Esta+"')";感谢阅读try{theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);谢谢阅读theApp.conn->Execute((_bstr_t)SQL,NULL,adCmdText);精品文档放心下载}catch(_com_error&e){AfxMessageBox(e.Description());谢谢阅读}.AfxMessageBox("添加成功");(5).删除职员信息该模块只能由管理员进行操作,管理员成功登录后,可以按照职员号删除职员信息,如图所示:精品文档放心下载图4-11删除职工信息图在删除前,系统会给出提示,提醒用户是否确定要删除。点击是,则将该记录从数据库中删除;点击否,则撤销删除行为。精品文档放心下载实现函数为voidCDelEmpDlg::OnOK(),代码如下:谢谢阅读if(MessageBox("确定要删除该记录吗?","提示",MB_YESNO)==IDYES)谢谢阅读{sql="deletefromEmployeewhereEID='"+EmpNO+"'";精品文档放心下载SQL="deletefromLoginwhereDNO='"+EmpNO+"'";精品文档放心下载try{theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);谢谢阅读theApp.conn->Execute((_bstr_t)SQL,NULL,adCmdText);精品文档放心下载}catch(_com_error&e){AfxMessageBox(e.Description());}谢谢阅读.AfxMessageBox("删除成功");}会员信息管理会员信息管理包括会员信息查询、会员信息修改、会员注册、会员删除四个模块,功能实现同职员信息管理模块中响应功能。精品文档放心下载实现函数分别为:voidCMemberDlg::OnOK()、voidCModifyMemDlg::OnBUTTONModify()、voidCMemAddDlg::OnOK()、voidCModifyMemDlg::OnBUTTONDel()。谢谢阅读此处以会员信息修改和删除为例,其他功能实现略写。图4-12会员信息修改图中,灰色编辑框表示不可改。如果要修改信息则填入要修改的值,点击“确定修改”,即可修改成功;如果要删除该条记录,则点击“确定删除”,系统会提示,是否真的删除,若是,则从数据库表中将该记录删除,若否,则退出删除。感谢阅读此处实现的相关的SQL语句为://修改sql="Update
Member
set.MName='"+UserName+"',MTel='"+UserTel+"',MAdd='"+UserAdd+"'whereMNO='"+UserNO+"'";谢谢阅读try{theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);谢谢阅读}catch(_com_error&e){AfxMessageBox(e.Description());谢谢阅读}AfxMessageBox("修改成功");//删除if(MessageBox("确定要删除该记录吗?","提示",MB_YESNO)==IDYES)感谢阅读{sql="deletefromMemberwhereMNO='"+UserNO+"'";感谢阅读SQL="deletefromLoginwhereDNO='"+UserNO+"'";谢谢阅读try{theApp.conn->Execute((_bstr_t)sql,NULL,adCmdText);谢谢阅读theApp.conn->Execute((_bstr_t)SQL,NULL,adCmdText);谢谢阅读}catch(_com_error&e){AfxMessageBox(e.Description());感谢阅读.}AfxMessageBox("删除成功");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(&rectPic);pDC->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;谢谢阅读//创建画刷,填充图形.CBrushNewBrush;NewBrush.CreateSolidBrush(RGBArray[i]);谢谢阅读CBrush*pOldBrush=pDC->SelectObject(&NewBrush);感谢阅读pDC->Rectangle(&rect);pDC->SelectObject(pOldBrush);感谢阅读}//释放设备环境this->ReleaseDC(pDC);7系统信息1用户帮助系统调用帮助文件Market-Help.chm,对于不熟悉本系统的用户可以通过阅读帮助文件了解系统如何使用。感谢阅读点击用户帮助菜单或帮助工具栏按钮后,即打开帮助文件,如图所示:谢谢阅读图4-14用户帮助功能实现图.具体实现为:voidCCMarketDlg::OnMENUHelp()精品文档放心下载{charbuf[MA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年企业人力资源管理:聘用与保密协议
- 2024年乡村住宅中介购买协议
- 2024年商业店面施工协议
- (2024版)包含运费与质量标准的副食购销合同
- 2024年城市道路楼体亮化工程合同
- 2024年企业广告制作及发布合同
- 2024年企业应急贷款快速审批协议
- 湿地生态池塘清淤泥方案
- 2024年分期房款支付协议
- 外来施工人员入场审核制度
- 铁塔基础施工方案施工方案
- 有机水稻培训课件
- 装维培训课件
- 数据分析与挖掘系统服务合作协议
- 安全驾驶机动车的湿滑路面
- 探究“对勾”函数的图象与性质+教学设计 高一上学期数学人教A版(2019)必修第一册
- 【盒马鲜生生鲜类产品配送服务问题及优化建议分析10000字(论文)】
- 如何帮助大学生处理性别认同和性取向问题
- 小学-信息技术试题及答案
- 高中生物必修三第一二章测试题(含答案)
- 【地理】湖北省鄂东南联盟2023-2024学年高一上学期期中联考(解析版)
评论
0/150
提交评论