《数据库课程设计:商品进货管理系统.doc》由会员分享,可在线阅读,更多相关《数据库课程设计:商品进货管理系统.doc(15页珍藏版)》请在三一办公上搜索。
1、编号: 数据库课程设计说明书题 目: 商品进货管理系统 系 别: 计算机科学与工程学院专 业: 计算机科学与技术 学生姓名:学 号:指导教师: 2013年 9 月 15 日摘 要在被信息化浪潮席卷的21世纪,企业利用数据库进行商品的进货、库存、销售已经成为一种趋势。在数据库课程设计中,我通过充分的需求分析,使用SQL server 2005 和Delphi 7设计了能够完成信息管理、商品录入、信息修改等功能,并能对商品的进货和库存进行科学管理的商品进货管理系统。本文系统的分析了软件开发的情况,首先介绍了软件的开发环境,其次介绍了本软件的详细设计过程,数据库的设计、各个模块的设计和实现,以及具体
2、界面的设计和功能。关键词:商品进货 ;数据库;需求分析;系统设计;目 录引言 11 系统目标及任务12 系统需求分析 12.1 系统详细需求12.2 使用环境22.3 可行性分析23 软件开发过程23.1系统设计23.2软件设计 44 软件测试过程74.1 测试环境74.2 功能及性能测试75 结论85.1 课程设计最终的完成情况总结 85.2 课程设计的收获和经验 8参考文献 9附录 10引言 在信息化快速发展的今天,企业与顾客、企业与供方的关系变得更加密切和复杂。强化管理,规范业务流程,提高透明度,加快商品资金周转,为流通领域信息管理全面网络化打下基础,是商品销售公司乃至众多商业企业梦寐以
3、求的愿望。随着技术发展,计算机操作及管理日趋简化,计算机知识日趋普及,同时市场经济快速多变,竞争激烈,企业采用计算机管理进货、库存、销售等诸多环节也已成为趋势及必然。商品进货管理系统依靠现代化的计算机信息处理技术来管理进货,从而节省了大量的人力、物力,改善了员工的工作条件,减轻了劳动强度,并且能够快速反映出商品的进、销、存等状况和各种反馈信息分析,使管理人员快速对市场的变化做出相应的决策,从而掌握市场先机。1 系统目标及任务商品进货管理系统可对输入的商品信息进行修改、查询等操作,同时对库存信息的收集、查询和加工,又便于进货员的需求信息在最短的时间内得到反馈。进货管理系统可自动分析各种商品进货变
4、化规律,商品库存结构变化等,从而为合理进货、经营、加工、库存、销售等提供科学的决策依据。商品进货管理系统充分运用数据库管理技术,对商品的进销存过程进行详细分析,实现了对进货、销售和库存的科学管理。 2 系统需求分析 2.1 系统详细需求(1) 用户需求 商品进货管理系统的使用者,即主要由信息管理员、进货员、仓库管理员组成。信息管理员:商品进货管理系统的系统管理者,进行系统的日常管理维护,负责单据录入、采购计划、发货计划的编制,对商品、员工进行各种管理,比如添加、修改、删除、更新等。进货员:根据采购计划进行商品的采购。仓库管理员:根据商品的入库进行商品的库存管理。 (2)系统功能需求分析 用户登
5、录时,若用户输入的用户名不存在时,提示用户重新填写,并重新回到登录界面;用户登录时,若用户输入的密码错误时,提示用户重新填写,返回登录界面。如果输入的信息不全,则要求正确填写必须输入的表项。如果输入信息正确,将提示注册完成,用户可以正常登录,进行不同权限的数据管理。用户能够根据不同权限添加、修改和删除系统不同级别的数据。 管理员登录时,可以从事以下操作:员工管理,可以查看登录次数和时间,并可以删除。添加新用户功能,可以修改用户权限。对用户进行修改、删除。管理员工信息,可以对信息进行查询、添加、修改。查看供货商数据,并可以对数据进行管理。修改管理员密码,保证安全性。添加新商品功能,可增加删改商品
6、信息。添加新商品,选择商品类别,输入商品名称,进行商品说明。类别管理,可以更改类别名称,可以添加和删除类别。查看库存数据,并可以对数据进行管理。2.2 使用环境 数据库开发环境:SQL server 2005 软件系统开发环境: Delphi 72.3 可行性分析现在,计算机的价格已经十分低廉,性能却有了长足的进步。而本系统的开发为企业的工作效率带来了一个质的飞跃,为此主要表现有以下几个方面:第一,本系统的运行可以代替人工进行许多繁杂的劳动;第二,本系统的运行可以节省许多资源;第三,本系统的运行可以大大的提高企业的工作效率;同时,SQL Sever2005能提供超大型系统所需的数据库服务,并对
7、数据库提供全面的保护,具有防止问题发生的安全措施,它是一个采用SQL语言的关系型数据库管理系统。所以商品进货管理系统是完全可行的。3 软件开发过程3.1系统设计E-R图设计:名称进货员进货员编号供货日期进货日期电话地址供货商编号供货商进货进货编号商品编号名称价格商品姓名性别进货数量mnmn备注年龄工资身份证号货物供货付款单号付款日期价钱mn付款数据库表设计:(1) 进货员表中文字段名字段类型长度主键/外键字段值约束职工编号int主键NOT NULL姓名nchar20NOT NULL性别nchar4NOT NULL年龄intNULL(2) 用户表中文字段名字段类型长度主键/外键字段值约束帐号nc
8、har20主键NOT NULL密码nchar20NOT NULL权限intNOT NULL(3) 商品进货表中文字段名字段类型长度主键/外键字段值约束商品编号int主键NOT NULL供货商号int外键NOT NULL名称nchar20NOT NULL单价moneyNOT NULL进货数量int4NOT NULL(4) 供货商表中文字段名字段类型长度主键/外键字段值约束供货商号intNOT NULL名称nchar20主键NOT NULL联系电话nchar20NOT NULL联系地址nchar30NOT NULL(5) 付款表中文字段名字段类型长度主键/外键字段值约束订单号int主键NOT NU
9、LL订单总额moneyNOT NULL进货员nchar20外键NOT NULL进货日期datetimeNOT NULL(6) 库存表中文字段名字段类型长度主键/外键字段值约束商品编号intNOT NULL库存数量intNOT NULL仓库名nchar20主键NOT NULL仓库编号intNOT NULL3.2软件设计 系统功能结构图:系统数据流图:模块功能设计:(1)用户登录界面(2)主菜单(3)供货商信息修改界面4 软件测试过程4.1 测试环境操作系统:win7数据库:SQL server 2005软件开发:Delphi 74.2 功能及性能测试 系统完成后,开始系统功能及性能测试,不断地重
10、复测试系统功能,使用正确数据录入,一遍遍测试系统的功能是否完成,是否能够达到需求,第二项就是出错处理,根据系统需求给每个部分可能出错的情况进行了出错处理。 经过测试,商品进货管理系统能够成功完成信息修改、信息查询、信息统计、报表打印等功能。商品单价平均值统计界面:5 结论5.1 课程设计最终的完成情况总结 在两周的时间里,虽然历经重重困难和尝试,但是我终于完成了商品进货管理系统的设计。尽管系统在功能和性能上可能还有一些缺陷,但是我完成了系统设计的任务和目标,达到了需求分析的基本要求,成功完成了数据库课程设计。5.2 课程设计的收获和经验 在完成此次的课程设计的过程中,我跨越了传统方式下的教与学
11、的体制束缚,通过查资料和搜集有关的文献,培养了自学能力和动手能力。并且由原先的被动的接受知识转换为主动的寻求知识,这可以说是学习方法上的一个很大的突破。在以往的传统的学习模式下,我们可能会记住很多的书本知识,但是通过课程设计,我们学会了如何将学到的知识转化为自己的东西,学会了怎么更好的处理知识和实践相结合的问题。通过这次超市管理系统课程设计,我充分运用自己所学的知识,明白了只有单纯的理论知识是远远不够的,只有通过实际的锻炼才能更好的运用所掌握的基础知识,才能在原有的基础上提升自己的能力,提高自己解决问题的能力。在这短短的几天里,我查阅有关的学习资料,数据库的设计规则,E-R图的画法规则,数据库
12、设计的基本步骤,表的设计及满足范式,代码的编写及到最后的调试。在设计过程中,通过对控件事件的处理,界面的布局,代码的调试,充分锻炼了自己的思维,获得了充分的实际经验,提高了处理问题的能力,同时也提高了对问题思考的应急能力和抗压力的能力。经过几天的努力,虽然设计已经完成,但仍然有很多模块和功能要完善,存在很多美中不足之处。但是基本上还能满足进货管理。在设计报告的写作过程中也学到了做任何事情所要有的态度和心态,首先我明白了做学问要一丝不苟,对于出现的任何问题和偏差都不要轻视,要通过正确的途径去解决,在做事情的过程中要有耐心和毅力,不要一遇到困难就打退堂鼓,只要坚持下去就可以找到思路去解决问题的,在
13、遇到问题时,有必要向老师和同学请教,合作沟通的意义是巨大的。参考文献1 萨师煊、王珊.数据库系统概论M.北京:高校教育出版社,1985:44-90;2赵建明.手把手教你学用数据库M.北京:清华大学出版社,2001.6:204-2673刘前进. Delphi数据库编程技术M.北京:人民邮电出版社,1999.10:36-924段来盛. Delphi实战演练M.北京:人民邮电出版社 ,2000.1:103-2095肖永顺. Delphi 程序设计M.北京:人民邮电出版社,2000.5:300-346附录: 源代码清单(10页以内)Form1:begin form2.N1.enabled:=true;
14、 form2.N13.enabled:=true;ADOQuery1.SQL.clear;adoquery1.SQL.Add(select * from 登录表 where 用户名=+Edit1.text+and 密码=+Edit2.text+);adoquery1.Open;if (adoquery1.RecordCount0 )thenform2.showelse showmessage(Erro); if adoquery1.FieldByName(权限).AsString= 1 then begin form2.N1.enabled:=false; form2.N13.enabled:
15、=false; endend;Form3:procedure TForm3.Button1Click(Sender: TObject);beginbutton3.Enabled :=true; adotable1.Insert ;end;procedure TForm3.Button2Click(Sender: TObject);begin adotable1.delete;end;procedure TForm3.Button3Click(Sender: TObject);beginadotable1.Post ;button3.Enabled :=false;end;procedure T
16、Form3.Button4Click(Sender: TObject);beginform2.show;end;procedure TForm3.Button5Click(Sender: TObject);beginadotable1.cancel;end;procedure TForm3.Button6Click(Sender: TObject);beginbutton3.Enabled :=true;adotable1.Edit;end;Form7:quickrep1.Preview;Form10:if (label1.Caption =仓库名) then begin ADOQuery1.
17、SQL.clear;adoquery1.SQL.Add(select * from 仓库 where 仓库名 =+edit1.text+);adoquery1.Open;end ; if (label1.Caption =仓库编号) then begin ADOQuery1.SQL.clear;adoquery1.SQL.Add(select * from 仓库 where 仓库编号 =+edit1.text+);adoquery1.Open;end ; if (label1.Caption =商品编号) then begin ADOQuery1.SQL.clear;adoquery1.SQL
18、.Add(select * from 仓库 where 商品编号 =+edit1.text+);adoquery1.Open;end ; if (label1.Caption =库存量) then begin ADOQuery1.SQL.clear;adoquery1.SQL.Add(select * from 仓库 where 库存量 =+edit1.text+);adoquery1.Open;end ;end;procedure TForm10.RadioButton1Click(Sender: TObject);beginlabel1.caption:=仓库名;end;procedure
19、 TForm10.RadioButton2Click(Sender: TObject);beginlabel1.caption:=仓库编号;end;procedure TForm10.RadioButton3Click(Sender: TObject);begin label1.caption:=商品编号;end;procedure TForm10.RadioButton4Click(Sender: TObject);begin label1.caption:=库存量;end;Form14:if (label1.Caption =仓库商品总数) then begin ADOQuery1.SQL.clear;adoquery1.SQL.Add(select count(*) as 仓库商品总数 from 仓库 );adoquery1.Open;end ; if (label1.Caption =库存总数) then begin ADOQuery1.SQL.clear;adoquery1.SQL.Add(select sum (库存量)as 库存总数 from 仓库);adoquery1.Open;end;