1、而顾客是超市的上帝,超市一切都是为顾客服务。本系统中顾客要求是可以现场买商品,采购信息有采购编号、采购日期、商品厂商、采购员、商品的价格、商品规格、进货商品的数量等属性。同时超市还可以进退货并有相应的付款表。通过与超市管理人员进行反复的讨论,确定系统应该实现以下功能:(1)对商品信息的变动进行处理 在商品的进销过程巾,商品信息总是在不断变化的。比如商品价格的调整、商品信息的修改、新商品信息的增加以及商品信息的删除,因此设计系统时必须考虑到这些情况。(2)用户信息的变动进行处理。需考虑到新会员的注册和已注册,设置会员折扣用户的信息的修改及删除。(3)对顾客采购信息的变动进行处理。采购信息的过程中
2、采购信息也在不断发生改变,因此也要充分考虑。(4)查询及统计功能。要求可以根据指定的条件对商品信息、用户信息和采购信息、销售信息进行查询和统计。(5)对库存商品信息的变动进行处理。要求可以根据库存的状态进行相应的进退货。2.2功能需求2.1.1零售前台(POS)管理系统商品录入:根据超巿业务特点制定相关功能,可以通过输入唯一编号、扫描条形码、商品名称等来实现精确或模糊的商品扫描录入。该扫描录入方法可以充分保证各种电脑操作水平层次的人员均能准确快速地进行商品扫描录入。收银业务:通过扫描条形码或者直接输入商品名称(对于同类多件商品采用一次录入加数量的方式)自动计算本次交易的总金额。在顾客付款后,自
3、动计算找零,同时打印交易清单(包括交易的流水账号、每类商品的商品名、数量、该类商品的总金额、交易的时间、负责本次收银的员工号)。如果顾客是本店会员并持有本人会员卡,则在交易前先扫描会员卡,并对所购物品全部实行95折优惠,并将所购物品的总金额累计到该会员的总消费金额中。 会员卡的有效期限为一年,满一年未续卡者,该会员卡将被注销。安全性:OS登陆、退出、换班与操作锁定等权限验证保护;断电自动保护最大限度防止意外及恶意非法操作。独立作业:有的断网收银即在网络服务器断开或网络不通的情况下,收银机仍能正常作业2.1.2后台管理系统进货管理: 根据销售情况及库存情况,自动制定进货计划(亦可手工制定修改),
4、可以避免盲目进货造成商品积压。 按计划单有选择性地进行自动入库登记。 综合查询打印计划进货与入库记录及金额。销售管理: 商品正常销售、促销与限量、限期及禁止销售控制。 综合查询各种销售明细记录、各地收银员收银记录以及交结账情况等。 按多种方式统计生成销售排行榜,灵活察看和打印商品销售日、月、年报表。库存管理: 综合查询库存明细记录。 库存状态自动告警提示。如库存过剩、少货、缺货等。软件为您预警,避免库存商品积压损失和缺货。 库存自动盘点计算。人员管理:员工,会员,供应商,厂商等基本信息登记管理。2.3数据需求2.3.1顶层数据流程2.3.2第0层数据流程2.3.3第1层数据流程第3节概要设计3
5、.1概念结构设计3.1.1员工信息E-R图设计3.1.2商品信息E-R图设计3.1.3供应商信息E-R图设计3.1.4商品销售信息E-R图设计3.1.5出库/入库信息E-R图设计3.2逻辑结构设计3.2.1系统关系模型a)商品信息表(商品编号,商品名称,价格,条形码,数量,厂商编号,供货商编号)b)员工表(用户编号,用户名称,用户密码,用户类型)c)商品销售表(销售编号,商品编号,销售数量,销售金额,销售日期)d)入库/出库表(入库编号,入库商品编号,入库数量,入库日期)e)供货商表(供货商编号,供货商名称,供货商地址,供货商电话)f)厂商表(厂商编号,厂商名称,厂商地址,厂商电话)3.3数据
6、库模式定义商品信息表(MerchInfo)字段名字段类型长度主/外键字段值约束对应中文名MerchIDint4Not null商品编号MerchNameVarchar50商品名称MerchPriceMoney价格MerchNumInt库存数量BarCode条形码FactoryID10厂商编号ProvideID供货商编号员工表(Menber)UserIDvarchar员工编号UserName25员工名称UserPW员工薪资UserStyle员工职务UserSex员工性别销售表(Sale)SaleID销售编号MerChIDSaleDateDatetime8销售日期SaleNum销售数量SalePr
7、ice销售单额入库/出库纪录表(Stock)StockID入库编号入库商品编号入库数量单额StockDate入库日期PlanDate计划进货日期供货商表(Provide)ProvideName供货商名称ProvideAddress250供货商地址ProvidePhone供货商电话厂商表(Provide)FactoryName厂商名称FactoryAddress厂商地址FactoryPhone厂商电话第4节 数据库实施阶段4.1安全性设计 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。系统安全保护措施是否有效是数据库系统的主要指标之一。数据库的安全性和计算机系统的安
8、全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。信息系统尽管功能强大,技术先进,但由于受到自身体系结构,设计思路以及运行机制 等限制,也隐含许多不安全因素。常见因素有:数据的输入,输出,存取与备份,源程序以及应用软件,数据库,操作系统等漏洞或缺陷,硬件,通信部分的漏洞,企业内部人员的因素,病毒,“黑客”等因素。因此,为使本系统能够真正安全,可靠,稳定地工作,必须考虑如下问题:为保证安全,不致使系统遭到意外事故的损害,系统因该能防止火,盗或其他形式的人为破坏。1)系统要能重建2)系统应该是可审查的3)系统应能进行有效控制,抗干扰能力强4)系统使用者的使用权限是可识别的SQL Serv
9、er提供多层安全。在最外层,SQL Server的登录安全性直接集成到Widows NT/2000的安全上,它允许Windows NT服务器验证用户。使用这种Windows 验证SQL Server就可以利用Windows NT/2000的安全特性,例如安全验证和密码加密、审核、密码过期、最短密码长度,以及在多次登录请求无效后锁定帐号。4.2完整性设计数据库完整性是指数据库中数据的正确性和相容性。数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。数据库完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中。
10、通过DBMS实现的数据库完整性按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面:1数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。2利用基于DBMS的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。同时,基于DBMS的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。3合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。比如装载大量数据时,只要在装载之前临时使基于DBMS的数据库完整性约束
11、失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。4在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。在实施数据库完整性设计的时候,有一些基本的原则需要把握:1根据数据库完整性约束的类型确定其实现的系统层次和方式,并提前考虑对系统性能的影响。一般情况下,静态约束应尽量包含在数据库模式中,而动态约束由应用程序实现。2实体完整性约束、参照完整性约束是关系数据库最重要的完整性约束,在不影响系统关键性能的前提下需尽量应用。用一定的时间和空间来换取系统的易用性是值得的。第5节 详细设计5.1模块简述系统总体结构5.2模块设计与实现(部分界面)5.2.0登陆
12、界面5.2.1员工登陆界面5.2.2商品信息界面5.2.3员工信息界面5.2.4供应商信息界面第6节 总结通过此次的课程设计,我学到了很多知识,跨越了传统方式下的教与学的体制束缚,在设计报告的写作过程中,通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过课程设计,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。通过这次超市管理系统课程设计,让我充分运用自己所学的知识,让我明白只有单纯的理论知识是远远不够
13、的,只有通过实际的锻炼才能更好的运用所掌握的基础知识,才能在原有的基础上提升自己的能力,提高自己解决问题的能力。在这短短的几天里,查阅有关的C+学习资料,设计规则,代码的编写及到最后的调试。在设计过程中,通过对控件事件的处理,界面的布局,代码的调试,充分锻炼了自己的思维,获得了充分的实际经验,提高了处理问题的能力,同时也提高了对问题思考的应急能力和抗压力的能力。经过几天的努力,虽然设计已经完成,但仍然有很多模块和功能要完善,存在很多美中不足之处。但是基本上还能满足小型超市的管理。在设计报告的写作过程中也学到了做任何事情所要有的态度和心态,首先我明白了做学问要一丝不苟,对于出现的任何问题和偏差都
14、不要轻视,要通过正确的途径去解决,在做事情的过程中要有耐心和毅力,不要一遇到困难就打退堂鼓,只要坚持下去就可以找到思路去解决问题的,在遇到问题时,有必要向老师和同学请教,合作沟通的意义是巨大的。参考文献【1】.Microsoft SQL Server 2000 联机丛书【2】.金林樵主编 SQL Server 2000程序设计实训教程 科学出版社 2006年【3】.李言编著 Visual C+项目开发全程实录 清华出版社 2008年【4】.姚领田编著 精通MFC程序设计 人民邮电出版社 2006年【5】.苗雪兰编著 数据库原理及应用教程(2版)机械工业出版社 2005年附件:/登陆程序/voi
15、d yuangongdenglu:Ondenglu() UpdateData(1); if(m_bianhao=) MessageBox(请输入账号!); return; if(m_mima=请输入密码! CAdocon adoconn; adoconn.OnInitAdocon(); _bstr_t sql; sql=select * from 员工信息表 where 员工编号=+m_bianhao+ and 员工密码=+m_mima+; _RecordsetPtr m_precordset; m_precordset=adoconn.GetRecordSet(sql); if(m_prec
16、ordset-adoEOF=0) GetDlgItem(ID_rukuxitong)-EnableWindow(FALSE); UpdateData(0);/添加程序/void Cgongyingshanxinxi:OnButadd() / TODO: Add your control notification handler code here CAdocon adoconn; adoconn.OnInitAdocon();/调试 _bstr_t sqltemp; sqltemp=insert into 供应商信息表 (供应商编号, 供应商名称, 供应商地址, 供应商电话) values (
17、+m_gysbh+,+m_gysmc+m_gysdz+m_gysdh+) adoconn.ExecuteSQL(sqltemp); adoconn.exitcon(); MessageBox(添加成功 OnOK();/删除程序/void CYuangongxinxi:OnButdel() UpdateData(TRUE);delete from 员工信息表 where 员工姓名=+m_XM+ if(m_XM=员工姓名不为空 if(adoconn.ExecuteSQL(sqltemp)=TRUE) MessageBox(删除成功 else MessageBox(删除失败 OnOK(); Upda
18、teData(FALSE);/查询程序/void Cshangpingxinxi:OnButquery() select * from 商品信息表 where 商品编号= _RecordsetPtr m_precordset; /GetDlgItem(IDC_BUTTON2)- m_mingcheng= (LPCTSTR)(_bstr_t)m_precordset-GetCollect(商品名称 m_gysbianhao= (LPCTSTR)(_bstr_t)m_precordset-供货商编号 m_jiage= (LPCTSTR)(_bstr_t)m_precordset-价格 m_csbi
19、anhao= (LPCTSTR)(_bstr_t)m_precordset-厂商编号 m_tiaoxingma= (LPCTSTR)(_bstr_t)m_precordset-条形码/Adocon.cpp: implementation of the CAdocon class./void CAdocon:OnInitAdocon()CoInitialize(NULL);try m_pConnection.CreateInstance(ADODB.Connection bstr_t strConnect = driver=SQL Server; Server=127.0.0.1; DATABASE=SuperMaket; UID=admin;PWD=123; m_pConnection-Open(strConnect,adModeUnknown); /们经常使用的只是前面用#import语句引用类型库时,生成的包装类.tlh中声明的智能指针中的三个,它们分别是_ConnectionPtr、_RecordsetPtr和_CommandPtr。下面分别对它们的使用方法进行介绍: /_ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1