数据库课程设计商品进销存管理系统_第1页
数据库课程设计商品进销存管理系统_第2页
数据库课程设计商品进销存管理系统_第3页
数据库课程设计商品进销存管理系统_第4页
数据库课程设计商品进销存管理系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、课程设计设计题目: 超市销售管理系统 学生姓名: 潘 小 涛 学 号: 20052408 专业班级:计算机科学与技术05-2班2008年 9月23日一设计要求1信息要求本系统至少应该包含超市所有货物管理相关的基本信息,包括进货信息和销售信息等。它们都应该包括商品货物的基本信息(如员商品编号、商品名称、规格、产地、单位、进价、批发价、零售价等)和客户的基本信息(如客户编号、客户名称、联系人、联系电话、地址、客户信箱、银行帐号等)。2功能要求本系统的基本功能要求如下:进货商品的信息维护(包括简单查询、修改、删除和添加等功能);销售商品的信息维护(包括简单查询、修改、删除和添加等功能);客户的信息维

2、护(包括简单查询、修改、删除和添加等功能);系统用户的信息维护(包括简单查询、修改、删除、添加和权限分配等功能);系统信息备份、还原;二软件环境及开发工具1个人电脑及Win XP Pro2Delphi 7.03SQL Server 2000三需求分析对该超市销售管理系统进行深入的业务流程分析后画出数据流图。由数据流图图可以看出来,每个操作员查看信息前必须先登录这个管理系统,每个操作员的信息保存在操作员信息表中。用户登录系统后可以查看商品进销管理信息和客户信息,也可以通过查询选择自己希望得到的信息。四数据库设计1概念设计根据需求分析的结果,得到的用ER图表示的概念设计结果如下图所示销售调整进货调

3、整商品信息查询删除用户修改用户信息添加新用户删除客户修改客户信息添加新客户添加新商品修改商品信息删除商品超市销售信息管理系统商品信息管理客户信息管理用户信息管理销售管理查询销售信息管理库存量调整2逻辑设计根据分析,整个销售系统系统需要的数据表如下:商品信息:商品编号、商品名称、规格、产地、单位、进价、批发价、零售价等;客户信息:客户编号、客户名称、联系人、联系电话、地址、客户信箱、银行帐号等;操作员信息:操作员编号、操作员姓名、操作员密码、操作员级别等;销售信息:销售号、客户编号、客户名、商品编号、商品名称、单价、数量、金额、销售时间等。五系统设计由于这个超市销售信息管理系统是一个比较小型的数

4、据库系统,只需要储存文本信息,都是小字段的问题,作为一个小型的数据库系统,数据量最多在百至千条左右,故采用微软的SQL Server作为后台数据库,使用SQL语言进行操作。操作员信息表,包括了操作员编号、操作员姓名、操作员密码和操作员级别,其中操作员编号是主码:商品信息表,商品编号、商品名称、规格、产地、单位、进价、批发价、零售价等,其中商品编号是主码:客户信息表,包括客户编号、客户名称、联系人、联系电话、地址、客户信箱、银行帐号等。其中客户编号是主码:销售信息表,包括销售号、客户编号、客户名、商品编号、商品名称、单价、数量、金额、销售时间等,其中销售号是主码:库存信息表,包括商品编号、商品名

5、称、库存数量、库存金额等,其中商品编号是主码:六系统操作说明和运行结果打开Project.exe,出现登陆界面:输入正确用户名和密码后进入系统,否则出现错误提示:系统主界面:商品信息管理界面:客户信息管理界面:操作员信息管理界面:销售查询界面:销售管理界面:库存量调整界面:七程序清单由于系统是图形化的信息管理系统,故使用Delphi实现。程序清单过于冗长,在此仅列出其中关键部分。1. 用户登录部分:procedure TForm1.BitBtn1Click(Sender: TObject);var username,userpass,sqlstr:string;begin username:=

