数据库货品管理系统课设报告.docx
- 文档编号:11193997
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:35
- 大小:561.31KB
数据库货品管理系统课设报告.docx
《数据库货品管理系统课设报告.docx》由会员分享,可在线阅读,更多相关《数据库货品管理系统课设报告.docx(35页珍藏版)》请在冰豆网上搜索。
数据库货品管理系统课设报告
数据库实验报告
教学部
专业
班级
学号
姓名
任课教师
沈阳航空航天大学北方科技学院
2014年4月
货品管理系统
目录
货品管理系统II
目录II
1开发要求1
2需求分析1
2.1功能需求1
2.2数据需求1
2.3数据流图2
2.4E-R图3
2.4.1实体图3
2.4.2E-R图6
3总体设计7
3.1功能模块设计7
3.2系统设计方案7
3.3数据库设计8
3.3.1数据库表设计8
4详细设计10
4.1数据库连接10
5调试与测试11
5.1调试11
5.2测试11
6结论12
附录1—用户手册1
附录2—源程序6
摘要
随着我国经济的飞速发展,各种类型规模的公司企业迅速崛起,许多从事生产和经营管理的企业都有自己生产和销售的产品,而这些产品都需要储存在仓库中,对于每个企业来说,随着企业规模的不断扩大,产品数量的急剧增加,所生产产品的种类也会不断地更新与发展,有关产品的各种信息量也会成倍增长。
面对庞大的产品信息量,如何有效地管理库存产品,对这些企业来说是非常重要的,库存管理的重点是销售信息能否及时反馈,从而确保企业运行效益。
而库存管理又涉及入库、出库的产品、操作人员及客户等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的,所以这就需要由库存管理系统来提高库存管理工作的效率,这对信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。
经对于本系统的研究分析,前台选择使用C#,后台数据库用Oracle,开发出以C/S结构的货品管理系统。
1开发要求
本系统主要为管理提供方便快捷的服务,能够实现货品信息的录入、查询、更改,功能。
本系统所要具体实现如下功能:
货品信息的查询,删除,更改,添加。
2需求分析
2.1功能需求
现某公司需要管理其各种信息,希望实现仓库管理的信息化,通过建立一个货品管理系统来管理仓库。
该系统完成的功能主要如下:
能够实现对货品信息的各种查询,包括逐个浏览,以及对货品信息的增加、删除和编辑操作。
2.2数据需求
本系统数据的需求用Oracle来完成的,经过对公司仓库系统的分析后,系统所涉及到的数据包括:
货品号,货品名称,入库时间,货品类型,入库总量,仓库编号,出库时间,供应商编号,收购单价等。
2.3数据流图:
如图1
图1管理员-供应商数据流图
图2管理员-客户数据流图
图3总数据流图
2.4E-R图
对于货品管理系统的分析,设计规划出的实体有:
客户,管理员,供应商,货品,货品类型,入库,出库等。
各个实体具体的描述和实体之间关系如下介绍。
2.4.1实体图
(1)客户实体
包含字段:
客户编号,客户姓名,身份证号,联系方式。
(如图4)
图4客户实体
(2)管理员实体
包含字段:
职工号,职工姓名,性别,身份证号,职务。
(如图5)
图5管理员实体
(3)供应商实体
包含字段:
供应商编号,供应商名称,供应商地址,货物,联系方式。
(如图6)
图6供应商实体
(4)货品实体
包含字段:
货物编号,货物名称,货物类型。
(如图7)
图7货品实体
(5)货品类型实体
包含字段:
类型编号,类型名称,类型描述(如图8)
图8货品类型实体
(6)入库记录实体
包含字段:
货品编号,供应商编号,货品名称,货品类型,入库量,入库时间,收购单价。
(如图9)
图9入库记录实体
(7)出库记录实体
包含字段:
货品编号,供应商编号,货品名称,货品类型,入库量,入库时间,售出单价。
(如图10)
图10出库记录实体
2.4.2E-R图
通过对各个实体之间的联系进行分析,得出系统的E-R图,如图11所示。
图11E-R图
3总体设计
3.1功能模块设计
经过对于本系统的分析主要划分为4个功能模块,分别执行要求中的各个功能。
数据管理中实现对客户管理的查询,删除,增加,更改。
功能模块图如图12所示。
图12功能模块
3.2系统设计方案
系统中不仅可以进行相应的货品查询,而且可以进行其他实体的显示,增加,删除,修改的功能。
3.3数据库设计
3.3.1数据库表设计
对本系统研究后,数据库管理系统采用Oracle实现。
在银行管理器中创建银行数据库,根据上面的关系模式,系统建7个表。
各个表结构如下。
客户表如表1所示。
表1客户表
字段名称
字段类型
字段长度
字段说明
备注
knum
Varchar
50
客户编号
主键
kname
Varchar
50
客户姓名
kID
Varchar
50
身份证号
kel
Varchar
50
联系方式
kno
Varchar
50
职工号
管理员表如表2所示。
表2管理员表
字段名称
字段类型
字段长度
字段说明
备注
ynum
Varchar
50
职工编号
主键
yname
Varchar
50
职工姓名
ysex
Varchar
50
性别
yID
Varchar
50
身份证号
yzw
Varchar
50
职务
供应商表如表3所示
表3供应商表
字段名称
字段类型
字段长度
字段说明
备注
zcount
Varchar
50
编号
主键
znum
Varchar
50
姓名
znum1
Varchar
50
地址
zye
Varchar
50
货物
zky
Varchar
50
电话
货品表如表4所示
表4货品表
字段名称
字段类型
字段长度
字段说明
备注
scount
Varchar
50
货品编号
主键
stime
Varchar
50
货品名称
scount
Varchar
50
入库时间
squ
Varchar
50
出库时间
货品类型表如表5所示
表5货品类型表
字段名称
字段类型
字段长度
字段说明
备注
lnum
Varchar
50
类型编号
主键
lkind
Varchar
50
类型名称
squ
Varchar
50
类型描述
入库记录表如表6所示
表6入库记录表
字段名称
字段类型
字段长度
字段说明
备注
bnum
Varchar
50
货物编号
主键
bkind
Varchar
50
供应商编号
Bming
Varchar
50
货品名称
Blei
Varchar
50
货品类型
Rukuliang
Varchar
50
入库量
Shijian
Varchar
50
入库时间
jiage
Varchar
50
收购价格
出库记录表如表7所示
表7出库记录表
字段名称
字段类型
字段长度
字段说明
备注
cno
Varchar
50
货物编号
主键
cnum
Varchar
50
客户编号
ccount
Varchar
50
货品名称
cline
Varchar
50
货品类型
create
Varchar
50
出库量
shijian
Varchar
50
出库时间
jiage
Varchar
50
售出价格
4详细设计
4.1数据库连接
为了建立与数据库的连接,需要使用ADO控件和ADO的对象模型。
图13,14,15,16是功能流程图。
图13修改模块图14删除模块
图15显示数据模块图16添加模块
5调试与测试
5.1调试
编好程序后,用各种手段进行查错和排错的过程。
作为程序的正确性不仅仅表现在正常功能的完成上,更重要的是对意外情况的正确处理。
注意,调试的指导思想是尽量证明该程序是有错的,而不是证明它是正确的。
如何能在浩如烟海的程序元素中找到有错误的那个元素,这是调试过程中关键的技术问题。
调试过程主要是运行编制好的程序,然后遇到错误后根据系统的提示,找到相关的问题所在。
本系统调试过程中遇到问题、原因和解决方法如下面介绍。
(1)数据库连接错误
错误原因:
正确输入用户名密码时显示theaccountislocked。
解决方法:
在SQLPlus界面中输入alteruserscottaccountunlock。
(2)弹出框错误
错误原因:
定义类型出错。
解决方法:
更改定义类型。
5.2测试
软件测试是程序的一种执行过程,目的是尽可能发现并改正被测试软件中的错误,提高软件的可靠性。
它是软件生命周期中一项非常重要且非常复杂的工作,对软件可靠性保证具有极其重要的意义。
在目前形式化方法和程序正确性证明技术还无望成为实用性方法的情况下,软件测试在将来相当一段时间内仍然是软件可靠性保证的有效方法。
软件工程的总目标是充分利用有限的人力和物力资源,高效率、高质量地完成软件开发项目。
不足的测试势必使软件带着一些未揭露的隐藏错误投入运行,这将意味着更大的危险让用户承担。
过度测试则会浪费许多宝贵的资源。
到测试后期,即使找到了错误,然而付出了过高的代价。
(1)添加测试
输入数据1:
06,货品A,1234,5678。
运行结果:
添加成功。
06,货品A,1234,5678。
(2)修改测试
输入数据1:
01,货品B,111111,222222。
运行结果:
01,货品B,111111,222222。
输入数据2:
09,货品B,111111,222222。
运行结果:
输入错误。
(4)删除测试
输入数据1:
货品编号05。
运行结果:
删除成功。
输入数据2:
客户编号00。
运行结果:
输入错误。
(5)查询测试
输入数据1:
货品编号:
01
运行结果:
显示除05货品以外的相关信息。
输入数据2:
货品编号:
飞机
运行结果:
没有该货品号码的信息。
测试结论:
各功能模块都有相应的显示,程序开发成功。
6结论
经过两个一个多星期的努力,完成了本次课程设计。
设计时,严格按照软件工程的思想,从需求分析、可行性分析、总体设计、最后到详细设计。
在设计过程中,我们遇到了很多技术上的问题,平时在学习过程中,即使上机实验也都是些小的、较为简单的程序设计,都称不上为系统,因此,在开发系统的过程中碰到了很多棘手的问题,经过慢慢尝试,多多练习,一点点改进,终于实现所有设计的功能模块。
本次课程设计过程中,我们查阅了很多的资料,所以又进一步掌握更多的专业知识,技能水平也有很大的提高,总之,要勤于动手动脑,多想多试才有创新,才有进步,才有收获。
附录1—用户手册
首页显示主页面如图17
图17显示主界面
显示数据库信息如图18
图18显示数据库信息
修改数据库信息如图19
图19修改数据库信息
显示修改后的数据库信息如图20
图20修改后数据库信息
删除数据库信息如图21
图21删除数据库信息
显示删除后的数据库信息如图22
图22删除后的数据库信息
添加数据库信息如图23
图23添加数据库信息
显示添加后的数据库信息如图24
图24添加后数据库显示信息
查找数据库信息如图25
图25查找数据库信息
显示查找后的数据库信息如图26
图26查找后的数据库信息
附录2—源程序
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingOracle.DataAccess.Client;
namespace银行管理系统
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
yl.ConnectionString="DATASOURCE=;PERSISTSECURITYINFO=True;USERID=SYSTEM;PASSWORD=system";
}
privatevoiddataGridView1_CellContentClick(objectsender,DataGridViewCellEventArgse)
{
}
privatevoid显示_Click(objectsender,EventArgse)
{
try
{
yl.Open();
stringsqlStr="SELECTKNOAS客户号,KNAMEAS客户姓名,KIDAS身份证号,KTELAS电话FROMYINHANG";
using(OracleCommandcmd=newOracleCommand(sqlStr,yl))//命令对象
{
using(OracleDataReaderodr=cmd.ExecuteReader())
{
if(odr.Read())
{
OracleDataAdapteroda=newOracleDataAdapter(sqlStr,yl);
DataSetds=newDataSet();
oda.Fill(ds);
dataGridView1.DataSource=ds.Tables[0];
}
else
{
MessageBox.Show("数据表为空");
}
}
}
/*
*try
*{
*OracleCommandcmd=newOracleCommand(sqlStr,conn)
*}
*catch(OracleExceptionex)
*{
*MessageBox.Show("错误:
"+ex.Message);
*}
*finally
*{
*conn.Close();
*}
*/
}
catch(OracleExceptionex)
{
MessageBox.Show("错误:
"+ex.Message);
}
finally
{
yl.Close();
}
}
privatevoid添加_Click(objectsender,EventArgse)
{
AddFormaf=newAddForm();//表名+变量名=new+表名
af.ShowDialog();//变量名.ShowDialog()
显示_Click(null,null);//显示函数(null,null)
}
privatevoid删除_Click(objectsender,EventArgse)
{
DelFormdf=newDelForm();//表名+变量名=new+表名
df.ShowDialog();//变量名.ShowDialog()
显示_Click(null,null);//显示函数(null,null)
}
privatevoid修改_Click(objectsender,EventArgse)
{
Xiugaicf=newXiugai();
cf.ShowDialog();
显示_Click(null,null);//显示函数(null,null)
}
privatevoid查找_Click(objectsender,EventArgse)
{
chazhaocf=newchazhao();
cf.ShowDialog();
显示_Click(null,null);//显示函数(null,null)
}
privateOracleConnectionyl=newOracleConnection();
}
}
添加模块
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingOracle.DataAccess.Client;
namespace银行管理系统
{
publicpartialclassAddForm:
Form
{
publicAddForm()
{
InitializeComponent();
yl.ConnectionString="DATASOURCE=;PERSISTSECURITYINFO=True;USERID=SYSTEM;PASSWORD=system";
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
try
{
yl.Open();
stringsqlStr="INSERTINTOYINHANGVALUES('"+textBox1.Text+"','"+textBox2.Text+"','"+textBox3.Text+"','"+textBox4.Text+"')";
using(OracleCommandcmd=newOracleCommand(sqlStr,yl))
{
intre=cmd.ExecuteNonQuery();
if(re!
=0)
{
MessageBox.Show("插入成功");
Close();
}
else
{
MessageBox.Show("插入失败");
}
}
}
catch(OracleExceptionex)
{
MessageBox.Show("错误:
"+ex.Message);
}
finally
{
yl.Close();
}
}
privateOracleConnectionyl=newOracleConnection();
privatevoidbutton2_Click(objectsender,EventArgse)
{
Close();
}
}
}
删除模块
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingOracle.DataAccess.Client;
namespace银行管理系统
{
publicpartialclassDelForm:
Form
{
publicDelForm()
{
InitializeComponent();
yl.ConnectionString="DATASOURCE=;PERSISTSECURITYINFO=True;USERID=SYSTEM;PASSWORD=system";
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Close();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
try
{
yl.Open();
stringstr="DELETEFROMYINHANGWHEREKNO=:
kno";
using(OracleCommandcmd=newOracleCommand(str,yl))
{
OracleParameterkno=newOracleParameter(":
nso",textBox1.Text);
cmd.Parameters.Add(kno);
intresult=cmd.ExecuteNonQuery();
if(result!
=0)
{
MessageBox.Show("删除成功!
");
}
else
{
MessageBox.Show("没有此学生!
");
}
}
}
catch(OracleExceptionex)
{
MessageBox.Show("错误:
"+ex.Message);
}
finally
{
yl.Close();
}
}
privateOracleConnectionyl=newOracleConnection();
publicOracleParameterkno{get;set;}
}
}
修改模块
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingOracle.DataAccess.Client;
namespace银行管理
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 货品 管理 系统 报告