小型超市管理信息系统课程设计_第1页
小型超市管理信息系统课程设计_第2页
小型超市管理信息系统课程设计_第3页
小型超市管理信息系统课程设计_第4页
小型超市管理信息系统课程设计_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、小型超市管理系统小型超市管理系统摘要:小型超市管理系统在现代社会中的应用十分广泛,它是用delphi开发的基于windows的小型数据库管理软件。后台数据库的设计采用SQL server 2000,这些流行软件的应用也使系统更容易维护。该系统使用结构化方法,按照系统调查、系统分析、系统设计、系统实施的步骤,采用结构化的编程方法而完成的。在设计中,对系统总体方案的设计,采用了“自上而下”的方法,而对于信息系统具体业务采用了“自下而上”的方法。尤其是数据窗口这一方便而简洁操纵数据库的智能化对象,从而建立一套完善科学的管理信息系统,对超市进行进货、销售发货、库存等实现全面、动态、及时的管理。因此,该

2、设计的方案基本上满足了系统的业务需求,具有一定的可用性。关键词: 数据表;SQL server 2000;控件绑定ODBC数据源1、 需求分析1.1应用背景最初的超市资料管理,都是靠人力来完成的。但近几年我国超市经营规模日趋扩大,销售额和门店数量大幅度增加,而且许多超市正在突破以食品为主的传统格局,向品种多样化发展。小型超市在业务上需要处理大量的库存信息,还要时刻更新产品的销售信息,不断添加商品信息,并对商品各种信息进行统计分析。因此,在超市管理中引进现代化的办公软件,实现超市庞大商品的控制和传输,从而方便销售行业的管理和决策,为超市和超市管理人员解除后顾之忧。1.2设计目标开发这个系统的目的

3、就是帮助超市管理部门提高工作效率。通过本管理系统软件,能帮助超市工作人员利用计算机,极为方便的对超市的有关数据进行管理、输入、输出、查找等有关操作,使杂乱的超市数据能够具体化、直观化、合理化等。2、总体方案设计2.1系统的目标小型超市管理系统能减少很多不必要的资源,不用象以前那样用冗余的纸张式管理。大大节省了管理人员的工作量,并且计算机的存储与系统快速查询功能大大提高了,提高管理人员的效率。方便快捷的操作界面,提高工作效率。2.2系统处理流程1.启动系统,激活登陆口令界面;2.通过验证后,对系统进行初始化;3. 进入系统,通过事件驱动机制激活相应的功能模块,并执行相应的功能;4.通过关闭系统事

4、件,激活关闭系统模块,退出系统。系统处理流程如图2.2所示:启动系统登陆口令界面 否密码 是通过事件驱动机制激活相应的 功 能 模 块,并 执 行 相 应 的 功 能退出系统图2.2系统处理流程图2.3系统功能模块设计通过对上面有关小型超市管理系统的功能需求分析以后,可知小型超市管理系统的功能有:系统管理,商品管理,销售管理。系统功能菜单按以下方法进行设计。小型超市管理系统系统管理 用户管理 备份管理-退出系统商品管理 商品管理 商品报表销售管理销售商品销售报表销售历史-今日盘点系统功能模块设计如图2.3所示:小型超市管理系统销售管理商品管理系统管理今日盘点销售历史销售报表销售商品商品报表商品

5、管理退出系统备份管理用户管理图2.3 系统功能模块设计层次图2.4系统设计分析 用户管理:添加用户账号,密码,类型等信息。 备份管理:数据库的备份,数据库还原。商品管理:商品的信息录入,包括商品的编号、名称、单价、单位等。销售管理:商品的销售信息,销售金额等。销售历史:商品的销售时间,销售数量等。今日盘点:商品的当日销售总额。3、数据库设计作为Windows数据库家族中出类拔萃的成员,SQL Server2000这种关系型数据库管理系统能够满足各种类型的企业客户和独立软件供应商构建商业应用程序的需要。SQL的主要功能之一是实现数据库查询。你使用查询来取得满足特定条件的信息。在逻辑查询中,你可以

6、包括特殊的运算符如AND、OR和NOT,你使用这些运算符来选择特定的记录。例如,你可以用AND来限制查询结果。SQL的另一主要功能是数据更新,它通过INSERT、DELETE、UPDATE等语句实现。另外,利用SQL Server我们可以很轻松地进行建表、维护等数据库操作。23.1 系统数据流程图描述系统数据流程图分别由图3.1所示。商品基本信息超市管理人员数据库商品报表商品销售信息销售报表商品销售历史信息图3.1 浏览与录入管理3.2数据字典:是关于数据的信息的集合,对数据流程图中的各个元素做完整的定义与说明。下面是超市管理系统几个数据元素的字典卡片与具体数据卡片的含义:名称:商品信息表描述

