Delphi课程设计超市收银系统

上传人:沈*** 文档编号:41384716 上传时间:2021-11-20 格式:DOC 页数:21 大小:1.15MB
收藏 版权申诉 举报 下载
Delphi课程设计超市收银系统_第1页
第1页 / 共21页
Delphi课程设计超市收银系统_第2页
第2页 / 共21页
Delphi课程设计超市收银系统_第3页
第3页 / 共21页
资源描述:

《Delphi课程设计超市收银系统》由会员分享,可在线阅读,更多相关《Delphi课程设计超市收银系统(21页珍藏版)》请在装配图网上搜索。

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+

35、mb_ok);end else application.MessageBox(没有该记录!,删除提示,mb_iconexclamation+mb_ok);end; 管理员可以修改员工信息、商品信息、供货商信息和进货信息,这里已修改员工信息为例,其他修改操作与此类似,这里从略。点击修改修改,进入修改窗口,选择要修改的内容,点击修改按钮即可。界面:截图13主要代码:procedure TForm10.Button1Click(Sender: TObject);var SqlStr:String;beginif (combobox1.Text) and (combobox2.Text) and (e

36、dit2.Text) and (combobox3.Text) and (edit4.Text) then beginSqlStr:=update+combobox1.Text+set+combobox3.Text+=+edit4.Text+ where +combobox2.Text+=+edit2.Text+;form2.adoquery1.Close;form2.adoquery1.SQL.Clear;form2.adoquery1.SQL.Add(sqlStr);form2.adoquery1.ExecSQL;application.MessageBox(修改成功!,修改提示,mb_i

37、coninformation+mb_ok);form10.Close; end else application.MessageBox(请将信息填写完整!,修改提示,mb_iconexclamation+mb_ok);end;管理员可以修改自己的密码,修改界面及主要代码与收银员的相同,这里从略。 管理员还可以查找满足特定条件的信息,在主界面中输入要求的信息,点击查询,则显示查询结果。界面:截图14主要代码与其他查询代码类似,这里从略。五、总结体会通过这次课程设计,我学到了很多知识,也总结了很多的经验。 虽然这个超市收银系统比较简单,但是要认认真真按照软件工程的开发步骤来做, 确实还是要花一定的功夫。首先是要做好项目开发的需求调查, 只有认真做好这一步, 才能开发出符合客户所要求的功能。 之后就是认真仔细的做系统设计,这一点不能马虎。 有人可能觉得系统设计简略一点, 到了编写代码的时候再多考虑一点,我认为这是大错特错。 因为如果系统设计没有设计好, 那么在整个软件开发过程中各个模块之间的接口, 数据流向等都比较混乱, 有时候辛辛苦苦编写了很多的代码结果还是要返工从来,那就事倍功半得不偿失了。在这次课程设计过程中, 还遇到很多问题,这里不一一列举。有时虽然比较辛苦,但都解决了,我也感到非常的高兴。通过这次课程设计我收获颇多,在这里我要感谢燕老师。21

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!