版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-PAGE17-北京广播电视大学
数据库应用课程设计报告书题目:小超市进销存管理系统姓名:学号:班级:08春计算机信息管理专业(专)分校:北京广播电视大学分校指导教师:姚行洲设计日期:2009年11月目
录目
录 2摘要 3第一章
引
言 41.1
课题来源 41.2开发工具的选择 41.3本文所做工作 4第二章
数据库开发工具 52.1delphi6.0简介 52.2delphi6.0控件 62.2.1ado数据访问组件 62.2.2数据控制类datacontrol 72.2.3数据访问类dataaccess 72.2.4sql语言在delphi中的应用 72.3access简介 8第三章
系统总体设计 93.1
系统需求分析 93.2
系统概要设计 103.2.1系统结构设计 103.2.2数据库设计 10第四章
系统应用程序设计 144.1
系统窗体模块组成 144.2
数据模块窗体的设置 164.3
主窗体功能模块的实现 164.4入库、出库窗体模块的实现 184.5查询功能的实现 244.6系统登陆窗体模块的实现 25结束语 26参考文献 27附录 29附录A数据库表结构 29附录BE-R图 31摘要本系统主要完成对小超市进销存管理,包括物品入库、出库、库存,员工信息,供应商信息以及密码管理等六个方面。系统可以完成对各类信息的浏览、查询、添加、删除、修改、报表等功能。系统的核心是入库、库存和出库三者之间的联系,每一个表的修改都将联动的影响其它的表,当完成入库或出库操作时系统会自动地完成库存的修改。查询功能也是系统的核心之一,在系统中即有单条件查询和多条件查询,也有精确查询和模糊查询,系统不仅有静态的条件查询,也有动态生成的条件查询,其目的都是为了方便用户使用。系统有完整的用户添加、删除和密码修改功能,并具备报表打印功能。系统采用microsoftoffice中的access2000来设计数据库,并使用当前优秀的开发工具—delphi6.0,它有着最为灵活的数据库结构,对数据库应用有着良好的支持。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。第一章
引
言1.1
课题来源随着社会经济的迅速发展和科学技术的全面进步,计算机事业的飞速发展,以计算机与通信技术为基础的信息系统正处于蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质量及工作环境的要求也越来越高。
在计算机飞速发展的今天,将计算机这一信息处理利器应用于仓库的日常管理已是势必所然,而且这也将为仓库管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力。采用计算机管理信息系统已成为仓库管理科学化和现代化的重要标志,它给企业管理来了明显的经济效益和社会效益。主要体现在:
极大提高了仓库工作人员的工作效率,大大减少了以往入出存流程繁琐,杂乱,周期长的弊端。
基于仓库管理的全面自动化,可以减少入库管理、出库管理及库存管理中的漏洞,可以节约不少管理开支,增加企业收入。
仓库的管理的操作自动化和信息的电子化,全面提高了仓库的管理水平。
随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,仓库管理的全面自动化、信息化则是其中极其重要的部分。为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统已变得十分心要。
通过对仓库管理日常工作的详细调查,搜集了大量的资料,从系统结构的组织,功能的实现,技术的要求以及可行性等多方面进行考虑,认为本课题是一个适应现今图书仓库管理需求的计算机信息管理系统,具有一定的实际开发价值和使用价值。1.2开发工具的选择采用ACCESS来做这个数据库实验报告1.3本文所做工作引言部分介绍了本系统的课题来源以及对数据库开发工具的选择。
第四章根据第四章的设计结果利用access2000和delphi6.0进行了具体的窗体和应用程序设计。
总结部分介绍了设计体会和编程体会,并指出了系统设计中的不足和改进的方向第二章
数据库开发工具2.1delphi6.0简介delphi类可以粗略地分成两部分:一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上是找不到的。在delphi中,每一个类的祖先都是tobject类,整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为tobject类。这样,按照面向对象编程的基本思想,就使得用户可用tobject类这个类型代替任何其它类的数据类型。实际上在delphi的类库中,tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。图形组件与窗口组件并列,是另一大类组件。图形组件不是基于窗口的,因而不能有窗口句柄,不能接受输入焦点和包含其它组件,图形组件的基类是tgraphiccontrol,在实际编程中,它们必须寄生于它们的宿主——窗口组件类的对象,由它们的拥有者负责其显示,而且它们还能触发一些和鼠标活动相关的事件。图形控件最典型的例子是tlabel和tspeedbutton。由此可以看出图形组件的功能很弱,有读者会问图形组件的用处何在呢?其实使用图形组件的最大好处在于节省资源,正是因为它们的功能较弱,所以使用的系统资源就要少。在一个应用程序中,如果能在不影响其功能的前提下合理大量地使用图形组件,将会大减少程序对系统资源的消耗。
非可视组件是与可视组件相并列的另一类组件,非可视组件在程序运行中是不可见的(除各种对话框组件之外,事实上有人认为对话框组件不能归入非可视组件,应该是另一种介于可视与非可视之间的组件)。2.2delphi6.0控件用delphi6开发数据库应用,重点是和各种数据库组件打交道,当然也要使用其它的一些组件,现在就我在系统设计中所使用的重要组件给与简单介绍。2.2.1ado数据访问组件ado数据对象(activedataobjects)实际是一种提供访问各种数据类型的链接机制。ado设计为一种极简单的格式,通过odbc的方法同数据库接口中,可以使用任何一种odbc数据源,即不止适合于sqlserver、oracle、access等数据库应用程序,也适合于excel表格、文本文件、图形文件和无格式的数据在delphi中使用sql语言非常方便,一般来说,都是通过tquery组件来使用sql语言的。可以在tquery组件的sql属性中设置sql语句。设计程序时,在该组件的属性对话框中选择sql属性,单击带省略号的按钮,就可以打开stringlisteditor对话框,然后我们就可以在对话框中添加sql语句。还可以使用delphi的sqlbuilder来自动生成sql语句,这样可以避免手工编写sql而可能造成的语法错误。
select
*
from
students
wherestudentcode=:studentcode;方法,关闭tquery部件,然后再调用clear方法清除sql属性中现存的sql命令语句,最后再调用add方法为sql属性设置新的sql命令语句。例如:
query1.close{关闭query1)
query1.sql.clear{清除sql属性中的sql命令语句}
query1.sql.add('select*fromstudents');须先行进行关闭,待清除掉sql…中所有的sql语句后才可以添加新的sql语句。而且,在每一次修改完成以后,还应该记得重新将adoquery激活。其它的使用方法与ttquery有许多的相似之处。2.3access简介建立一个数据库我们有多种选择,现在市场上有各种各样的数据库,而且每一种数据库都有其自身的特点,不能说哪一种更好,只能在其中寻找一种能更好地适应系统需求、更好地满足用户的要求以及适应开发人员的习惯。在本系统中,做为图书仓库管理系统是一个比较小的应用系统,它所产生和处理的数据量也比较小。因此,没有必要使用像sqlserver和oracle这样的大型数据库。我首先想到的数据库是borland公司的paradox数据库。另外,microsoftoffice中的access数据库在计算机上的应用比较普及,是开发小型数据库系统的比较理想的选择,所以,在本系统中我选择了access数据库。
access做为一个数据库管理系统,它被集成在microsoftoffice中。access数据库处理的基本结构,采取关系型数据库模式。与其他的数据库系统相比,access更加简单易学,一个普通的计算机用户可以很快地掌握它。access2000的功能十分强大,利用它可以方便地实现对信息保存、维护、查询、统计、打印、交流、发布,而且它可以十分方便地与office其他组件交流数据,这些功能对一个一般用户而言已经足够了。第三章
系统总体设计软件系统的总体设计大约要经历可行性分析和项目开发计划,需求分析,概要设计,详细设计,编码,测试以及维护等七个阶段。可行性分析和项目开发计划在前面已经叙述,下面所要做的是进行软件需求分析,概要设计和详细设计。编码过程将在下一节论述,而测试和维护过程不在本文叙及。3.1
系统需求分析在经过前一阶段的分析之后,我确定了我的开发课题为小超市进销存管理。现在所要做的是要准确定义系统必须做什么以及系统必须具备的功能。
系统的概要设计中最重要的就是系统的模块化。模块化是指解决一个复杂问题时自项向下逐层把软件系统划分成若干个模块的过程。每个模块完成一个特定的功能,所有的模块按某种方法组织起来,成为一个整体,完成整个系统所要求的功能。
将系统划分为多个模块是为了降低软件系统的复杂性,提高可读性、可维护性,但模块的划分不能是任意的,应尽量保持其独立性。也就是说,每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单,即尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。
在系统的概要设计中我采用结构化设计(structuredesign,简称sd),sd以需所有表格都达到了三范式的要求。针对本系统的特点,在对所搜集的数据进行规范化之后,定义了如下六张表格,分别是库存信息表,入库信息表,出库信息表,员工信息表,供应商信息表和密码信息表。通过对这六张表格的操作可以较好地完成系统设计的各项功能,六张表格之间有着不同程度的联系。表的建立图1.1
库存信息表
库存信息表主要用于记录仓库中现存放的所有物品的详细信息,包括物品编号、名称、供应商、价格、数量等有关物品的各类信息,它即是该数据库主表,也是系统主界面的主要内容。
在该表中物品编号是主键,它按物品入库的先后次序来编写,每当有物品入库,图1.2
员工信息表
员工信息表主要用于记录有关员工的各类信息,包括姓名、职称、出生日期、联系供应商信息表主要用于记录有关供应商的各类信息,包括名称、地址、电话、付款方式等。它主要用来为系统提供供应商的有关信息,在系统中入库记录是与供应商记录相联系的,通过入库记录可以查找相关的供应商信息。在供应商信息中,考虑当实际情况,我特别加入了email和付款方式这两个字段,因为在当今信息世界中,多种多样的通讯方式和多种多样的付款方式是必然的,是数据库中必须与以记录。图1.4
出库信息表图1.5
入库信息表入库信息表主要用于记录有关入库的详细信息,包括入库数量、入库日期以及图书、员工、供应商三方的编号,以便查询。出库信息表主要用于记录有关出库的详细信息,包括出库数量、出库日期以及物品、员工的编号。出库信息表和入库信息表一样,其实它们都属于联系类型,系统通过这两个表可以联接上其它的表为用户提供多种条件的联接查询。值得提出的一点是入库记录和出库记录的添第四章
系统应用程序设计4.1
系统窗体模块组成
对某个表进行查询(根据物品名称,出库日期和数量查询,也可根据别的信息)对表中的数据进行修改,如改名字对某个表进行报表设计4.2
数据模块窗体的设置在编写数据库应用程序时,经常要遇到这样的情况,即好多组件、窗体同时
sql.add('select*frombookrecordwherepublisher=:pub');file://添加新的sql语句
parameters.parambyname('pub').value:=(senderastmenuitem).caption;
open;
file://重新打开mainquery
end;
end;
*********************************************************************
proceduretmainform.speedbutton1click(sender:tobject);
vars1,s2,s3,s4,s5:string;
file://设立5个变量以方便实现模糊查询
begin
file://主窗口库存查询按钮事件
withdatamoduleform.mainquerydo
begin
close;
ifedit5.text<>''
then
s5:='%'+edit5.text+'%'
else
s5:='%';
parameters.parambyname('booktype').value:=s5;
file://给变量s2赋值
open;
iffieldvalues['bookid']=null
file://判断是否找到记录
then
begin
messagedlg('没有找到你所需要的记录!',mtinformation,[mbok],0);
edit1.text:='';edit2.text:='';edit3.text:='';edit4.text:='';edit5.textsql.add('selectdistinctpublisherfrombookrecord');
open;
popupmenu1:=tpopupmenu.create(self);
file://自动生成快捷菜单
popupmenu1.autohotkeys:=mamanual;
file://自定义热键
whilenoteofdo
begin
file://根据出版社内容生成菜单子项
popupitem:=tmenuitem.create(self);
popupitem.caption:=fieldbyname('publisher').asstring;
popupmenu1.items.add(popupitem);
popupitem.onclick:=popup1handler;
file://确定菜单子项的点击事件
next;
end;
end;
popupmenu1.popup(384,67);
file://在指定位置显示快捷菜单1
end;
*********************************************************************
proceduretmainform.formactivate(sender:tobject);
begin
file://系统初始化,在进入mainform时自动添加数据源
mainform.dbgrid1.datasource:=datamoduleform.mainsource;
mainform.dbnavigator1.datasource:=datamoduleform.mainsource;
mainform.dbgrid2.datasource:=datamoduleform.empsource;
statusbar1.panels[4].text:=timetostr(time);
end;4.4入库、出库窗体模块的实现proceduretinoutform.speedbutton4click(sender:tobject);
begin
file://入库管理查找按钮事件
withdatamoduleform.bookquerydo
file://入库查询处理
edit11.readonly:=true;edit11.color:=clmenu;
edit12.text:=fieldvalues['number1'];
edit12.readonly:=true;edit12.color:=clmenu;
if
fieldvalues['addation']<>null
close;
sql.clear;
sql.add('select*frominrecordwhereinid>=all(selectinidfrominrecord)');
open;
file://找到入库编号中最大的一个
edit26.readonly:=false;
edit26.text:=fieldvalues['inid']+1;
file://最大的入库编号加1形成新的入库编号
edit26.readonly:=true;edit26.color:=clmenu;
file://设置编号的不
close;
sql.clear;
sql.add('insertintoinrecordvalues(:inid,:bookid,:empid,:shopid,
:number,:indate)');
file://向入库信息表中插入记录
parameters.parambyname('inid').value:=edit26.text;
file://向edit框取值
parameters.parambyname('bookid').value:=edit13.text;
edit13.setfocus;
end;
end;
end;
end;
*********************************************************************
proceduretinoutform.speedbutton2click(sender:tobject);
begin
file://入库管理确定按钮事件
if(edit2.text='')or(edit3.text='')or(edit4.text='')or(edit5.text='')
or(edit6.text='')or(edit7.text='')or(edit8.text='')or
parameters.parambyname('shopid').value:=edit3.text;
parameters.parambyname('number').value:=edit4.text;
parameters.parambyname('indate').value:=edit5.text;
execsql;
end;
withdatamoduleform.bookquerydo
begin
close;
begi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年铁路职工岗位风险识别考核试卷
- 新招标投标法知识考试题库及答案
- 乡镇街道公务员(综合知识测试)2026年湖北省从村干部中定向考录全真模拟试题及答案
- 摄影测量学(专升本)地质大学考试题库及答案
- 粮食行业技能竞赛粮油保管员考试试题及答案
- 病理实验室质量控制业务考试题库
- 2026年造纸企业安全培训考试试卷及答案
- 2026年陕西省安全员B证考试题库及答案
- 2026年辽宁省教师职称考试(初中)真题
- 2026年公安警务督察系统应用知识考试题库
- 课件-报关单规范申报
- 2025年工程监理企业发展策略及经营计划
- 纸护角生产工艺培训资料
- 2024年北京人力资源市场工资指导价位
- 汕尾市市区教育设施布局专项规划(2018-2035年)
- 装饰装修工程施工方案(完整版)
- 太阳能平板式集热器
- (高清版)WST 227-2024 临床检验项目标准操作程序编写要求
- 形成性评价在消化内科住院医师规范化培训中的意义初探
- 《基因编辑CRISPR技术原理及应用课件》
- HSE管理体系文件
评论
0/150
提交评论