7、:商品的基本信息定义:编号+名称+单价+单位+货架号+库存+销售名称: 商品销售报表描述:商品销售情况定义:商品编号+商品名称+价格+数量+销售时间3.3系统设计具体实现目的:设计系统结构,根据需求分析给出的功能得出系统体系结构。如划分模块。目标:通过本系统软件,能帮助超市管理人员利用计算机,快速方便的对商品信息管理进行维护、输入、输出、查找的所需操作。运行环境操作系统:Windows2000/XP或更高的版本。支持环境:Borland Delphi7。3.4模块具体分析商品信息数据录入模块:主要用于商品基本信息的录入与初始化。实体E-R图如下:商品信息录入商品名称商品单价单位 商品库存商品销

8、量3.4商品信息数据E-R图3.5出错处理设计本系统采用了典型的人-机对话模式,若操作失败则弹出对话框(如:出错信息等)。出错处理对策:用户可以根据弹出的对话框的提示信息进行相应的处理。安全保密设计:本系统设计了密码验证登陆窗口,具有权限控制。3.6 程序逻辑模块功能实现的算法流程图(数据录入)。输入信息条件数据 库显示提示信息退出不符合条 件图3.6数据录入模块流程图4.1功能模块简介4.1.1 系统功能维护模块用户管理:设定本系统的系统操作员,可以一个也可以多个管理员。口令管理:在不退出系统的情况下,凭借原来的密码,可以修改管理员密码。退出系统:在使用完系统之后,可以退出系统。4.1.2

9、基本资料管理模块 商品资料管理:商品资料的添加、删除、编辑。 资料管理:新增、删除和编辑。 初期建帐:对采集到的数据在后台进行数据库管理。4.1.3 商品流通管理模块进货管理:当超市进货的时候,分为以下几个步骤:商品编号录入后台数据库 在价格定义模块中使商品编号码和价格相对应,即使商品编号码一个码一个价格,保存之后,后台数据库中库存自动更新。库存管理:当进货时,库存自动增加,当销售时,库存自动减少。库存报警:设定库存的上限和下限值之后,当库存不符合要求的时候,系统报警。盘点管理:系统自动产生盘点信息。4.1.4 销售实时控制模块由于超市要实时交易,所以对交易有一个界面实时控制商品的流出,当操作

10、员扫描一个物品的条形码之后,输入数量,再扫描下一个物品,输入数量,直到客户需要的物品输入完之后,点击一个按钮,系统自动产生每个货物应付款,总应收款,实收款和找零信息,并控制打印机打印一张热敏纸收据。此时,在系统的后台数据库中自动减少相应库存。4.1.5 报表生成模块报表生成模块将担当起智能化的报表生成的任务。此模块将利用SQL server 2000和数据库功能,一步一步地完成所要求的动态统计结果。可以完成商品基本信息报表、销售报表等不同条件下任意组合而成的报表,能够以快速、准确等优点取代人工操作,提高了管理工作效率。4.1.6 查询模块 可以根据某个条件进行查询,如:日期产品等,查询日销售量

11、产品销售量等。4.1.7本软件可以实现的功能如下:用户管理,包括用户的添加、删除、密码和权限的修改;商品管理,商品的添加、删除、修改、销量统计和分类查询;商品报表;销售商品:通过输入货物编号和数量实现商品销售,并提供库存判断、找零计算等功能;销售报表和销售历史; 今日盘点,告诉用户当天的销售额是多少;5、系统运行与调试5.1数据复制数据复制实际上是为了提高查询处理的本地性,对同一数据复制多个副本,根据需要将副本存放在不同的电脑中 数据信息包括商品名、库存量、销售量、商品单价、生产日期、生产厂家等通过事务提交的方式保证避免由于其它一些电脑故障造成的在数据库更新过程中数据的不一致5.2.

12、数据库备份对数据库进行备份是一项很重要的工作,本系统采用在启动数据上传模块的同时自动备份数据库的方法,从而既提高了数据库的可靠性和安全性,同时也减轻了数据库管理员的工作,降低了备份的复杂性当数据库中的数据遭到破坏需要恢复时,可以从自动备份中恢复本系统利用SQL DMO(DatabaseManagement Object)实现数据库备份SQLDistributed Management Framework(SQLDMF,即SQL分布式管理框架)是一组集成API 和服务, 用与管理SQLServerSQL_DMO是SQL_DMF中的一个组件本系统实现数据库备份程序示例如下:Dim mySvr As

