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