6、trim(edit1.Text); userpass:=trim(edit2.Text); sqlstr:='select *from 操作员信息表 where (操作员姓名='''+username+''')and(操作员密码='''+userpass+''')' ; adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add(sqlstr); adoquery1.Open; if adoquery1.RecordCount>

7、;0 then begin self.Visible:=false; b:=true; application.CreateForm(Tmainn,mainn); mainn.ShowModal; mainn.Free; close;end else begin if i <3 then begin Application.MessageBox('用户名称或密码不正确,请重新输入。','提示',0+64); Edit1.Clear; Edit2.Clear; Edit1.SetFocus; Inc(i); end else begin Applicatio

8、n.MessageBox('对不起,您无权使用本系统。','提示',0+64); Application.Terminate ; end; end;end;procedure TForm1.BitBtn2Click(Sender: TObject);begin close;end;procedure TForm1.FormClose(Sender: TObject);begin if b=false then application.Terminate;end;procedure TForm1.FormCreate(Sender: TObject);begine

9、nd;end. 2. 商品信息管理代码:var spinfor: Tspinfor;implementation$R *.dfmprocedure tspinfor.editvalue;begin edit1.Text:=inttostr(adoquery1.fieldbyname('商品编号').Value); edit2.Text:=adoquery1.fieldbyname('商品名称').Value; edit3.Text:=adoquery1.fieldbyname('规格').Value; edit4.Text:=adoquery1.

10、fieldbyname('产地').Value; edit5.Text:=adoquery1.fieldbyname('单位').Value; edit6.Text:=floattostr(adoquery1.fieldbyname('进价').Value); edit7.Text:=floattostr(adoquery1.fieldbyname('批发价').Value); edit8.Text:=floattostr(adoquery1.fieldbyname('零售价').Value);end;proced

11、ure Tspinfor.formshow(Sender: TObject);begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select *from 商品基础信息表'); adoquery1.Open; adoquery1.First; editvalue; bitbtn4.Enabled:=false;end;procedure tspinfor.clearedit;begin edit1.Clear; edit2.Clear; edit3.Clear; edit4.Clear; edit5.Cl

12、ear; edit6.Clear; edit7.Clear; edit8.Clear;end ;procedure Tspinfor.BitBtn1Click(Sender: TObject);begin if not adoquery1.bof then begin adoquery1.Prior; self.editvalue; end else bitbtn1.Enabled:=false; bitbtn2.Enabled:=true;end;procedure Tspinfor.BitBtn2Click(Sender: TObject);begin if not adoquery1.E

13、of then begin adoquery1.Next; editvalue; end else bitbtn2.Enabled:=false; bitbtn1.Enabled:=true;end;procedure Tspinfor.BitBtn3Click(Sender: TObject);var i:integer;begin clearedit; adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select max(商品编号) as ss from 商品基础信息表') ; adoquery1.Open;

14、 i:=adoquery1.FieldByName('ss').Value+1; edit1.Text:=inttostr(i); edit2.SetFocus; bitbtn4.Enabled:=true;end;procedure Tspinfor.BitBtn4Click(Sender: TObject);begin if (edit1.Text<>'')and (edit2.Text<>'')and (edit3.Text<>'')and (edit4.Text<>'

15、')and (edit5.Text<>'')and (edit6.Text<>'')and (edit7.Text<>'')and (edit8.Text<>'') then begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('insert 商品基础信息表 values(:a,:b,:c,:d,:e,:f,:g,:h) '); adoquery1.Parameters.ParamByNa

16、me('a').Value:=strtoint(edit1.Text); adoquery1.Parameters.ParamByName('b').Value:=edit2.Text; adoquery1.Parameters.ParamByName('c').Value:=edit3.Text; adoquery1.Parameters.ParamByName('d').Value:=edit4.Text; adoquery1.Parameters.ParamByName('e').Value:=edit5.T

17、ext; adoquery1.Parameters.ParamByName('f').Value:=strtofloat(edit6.Text); adoquery1.Parameters.ParamByName('g').Value:=strtofloat(edit7.Text); adoquery1.Parameters.ParamByName('h').Value:=strtofloat(edit8.Text); adoquery1.ExecSQL; showmessage('the save operation is succee

18、d!'); self.formshow(sender); end else showmessage('please fill in the blank completely!');end;procedure Tspinfor.BitBtn5Click(Sender: TObject);begin if (edit1.Text<>'')and (edit2.Text<>'')and (edit3.Text<>'')and (edit4.Text<>'')and

19、(edit5.Text<>'')and (edit6.Text<>'')and (edit7.Text<>'')and (edit8.Text<>'') then begin adoquery1.Edit; adoquery1.fieldbyname('商品编号').Value:=strtoint(edit1.Text); adoquery1.fieldbyname('商品名称').Value:=edit2.Text; adoquery1.fieldb

20、yname('规格').Value:=edit3.Text; adoquery1.fieldbyname('产地').Value:=edit4.Text; adoquery1.fieldbyname('单位').Value:=edit5.Text; adoquery1.fieldbyname('进价').Value:=strtofloat(edit6.Text); adoquery1.fieldbyname('批发价').Value:=strtofloat(edit7.Text); adoquery1.fieldb

21、yname('零售价').Value:=strtofloat(edit8.Text); adoquery1.Post; showmessage('the amend operation is succeed!') ; end else showmessage('please fill in the blank completely!');end;procedure Tspinfor.BitBtn6Click(Sender: TObject);begin if edit1.Text<>'' then begin if a

22、pplication.MessageBox('do you really want to delete the item ?','hint',mb_yesno)=id_yes then begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('delete from 商品基础信息表 where 商品编号=:a') ; adoquery1.Parameters.ParamByName('a').Value:=strtoint(edit1.Text); adoquer

23、y1.ExecSQL; showmessage('the delete operation is succeed!'); self.formshow(sender); end end else showmessage('please fill in the commodity number blank!');end;procedure Tspinfor.BitBtn7Click(Sender: TObject);begin self.formshow(sender);end;procedure Tspinfor.Panel3Click(Sender: TObje

24、ct);beginend;end.3. 销售管理代码:procedure TForm6.FormShow(Sender: TObject);begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select * from 销售表'); adoquery1.Open; bitbtn2.Enabled:=false;end;procedure TForm6.BitBtn1Click(Sender: TObject);var i:integer;begin adoquery1.Close; adoquery1.S

25、QL.Clear; adoquery1.SQL.Add('select max(销售号) as ss from 销售表'); adoquery1.Open; i:=adoquery1.FieldByName('ss').Value+1; edit1.Text:=inttostr(i); edit2.SetFocus; self.FormShow(sender); bitbtn2.Enabled:=true;end;procedure TForm6.BitBtn2Click(Sender: TObject);begin if (edit1.Text<>

26、'')and (edit2.Text<>'')and (edit3.Text<>'')and (edit4.Text<>'')and (edit5.Text<>'')and (edit6.Text<>'')and (edit7.Text<>'')and (edit8.Text<>'') then begin adoquery1.Close; adoquery1.SQL.Clear; a

27、doquery1.SQL.Add('insert 销售表 values(:a,:b,:c,:d,:e,:f,:g,:h,:i)'); adoquery1.Parameters.ParamByName('a').Value:=strtoint(edit1.Text); adoquery1.Parameters.ParamByName('b').Value:=strtoint(edit2.Text); adoquery1.Parameters.ParamByName('c').Value:=edit3.Text; adoquery1.

28、Parameters.ParamByName('d').Value:=strtoint(edit4.Text); adoquery1.Parameters.ParamByName('e').Value:=edit5.Text; adoquery1.Parameters.ParamByName('f').Value:=strtofloat(edit6.Text); adoquery1.Parameters.ParamByName('g').Value:=strtofloat(edit7.Text); adoquery1.Parame

29、ters.ParamByName('h').Value:=strtofloat(edit8.Text); adoquery1.Parameters.ParamByName('i').Value:=datetimepicker1.Date; adoquery1.ExecSQL; showmessage('the save operation is succeed!'); self.formshow(sender); end else showmessage('please fill in the blank completely!'

30、);end;procedure TForm6.BitBtn3Click(Sender: TObject);begin if (edit1.Text<>'')and (edit2.Text<>'')and (edit3.Text<>'')and (edit4.Text<>'')and (edit5.Text<>'')and (edit6.Text<>'')and (edit7.Text<>'')and

31、(edit8.Text<>'') then begin if application.MessageBox('do you really want to amend the item ','hint',mb_yesno)=id_yes then begin adoquery1.Edit; adoquery1.fieldbyname('销售号').Value:=strtoint(edit1.Text); adoquery1.fieldbyname('客户编号').Value:=strtoint(edit2

32、.Text); adoquery1.fieldbyname('客户名').Value:=edit3.Text; adoquery1.fieldbyname('商品编号').Value:=strtoint(edit4.Text); adoquery1.fieldbyname('商品名称').Value:=edit5.Text; adoquery1.fieldbyname('单价').Value:=strtofloat(edit6.Text); adoquery1.fieldbyname('数量').Value:=st

33、rtofloat(edit7.Text); adoquery1.fieldbyname('金额').Value:=strtofloat(edit8.Text); adoquery1.fieldbyname('销售时间').Value:=datetimepicker1.Date; adoquery1.Post; self.formshow(sender); showmessage('the amend operation is succeed!') ; end end else showmessage('please fill in the

34、 blank completely!');end;procedure TForm6.BitBtn4Click(Sender: TObject);begin if edit1.Text<>'' then begin if application.MessageBox('do you really want to delete the item ','hint',mb_yesno)=id_yes then begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add(&

35、#39;delete from 销售表 where 销售号=:a') ; adoquery1.Parameters.ParamByName('a').Value:=strtoint(edit1.Text); adoquery1.ExecSQL; self.formshow(sender); end end else showmessage('please fill in the sell number blank!');end;procedure TForm6.BitBtn5Click(Sender: TObject);begin self.FormSh

36、ow(sender);end;procedure TForm6.Panel1Click(Sender: TObject);beginend;end.4. 销售查询代码:procedure TFbobox1change(Sender: TObject);begin if Trim(ComboBox1.Text)<>''then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select distinct'); ADOQuery1.SQL.Add(Trim(ComboBox1

37、.Text); ADOQuery1.SQL.Add('from 销售表 '); ADOQuery1.Open; ComboBox2.Clear; while Not ADOQuery1.Eof do begin ComboBox2.Items.Add(ADOQuery1.Fields0.value); ADOQuery1.Next; end; end;end;procedure TForm5.SpeedButton1Click(Sender: TObject);begin if (Trim(ComboBox2.Text)<>'')and(Trim(C

38、omboBox1.Text)<>'') then begin CheckBox1.Checked := False; adoquery1.close; adoquery1.SQL.Clear; if CheckBox2.Checked = False then begin adoquery1.SQL.Add('select * from 销售表 where '); adoquery1.SQL.Add(Trim(ComboBox1.Text); adoquery1.SQL.Add('='); adoquery1.SQL.Add('

39、;:a'); end else begin adoquery1.SQL.Add('Select * from 销售表 where'); adoquery1.SQL.Add(Trim(ComboBox1.Text); adoquery1.SQL.Add('='); adoquery1.SQL.Add(':a'); adoquery1.SQL.Add('and 销售时间>=:b and 销售时间<= :c'); adoquery1.Parameters.ParamByName('b').Value

40、:= Int(DateTimePicker1.Date) ; adoquery1.Parameters.ParamByName('c').Value := Int(DateTimePicker2.Date); end; adoquery1.Parameters.ParamByName('a').value := Trim(ComboBox2.Text); adoquery1.Open; end;end;procedure TForm5.CheckBox1Click(Sender: TObject);begin adoquery1.Close; adoquery1

41、.SQL.Clear; adoquery1.SQL.Add('Select * from 销售表 '); adoquery1.Open;end;procedure TForm5.BitBtn1Click(Sender: TObject);begin close;end;procedure TForm5.Panel2Click(Sender: TObject);beginend;end.5. 库存量管理代码:procedure TForm4.formshow(Sender: TObject);begin radiobutton1.Checked:=true; adoquery1.

42、Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('select Distinct 商品名称 from 商品基础信息表 '); adoquery1.Open; while not adoquery1.Eof do begin combobox1.Items.Add(adoquery1.fieldbyname('商品名称').AsString); adoquery1.Next; end ; combobox1.ItemIndex:=0;end;procedure TForm4.BitBtn1Click(Sender: TO

43、bject);beginif (Trim(ComboBox1.Text)<>'')and(Trim(ComboBox2.Text)<>'')and (Trim(Edit1.Text)<>'')and(Trim(Edit2.Text)<>'')then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('select * from 库存表 where 商品编号 = :a'); ADOQuery1.

44、Parameters.ParamByName('a').Value := Trim(ComboBox2.Text); ADOQuery1.Open; if ADOQuery1.RecordCount>0 then begin if radiobutton1.Checked=true then begin ADOQuery1.Close; ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add('update 库存表 set 库存数量 = 库存数量 + :a ,库存金额 = 库存金额 + :b where 商品编号 = :c'); ADOQuery1.Parameters.ParamByName('a').Value := StrToInt(Edit1.Text); ADOQuery1.Parameters.ParamByName('b').Value := StrToFloat(Edit2.Text); ADOQuery1

温馨提示

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

最新文档

评论

0/150

提交评论