企业进销存

更新时间:2024-05-21 10:28:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

毕业论文

毕业设计(论文)

设计(论文)题目: 企业进销存系统

毕业论文

摘 要

随着科学技术的快速发展,生活中的每个角落都离不开信息技术,信息技术的不断进步,互联网的影响不断深刻,带来了结果就是网络信息的急剧增长。而社会上的各行各业也无法脱离于这股时代大潮流,通过应用最新的信息技术,实现自己行业内部的信息化,进而简化和规范自己行业内部的业务行为和规则,是每个企业都要面对的问题。

通过企业进销存平台,各种中小型零售商可以在线管理自己的买卖行为,给经营者带来了很大的便利。进销存系统的核心在于其对自己仓库数量的管理,以及货物入库和货物出库时仓库与购物车之间数据的协同对应。

企业进销存系统在前台页面上选取JSP作为开发语言,数据库选用了MySQL数据库,开发IDE采用MyEclipse 10,运行服务器采用tomcat 6.0。企业进销存系统是一个基于B/S的功能强大的进销存系统。

关键词:进销存,JSP,MySQL,MyEclipse

I

毕业论文

ABSTRACT

With the rapid development of science and technology and life are inseparable from every corner of the continuous advances in information technology, information technology, the Internet continues to profoundly influence brought the result is a sharp increase in network information. And all walks of life in the community also can not escape the trend of the times in which shares, through the application of the latest information technology to achieve their information technology within the industry, and thus simplify and standardize their business practices within the industry and the rules of every enterprise To confront the problem.

Invoicing by business platform, a variety of small online retailers manage their trading behavior, to the operators has brought great convenience. Invoicing system synergy between core warehouse and shopping cart data corresponding to its own warehouse when the number of management and storage of goods and cargo out of the library.

Enterprise Invoicing system selected on the front page JSP as a development language, database selected MySQL database development IDE using MyEclipse 10, run the server using tomcat 6.0. Invoicing System is an enterprise based on functional B / S powerful invoicing system.

Keywords: Invoicing, JSP, MySQL,MyEclipse

II

毕业论文

目 录

摘 要 .................................................................................................................... I ABSTRACT ......................................................................................................... II 第一章 绪论 ......................................................................................................... 1

1.1课题背景 ....................................................................................................................... 1 1.2目的和意义 ................................................................................................................... 1 1.3开发工具及技术 ........................................................................................................... 1

1.3.1开发工具 ............................................................................................................. 1 1.3.2 JSP技术 .............................................................................................................. 2 1.3.3 JavaScript ............................................................................................................ 3 1.4软硬件需求 ................................................................................................................... 3

第二章 系统分析 ................................................................................................. 4

2.1可行性分析 ................................................................................................................... 4

2.1.1技术可行性 ......................................................................................................... 4 2.1.2经济可行性 ......................................................................................................... 4 2.1.3运行可行性 ......................................................................................................... 4 2.1.4法律可行性 ......................................................................................................... 4 2.1.5事件可行性 ......................................................................................................... 4 2.2功能模块分析 ............................................................................................................... 5 2.3设计的基本思想 ........................................................................................................... 8 2.4性能需求 ....................................................................................................................... 9

2.4.1系统的安全性 ..................................................................................................... 9 2.4.2数据的完整性 ..................................................................................................... 9 2.5界面需求 ....................................................................................................................... 9

第三章 数据库设计 ........................................................................................... 10

3.1数据库的分析与设计 ................................................................................................. 10

3.1.1数据库的概念结构设计 ................................................................................... 10 3.1.2数据库的逻辑结构设计 ................................................................................... 11 3.1.3数据库的连接原理 ........................................................................................... 13

第四章 系统功能实现 ....................................................................................... 15

4.1后台登陆页面 ............................................................................................................. 15 4.2基础模块 ..................................................................................................................... 16

4.2.1商品管理 ........................................................................................................... 17 4.2.2供应商管理 ....................................................................................................... 21 4.2.3顾客管理 ........................................................................................................... 24

III

毕业论文

4.3库存模块 ..................................................................................................................... 27

4.3.1主要实现 ........................................................................................................... 27 4.4出库模块 ..................................................................................................................... 27

