数据库程序设计.docx
- 文档编号:28525508
- 上传时间:2023-07-18
- 格式:DOCX
- 页数:26
- 大小:454.53KB
数据库程序设计.docx
《数据库程序设计.docx》由会员分享,可在线阅读,更多相关《数据库程序设计.docx(26页珍藏版)》请在冰豆网上搜索。
数据库程序设计
网络数据库课程设计
发票管理系统
学号:
310709040222
姓名:
魏建业
班级:
网络工程07–2班
目录
一.设计概述3
1.1.题目发票处理系统3
1.2.需求分析:
3
二.数据库设计4
2.1.逻辑结构4
2.2.逻辑结构设计5
2.3.物理结构设计5
三.数据库实现6
四、概念设计7
4.1现状描述7
4.2系统开发方法7
五、系统分析8
5.1系统需求分析8
5.2功能需求分析8
5.3系统设计8
六.各功能模块12
七、系统实现12
八、总结18
发票管理系统
摘要:
随着商业的规模不断扩大,发票数量急剧增加,有关发票的各种信息量也成信增加。
面对庞大的信息量,就需要有发票管理系统来提高发票管理工作的效率。
通过这样的系统,可能做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工作。
关键词:
管理系统;数据库;网络
一.设计概述
1.1.题目发票处理系统
1.2.需求分析:
在公司的订单处理中,凡是订购商品的客户,如果库存能够满足客户需求,财务部门就可以开出发票。
同时将商品和发票寄给客户,并要求客户付款。
公司要求建立一个数据库,对客户的发票进行处理。
该数据库应能够提供对发票到款情况的查询,如实际到款数、欠款数等。
如果发票到期而客户没有按时付款,系统应该提供欠款的客户名单并发出催款通知。
1.3、系统方案
1.31可行性分析
开发必要性:
系统开发的总体任务是使发票部门管理人员可以轻松快捷地完成发票管理的任务,主要包括发票基本情况管理,以实现用户方便的输入、查询、删除、统计、打印相关报表的业务需求。
技术可行性:
小组开发人员有良好的编程能力、自学能力。
经济可行性:
无需经济成本,软件的开发成本在我们的预算范围之中。
二.数据库设计
2.1.逻辑结构设计
逻辑结构设计的主要工具是E—R图。
(1)本发票处理系统涉及到的实体:
订单(order)、客户(guest)、商品(goods)
涉及到的关系:
发票(bill);
(2)实体关系及其属性:
Order(OrderID,GuestID,GoodID,GoodAmount),
Guest(GuestID,GuestName,Address,Phone),
Goods(GoodID,GoodName,Price,StoreAmount),
Bill(BillID,OrderID,DataPay,RealPay,OweMoney);
(3)绘制E—R图
2.2.逻辑结构设计
逻辑结构设计主要目标是建立关系模型
在系统中应建立这样几张表:
Order(OrderID,GuestID,GoodID,GoodAmount),
Guest(GuestID,GuestName,Address,Phone),
Goods(GoodID,GoodName,Price,StoreAmount),
Bill(BillID,OrderID,DatePay,RealPay,OweMoney);
2.3.物理结构设计
选用MySQL数据库建立FPCL数据库,数据库中有以下几张表:
Orders表
列名
数据类型
主键
是否空值
备注
OrderID
Char(10)
YES
NOTNULL
GuestID
Char(10)
NOTNULL
外键
GoodID
Char(10)
NOTNULL
外键
GoodAmount
Int(20)
NOTNULL
Guests表
列名
数据类型
主键
是否为空
备注
GuestID
Char(10)
YES
NOTNULL
GuestName
Char(10)
NOTNULL
Address
Char(20)
NULL
Phone
Char(11)
NULL
Goods表
列名
数据类型
主键
是否空值
备注
GoodID
Char(10)
YES
NOTNULL
GoodName
Char(15)
NOTNULL
Price
Float(8,2)
NULL
StoreAmount
SmallInt(8)
NOTNULL
Bills表
列名
数据类型
主键
是否空值
备注
BillID
Char(5)
YES
NOTNULL
OrderID
Char(15)
NOTNULL
DatePay
Date
NOTNULL
RealPay
Float(8,2)
NULL
OweMoney
Float(8,2)
NULL
三.数据库实现
dropdatabaseifexistsFPXT;
createdatabaseFPXT;
useFPXT;
createtableGoods
(
GoodIDchar(10)notnullPrimaryKey,
GuestNamechar(15)notnull,
Pricefloat(8,2),
StoreAmountsmallint(8)notnull
);
createtableGuests
(
GuestIDchar(10)notnullprimarykey,
GuestNamechar(15)notnull,
Addresschar(20),
Phonechar(11)
);
createtableOrders
(
OrderIDchar(10)notnullprimarykey,
GuestIDchar(10)notnull,
GoodIDchar(10)notnull,
GoodAmountint(20)notnull,
FOREIGNKEY(GuestID)
REFERENCESGuests(GuestID)
ONdeleterestrict
onupdaterestrict,
FOREIGNKEY(GoodID)
REFERENCESGoods(GoodID)
ONdeleterestrict
onupdaterestrict
);
createtableBills
(
BillIDchar(10)notnullprimarykey,
OrderIDchar(10)notnull,
DeadLinedatenotnull,
RealPayfloat(8,2),
OweMoneyfloat(8,2),
FOREIGNKEY(OrderID)
REFERENCESOrders(OrderID)
ONdeleterestrict
onupdaterestrict
);
四、概念设计
4.1现状描述
本系统为发票管理部门提供服务。
发票是记录账簿的依据,它的完整与否将直接影响到财务的核算结果。
早期的发票管理是由人工管理的不仅容易出错,而且不易保存。
随着计算机的不断普及和软件技术的不断发展,加上企业对发票财务管理的迫切需要发票管理系统应运而生。
用户功能如下:
1.用户及权限管理。
该系统可以实现对不同用户的使用权限进行管理。
从而达到发票管理的级别控制。
2.实现发票的出库、入库登记。
3.实现查询功能,通过该系统可以对仓库物品的库存状态进行查询;查询出库、入库情况。
发票管理中包括信息的录入、修改、删除及查询。
该系统的数据不受其他子系统数据的改变而改变是独立存在的,只有具有一定权限的管理员才能进行数据的改动,这样确保了对原始数据的保存以及维护,以便日后查找。
4.2系统开发方法
随着Internet的发展和社会信息化程度的日益提高,越来越多的用户要求开发基于Web的B/S架构应用程序。
面向对象方法是一种运用对象、类、消息传递、继承、封装、聚合、多态性等概念来构造软件系统的软件开发方法。
面向对象方法作为软件系统的一种实现思想和设计方法,它功能强大,编程效率高,在IT界已获得了成功。
五、系统分析
5.1系统需求分析
本产品作为发票的管理软件,可对发票进行一系列操作。
随着我国经济市场经济的快速发展,发票管理系统在企业的日常库存管理中发挥着越来越重要的功能。
本产品为发票管理部门而开发,发票管理人员可通过此软件对发票操作,例如:
发票的增加、删除、修改和查询。
5.2功能需求分析
材料的发票管理是库存系统中的一个重要功能,它要实现材料的入库登记功能。
在材料入库时,需要记录材料名称、材料数量、进货价格和材料规格写信息,并将其用发票形式录入。
产品所具有的主要功能:
发票的操作各部分主要功能
发票增加公司购买材料入库时需要设置发票以备历史备案,新增发票单
发票删除当确定此发票单不再需要时,便可删除
发票修改若发票单出现问题需要修改时,则使用此功能
发票查询需查询发票单时,输入相关信息可查得该发票单的具体信息
发票单显示当进入主界面后有一模块显示所有的发票单
5.3系统设计
5.3.1系统总体结构设计
本系统的总体结构设计图:
5.3.2子系统/模块划分
子系统清单(SubsystemList),如表所示。
表3-1子系统清单
子系统编号子系统名称子系统功能简述
SS1用户模块
1.用户登录
2.用户资料管理:
密码修改,用户信息管理
SS2发票信息栏模块
1.前台发票详细信息版块显示
SS3操作模块
1.用户必须登陆后方可对发票单操作
2.可对发票单进行管理:
增加、删除、修改、查找
SS4主窗口栏模块
1.用户必须登陆后方可对发票单操作
2.可选中所要的发票单进行操作
功能模块清单(FunctionModuleList),如表所示。
表3-2功能模块清单
模块编号模块名称模块功能简述
M1-1用户登录保证系统的合法用户通过身份验证进入系统并进行操作
M2-1增加发票用户增加发票单,将新发票数据输入系统
M2-2删除发票当确定一发票单不再需要使用时,便可删除
M2-3发票修改发票单出现问题需修改时,用此功能
M2-4发票查找需查询发票单时,输入相关信息可查得该发票单的具体信息
M3-4发票单显示在主窗口中,所有发票单分页显示
5.3.3数据结构设计
1.建立关系数据库表
数据库表名清单,如表3-3所示:
序号中文表名英文表名表功能说明
1用户权限表tblUsr登陆模块表
2供应商名称表tblPrv产品公司来源表
3材料名称表tbMt材料属性表
4外购材料发票tbInv发票具体信息表
2.发票管理系统的E-R图设计:
3.数据库表的详细清单
各数据表的详细清单:
发票管理系统报告
表3-5表名:
用户权限表(tblUsr)
列名
中文名
数据类型
数据长度
非空
关键字
备注
usrNo
人员号
整型
2
是
是
usrCd
人员编码
字符型
4
usrNm
人名
字符型
8
是
usrPwd
口令
usrPost
岗位名
字符型
8
是
材料员
usrDpt
所属部门
整型
2
是
部门编号
usrIn
入库权
整型
1
是
usrOut
出库权
整型
1
是
usrInv
发票权
整型
1
是
usrYld
产量权
整型
1
是
usrDfn
定义权
整型
1
是
usrAlrm
库存报警
整型
1
是
可用
usrMt
材料查询权
整型
1
是
可用
usrCst
成本查询权
整型
1
是
usrPrd
生产查询权
整型
1
是
可用
usrDtl
更改日
日期型
未知
usrRmk
备注
字符型
50
表3-6表名:
供应商名称表(tblPrv)
字段名
中文标题
数据类型
字段大小
默认值
索引
备注
prvNo
厂商号
整型
2
主键
prvCd
厂商码
文本
4
无
厂商编码
prvNm
厂商名
文本
20
唯一索引
prvAdd
厂商地址
文本
30
无
prvOrdr
排序
整型
20
无
prvRmk
备注
文本
50
无
无
prvDtl
更新日期
日期
8
无
表3-7表名:
材料名称表tbMt
列名
中文名
数据类型
数据长度
非空
关键字
备注
mtNo
材料号
整型
4
是
是
mtCd
材料编码
字符型
4
mtNm
材料名称
字符型
20
是
mtSp
规格型号
字符型
30
mtUnt
计量单位
字符型
4
mtInPrc
入库价
整型
8
最新入库价
mtOutPrc
出库价
整型
8
最新出库价
mtPlnPrc
计划价
整型
8
mtOrdPrc
订货价
整型
8
mtAddRt
附加比例
整型
8
管理附加费比例
mtStcTop
库存上限
整型
8
mtStcFlr
库存下限
整型
8
mtStcNum
库存数量
整型
8
mtAcStc
账存数量
整型
8
mtAcVal
账存金额
整型
8
mtOrdPd
购买周期
整型
2
订货到货到所需的天数
mtOrdBat
购买批量
整型
8
购买最小包装数量
mtStd
标准料号
整型
4
同一材料不同厂折算到标准材料上,定额用标准材料计算
mtStCo
折算系数
整型
8
同一材料不同厂折算到标准材料上,定额用标准材料计算
mtOrd
排序
整型
4
材料排序
mtPrvNo
供方号
整型
2
mtArea
产地
整型
1
mtSgn
重要性
整型
1
mtPlnNo
计划员号
整型
2
mtKpNo
保管员号
整型
2
mtTyp
类别
整型
1
分类法
mtMng
主辅料
整型
1
mtDtl
更改日
日期型
8
数据更新日期
mtRmk
备注
字符型
50
表3-8表名:
外购材料发票tbInv
列名
中文名
数据类型
数据长度
非空
关键字
备注
ReptNo
发票代码
整型
20
是
是
invDt
录入时间
日期型
8
是
是
invPrvNo
供方号
整型
2
是
是
invPrvNm
供方名
字符型
20
invMtNo
材料号
整型
4
是
是
invMtNm
材料名
字符型
20
invMtSpc
材料规格
字符型
20
invUnt
计量单位
字符型
8
invNum
数量
整型
8
invPrc
单价
整型
8
invSum
金额
整型
8
invRlsDt
开票日
日期型
8
invPlDt
计划签字日
日期型
8
invLdDt
领导批准日
日期型
8
invRmk
备注
字符型
50
六.各功能模块
6.1功能1:
刷新显示数据
按此功能按钮,可显示当前数据库中的发票
6.2功能2:
发票的增加
在软件系统上设有发票信息栏,发票信息栏包含各种具体的详细信息。
当要增加发票时,在各相应的框中输入具体信息,输入完毕后点操作栏中的增加按钮,则系统自动将此发票单存入数据库中。
6.3功能3:
发票的删除
此功能是将冗余、重复或有误的发票单删除。
先利用查询功能将其需要的发票单显示出来。
在选中的一发票单后,按在操作栏中的删除按钮,系统提示“是否确认删除”。
若按是,则删除了。
否则取消操作。
6.4功能4:
发票的修改
在钩选了主窗口栏中需要修改的发票或者直接先查询出所要修改的发票,发票信息栏中将会显示该发票单的具体各项信息。
当修改完毕后,点修改按钮。
系统提示:
“是否修改?
”若按是,则确认修改;若否,则取消修改操作。
6.5功能5:
发票的查询
首先在发票信息栏中输入要查找的关键字,然后在操作栏上按查询按钮,可在主窗口栏中找到符合信息的发票。
6.6功能6:
发票的显示
主窗口显示所有的发票数据。
第几页至第几页的数据所有元素。
根据发票的代码和录入时间排序,当有新的发票单进入系统后,自动加入此发票信息数据库中。
七、系统实现
7.1软件登录界面
7.2功能实现
7.2.1.首页
网页头部以及导航栏的部分用表格实现,保存在文件head.txt中,各个网页通过jsp的include标签,保持网页的整体一致性。
7.2.2.查看库存
主要代码如下:
建立数据库连接:
查询并遍历结果:
7.2.3.订单录入
getOrder.jsp主要负责订单录入,而insertOrder.jsp负责插入数据并显示插入后的结果。
getOrder.jsp关键代码如下:
insertOrder.jsp关键代码如下:
<%
StringOrderID=request.getParameter("OrderID");
StringGuestID=request.getParameter("GuestID");
StringGoodID=request.getParameter("GoodID");
StringGoodA=request.getParameter("GoodA");
…………
try{
Class.forName("com.mysql.jdbc.Driver");
Stringurl="jdbc:
mysql:
//localhost/FPXT";
Stringuser="root";
Stringpassword="wyh";
Connectioncon=DriverManager.getConnection(url,user,password);
Statementst=con.createStatement();
Stringsq="insertintoOrdersvalues('"+OrderID+"','"+GuestID+"','"+GoodID+"',"+GoodA+");";
if(st.executeUpdate(sq)!
=0){
out.print("
");
}
ResultSetrs=st.executeQuery("select*fromOrders;");
…………
while(rs.next()){
out.print("
out.print("
(1)+"");
out.print("
(2)+"");
out.print("
out.print("
out.print("
}
out.print("");
rs.close();
st.close();
con.close();
}catch(SQLExceptione){
out.print(" out.print(" out.print(" "+e.getErrorCode()); out.print(" "+e.getSQLState()); out.print(" "+e.getMessage()); out.print(" ");
------------------------添加失败---------------------");
ErrorCode:
SQLState:
Reason:
}
%>
7.2.4.开发票
createBill.jsp负责根据页面显示订单开
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 程序设计