




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、摘要随着信息化程度的的日益升高,商场经营管理机制正在发生着根本性的变化,商场要想在激烈的市场竞争环境下求得生存,就必须有效地利用人才、时间、信息结合的优势,就必须有效地进行商场内部改革和加强商场管理。 对商场而言,超市是商场最宝贵的资源,也是商场的“生命线”。如何做到商场超市与经济效益具有良好匹配?如何做到事得其才,人尽其用?如何在满足商场效益的同时又兼顾商场职工的需求?如何能在瞬息万变的时代使商场与社会环境相适应并且处理好随时变化的超市?这一系列的问题都是需要亟待解决的问题。 为了解决上述问题,使商场在激励的市场竞争中立于不败之地,设计并开发出一套适合商场超市收银特点,又符合我国商场管理
2、实情的超市收银系统就显得尤为重要。由于时间仓促,水平有限,因此我利用本次课程设计开发出了这样一套超市收银系统,可作为商用超市收银系统的一个大致演示和框架。二、需求分析目前每个超市每天的销售数据都非常大,如果靠人力去统计.计算和记录会造成非常大的误差和损失,此项的开发背景就是减少人工带来的误差和不便。使用本系统之后,将会提高的销售效率和误差,减少工作人员的劳动强度,减少办公耗材,提高超市的现代化管理水平。超市收银系统的总目标是: 在数据库和现有的先进的开发工具上,配置一定的硬件,开发一个具有易扩充, 易维护, 具有良好人间交互界面的超市收银系统. 实现在后台数据库服务器运行的时候, 可以通过管理
3、员或者收银员对超市商品的一系列资料进行存取, 对顾客的消费行为通过前端应用程序进行快速, 精确地服务, 同时通过前端应用软件监看超市商品的库存、销量等情况. 要求能对一天或者一段时间的销售资料进行保存以便以后查阅. 同时可以随时盘点销售情况, 打印报表等。为了保证商家的利益和适应今后的发展, 超市收银系统应该满足以下性能需求:2.1 系统处理的准确性当有顾客购买商品时,对购买金额计算的准确性, 对所付金额是否足够都必须严格要求, 在顾客购买了某种商品后, 对数据库中商品信息资料表要及时更新,更改库存、销量等属性。2.2 系统的易扩展性随着商家经营的不断扩大,对软件的性能要求会有所增加,这就要求
4、该收银系统通过增加适当的硬件和软件模块对整个系统进行升级和更新。2.3 系统界面的友好性作为超市的收银系统, 管理员或者销售员几乎每天都会和该软件打交道,因此该超市收银系统的前端应用程序端界面应尽可能的友好和易操作。三、概要设计3.1数据库关系模式设计(1) users名字: users别名: 用户信息表描述: 员工信息管理表,并对员工分配权限关系模式: 用户信息表(用户号,姓名,性别,密码,类型,聘用时间,电话,住址)(2) supplier名字: supplier别名: 供货商信息表描述: 用来记录供货商的信息关系模式: 供货商表(编号,名称,电话,地址,信息)(3) products名字
5、: products别名: 商品信息表描述: 用于记录每种商品的各种属性的表关系模式: 商品信息表(编号,名称,单价,单位,货架号,库存,进货时间,供货商编号)(4) sales名字: sales别名: 销售信息表描述: 用于记录每一次结算时出售商品记录的表,因此此表会在收银过程中动态添加元组关系模式: 销售信息表(编号,商品编号,销售数量,员工编号,销售时间,商品名,销售价格,收入)(5) imports名字: imports别名: 进货信息表描述: 用于记录进货情况的表关系模式:进货信息表(商品号,商品名,进货时间,进货数量,进货价格,销售商,产地)3.2总e-r图 员工管理出售 商品供货
6、商信息 员工信息销售信息打印 报表进货信息进货3.3数据库物理结构设计1users主键:用户号属性列类型说明用户号varchar(5)员工标识姓名varchar(10)员工姓名性别varchar(4)员工性别类型varchar(8)登陆该系统的用户类型密码varchar(10)登陆该系统的用户密码聘用时间smalldatetime该员工的聘用时间电话varchar(13)员工的联系电话住址varchar(30)员工的地址 2. supplier主键:编号属性列类型说明编号varchar(5)供货商标识名称varchar(30)供货商名称电话varchar(13)供货商联系电话地址varchar
7、(30)供货商地址信息varchar(50)供货商说明信息 3. products主键:商品编号外键:供应商编号属性列类型说明编号varchar(5)商品标识名称varchar(20)商品名称单价smallmoney商品单价单位varchar(6)商品单位货架号smallint商品所摆放的货架编号库存smallint商品库存进货时间smalldatetime商品的进货时间供应商编号int该商品的供货商的编号 4.sales主键:编号外键:商品编号,员工编号属性列类型说明编号varchar(30)销售商品的流水号销售数量varchar(10)某一特定的商品的一次销售数量销售时间smalldate
8、time销售的时间商品编号varchar(5)该商品的编号员工编号varchar(5)收银员的编号商品名varchar(20)销售商品名销售价格money销售商品的单价收入money某一次销售的收入 5.imports主键:商品号外键:销售商编号属性列类型说明商品号varchar(5)商品标识商品名varchar(20)商品名称进货数量varchar(10)购进该商品的数量进货价格money购进该商品的价格销售商varchar(5)该商品的供货商编号产地varchar(20)该商品的生产地进货时间smalldatetime该商品的进货时间四、功能模块本系统是一个超市收银系统。顾名思义,本系统用
9、来管理和更新超市日常交易数据,如收银员的管理,收银员的工作记录,日常交易记录,商品信息管理等等,前台操作界面用delphi实现,所用的数据存储在microsoft sql server 2005数据库的smarket数据库中。由于时间仓促,水平有限,因此我利用本次课程设计开发出的超市收银系统,只作为商用超市收银系统的一个大致演示和框架。本系统的流程图如下:超市收银系统管理员登录收银员登录操作员工资料操作供货商资料操作商品资料销售商品打印报表操作进货资料添加记录删除记录修改记录取消某次销售收银完成某次销售4.1登录只有输入正确的信息才能进入系统,信息输入错误三次系统会自动关闭。界面:截图1主要代
10、码:procedure tform1.bitbtn1click(sender: tobject);beginvcont:=vcont+1;if vcont3 then begin application.messagebox(登录失败超过三次,系统将关闭!,登录提示,mb_iconexclamation+mb_ok); application.terminate; endelse beginif self.edit1.text= then begin application.messagebox(请输入用户id!,登录提示,mb_iconexclamation+mb_ok); self.edi
11、t1.setfocus; exit; end;if self.edit2.text= then begin application.messagebox(请输入密码!,登录提示,mb_iconexclamation+mb_ok); self.edit2.setfocus; exit; end;if form1.adotable1.locate(用户号;密码;类型,vararrayof(edit1.text,edit2.text,combobox1.text),)then beginif combobox1.text=管理员 then begin form2:=tform2.create(sel
12、f); form2.show; end else begin form3:=tform3.create(self); form3.show; end;form1.visible:=false;endelseapplication.messagebox(输入用户信息错误!,登录提示,mb_iconexclamation+mb_ok); end; end;4.2收银员部分主界面:截图2 收银员可以查询个人信息。单击查询个人信息,则显示收银员个人信息。界面:截图3主要代码:procedure tform3.n2click(sender: tobject);varsqlstr:string;begin
13、sqlstr:=select * from users where 用户号=+form1.edit1.text+; adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add(sqlstr); adoquery1.open;end; 收银员可以查询商品信息。单击查询商品信息,则显示商品信息。界面如截图2。主要代码:procedure tform3.n3click(sender: tobject);var sqlstr:string;beginsqlstr:=select * from products; adoquery1.close; ad
14、oquery1.sql.clear; adoquery1.sql.add(sqlstr); adoquery1.open;end; 收银员可以查询销售信息。单击查询销售信息,则显示销售信息。界面与截图3类似,这里从略。主要代码与类似,这里从略。 收银员可以查询个人销售信息信息。单击查询个人销售信息,则显示个人销售信息。界面与截图3类似,这里从略。主要代码与类似,这里从略。 收银员可以修改自己密码。单击修改密码即可进入修改密码界面,原密码和新密码都不能为空,只有正确输入旧密码且两次输入的新密码相同才算修改成功。界面:截图4主要代码:procedure tform4.button1click(se
15、nder: tobject);var sqlstr:string;beginif edit1.text= then application.messagebox(请输入原密码!,修改密码提示,mb_iconexclamation+mb_ok)else if edit2.text= then application.messagebox(请输入新密码!,修改密码提示,mb_iconexclamation+mb_ok)else if edit3.text= thenapplication.messagebox(请再次输入新密码!,修改密码提示,mb_iconexclamation+mb_ok) e
16、lse if edit1.text=form1.edit2.text then beginif edit2.text=edit3.text then beginsqlstr:=update users set 密码=+edit3.text+ where 用户号=+form1.edit1.text+; adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add(sqlstr); adoquery1.execsql;application.messagebox(修改密码成功!,修改密码提示,mb_iconinformation+mb_ok); e
17、nd else application.messagebox(两次输入密码不符!,修改密码提示,mb_iconexclamation+mb_ok); end else application.messagebox(原密码输入错误!,修改密码提示,mb_iconexclamation+mb_ok);end;收银操作a.输入商品号、数量,点击输入按钮,则自动生成流水号并显示该商品的基本信息。界面:截图5主要代码:procedure tform3.button4click(sender: tobject);beginadotable1.open;if edit1.text then beginlab
18、el10.caption:=formatdatetime(yyyymmddhhmmss,now);if adotable1.locate(编号,edit1.text,) then beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(select 编号,名称,单价 from products where 编号=+edit1.text+);adoquery1.open;adoquery2.close;adoquery2.sql.clear;adoquery2.sql.add(select 商品编号,商品名,销售价格from sale
19、s where 商品编号=+edit1.text+);adoquery2.open;adotable2.open;adotable2.insert;adotable2编号:=label10.caption;adotable2商品编号:=edit1.text;adotable2商品名:=adoquery1.fields1.asstring;adotable2销售价格:=adoquery1.fields2.asstring;adotable2销售时间:=datetostr(date);adotable2销售数量:=inttostr(spinedit1.value);adotable2收入:=spi
20、nedit1.value*adoquery1.fields2.asfloat;adotable2员工编号:=label11.caption;adotable2.post;adotable3.open;adotable3.insert;adotable3总价:=spinedit1.value*adoquery1.fields2.asfloat;adotable3商品号:=adotable2商品编号;adotable3商品名:=adotable2商品名;adotable3单价:=adotable2销售价格;adotable3数量:=adotable2销售数量;adotable3.post;adoq
21、uery1.close;adoquery1.sql.clear;adoquery1.sql.add(select * from temps);adoquery1.open;endelseapplication.messagebox(无此商品,请重新输入!,输入提示,mb_iconexclamation+mb_ok);endelseapplication.messagebox(请输入商品号!,输入提示,mb_iconexclamation+mb_ok);end;b.单击计算总额按钮,则显示某顾客所购全部商品的总价。界面:截图6主要代码:procedure tform3.button2click(
22、sender: tobject);beginadoquery1.close;adoquery1.sql.clear;adoquery1.sql.add(select sum(总价) as 总消费额 from temps);adoquery1.open;label12.caption:=adoquery1.fields0.asstring;end;c.在顾客付钱输入框中输入顾客付款金额数,点击结算,则显示结算单。界面:截图7主要代码:procedure tform3.button3click(sender: tobject);beginif edit1.text then beginform13
23、.adotable1.open;form13.adotable1.insert;form13.adotable1流水号:=adotable2编号;form13.adotable1商品名:=adotable2商品名;form13.adotable1数量:=inttostr(spinedit1.value);form13.adotable1单价:=adotable2销售价格;form13.adotable1总价:=adotable2收入;form13.adotable1付费:=edit3.text;form13.adotable1找零:=floattostr(strtofloat(edit3.te
24、xt)-strtofloat(label12.caption);form13.adotable1.post;form11:=tform11.create(self); form11.show; form11.label2.caption:=label12.caption; form11.label4.caption:=edit3.text; form11.label6.caption:=floattostr(strtofloat(edit3.text)-strtofloat(label12.caption); adoquery2.close; adoquery2.sql.clear; adoq
25、uery2.sql.add(select * from sales); adoquery2.open; adoquery2.first; repeat adoquery1.close; adoquery1.sql.clear; adoquery1.sql.add(update products set 库存=库存-+adoquery2.fields2.asstring+ where 编号=+adoquery2.fields1.asstring+); adoquery1.execsql; adoquery1.close; adoquery2.next; until adoquery2.eof;
26、edit1.clear; spinedit1.value:=1; edit3.clear; end else application.messagebox(请输入商品号!,结算提示,mb_iconexclamation+mb_ok);end;d.点击打印结算单按钮,则显示打印窗口,可以打印结算单。界面:截图8主要代码:procedure tform11.button1click(sender: tobject);beginform13:=tform13.create(self);form13.show;form13.adoquery1.active:=true;adoquery1.close;
27、adoquery1.sql.clear;adoquery1.sql.add(delete from temps);adoquery1.execsql;adoquery1.close;form11.close;end;退货操作若顾客对某商品不满意,可以来退货,收银员点击退货按钮,则显示退货窗口,输入流水号,点击退货按钮,若弹出退货成功提示窗口则表明退货成功。界面:截图9主要代码:procedure tform14.button1click(sender: tobject);varsqlstr:string;beginsqlstr:=delete from sales where 编号=+edit
28、1.text+;if edit1.text= thenapplication.messagebox(请输入流水号!,退货提示,mb_iconexclamation+mb_ok)elseif form3.adotable2.locate(编号,edit1.text,) then beginform3.adoquery1.close;form3.adoquery1.sql.clear;form3.adoquery1.sql.add(update products set 库存=库存+form3.adotable2.fields2.asstring+ where 编号=(select 商品编号 fr
29、om sales where 编号=+edit1.text+);form3.adoquery1.execsql;form3.adoquery1.close;form3.adoquery2.close;form3.adoquery2.sql.clear;form3.adoquery2.sql.add(sqlstr);form3.adoquery2.execsql;application.messagebox(退货成功!,退货提示,mb_iconinformation+mb_ok);endelse application.messagebox(没有该记录!,退货提示,mb_iconexclamat
30、ion+mb_ok);end;4.3管理员部分主界面:截图10 管理员可以查询员工信息、商品信息、销售信息、供货商信息、进货信息,查询界面及主要代码与收银员的查询操做类似,这里从略。 管理员可以添加、删除员工信息、商品信息、供货商信息和进货信息,这里以添加/删除员工信息为例,其他信息的添加/删除操作与此类似。点击修改添加/删除员工信息,则进入修改/删除窗口,添加操作时,输入详细信息,点击添加按钮,删除时,输入员工号,点击删除记录按钮即可。界面:截图11截图12主要代码:添加:procedure tform5.button1click(sender: tobject);beginif (edit
31、1.text) and (edit2.text) and (edit3.text) and (edit4.text) and (edit5.text) and (edit6.text) and (edit7.text) and (edit8.text) thenif not form1.adotable1.locate(用户号,edit1.text,) then beginform1.adotable1.insert;form1.adotable1用户号:=edit1.text;form1.adotable1密码:=edit2.text;form1.adotable1类型:=edit3.tex
32、t;form1.adotable1姓名:=edit4.text;form1.adotable1性别:=edit5.text;form1.adotable1聘用时间:=edit6.text;form1.adotable1电话:=edit7.text;form1.adotable1住址:=edit8.text;form1.adotable1.post;application.messagebox(添加成功!,添加提示,mb_iconinformation+mb_ok);edit1.text:=; edit2.text:=;edit3.text:=; edit4.text:=;edit5.text:
33、=; edit6.text:=;edit7.text:=; edit8.text:=;endelse application.messagebox(该用户已存在!,添加提示,mb_iconexclamation+mb_ok)else application.messagebox(请将信息填写完整!,添加提示,mb_iconexclamation+mb_ok);end;删除:procedure tform5.button2click(sender: tobject);varsqlstr:string;beginsqlstr:=delete from users where 用户号=+edit9.
34、text+;if edit9.text= thenapplication.messagebox(请输入员工号!,删除提示,mb_iconexclamation+mb_ok)elseif form1.adotable1.locate(用户号,edit9.text,) then beginform2.adoquery1.close;form2.adoquery1.sql.clear;form2.adoquery1.sql.add(sqlstr);form2.adoquery1.execsql;application.messagebox(删除成功!,删除提示,mb_iconinformation+mb_ok);end else application.messagebox(没有该记录
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 说课时间分配课件
- 语言文字培训基础知识课件
- 2025年上海市果蔬种植买卖合同示范文本
- 难忘的端午节赛龙舟作文(10篇)
- 合同审批及管理流程模板化指南
- 农业资源合理利用与生态保护合同
- 红楼梦第四十回课件
- 红楼梦第八回课件
- 农业智能灌溉系统使用与维护协议
- 农村农副产品生产加工协作合同书
- 定额〔2025〕2号文-关于发布2020版电网技术改造及检修工程概预算定额2024年下半年价格
- 幼儿园红色故事:鸡毛信的故事
- 丹毒的健康宣教
- 《柴油机的维护保养》课件
- 两个女儿断绝关系协议书范文
- 多囊卵巢综合征合并胰岛素抵抗诊治专家共识
- 竞选竞选大学心理委员参考课件
- 2024年数控车工技能竞赛理论考试题库500题(含答案)
- 牙体牙髓病学(山东联盟)智慧树知到答案2024年滨州医学院
- 《矿物岩石学》全套教学课件
- 全国职业院校宠物营养学知识竞赛备考试题库(含答案)
评论
0/150
提交评论