4..1主要实现 ............................................................................................................. 27

第五章 系统测试 ............................................................................................... 38

5.1系统测试目的与意义 ................................................................................................. 38 5.2测试过程 ..................................................................................................................... 38

5.2.1主页面的登录模块测试 ................................................................................... 38 5.3其他错误 ..................................................................................................................... 39

结 论 ................................................................................................................. 40 参考文献 ............................................................................................................. 41 致 谢 ................................................................................................................. 42

IV

毕业论文

图3-2供应商管理模块用例图

(3)产品管理模块

产品管理模块用于管理进销存系统的产品,功能包括添加产品,修改产品,删除产品。产品管理模块的用例图如图3-3所示:

图3-3产品管理模块用例图

毕业论文

(4)库存管理功能

库存管理模块用于管理进销存系统的库存,功能包括产品入库,入库查询,库存查询。库存管理模块的用例图如图3-4所示:

图3-4库存管理模块用例图

(5)出库管理功能

出库管理模块用于管理进销存系统的出库,功能包括销售出库,出库查询,销售退货。出库管理模块的用例图如图3-5所示:

毕业论文

图3-5出库管理模块用例图

进销存管理人员功能模块图

2.3系统设计的基本构想

系统设计的基本构想可以概括为以下几点:

1.保障开发速度。由于开发时间有限,所以整个开发过程首要的就是保证开发的进度能够满足设计时的设想,这样才能在计划的时间内完成项目

2. 系统模块化。在开发项目之前就应当把系统分成较小的模块,这样不仅利于掌握开发的进度也方便开发之后的调试。

3. 界面简洁。简洁漂亮友好的界面,可以使系统的用户获得更好的用户体验。 4.系统设计应当周全。系统在设计时应当尽量使自己的逻辑更加合理,同时为了以后的需求变动,系统应有较好的扩充能力。

5. 运用B/S模式。B/S模式尤其先天的优越性,用户不需要额外下载特定的客户端,这使得用户的使用更为方便。

6. 先进的设计理念。设计过程中应当应用目前最流行的设计理念,比如MVC模式,数据库连接池等。

毕业论文

2.4性能需求

2.4.1系统的安全性

超市的进销存系统,在保证功能可用的前提下,也要实现系统的安全性。

1.用户在使用进销存系统之前,首先要输入自己的用户名和密码,只有通过系统校验的用户才有权限,审核不通过的用户无法登录系统,进而也无法使用系统的任何资源,这种先验证后使用的模式保证了系统的准确性及可靠性。

2.在具体应用过程中对不同的权限进行限定,权限不同的用户在审核通过登陆后,无法进行无权限操作,只有系统管理员能够操作全部功能;普通的用户根据自己的角色不同,只能实现和应用系统的部分功能。

2.4.2数据的完整性

2.不同表中的数据要做到一致性 3.不允许非法输入

1.为了保证数据的可靠,允许少量数据冗余,关键的字段不允许为空

2.5界面需求

随着开发技术的不断进步,程序的前台设计已经成为用户对软件质量进行评价的一条关键指标,一个友好的前台可以使用户使用系统的信心和兴趣高昂,使得系统的使用率得到提高,JSP应用java语言作为其脚本语言,JSP页面给位于服务器的库单元提供一个访问接口用来实现基于HTTP的访问。JSP创建动态页面十分容易。前台界面是指后台系统与系统用户交流的窗口,前台界面的作用包括信息的输入输出和人机对话的界面格式。

1.输出设计

所谓系统的输出是指由计算机对用户输入的信息进行解决,进一步生成有用的信息,同时这种信息符合一定的规则,这份数据由管理者使用,这是设计输出模式的主要目的。

系统开发的过程与实施过程相反,并不是从输入设计到输出设计,而是从输出设计到输入设计。这是由于输出表格与使用者直接相联系,设计的目的应当是确保使用者可以很方便的使用输出表格,并且可以将各部门的有用信息及时的反映出来。输出设计的准绳是既要整体琢磨不同管理层的所有需要,又要简洁,不要提供给用户不需要的信息。

2.输入设计

毕业论文