13、 New SQLDMOSQLServerDim myDB As SQLDMODatabaseDimmyBKAs New SQLDMOBackupDim myDv As NewSQLDMOBaekupDeviceSet mySvr=New SQLDMOSQLServermySvrConnect”DAQING”,”8a”,”1111”生成SQLSerwr对象,传递服务器名、用户名和口令Set myDB=mySwDatabases(”DAQING”)MyDv Type=SQLDMODevice_DiskDump备份设备的类型myDvName = ”ZxDB_ baekup”myDvPhysicall

14、ocation=”D:中心数据库备份ZxDBbackUp” 备份设备的逻辑位置On ErrorResume NextmySvrBackupDevicesAdd myDvOn Error GoTo 0myBKDatabase=”DAQING”myBKDevices = “ZxDB_backup”myBKInitialize = TruemyBKSQLBackup mySvrmySvr.BackupDcwicesRemove ”DB_backup”mySwDisConnect5.3 系统测试5.3.1 测试的意义在开发软件系统的过程中,面对错综复杂的问题,人的主观认识不可能完全符合客观现象,与工程

15、密切相关的各类人员之间的通讯和配合也不可能完美无缺,因此,在软件生命周期的每个阶段都不可避免地会产生错误。在每个阶段结束之前通严格的技术审查,尽可能早的发现所有差错。此外,在编码过程中还会不可避免地引入新的错误。测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。5.3.2 本系统的测试结果登录界面测试运行本软件后,首先出现登录界面,后台连接数据库成功后,进入登录界面。测试时,先输入错误的用户名或密码,此时系统给用户提示小相应的错误信息,然后输入不同的正确用户名和密码,系统根据不同的用户给予不同的使用权限,这在进入程序主界面后,从菜单中可以看出使用权限的不同。无操作权限的菜单暗

16、色显示,不可操作。因此测试成功,功能基本实现。3各子系统的测试进入主界面后,对不同的子系统进行操作。先正确输入各项信息,点击运行按钮后,发现系统运行正常,结果显示正确;然后错误输入某些信息,或者进行某些错误操作,发现有的能够给出错误提示,并返回让用户重新操作,有的则直接显示错误信息,而后自动退出系统。这说明软件的某些地方容错性不够完善,影响了它的易操作性。于是着手进行修改。后重新进行测试,结果显示软件的容错性基本达到了用户要求。经过对各个子系统全部功能项的不同测试,结果显示以基本达到设计要求。6.结束语经过1个多月的调查与研究,小型超市管理系统基本完成。它的特点是实时性强,能够帮助超市管理人员

17、及时方便地管理超市信息。但由于开发者水平有限,仍存在系统功能不够完善,设计步骤欠完整等不足,这些需要在今后的设计中加以改进。参考文献1许志清,赵博.精通SQL SERVER 2005 数据库系统管理. M北京:北京电子工业出版社,20062 王晟, 马里杰SQL Server数据库开发经典案例解M.北京:清华大学出版社,20063常利,肖立洪Delphi 6 编程-数据库篇M.中国电力出版社,2002附录:主要程序清单用户登陆unit UnitLogin;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics

18、, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, ADODB, jpeg, DB;type TForm1 = class(TForm) Image1: TImage; Label1: TLabel; Label2: TLabel; Edit1: TEdit; Edit2: TEdit; Image2: TImage; Image3: TImage; Image4: TImage; Image5: TImage; ADOQuery1: TADOQuery; procedure FormCreate(Sender: TObject); procedur

19、e Image5MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Image4Click(Sender: TObject); procedure Edit2KeyPress(Sender: TObject; var Key: Char); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Image1MouseMove(Sender: TObject; Shift: TSh

20、iftState; X, Y: Integer); procedure Image2Click(Sender: TObject); procedure Image3Click(Sender: TObject); private Private declarations public Public declarations end;var Form1: TForm1; LogTimes: Integer; UserType: String; ExeRoot: String; DataFile: String; UserName: String;implementationuses UnitMai

