1、新疆财经大学本科毕业论文 新疆财经大学 毕业(设计)论文 题目: 学 号: 姓 名: 院 部: 计算机科学与工程学院 专 业: 班 级: 指导用户 姓名及职称: 完成日期: 年 月 日 2 新疆财经大学本科毕业论文 摘 要 中小企业在我国经济发展中具有重要地位,目前我国的中小企业数量多,地区分布广泛,行业分布跨度大。随着全球经济一体化的发展和电子商务的兴起,中小企业之间的竞争将越来越激烈。网络及电子商
2、务的迅猛发展突破了时间、空间的局限性,给中小企业带来了更多的发展机会,同时也增大了企业之间的竞争强度。这就要求中小企业必须改变企业的经营管理模式,提高企业的运营效率。目前,我国中小企业的信息化水平还很低,相比国外企业,还只处于刚开始始用的阶段。随着技术发展,电脑操作及管理日趋简化,电脑知识日趋普及,同时市场经济快速多变,竞争激烈,企业采用电脑管理进货、库存、销售等诸多环节也已成为趋势及必然。 【关键词】进销存管理系统、进货、销售、库存 目录 第1章 系统概述 3 1.1系统开发的目的与意义 3 1.2国内研究概述 3 1.3系统开发环境 3 1.3.1 Apache简介 3 1
3、3.2 Mysql简介 4 1.3.3 php简介 5 第2章 系统分析 6 2.1可行性研究的任务 6 2.1.1技术可行性 6 2.1.2经济可行性 6 2.1.3操作可行性 6 2.2需求分析 6 2.2.1系统功能分析 7 2.2.2系统性能分析 8 2.2.3数据库需求分析 9 2.2.4功能模块 9 第3章 系统设计 10 3.1概要设计 10 3.2详细设计 10 3.2.1系统流程图设计 10 3.2.2系统实体—联系图(E-R图) 11 3.3数据库的设计 12 第4章 系统实现 15 4.1用户模块 15 4.1.1用户用户主页面
4、17 4.1.2用户用户的主要功能 17 4.2.2管理员其他功能 26 4.3销售用户模块 30 第5章 系统测试 31 5.1 测试的目的 31 5.2系统测试 31 5.2.1 测试方法 31 5.2.2 测试内容 31 5.2.3 测试结果 31 5.2.4 结论 31 第6章 总结 32 参考文献 1 第1章 系统概述 1.1系统开发的目的与意义 许多企业已经或正准备投入高额资金、花大力气建立大规模的计算机管理信息系统(MIS)普遍存在着系统建设难以达到预期效果的问题。有的开发规模很大,实际应用的范围却很小;有的系统用与不用似乎没有明显的差别;还有的
5、系统由于技术落后、维护工作量太大,若在原有的基础上扩充功能还不如推倒重来。就系统开发的某一具体问题来说,主要是开发用于数据处理的程序,既不需要高深的物理(如电力系统)概念,也不需要复杂的数学算法,一般是比较容易实现的,并且大都采用最新的、高性能的计算机软硬件平台,由优秀的计算机技术人员实施开发,很少出现因网络或程序调试不通而中止开发的事情。信息管理系统(MIS)以分类组织数据为核心,无论计算机内部多复杂,MIS建设所用到的通常只是计算机的操作。随着计算机技术的飞速发展,其功能越来越强,使用越来越简单,计算机技术本身已不再是MIS建设中的难题。系统开发中,有关计算机要解决的关键问题是怎样以计算机
6、为平台组织新的系统。 MIS系统大大简化了管理人员的工作,使高层管理人员对中层,中层对基层、基层对设备系统逐级加强了管理、监督和控制等,业务工作量减少,系统的维护工作量增大,大量的业务改进工作转向系统的改进,系统的正常运行成为企业运转的生命线,因此,选拔、培养出合格人员特别是各层次计算机系统负责人是企业MIS建设的基础。 1.2国内研究概述 随着社会的进步和计算机的不断普及,各行各业的管理、控制都越来越离不开计算机的辅助。“某进销存管理系统”的开发就是为了辅助大多数企业的基本管理,实现信息管理的系统化、规范化和自动化。 1.3系统开发环境 本系统是基于apache+mysql+
7、php技术开发,这样的架构的好处是降低开发成本和难易程度,使开发人员可以只专注于开发环节更快的开发出好的系统。 1.3.1 Apache简介 Apache是世界使用排名第一的Web服务器软件。它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一。Apache web服务器软件拥有以下特性: (1)支持最新的HTTP/1.1通信协议 (2)拥有简单而强有力的基于文件的配置过程 (3)支持通用网关接口 (4)支持基于IP和基于域名的虚拟主机 (5)支持多种方式的HTTP认证 (6)集成Perl处理模块
8、 (7)集成代理服务器模块 (8)支持实时监视服务器状态和定制服务器日志 (9)支持服务器端包含指令(SSI) (1)支持安全Socket层(SSL) (10)提供用户会话过程的跟踪 (11)支持FastCGI (12)通过第三方模块可以支持Java Servlets 如果准备选择Web服务器,毫无疑问Apache是最佳选择。 1.3.2 Mysql简介 mysql是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。 由于MySQL是开放源代
9、码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。 mysql关系型数据库于1998年1月发行第一个版本。它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。 mysql开发组计划于2001年中期公布My
10、SQL4.0版本。在这个版本中将有以下新的特性被提供:新的表定义文件格式、高性能的数据复制功能、更加强大的全文搜索功能。在此之后,MySQL开发着希望提供安全的数据复制机制、在BeOS操作系统上的MySQL实现以及对延时关键字的定期刷新选项。随着时间的推进,MySQL将对ANSI 92/ANSI 99标准完全兼容。 mysql特点: 使用核心线程的完全多线程。这意味着它能很容易地利用多CPU(如果有)。 可运行在不同的平台上。 多种列类型:1、 2、 3、4、和 8 字节长度的有符号/无符号整数(INT)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、B
11、LOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、SET和ENUM类型。 利用一个优化的一遍扫描多重联结(one-sweep multi-join)非常快速地进行联结(join)。 在查询的SELECT和WHERE部分支持全部运算符和函数。 1.3.3 php简介 php最初是1994年Rasmus Lerdorf创建的,刚刚开始只是一个简单的用Perl语言编写的程序,用来统计他自己网站的访问者。后来又用c语言重新编写,包括可以访问数据库。在1995年以Personal Home Page Tools (php Tools) 开始对外发表第一个版本,
12、Lerdorf写了一些介绍此程序的文档,并且发布了php1.0。在这早期的版本中,提供了访客留言本、访客计数器等简单的功能。以后越来越多的网站使用了php,并且强烈要且增加一些特性,比如循环语句和数组变量等等,在新的成员加入开发行列之后,在1995年中,php2.0发布了。第二版定名为PHP/FI(Form Interpreter)。PHP/FI加入了对mSQL的支持,从此建立了PHP在动态网页开发上的地位。到了1996年底,有15000个网站使用 PHP/FI;时间到了1997年中,使用PHP/FI的网站数字超过五万个。而在1997年中,开始了第三版的开发计划,开发小组加入了 Zeev Su
13、raski 及 Andi Gutmans,而第三版就定名为PHP3。2000年,php4.0又问世了,其中增加了许多新的特性。 php是英文超级文本预处理语言(php:Hypertext Preprocessor)的缩写。PHP 是一种HTML内嵌式的语言,php与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。PHP 独特的语法混合了 C、Java、Perl 以及php自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,php是将程序嵌入
14、到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;与同样是嵌入HTML文档的脚本语言JavaScript相比,php在服务器端执行,成分利用了服务器的性能;PHP执行引擎还会将用户经常访问的php程序驻留在内存中,其他用户在一次访问这个程序时就不需要重新编译程序了,只要直接执行内存中的代码就可以了,这也是php高效率的体现之一。PHP具有非常强大的功能,所有的CGI或者JavaScript的功能PHP都能实现,而且支持几乎所有流行的数据库以及操作系统。 第2章 系统分析 2.1可行性研究的任务 我们将从技术、经济、操作因素等方面分析一个软件项目是否可以开发
15、 2.1.1技术可行性 目前学校的校网学堂系统已经使用多年,在技术方面和安全稳定性方面都已经得到了肯定,校网学堂的建设采用了PHP+mysql+apache的环境组合。本系统架设到校网学堂的平台上,采用现有的技术更容易发开和维护本系统。所以在技术方面,本系统也采用PHP+mysql+apache的环境组合。 2.1.2经济可行性 经济费用方面主要包括:购置并安装软硬件及有关设备的费用;系统开发费用;系统安装、运行和维护费用;人员培训费用。 硬件方面,除了服务器要求高一点以外,终端设备不是太贵。软件方面,当然需要买正版的操作系统。本系统操作方便,人机交互友好,易学易懂,所以培训时间会
16、很短,费用也不会太高。总之,这几项加起来与本系统所带来的经济效益和社会效益比起来,可以说是微不足道。 2.1.3操作可行性 系统会使公司的管理更加科学化,也会更方便、高效,更人性化。同时也可以优化组织结构,提高企业的竞争力。 由以上三点不难看出,无论是从技术可行性、经济可行性,还是操作的可行性上来看,这套系统的开发是可行的。 2.2需求分析 进销存管理系统是一个典型的数据库开发应用程序,由基础信息管理模块、进货信息管理模块、销售信息管理模块、库存信息管理模块等部分组成,规划系统功能模块如下: (1)基础信息管理模块 该模块主要包括切换用户、权限信息设置、客户信息设置、供应商信息设
17、置、商品信息设置、仓库信息设置、角色信息设置、产品类别信息设置。 (2)进货信息管理模块 该模块主要包括进货信息查询、进货订单录入和修改、进货单录入和修改、订货单打印。 (3)销售信息管理模块 该块主要包括销售信息查询、销售订单录入和修改改、销售单录入和修改、销售单打印。 (4)库存信息销售模块 该模块主要包括库存信息查询、库存信息的设置、进货订单的校验、销售订单的校验、库存单打印。 2.2.1系统功能分析 进销存管理系统采用的是浏览器/服务器系统(Browser/Server简称B/S)结构。 (1)B/S介绍 B/S结构,即Browser/Server(浏览器/服务器)
18、结构,就是只安装维护一个服务器(Server),而客户端采用浏览器(Browse)运行软件。它是随着Internet技术的兴起,对C/S结构的一种变化和改进。主要利用了不断成熟的WWW浏览器技术,结合多种Script语言(VBScript、JavaScript…)和ActiveX技术,是一种全新的软件系统构造技术。 B/S三层体系结构采用三层浏览器/服务器结构,在数据管理层(Server)和用户界面层(Client)增加了一层结构,称为中间件(Middleware),使整个体系结构成为三层。三层结构是伴随着中间件技术的成熟而兴起的,核心概念是利用中间件,将应用分为表示层、业务逻辑层和数据存储
19、层三个不同的处理层次,如图2所示。三个层次的划分是从逻辑上分的,具体的物理分法可以有多种组合。中间件作为构造三层结构应用系统的基础平台,提供了以下主要功能:负责客户机与服务器、服务器与服务器间的连接和通信;实现应用与数据库的高效连接;提供一个三层结构应用的开发、运行、部署和管理的平台。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。 图4-1 B/S三层体系结构 在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。而其余如数据请求、加工、结果返回以及动态网页生成、对数据库的访问和应用程
20、序的执行等工作全部由Web Server完成。随着Windows将浏览器技术植入操作系统内部,这种结构已成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序是一个非常大的进步。 采用该结构软件的优势在于: 无须开发客户端软件,维护和升级方便; 可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统; 具有良好的开放性和可扩充性; 可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。 因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件研制中一种流行的体系结构。 2.2.2系统性能分析 由于
21、传统的客户服务器两层结构存在灵活性差、升级困难、维护工作量大等缺陷,已较难适应当前信息技术与网络技术发展的需要。而Browse/Server(简称B/S)结构已成为取代Client/Server(简称C/S)结构的一种全新技术。它的主要优势有: a.维护和升级方式简单。 目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大的单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何
22、维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。 b.成本降低,选择更多。 大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。 现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即
23、可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。 比如说很多人每天上“新浪”网,只要安装了浏览器就可以了,并不需要了解“新浪”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。 c.应用服务器运行数据负荷较重。 由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服
24、务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。 (3)客户/服务器体系结构的综合特点 B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体拥有成本低。但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低,这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量的数据输入或
25、进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应用构造有较大的困难。虽然可以用ActiveX、Java等技术开发较为复杂的应用,但是相对于发展已非常成熟C/S的一系列应用工具来说,这些技术的开发复杂,并没有完全成熟的技术工具供使用。 2.2.3数据库需求分析 根据系统设计和功能模块分析,本系统的数据库需要存放以下信息: (1)分类表:储存分类信息 (2)供应商表:储存供应商信息 (3)入库表:储存商品入库信息 (4)库存表:储存商品库存信息 (5)客户表:储存客户信息 (6)论坛表:记录用户留言记录 (7)商品表:储存商品信息 (8)用户表:储存用户信息
26、 (9)销售表:储存销售信息 2.2.4功能模块 本系统的功能模块包括以下七个部分: (1)用户模块:对用户基本信息管理 (2)管理员模块:对管理员信息管理 (3)商品模块:管理商品信息 (4)供应商模块:管理供应商信息 (5)进销存模块:管理商品进销存所有信息 (6)论坛模块:管理用户留言 第3章 系统设计 3.1概要设计 系统中主要功能模块图如图3.1所示: 图3.1 功能模块图 3.2详细设计 3.2.1系统流程图设计 系统流程包括两个部分。销售用户和系统管理员有各自的功能也有相互操作的功能。管理员登录后管理系统所有功能。 用户可以
27、添加销售商品。 系统的简单流程图设计如下图3.2所示: ss 图3.2 系统流程图 3.2.2系统实体—联系图(E-R图) E-R模型是对现实世界的一种抽象。它的主要成分是实体、联系和属性。使用这三种成分,我们可以建立许多应用环境的E-R模型。 现在划出本系统所使用的数据库实体,它们分别为课程实体、资源实体、建议实体、类别实体和用户实体。下面将介绍几个关键实体的E-R图。 1、用户实体 实体图如图3.3所示。 图3.3 用户实体属性 2、商品实体 商品实体图如图3.4所示。 图3.4 商品实体属性图 3、客户表实体 实体图如图3.5所示。 图3.5
28、客户表实体属性图 3.3数据库的设计 这里对主要的数据库做详细说明。具体数据库如下: 1、分类表,表名:fl,具体表结构见表3.1。 表3.1 管理员表 字段 类型 Null 默认 注释 id int(11) 否 自动编号 name varchar(20) 否 空 姓名 2、供应商表,表名:gys,具体表结构见表3.2。 表3.2 供应商表 字段 类型 Null 默认 注释 id int(11) 否 自动编号 name varchar(40) 否 空 名称 dq text 否 空 地区 dh
29、 varchar(30) 否 空 电话 note varchar(20) 否 空 备注 3、进货表,表名:jhrk,具体表结构见表3.3。 表3.3 进货表 字段 类型 Null 默认 注释 id int(11) 否 自动编号 spid varchar(20) 否 空 商品号 gysid varchar(10) 否 空 供应商名 nums text 否 空 数量 total varchar(20) 否 空 总价 time varchar(20) 否 空 时间 userid varch
30、ar(30) 否 空 操作用户 4、用户表,表名:user,具体表结构见表3.4。 表3.4用户表 字段 类型 Null 默认 注释 userid int(11) 否 用户号 password varchar(40) 否 空 密码 Name varchar(1) 否 空 姓名 type varchar(40) 否 空 类型 5、库存表,表名:kc,具体表结构见表3.5。 表3.5 专业表 字段 类型 Null 默认 注释 id int(20) 否 自动编号 Spid varchar(30)
31、否 空 商品号 gysid varchar(10) 否 空 洪映上号 nums varchar(30) 否 空 数量 total varchar(10) 否 空 总价 time varchar(30) 否 空 时间 userid varchar(10) 否 空 操作用户 6、商品表,表名:sp,具体表结构见表3.6。 表3.6 登录记录表 字段 类型 Null 默认 注释 id int(11) 否 商品号 name varchar(30) 否 空 商品名 fid varchar(20) 否 空
32、 分类 dj varchar(16) 否 空 单价 content Varcher(20) 否 内容 note varchar(30) 否 空 备注 第4章 系统实现 4.1用户模块 用户只有在登录后才能进行选课等操作。进入用户主界面首先需要验证登录,下面我们分别实现这些功能。所在页面为index.php。具体界面如图4.1所示。 图4.1 登录界面 登录代码: < include "connect.php"; if($_POST[login]) { if($_POST[lx]=='1'){ $sql="sel
33、ect * from user where userid='$_POST[userid]' and password='$_POST[password]' and type='1'"; } else{ $sql="select * from user where userid='$_POST[userid]' and password='$_POST[password]' and type='0'"; } $query=mysql_query($sql) or die(mysql_error()); $row=mysql_fetch_array($query); i
34、f(mysql_num_rows($query)) { $_SESSION[userid]=$_POST[userid]; $_SESSION[type]=$row[type]; echo ""; } else { echo ""; } } ?>
37、ysql_fetch_array(mysql_query("select `name` from userinfo where userid='$_POST[userid]'")); $_SESSION[name]=$r1[name]; mysql_query("update qiye set dlcs=dlcs+1 where qyid='$_POST[userid]'"); echo ""; } else{ echo ""; } } 4.1.1用户用户主页面 首先要进行数据库连接操作关键代码如下: session_start(); $conn=mysql_connect("localhost","root",""); mysql_select_db("jxc",$conn); mysql_query("SET NAMES GB2312"); ?> 正确输入账号和密码后登陆到本系统中,当用户访问本系统后,所在页面问index.php,如图4.2 图4.2 用户主页面 4.1.2用户用户的主要功能
39、管理员主要操作如图4.3所示 图4.3 管理商品 关键代码如下: include "connect.php"; $fl=array(); $mysql=mysql_query("select * from fl"); while($sq1=mysql_fetch_array($mysql)){ $fl[$sq1[id]]=$sq1[name]; } if(!$_GET[page]){ $_GET[page]=1; } $s1="select * from sp order by id"; $q1=mysql_query($s1); $r
40、1=mysql_fetch_array($q1); $pagesize=10; //每页显示的条数 $url=$_SERVER["REQUEST_URL"]; //取得除了域名以外的地址 $url=parse_url($url); // 将URL解析成有键值的数组 $url=$url[path]; //取得PATH这个键值的值 $numq=mysql_query("SELECT * FROM sp"); $num=mysql_num_rows($numq);
41、 //取得数据库里面的信息条数 if($_GET[page]){ //判断,当没有page时避免出错 $pageval=$_GET[page]; $page=($pageval-1)*$pagesize; //翻页公式 $page.=','; } $next_page=$pageval+1; $fpage=(int)($num/$pagesize); $flag=$num%$pagesize; //判断能否取出满页 if($flag==0){ if($next_p
42、age>($fpage))
$next_page=$fpage;
}
if($flag!==0){
if($next_page>($fpage+1))
$next_page=$fpage+1;
$fpage=$fpage+1;
}
?>
43、ad>