输入数据的收集和录入是比较麻烦的,需要非常多的人力和一定设备,而且经常出错。一旦输入系统的数据不正确,那么处理后的输出将扩大这些错误,因此输入数据的准确性对于整个系统质量的好坏是具有决定性意义的。

输入设计有以下几点原则:

1)输入量应尽量保持在能满足处理要求的最低限度。开发时可使用设置字段初值,下拉式数据窗口等方式尽量使用户键盘输入量减少。随着输入量的减少,系统的错误率也随之减少,最终达到减少数据的准备时间的目的。

2)应尽可能使输入的准备及输入的过程进行时比较方便,这样使错误的发生率降低。

3)应尽量早检查输入数据(尽量接近原数据发生点),以便使错误更正比较及时。 4)输入数据尽早地记录成其处理所需的形式,以防止数据由一种介质转移到另一种介质时需要转录而可能发生的错误。

第三章 数据库设计

3.1数据库的分析与设计

数据库是计算机信息系统的基础。信息的收集、更新、加工、统计、整理、存储、检索和传播等操作只有得到后台数据库的支撑才可以实现。目前,电脑系统的关键与核心部分就是数据库。数据库开发的优劣对整个系统的质量和速度有着直接影响。

数据库的设计一般要可以分为个步骤:分别是分析需求、设计概念、设计逻辑、设计物理。

3.1.1数据库的概念结构设计

设计概念就是在数据分析的基础上自下而上的对整个系统的数据库概念结构进行设计。从使用者的角度对视图进行设计,之后进一步集成视图,在经过分析从而取得最后的结果。

对概念进行设计时采用实体—联系(E-R)的模型开发措施。E-R模型法的构成元素

毕业论文

有:实体、属性、联系,E-R模型可以用E-R图来表示,是对用户工作环境中所相关的事物给予提示,对实体特性的描述就是属性。

设计概念的出发点是能够对企业组织信息要求的数据库概念结构进行反映,就是概念模式。概念模式不依附数据库逻辑结构,,也不依赖支持数据库的DBMS,独立于计算机系统。

通过上述分析对数据库的需求,与系统概念模型的特点及开发方法相结合,我们可以建立E-R模型图。

实体 属性 实体间关系 3.1.2数据库的逻辑结构设计

我们知道,数据库概念模型独立于任何特定的数据库管理系统,因此,需要根据具体使用的数据库管理系统的特点进行转换。即转化为按计算机观点处理的逻辑关系模型,E-R模型向关系数据库模型转换应遵循下列原则:

*每一个实体都是一种关系 *所有表的主键必须定义成非空

*对于二元联系可以按照一对一、一对多、多对多等联系来定义不同表的外键。 (1)用户信息表主要是记录了用户基本信息。表结构如表3.1所示。

表3.1用户信息表(tb_user)

列名 id username password userlogtime

数据类型 int varchar varchar datetime 长度 允许空 是否主键 说明 4 否 是 自动编号 50 否 否 账号 50 否 否 密码 10 否 否 上次登录时间 毕业论文

(2)商品品牌信息表主要是记录了商品品牌的基本信息,表结构如表3.2所示。

表3.2商品品牌信息表(tb_brand)

列名 id brandname intro 数据类型 长度 允许空 是否主键 int 4 否 是 varchar 50 否 否 varchar 200 否 否 说明 品牌ID 品牌名称 品牌介绍 (3)商品信息表主要用来管理系统中商品的相关信息,表结构如图3.3所示。

表3.3商品信息表(tb_goods)

列名 id brandid price intro remark status

(4)供应商信息表主要记录了系统中供应商的相关信息,表结构如表3.4所示。

表3.4供应商信息表(tb_supplier)

列名 id suppliername address postcode fax tel email status

(5)客户信息表主要记录系统中客户的相关信息,表结构如表3.5所示

表3.5客户信息表(tb_customer)

列名 id customename address

数据类型 Int Int double varchar varchar int 长度 允许空 4 否 4 否 10 否 200 否 50 否 2 否 是否主键 是 否 否 否 否 否 说明 商品ID 品牌ID 价格 商品介绍 备注 状态 数据类型 int varchar varchar varchar varchar varchar varchar int 长度 允许空 4 否 50 否 50 否 50 否 50 否 50 否 50 否 4 否 是否主键 是 否 否 否 否 否 否 否 说明 供应商ID 供应商名 地址 邮编 传真 电话 邮箱 状态 数据类型 int varchar varchar 长度 允许空 4 否 50 否 50 否 是否主键 是 否 否 说明 客户ID 客户名称 地址 毕业论文