21、n;$R *.dfmprocedure TForm1.FormCreate(Sender: TObject);begin LogTimes := 0;end;procedure TForm1.Image5MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);begin application.Terminate;end;procedure TForm1.Image4Click(Sender: TObject);var ADOQuery1: TADOQuery;begin if (e

22、dit1.Text<>'') and (edit2.Text<>'') then begin ChDir(ExtractFilePath(Application.ExeName); ChDir('.'); ExeRoot := GetCurrentDir; DataFile := GetCurrentDir+'Datadzyv1.mdb' ADOQuery1:= TADOQuery.Create(self); ADOQuery1.ConnectionString := 'Provider=Micro

23、soft.Jet.OLEDB.4.0;Data Source='+DataFile+'Persist Security Info=False;' ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from t_user where user_name="'+edit2.Text+'" and user_pass="'+edit1.Text+'" '); ADOQuery1.Open; if ADOQuery1.Eof then begi

24、n LogTimes := LogTimes+1; if messagebox(handle,'您填写的用户或密码有错误!是否重新输入?','出错提示',mb_iconinformation+mb_okcancel)=IDcancel then application.Terminate; if LogTimes>=3 then begin messagebox(handle,'对不起,登录次数超过3次,程序自动关闭!','非法登录',MB_ICONWARNING+mb_ok); application.Terminate;

25、 end; end else begin UserType := ADOQuery1.FieldByName('user_type').AsString; UserName := ADOQuery1.FieldByName('user_name').AsString; LogTimes := 0; ADOQuery1.Free; Form1.Hide; form2.ShowModal; end; end else messagebox(handle,'您没有填写用户和密码!','出错提示',mb_iconinformation+m

26、b_ok)end;procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char);begin if key=#13 then Edit1.SetFocus;end;procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);begin if key=#13 then Image4Click(self);end;procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Inte

27、ger);begin if (ssleft in shift) then begin releasecapture; perform(wm_syscommand, $f012, 0); end;end;procedure TForm1.Image2Click(Sender: TObject);begin application.Terminate;end;procedure TForm1.Image3Click(Sender: TObject);begin application.Minimize;end;end.数据库还原,备份unit UnitDbBuckup;interfaceuses

28、Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, Gauges, ExtCtrls, StdCtrls;type TFrameDbBuckup = class(TFrame) Image1: TImage; GroupBox1: TGroupBox; Image2: TImage; Image3: TImage; SaveDialog1: TSaveDialog; Gauge1: TGauge; OpenDialog1: TOpenDialog; proce

29、dure Image2Click(Sender: TObject); procedure Image3Click(Sender: TObject); private Private declarations public Public declarations end;implementationuses UnitLogin;$R *.dfmprocedure TFrameDbBuckup.Image2Click(Sender: TObject);var i: integer;begin try if not savedialog1.Execute then exit; if FileExis

30、ts(savedialog1.FileName+'.mdb') then begin if Messagebox(handle,'存在数据库重名,是否覆盖?','存盘选项',mb_iconquestion+mb_yesno)=IDNo then Exit; end else begin for i:=Gauge1.MinValue to Gauge1.MaxValue do Gauge1.Progress := i; CopyFile(PChar(DataFile),PChar(SaveDialog1.FileName+'.mdb'

31、;),True); Messagebox(handle,'数据库备份成功!','备份数据',mb_iconinformation+mb_ok); end; except Messagebox(handle,'警告:数据库备份失败!','存盘错误',mb_iconwarning+mb_ok); end;end;procedure TFrameDbBuckup.Image3Click(Sender: TObject);var i: integer;begin try if not opendialog1.Execute then ex

32、it; if Messagebox(handle,'警告:现有数据有可能丢失,确定还原?','确定还原',mb_iconquestion+mb_yesno)=IDNo then Exit; for i:=Gauge1.MinValue to Gauge1.MaxValue do Gauge1.Progress := i; Messagebox(handle,'数据库还原成功!','还原数据',mb_iconinformation+mb_ok); except Messagebox(handle,'警告:数据库还原失败!&#

33、39;,'读取错误',mb_iconwarning+mb_ok); end;end;end.商品信息unit UnitProdList;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, ExtCtrls, StdCtrls, Mask, DBCtrls;type TFrameProdList = class(TFrame) Image1: TImage; ADOQuery1: TA

34、DOQuery; DataSource1: TDataSource; DBGrid1: TDBGrid; GroupBox1: TGroupBox; Image2: TImage; Image3: TImage; Image4: TImage; Label1: TLabel; DBEdit1: TDBEdit; Label2: TLabel; DBEdit2: TDBEdit; DBEdit3: TDBEdit; Label3: TLabel; DBEdit4: TDBEdit; Label4: TLabel; DBEdit5: TDBEdit; Label5: TLabel; Image5:

35、 TImage; Image6: TImage; GroupBox2: TGroupBox; Label6: TLabel; Edit1: TEdit; Image7: TImage; Label7: TLabel; procedure Image2Click(Sender: TObject); procedure Image5Click(Sender: TObject); procedure Image3Click(Sender: TObject); procedure Image4Click(Sender: TObject); procedure Image6Click(Sender: T

36、Object); procedure Image7Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); function IsAllNum(s:string):bool; procedure Label7Click(Sender: TObject); procedure DBEdit1KeyPress(Sender: TObject; var Key: Char); procedure DBEdit2KeyPress(Sender: TObject; var Key: Char); pr

37、ocedure DBEdit3KeyPress(Sender: TObject; var Key: Char); procedure DBEdit4KeyPress(Sender: TObject; var Key: Char); procedure DBEdit5KeyPress(Sender: TObject; var Key: Char); private Private declarations public Public declarations end;implementation$R *.dfmprocedure TFrameProdList.Image2Click(Sender

38、: TObject);begin 添加商品 Image2.Enabled := False; Image3.Enabled := False; Image4.Enabled := False; DBEdit1.Color := clWhite; DBEdit2.Color := clWhite; DBEdit3.Color := clWhite; DBEdit4.Color := clWhite; DBEdit5.Color := clWhite; DBEdit1.Enabled := True; DBEdit2.Enabled := True; DBEdit3.Enabled := True

39、; DBEdit4.Enabled := True; DBEdit5.Enabled := True; Image5.Visible := True; Image6.Visible := True; DBEdit1.SetFocus; ADOQuery1.Append;end;procedure TFrameProdList.Image5Click(Sender: TObject);begin 提交数据 if (DBEdit1.Text<>'') and (DBEdit2.Text<>'') and (DBEdit3.Text<&g

40、t;'') and (DBEdit4.Text<>'') and (DBEdit5.Text<>'') then ADOQuery1.Post else if messagebox(handle,'您的输入不正确(空值),放弃输入?','检查输入',mb_iconquestion+mb_yesno)=IDyes then ADOQuery1.Cancel else exit; Image2.Enabled := True; Image3.Enabled := True; Image4.Ena

41、bled := True; DBEdit1.Color := $00FFF0DC; DBEdit2.Color := $00FFF0DC; DBEdit3.Color := $00FFF0DC; DBEdit4.Color := $00FFF0DC; DBEdit5.Color := $00FFF0DC; DBEdit1.Enabled := False; DBEdit2.Enabled := False; DBEdit3.Enabled := False; DBEdit4.Enabled := False; DBEdit5.Enabled := False; Image5.Visible :

42、= False; Image6.Visible := False;end;procedure TFrameProdList.Image3Click(Sender: TObject);begin if messagebox(handle,'删除的商品不能被恢复,是否删除?','确认删除',mb_iconquestion+mb_yesno)=IDyes then ADOQuery1.Delete;end;procedure TFrameProdList.Image4Click(Sender: TObject);begin 修改用户 Image2.Enabled :=

43、 False; Image3.Enabled := False; Image4.Enabled := False; DBEdit1.Color := clWhite; DBEdit2.Color := clWhite; DBEdit3.Color := clWhite; DBEdit4.Color := clWhite; DBEdit5.Color := clWhite; DBEdit1.Enabled := True; DBEdit2.Enabled := True; DBEdit3.Enabled := True; DBEdit4.Enabled := True; DBEdit5.Enab

44、led := True; Image5.Visible := True; Image6.Visible := True; DBEdit1.SetFocus; ADOQuery1.Edit;end;procedure TFrameProdList.Image6Click(Sender: TObject);begin 放弃提交 ADOQuery1.Cancel; Image2.Enabled := True; Image3.Enabled := True; Image4.Enabled := True; DBEdit1.Color := $00FFF0DC; DBEdit2.Color := $0

45、0FFF0DC; DBEdit3.Color := $00FFF0DC; DBEdit4.Color := $00FFF0DC; DBEdit5.Color := $00FFF0DC; DBEdit1.Enabled := False; DBEdit2.Enabled := False; DBEdit3.Enabled := False; DBEdit4.Enabled := False; DBEdit5.Enabled := False; Image5.Visible := False; Image6.Visible := False;end;procedure TFrameProdList.Image7Click(Sender: TObject);var sqlstr:string;begin if Ed

温馨提示

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

最新文档

评论

0/150

提交评论