postcode fax tel email status

varchar varchar varchar varchar int 50 50 50 50 4 否 否 否 否 否 否 否 否 否 否 邮编 传真 电话 邮箱 状态 (6)库存信息表主要记录系统中库存的相关信息,表结构如表3.6所示

表3.6库存信息表(tb_stock)

列名 id stockname stocknumber goodsid number position status

数据类型 int varchar varchar varchar varchar varchar int 长度 允许空 4 否 50 否 50 否 50 否 50 否 50 否 4 否 是否主键 是 否 否 否 否 否 否 说明 库存ID 仓库名称 仓库编号 货物ID 数量 位置 状态 3.1.3数据库的连接原理

采用JDBC连接数据库的方式,只需在工程中导入对应数据库的jar包,就可以方便的对数据库进行连接,在程序中,用Class.forName()方法来加载驱动程序,在用DriverManager的getConnection()方法就可以创建一个数据库连接。程序采用的是DAO模式来操作数据库,DAO(Data Access Object,数据访问对象),是Java编程中的经典模式,已被广泛应用,也是J2EE架构中持久层框架的基础知识,基于分层次式的软件架构来实现对数据库的访问操作。DAO模式的主要思想就是从抽象数据源获取与操纵数据的方法。抽象数据的意义就是编写应用程序的开发人员不需要关心数据库的物理位置,已经是何种数据库,只需使用系统封装好的数据库中表示记录的数据对象即可。其思想如图3.7所示:

BusinessObject 使用 DataAccessObject 封装 DataSource

创建/使用 获取/修改 DataTransferObject 图3.7 DAO模式类图

毕业论文

图中BussinessObject是业务对象,是使用DAO模式的客户端;DataTransferObject数据传输对象,在应用程序不同层次之间传输对象,在一个分布式应用程序中,通常可以提高整理的性能;DataObjectAcces数据输入/输出对象封装了对数据源的一些基本操作;DataSource指的是数据源。可以从图中看出,DAO模式分离了业务逻辑和数据罗即将,是的编写的软件具有良好的层次式体系结构。本系统为了方便数据库的操作,主要使用DBContent的对象来接一个数据库(建立一个类DBContent),代码如下: public DBContent(){

String CLASSFORNAME=\

//连接数据库的驱动 String url=\

jdbc:mysql://localhost:3306/db_nfcp?Unicode=true&haracterEncoding=utf-8\ String user=\ String password=\try{

Class.forName(CLASSFORNAME);

con= DriverManager.getConnection(url,user,password);//加载数据库的驱动 stmt=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); }

catch(Exception ex){

ex.printStackTrace(); } }

在程序需要连接数据库的地方,只需要生成一个DBConnet的对象,就可以对数据库进行连接并操作。

毕业论文

第四章 系统功能实现

在管理信息系统的生命周期中,仅过了需求分析、系统设计等阶段之后,便开始了系统实施阶段。在系统分析和设计阶段,系统开发工作主要是集中在逻辑、功能和技术设计上,系统实施阶段要继承此前面各个阶段的工作成果,将技术设计转化为物理实现,因此系统实施的成果是系统分析和设计阶段的结晶。

4.1后台登陆页面

1.综述:在使用本系统前首先要完成的就是登录,用户在登陆界面的指定位置输入自己的用户名和密码,系统会通过数据库在用户表中查找,如果存在该条记录,则获得该用户的权限,并将用户信息放入session中,如果没有对应的记录,则返回登陆页面,并显示登录失败的具体原因。 2.程序运行截图如图4.1所示:

图4.1 用户登陆页面设计

3.具体实现:用户在登陆页面输入用户名和密码以,点击登录,就会跳转到登陆的service中,在该service中会对用户名,密码进行存在判断,如果能找到对应的记录,就提示进入到主界面,如果没有则提示“用户名和密码不正确”,页面会跳回到登陆页。 关键代码:

毕业论文

request.setCharacterEncoding(\对请求进行统一编码,能正常接收中文 String username=request.getParameter(\接收表单中的username属性

String password=request.getParameter(\接收表单中的password属性

String str=\

\ ResultSet rs=rst.getResult(str);//执行SQL语句获得结果集对象

session.setAttribute(\String(\判断用户是否登录,当isLog的属性为0时,说明用户并没有登录

if(!rs.next())//结果集没有找到所要查找的行 {

out.println(\用户名或密码错误');\ \ } else {

session.setAttribute(\保存登录信息到session对象中

session.setAttribute(\

session.setAttribute(\将isLog属性设置为1 //获得用户上次登录系统的时间

session.setAttribute(\ String strsql=calendar.getDate(); int id=rs.getInt(\

//将该用户本次登录系统的时间在用户信息表中更新

String strUpdate=\ID=\

rst.getResult(strUpdate);//执行SQL语句

response.sendRedirect(\登录成功后转到系统主页面 }

4.2系统主页面

1.描述:用户主页面:左方页面展示了用户可操作的几大功能,进入相关的功能页面可以链接到子菜单,每个管理模块下面都有相应的子菜单。

2.用户主界面如图4.2所示:

毕业论文

图4.2用户主页面

系统的拦截器会对每个请求进行拦截,防止用户跳过登录使用其他功能 if(session.getAttribute(\{

out.print(\请您先登录!

');window.open('../login.jsp','_self')\ }

4.2.1产品信息管理

4.2.1.1产品信息录入

1. 描述:用户新建一条产品信息,只有在产品信息中的产品才可以进行之后的各种入库和出库操作。

2. 系统产品录入界面如图4.3所示:

毕业论文

图4.3 产品信息录入

3.流程图如下图4.4所示:

登陆系统 用户录入产品信息 系统验证 未通过

通过 录入成功

结 束 毕业论文

4.2.1.2产品查询

1.描述:用户点击左侧的菜单“产品查询”,页面跳转到产品列表界面,调用后台的方法查询所有商品信息。

2.系统运行图如图4.5所示

图4.4 产品信息录入流程图

图4.5 产品列表

关键代码:

<%@ page contentType=\<%@ page import=\<%@ page import=\

商品查询

毕业论文

<%

String table=\ String pages=request.getParameter(\ String cif=request.getParameter(\ String ccif=request.getParameter(\

String qvalue=trans.trans(request.getParameter(\ qu.setCcif(ccif);qu.setCif(cif);qu.setQValue(qvalue); String strCount=qu.getCount(table); if(pages==null||pages.equals(\ pages=\ }

qu.setQuerySql(httpFile,pages,strCount);

ResultSet rs=rst.getResult((String)qu.getString(table)); int i=0,Page=qu.getCurPage(),pagesize=qu.getPageSize(); while(rs.next()){

if(i>(Page-1)*pagesize-1){ %>

<%=rs.getString(\

毕业论文


<%}i++;} rs.close(); String

str_parameter=\alue();

//session.setAttribute(\qu.setStr_parameter(str_parameter); %>

<%=qu.pageFooter()%>

4.2.3供应商信息管理

4.2.2.1供应商信息录入

1.描述:在此页面主要是输入供应商信息,包括供应商名称、地址、邮编、电话、邮箱等信息。

2.系统运行效果如图4.7所示:

毕业论文

图4.7 供应商信息录入

4.2.2.2供应商信息查询

1.描述:用户通过选择不同的条件删选出自己想获得的供应商记录。 2.系统运行效果如图4.8所示

毕业论文

图4.8 供应商列表页面

供应商管理关键代码:

<%@ page contentType=\<%@ page import=\

供应商信息查询

<%

String table=\ String pages=request.getParameter(\ String cif=request.getParameter(\ String ccif=request.getParameter(\

String qvalue=trans.trans(request.getParameter(\ qu.setCcif(ccif);qu.setCif(cif);qu.setQValue(qvalue); String strCount=qu.getCount(table); if(pages==null||pages.equals(\ pages=\ }

qu.setQuerySql(httpFile,pages,strCount);

ResultSet rs=rst.getResult((String)qu.getString(table)); int i=0,Page=qu.getCurPage(),pagesize=qu.getPageSize(); while(rs.next()){

if(i>(Page-1)*pagesize-1){ %>

毕业论文

<%=rs.getString(\

<%}i++;} rs.close(); String

str_parameter=\alue()+\

//session.setAttribute(\qu.setStr_parameter(str_parameter); %>

<%=qu.pageFooter()%>

4.2.3客户信息管理

4.2.3.1客户信息管理

1.描述:在此页面主要是输入客户信息,包括客户名称、地址、邮编、电话、邮箱等信息。

2.系统运行效果如图4.9所示:

毕业论文

图4.9客户信息管理

客户管理核心代码:

<%@ page contentType=\<%@ page import=\

客户查询结果并分页显示

<%

String table=\设置所要查询的表名; String httpFile=\设置处理请求的JSP文件

String pages=request.getParameter(\接收当前是第几页 String cif=request.getParameter(\保存查询字段

String ccif=request.getParameter(\保存查询运算符

//查询关键字,并将其值通过中文处理,即用户输入中文可以正确识别 String qvalue=trans.trans(request.getParameter(\ //向QuestString中设置属性值

qu.setCcif(ccif);qu.setCif(cif);qu.setQValue(qvalue);

//调用QuestString的getCount(String table)方法,并根据查询条件得出所要查询

毕业论文

记录的总数量

String strCount=qu.getCount(table);

//判断pages是否为null,如果为null将pages的值设为\ if(pages==null||pages.equals(\ pages=\ }

//调用QuestString的setQuerySql()方法来设置Bean中的属性 qu.setQuerySql(httpFile,pages,strCount);

//调用QuestString的getString()方法来获得可执行的SQL语句,并获得ResultSet ResultSet rs=rst.getResult((String)qu.getString(table)); //从QuestString中取出当前页和每页显示的记录数

int i=0,Page=qu.getCurPage(),pagesize=qu.getPageSize(); while(rs.next()){

//定义整型变量i用来将记录指针定位到待显示页的第一条记录上 if(i>(Page-1)*pagesize-1){ %>

毕业论文

<%}i++;} rs.close(); String

str_parameter=\alue()+\

//设置分页栏中连接标签的参数 qu.setStr_parameter(str_parameter); %>

<%=qu.pageFooter()%>

4.3库存管理模块

4.3.1系统主页面实现

1.描述:库存管理模块主要包含四项功能,产品如库,入库查询,退货登记,库存查询

2.系统运行效果如图4.10和4.11所示:

毕业论文

图4.10 产品入库页面

图4.11 库存查询页面

3.核心代码

<%@ page contentType=\<%@ page import=\

毕业论文

商品入库退货

<%

request.setCharacterEncoding(\对字符串统一编码解决表单提交中的中文乱玛问题

String strSql=\

String maxCount=\在入库退货表中查找出最大的id号

ResultSet rs=rst.getResult(strSql);//在下拉列表中显示商品名称

String jc=\ String gysname=\

String rkspname=(String)request.getParameter(\获得用户所选商品的简称

String rkStr=\ ResultSet rs1=rst.getResult(rkStr);//根据商品名称查询出用户所选商品

if(rs1.next()){

jc=rs1.getString(\ gysname=rs1.getString(\

cd=rs1.getString(\

spid=rs1.getString(\ }

ResultSet rs2=rst.getResult(maxCount);//获得tb_rukuth表中字段\最大的记录

if(rs2.next()){

theMax=rs2.getString(1); }

//将最大的字段加1 String

rkbh=\1); %>

入库退货 >>>

毕业论文

session.setAttribute(\session.setAttribute(\

session.setAttribute(\

session.setAttribute(\ session.setAttribute(\ session.setAttribute(\ %>

毕业论文

name=\ (<%=dw%>)*

  金  额:

  应  付:

  未  付:

  经手人:

  结算方式:

毕业论文

4.4出库管理模块

4.3.1系统主页面实现

1.描述:出库管理模块主要包含三项功能,销售产品,销售记录,销售退货。 2.系统运行效果如图4.12所示:

图4.11 销售查询页面

3.核心代码

<%@ page contentType=\<%request.setCharacterEncoding(\

销售信息查询

毕业论文

销售信息查询 >>>

 

Top