基于JSP的汽车销售管理系统设计


 

欢迎添加微信互相交流学习哦!

二维码

项目源码:https://gitee.com/oklongmm/biye2




摘要
随着科学的不断进步,计算机应用已经遍布整个社会的每个角落。计算机在汽车销售管理上的应用,使其逐步系统化、完善化。利用计算机帮助企业高效率完成汽车销售管理的日常事务,是适应现代企业经济的需求。由于汽车销售管理是一项琐碎、复杂而又十分细致的工作,在汽车销售的各个环节中不允许出错,实行手工操作,每月就会耗费工作人员大量的时间和精力。所以需要开发一个功能比较齐全、使用效率较高的汽车销售管理系统,该系统可对有关销售的各种信息进行统计。本文通过对汽车销售工作流程的深入了解及进行了可行性分析后,对汽车销售管理系统作了功能需求分析、业务流程分析、数据流程、数据库的设计以及界面设计,并完成了系统的开发。
本系统是在Windows XP环境下,采用B/S结构,以MySQL为数据库开发平台,采用JSP(JAVA Server Pages)技术开发的。系统分前台和后台两大部分,前台由用户使用;后台部分由管理员使用,主要包括系统用户管理等功能模块。
关键词:MySQL ;汽车销售管理;JSP;
目 录
TOC 1-3 HYPERLINK l _Toc350828183 1.绪论 1
HYPERLINK l _Toc350828184 1.1系统研究背景 1
HYPERLINK l _Toc350828185 1.2系统开发目的和意义 1
HYPERLINK l _Toc350828186 1.3系统概述 1
HYPERLINK l _Toc350828187 1.2.1销售管理系统的定义 1
HYPERLINK l _Toc350828188 1.2.2销售管理系统的作用 2
HYPERLINK l _Toc350828189 2.系统分析 3
HYPERLINK l _Toc350828190 2.1可行性分析 3
HYPERLINK l _Toc350828191 2.1.1经济上的可行性 3
HYPERLINK l _Toc350828192 2.1.2技术上的可行性 3
HYPERLINK l _Toc350828193 2.1.3操作上的可行性 3
HYPERLINK l _Toc350828194 2.2系统功能需求分析 4
HYPERLINK l _Toc350828195 2.2.1功能需求 4
HYPERLINK l _Toc350828196 2.2.2性能需求 5
HYPERLINK l _Toc350828197 2.3业务流程分析 6
HYPERLINK l _Toc350828198 2.4数据流程分析 7
HYPERLINK l _Toc350828199 2.5数据库设计 8
HYPERLINK l _Toc350828200 2.5.1数据库概念结构设计 8
HYPERLINK l _Toc350828201 2.5.2数据库逻辑结构设计 10
HYPERLINK l _Toc350828202 3.系统设计 14
HYPERLINK l _Toc350828203 3.1系统体系结构 14
HYPERLINK l _Toc350828204 3.2 开发软件 14
HYPERLINK l _Toc350828205 3.2.1 JSP技术 14
HYPERLINK l _Toc350828206 3.2.2 IIS管理器 15
HYPERLINK l _Toc350828207 3.2.3 MySQL数据库 17
HYPERLINK l _Toc350828208 3.2.4 MyEclipse 18
HYPERLINK l _Toc350828209 3.3系统的软硬件平台 19
HYPERLINK l _Toc350828210 4.系统操作说明 20
HYPERLINK l _Toc350828211 4.1系统操作说明 20
HYPERLINK l _Toc350828212 4.1.1登陆页面 20
HYPERLINK l _Toc350828213 4.1.2管理员添加页面 20
HYPERLINK l _Toc350828214 4.1.3汽车添加页面 21
HYPERLINK l _Toc350828215 4.1.4汽车供应商信息添加页面 21
HYPERLINK l _Toc350828216 4.1.5汽车进货记录添加页面 22
HYPERLINK l _Toc350828217 4.1.6汽车库存查询页面 22
HYPERLINK l _Toc350828218 5.软件测试与分析 23
HYPERLINK l _Toc350828219 5.1系统测试的定义 23
HYPERLINK l _Toc350828220 5.2系统测试的目的及意义 23
HYPERLINK l _Toc350828221 5.3系统测试的重要性 23
HYPERLINK l _Toc350828222 5.4系统测试的常用方法 24
HYPERLINK l _Toc350828223 5.5测试环境与测试条件 25
HYPERLINK l _Toc350828224 5.6系统运行情况 25
HYPERLINK l _Toc350828225 5.7测试总结 26
HYPERLINK l _Toc350828226 6.结论 27
HYPERLINK l _Toc350828227 6.1系统的特点 27
HYPERLINK l _Toc350828228 6.2系统的不足和改进 27
HYPERLINK l _Toc350828229 6.3设计收获与心得 27
HYPERLINK l _Toc350828230 致 谢 28
HYPERLINK l _Toc350828231 参 考 文 献 29
HYPERLINK l _Toc350828232 源码程序附录 30
1.绪论
1.1系统研究背景
伴随知识经济的发展和现代信息技术的不断改进,人们的生活节奏越来越快,而对信息的要求越来越高,快捷方便已经成为信息的一个重要指标。对于一个好的零售公司,拥有完整全面的信息管理系统变得非常重要。在这种情况下,商品销售管理系统应运而生。通过本系统用户可以更快的获得最全面的信息,而且可以通过本系统查询所有需要的信息,大大的方便了用户的操作。目前的商品销售管理系统已能顺利完成商品的进、销、存工作,多为单机版,网络版还不多见,但网络版应是以后的发展重点。
1.2系统开发目的和意义
传统的汽车销售管理在商品的统计和管理上不但麻烦,而且还十分的耗费人力和时间。而汽车销售管理系统对商品的进货、退货、存货和销售情况等进行了综合统计和管理,使管理人员能够更快的得到自己想要的信息。
一个好的汽车销售管理系统首先应具备的是基本的信息管理,而汽车销售管理系统不但对汽车信息信息、代理商信息、订单信息等都进行了系统的管理,而且管理人员可以直接登陆系统查看所有的信息,也可以根据自己的需要搜索相关的信息。本文对系统开发中面临的问题及其解决方案进行详细的设计及合理安排,根据所掌握的技术对系统的各部分功能进行了实现。
1.3系统概述
1.2.1销售管理系统的定义
销售管理系统,它涉及人工智能、计算机科学、认知科学、教育学、心理学和行为科学等学科,其研究目的是赋予计算机系统以智能,由计算机系统在一定程度上代替人类实现运动会最佳管理的运作。运动会管理系统改变了传统管理模式,具有交互性、多样性、灵活性等特点,提高了信息管理的准确性与信息管理的效率。
1.2.2销售管理系统的作用
销售管理系统在现代高校运动会管理中发挥着越来越重要的作用:
(1)提高商品管理的效率和质量;
(2)能实现商品信息、供应商信息、进出货信息、库存信息的集中管理;
(3)充分利用网络资源,提高办事效率。
2.系统分析
2.1可行性分析
2.1.1经济上的可行性
(1)前期投入资金比较少,只需要平台系统的开发、域名和空间的购买费用,需要一些花费,但是不多。
(2)接下来就是资料的录入工作。管理员登陆系统后台,可对商品信息进行添加、修改等工作即可。
(3)中后期主要工作就是维护更新,工作量不大,只需一位管理人员来完成添加商品、供应商、客户的信息。
(4)平台进入正常运转之后,可高效地进行商品管理,节省大量的人力物力,从长远看,获益会远远大于支出。
从经济上来说,建设这样一个系统是可行的。
2.1.2技术上的可行性
技术可行性研究是研究现有的技术条件能否顺利完成开发工作,硬、软件配置能否满足开发的需要等等。配置稍好的PC机,Winxp操作系统,IIS服务器, MySQL软件,结合JSP语言,可以完成目标系统的建设,从技术上来说是容易实现的。
首先,设计网站的几种软件现在都比较流行,一般设计人员对这几款软件比较熟悉,可以利用这些软件设计出较完善的销售管理系统。其次,系统的管理主要是信息的录入、修改、统计等工作,一般工作人员都能够胜任。从操作上来说是可行的。
综上所述,从各方面来看,我们在现行条件下可以设计出较合适的平台系统,完成对软件测试的管理。
2.2系统功能需求分析
需求分析分为功能需求和性能需求。
2.2.1功能需求
通过前期的调查分析及研究,对本管理系统来说,只有管理员一种类型,其功能主要有以下几个方面:
1)系统维护功能
包括添加管理员和进行管理员个人密码修改等操作。
2)基本信息管理
包括汽车类别添加、汽车类别查询、汽车信息添加、汽车信息查询、供应商信息添加、供应商信息查询、客户信息添加和客户信息查询等操作。
3) 汽车进货管理
汽车进货记录登记、汽车进货记录查询、进货退货登记和进货退货查询等操作。
4) 汽车出货管理
包括汽车出货记录登记、汽车出货记录查询、汽车出货退货登记和出货退货查询等操作。
5)库存管理
进行库存查询报警盘点。
6)利润统计
出货利润统计。
以上是用户的主要需求,也是该系统主要功能,除了这些功能以外,在设计时也对一些细节做了优化与调整,使系统更具有完整性与实用性。
系统功能模块结构图如图2.2所示:
图2.2系统模块结构图
2.2.2性能需求
除了满足用户的功能要求外,系统的性能要求也很重要。
系统的性能要求通常包括:运行时间、存储容量、界面的友好性、系统的安全性、可靠性以及容错能力等。
系统的性能要求应按以下几个方面确定:
(1)容量要求:确定系统的容量,如处理的记录数和处理数据的最大容量等。
(2)精度要求:确定系统的精度。如数据或数值计算的精度和数据传输的精度等。
(3)时间特性要求:确定系统的时间特性,如处理时间、响应时间及其峰值负载期间允许偏离范围,系统各项功能的J帧序关系。
(4)适应性要求:必须指明反映系统环境变化和系统适应能力的各种参数。如当需求发生变化时,系统的适应能力,并指出为适应这些变化而需要设计的软件和过程。
(5)界面友好性:要有适应用户特点的智能化人——机交互界面,以便用户经过简单的培训就可操作使用。
(6)系统可靠性:为提高系统可靠性必须采用模块化和结构化设计,提高系统的容错能力,并保障系统不会因人为的操作错误而死机或崩溃。如果系统对时效要求非常高,还必须考虑双机系统和磁盘阵列等措施。此外,还应采用可靠的供电设备。
对信息系统的性能而言,其要求是:信息查询的平均响应时间、连接的终端数、数据存储容量、可扩充存储容量(可存储几年、几个月的数据)、打印报表的种类和数量等。
2.3业务流程分析
汽车销售管理系统工作流程为:系统启动并进入系统登陆界面,管理员输入账号、密码进行登陆后,可以进行系统后台的所有操作,包括基本信息管理、进货管理、出货管理、库存管理等以及系统管理员帐号管理、数据备份及数据恢复。本系统的业务流程图如图2.3所示:
图2.3业务流程图
本系统是利用现代化的计算机网络技术将汽车销售管理系统进行整合,按照实践过程设计完成的。同时完善服务,初步设计一个销售管理系统的平台,便于管理员对商品进货、出货、库存等面进行有效率地管理。为了使系统在各项管理中发挥更大的作用,实现工作过程的计算机化,提高工作效率和工作质量,现提出如下系统开发目标:
1)操作简单、界面友好:完全控件式的页面布局,使得信息的录入工作更简便。
2)即时可见:对信息的处理(包括添加、修改、删除)将立即在对应的版块显示出来,达到即时发布、即时见效的功能。
3)功能完善:不仅包括常见系统的信息管理的各个方面:信息录入、浏览、删除、修改、查询等各个方面,完整地实现了系统对即时信息的管理要求。而且,还能进行上传下载相关资源的管理。
4)方便移植:系统应具有实用性、可靠性和适用性。系统界面中所需的数据都存放于数据文件中,只要对该文件做部分修改,就能在系统界面上实现及时更新的效果,减少了更改系统源代码的复杂性。
5)动态管理:对系统数据库实行动态操作,能实现对数据库信息的动态查询、动态更新修改和动态录入数据。
2.4数据流程分析
数据流程分析主要包括对信息的流动、传递、处理、存储等的分析。数据流程分析的目的就是要发现和解决数据流通中的问题。现有的数据流程分析多是通过分层的数据流程图(data flow diagram,简称DFD)来实现的。其具体的做法是:按业务流程图理出的业务流程顺序,将相应调查过程中所掌握的数据处理过程,绘制成一套完整的数据流程图。
整个系统的数据流程图如下图所示:
图2.4 系统的数据流程
2.5数据库设计
2.5.1数据库概念结构设计
根据上面的系统功能需求分析、业务流程分析和数据流程分析,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
下面对主要的实体E-R图作一下展示。
整体E-R图如下图所示:
图2.5.1a整体E-R图
汽车信息实体E-R图如图2.5.1b所示:
图2.5.1b汽车信息E-R图
汽车供应商信息实体E-R图如图2.5.1c所示:
图2.5.1c供应商信息E-R图
2.5.2数据库逻辑结构设计
数据库设计的好坏直接影响整个系统,如果数据库设计不好,不仅仅很多的业务处理起来相当的复杂和烦琐,而且在编写系统代码的时候也会遇到很多问题。所以,一个合理的数据库是必须的、是必要的。本系统的数据库结构在设计的时候注意到了规范命名和建立索引的必要性,汽车销售管理系统数据结构主要表的结构情况如下:
allusers表:
caigoujilu表:
caigoujilu表:
 
gongyingshangxinxi表:
kehuxinxi表:
shangpinleibie表:
shangpinxinxi表:
xinwentongzhi表:
xiaoshoutuihuo表:
3.系统设计
3.1系统体系结构
汽车销售管理系统采用的是时下比较流行的B/S模式体系结构,具有通用性,其开发与维护简单,成本低,界面友好。具有良好的系统扩展性,方便管理。
本系统所面向的对象是广大的互连网用户。因此,将要采用比较流行的B/S三层结构。
图2-4-1 B/S三层结构图
B/S体系结构与B/S体系结构相比不仅具有其全部的优点,而且又有B/S体系结构所不具备的独特优势:
(1)开放的标准:B/S所采用的标准都是开放的、非专用的,是经过标准化组织所确定而非单一厂商所制定,保证了其应用的通用性和跨平台性。
(2)较低的开发和维护成本:B/S的应用只需在客户端安装通用的浏览器即可,维护和升级工作都在服务器端进行,不需对客户端进行任何改变,故而大大降低了开发和维护的成本。
(3)用户使用简单,界面友好:B/S用户的界面都在统一的浏览器上,浏览器易于使用、界面友好,又因为它不再负责数据的存取和复杂数据计算等任务,只需要进行显示,因而大大降低了对客户端的要求。
从以上的分析与比较可以看出,B/S模式具有B/S模式无法替代的优越性:它简化了系统的开发和维护,并且特别适用于网上信息发布。因此,我开发的课程在线浏览系统采用了基于B/S模式的体系结构。
3.2 开发软件
3.2.1 JSP技术
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。
JSP是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态技术标准。在传统的网页HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP标签,就构成了JSP网页java程序片段可以操纵数据库、重新定向网页以及发送E-mail等,实现建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器端不支Java,也可以访问JSP网页。
JSP全名为java server page,其根本是一个简化的Servlet设计,他实现了Html语法中的java扩张(以 <%, %>形式)。JSP与Servlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户端。插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。 JSP(JavaServer Pages)是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来。 
JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。
3.2.2 IIS管理器
IIS(Internet Information Server),是微软公司主推的服务器,最新的版本是IIS 6.0,IIS与Windows NT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet站点。
IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。
IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript,JavaScript开发软件以及Java,同时也支持CGI和WinCGI,以及ISAPI扩展和过滤器。
IIS支持服务器应用的Microsoft BackOffice系列,Microsoft BackOffice系列包括以下内容:
Microsoft Exchange Server 客户/服务器通讯和群组软件;
Microsoft Proxy Server 代理服务器;
用于连接IBM企业网络的Microsoft SNA Server;
用于集中管理分布式系统的Microsoft Systems Management Server;
Microsoft Commercial Internet System(MCIS)。
IIS的设计目的是建立一套集成的服务器服务,用以支持HTTP,FTP和SMTP,能够提供快速且集成了现有产品,同时可扩展的Internet服务器。 IIS相应性极高,同时系统资源的消耗也是最少,IIS的安装,管理和配置都相当简单,这是因为IIS与Windows NT Server网络操作系统紧密的集成在一起,另外,IIS还使用与Windows NT Server相同的SAM(Security Accounts Manager,安全性账号管理器),对于管理员来说,IIS使用诸如Performance Monitor和SNMP(Simple Network Management Protocol,简单网络管理协议)之类的NT已有管理工具。
IIS支持ISAPI,使用ISAPI可以扩展服务器功能,而使用ISAPI过滤器可以预先处理和事后处理储存在IIS上的数据。用于32位Windows应用程序的Internet扩展可以把FTP,SMTP和HTTP协议置于容易使用且任务集中的界面中,这些界面将Internet应用程序的使用大大简化,IIS也支持MIME(Multipurpose Internet Mail Extensions,多用于Internet邮件扩展),可以为Internet应用程序的访问提供一个简单的注册项。
3.2.3 MySQL数据库
任何稍大的Web应用程序,都离不开数据库的支持,数据库一直以来都是Web开发中的一个重要组成部分。Web数据库采用三层或多层体系结构,前端采用浏览器技术,通过Web服务器和中间件访问数据库。
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
与其他的大型数据库例如Oracle、DB2、SQL Server等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQL Cluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。
系统特性:
1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
2)支持AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNetware、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系。
3)为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。
4)支持多线程,充分利用CPU资。
5)优化的SQL查询算法,有效地提高查询速度。
6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中。
7)提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。
8)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
9)提供用于管理、检查、优化数据库操作的管理工具。
10)支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
11.支持多种存储引擎。
3.2.4 MyEclipse
MyEclipse,是一个十分优秀的用于开发Java, J2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。
MyEclipse企业级工作平台,(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse几乎囊括了目前所有主流开源产品的专属eclipse开发工具。
在结构上,MyEclipse的特征可以被分为7类:
(1). JavaEE模型
(2). WEB开发工具
(3). EJB开发工具
(4). 应用程序服务器的连接器
(5). JavaEE项目部署服务
(6). 数据库服务
(7). MyEclipse整合帮助
对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。
简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse6.0以前版本需先安装Eclipse。MyEclipse6.0以后版本安装时不需安装Eclipse。
3.3系统的软硬件平台
(1)客户机/服务器:采用Pentium II 或以上级别PC机,至少30M硬盘,Pentium90MHZ,支持VGA或分辨率更高的显示器
(2)客户机/服务器操作系统:Window xp/vista/7。
(3)数据库:MySQL
(4)网络:以太网组成的局域网,可设多台客户机。
4.系统操作说明
网站结构分为两个部分:前台登入模块、后台管理模块。
4.1系统操作说明
4.1.1登陆页面
图4.1.1登陆页面
此页面实现的功能是管理员输入用户名和密码,登陆系统,才能进行后台的管理操作。页面简洁、方便。
4.1.2管理员添加页面
图4.2管理员添加页面
此页面实现的功能是超级管理员对普通管理员进行添加操作站内的各类信息,并且管理员可在后台进行相关信息的添加、删除等操作。
4.1.3汽车添加页面
图4.2.1汽车信息添加页面
此页面要实现的功能是管理员对商品信息的添加。包含的信息有:编号、名称、类别、价格、图片、库存、备注等,管理员可对信息的内容进行重置”提交”等操作。
4.1.4汽车供应商信息添加页面
图4.1.4汽车供应商信息添加页面
此页面要实现的功能是管理员对汽车供应商信息的添加。包含的信息有:编号、名称、联系人、电话、邮箱、传真、备注主营产品、地址等,管理员可对信息的内容进行重置”提交”等操作。
4.1.5汽车进货记录添加页面
图4.1.5汽车进货记录添加页面
此页面要实现的功能是管理员对进货记录息的添加。包含的信息有:编号、名称、类别、库存、进货数量、进货价、供应商、经手人等,管理员可对信息的内容进行重置”提交”等操作。
4.1.6汽车库存查询页面
图4.1.5汽车库存查询页面
此页面要实现的功能是管理员对商品库存的查询。包含的信息有:编号、名称、类别、价格和库存量,库存量小于30的商品红色标出,本页面信息可打印。
5.软件测试与分析
测试是开发时期最后一个阶段,是保证软件质量的重要手段。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的过程,所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出现或者在应该出现的时候没有出现。从本质上说,软件测试是探测,在探测中发现软件的毛病。
5.1系统测试的定义
软件测试是为了发现错误而执行程序的过程。它不仅是软件开发阶段的有机组成部分,而且在整个软件工程(即软件定义、设计和开发过程)中占据相当大的比重。软件测试是软件质量保证的关键环节,直接影响着软件的质量评估。软件测试不仅要讲究策略,更要讲究时效性。验收测试作为软件测试过程的最后一个环节,对软件质量、软件的可交付性和软件项目的实施周期起到一锤定音的作用。
5.2系统测试的目的及意义
软件危机曾经是软件界甚至整个计算机界最热门的话题。为了解决这场危机,软件从业人员、专家和学者做出了大量的努力。现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于我们如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。
5.3系统测试的重要性
软件测试在软件生命周期中占据重要的地位,在传统的瀑布模型中,软件测试学仅处于运行维护阶段之前,是软件书籍交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。
事实上,对于软件来讲,不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40%以上。而在软件开发的总成本中,用在测试上的开销要占30%到50%。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。
5.4系统测试的常用方法
程序测试的主要方法分为两大类,白盒测试和黑盒测试。
白盒测试:一种是以程序的内部逻辑结构为依据而设计测试用例的方法,因而又称结构测试或玻璃盒测试,将软件看成一个透明的白盒子,按照程序的内部结构和处理逻辑来选定测试用例,对软件的逻辑路径及过程进行测试,检查它与设计是否相符。白盒测试就是要选取足够的测试用例,对源代码实行比较充分的覆盖,以便尽可能多地发现程序中的错误。主要有两种方法:一种称为逻辑覆盖法,另一种称为路径覆盖法。
黑盒测试:也称功能测试,数据驱动测试等,它将待测对象堪称是一个黑盒子,在完全不考虑程序的内部结构和特性的情况下,只依据规格说明书检查程序的功能是否能正常使用。
黑盒测试主要是根据输入条件和输出条件的确定测试数据,来检查程序是否能产生正确的输出[16]。进行黑盒测试主要有下面几种方法:等价分类法、边界值分析法、猜错法、因果图法。
本系统的测试综合了白盒测试、黑盒测试两种方法,但主要使用的是黑盒测试方法。在测试当中遵循了尽早地和不断进行测试”,保证测试用例的完整性和有效性”原则。通过测试达到以下测试目的:
1功能检查。
检查功能是否争取,是否遗漏或实现不了应该实现的功能等。
2接口检查。
检查能否正确地接受信息或输出信息。
3数据检查。
检查数据结构或外部信息是否有(如数据文件)访问错误。
4性能检查。
检查性能需求能否得到满足。
5初始化、终止检查。
检查是否能进行正确地初始化或终止。
5.5测试环境与测试条件
处理器:Inter(R) Core (TM)2 Duo T5750
内存:2GB
硬盘:160G
操作系统:Windows XP
数据库:MYSQL
5.6系统运行情况
系统评价是指系统在正式运行了一段时间之后,对它在功能上、技术上和经济上所进行的审核评价。针对本系统的评价如下:
(1)系统功能评价
根据本系统开发前所订的目标,在系统完成后经过测试运行,该系统达到了预定的开发目标,在实际使用中的功能可以满足用户需求。
(2)系统技术评价
本系统设计合理,功能达到了预期目标,且系统运行后稳定可靠,安全性高,具有实用性,大大提高了信访办公效率。
(3)系统经济评价
在规定时间内,该系统完成了系统分析时所确定的系统开发目标,达到了设计要求,投入使用后为用户节省了大量人力物力财力,提高了科学管理水平。
5.7测试总结
通过对系统的全面测试,所有测试条目都已经通过,实现了基本要求,系统可以正常运行。
6.结论
毕业设计是体现我们对所学知识的领悟和应用,是对我们大学四年所学理论知识的一次巩固和提高,在此我对此次毕业设计做了三点归纳。
6.1系统的特点
汽车销售管理系统,采用JSP+SQL的模式来订制的一个小型平台。本系统从功能上来说,比较完备。系统以Web界面与用户交互,为用户提供信息并接受其操作,同时通过数据库管理系统来存储信息数据。系统实现了根据用户的需求及程序的应用与维护的易用性,将各个部分置于不同的模块当中,方便了程序的扩展与维护,同时建立了程序功能复用的基础。
6.2系统的不足和改进
本系统基本上满足了汽车销售管理系统管理方面的需要。在界面上力求做到简洁,在操作方面上尽量避免由于用户操作不当带来系统的出错现象。但由于时间仓促,本系统还存在不足有待改进。界面不够美观,需要进一步修饰和美化;对数据库操作的性能有待进一步优化,虽然本系统优化了不少,但要达到理想状态还有一段距离,如部分功能程序代码过长,如果后台数据库过大将会影响运行速度;部分数据库表的设计存在一定的冗余,有待进一步优化。根据系统的不足,继续改进和完善本系统。
6.3设计收获与心得
毕业设计是体现我们对所学知识的领悟和应用,是对我们大学四年所学理论知识的一次巩固和提高。设计本系统的过程不仅是对我学过的知识的一次回顾,更是在对我处理问题、解决实际问题能力的培养和锻炼。通过本次毕业设计使我对系统开发有了深入的了解,我的编程能力也有了较大的提高。我在设计过程中也遇到了很多困难,但是通过指导老师和同学的帮助以及自己的努力,最终还是顺利地完成了毕业设计。
虽然,毕业设计只有短暂的几个月,但却使我充分认识到自身还存在很多不足的地方,还需要不断的努力实践来充实自己、完善自己,只有这样才能学无止境,以求得更大的发展。
致 谢
大学生活在这个时候即将划上一个句号。但是对于我的人生道路来说,这仅仅是一个逗号,我将面对的是又一次征程的开始。
在此毕业设计期间,我首先要感谢我的指导老师——xx老师的帮助和支持,老师扎实的理论知识和认真负责的工作态度都使我受益匪浅,特别是在论文指导方面给予了我很大帮助,使我顺利地完成了毕业论文。
同时我也要感谢我的同学,通过大学四年的相处,彼此都互相关心和帮助,每当我遇到困难和挫折的时候,他们都积极的鼓励我,帮助我。
最后还要感谢在这大学四年中所有教过我的老师们,是你们使我获得了知识的扩充,掌握了各种技术的理论基础。这都为我最后进行毕业设计提供了强大的理论支持。
参 考 文 献
[1] 曹衍龙.徐慧.JSP网络开发实用工程案例[M].人民邮电出版社 2008.
[2] 汪大乐.JavaWeb开发技术详解[M].北京科海电子出版社 2008.
[3] 曾光.马军.JavaScript入门与提高[M].科学出版社 2008.
[4] 王国辉 等.Java Web 开发实战宝典[M].清华大学出版社.2010.1.
[5] 梁文新.宋强.王占中. Ajax+JSP网站开发从入门到精通[M].清华大学出版社.2008.7.
[6] 张红. 利用Java Servlet实现在Web服务器平台上的开发.[J].桂林电子科技大学学报.2009.29(3).
[7] 黄勇. 基于JSP的电子商务系统中关键技术研究[J], 商场现代化, 2008.1(528): 133~134.
[8] Marty Hall, Larry Brown著. Servlet与JSP核心编程(第2版)[M]:北京.清华大学出版社.
[9] Christine Canning Esposito.The business of restoring a cars beauty.[J].Coatings World .2002.7(9).
[10] David Flanagan. JavaScript: The Definitive Guide[M]. OReilly Media, Inc.2006.
源码程序附录
1:已有商品信息代码:
<%@ page language=java pageEncoding=gb2312%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+://+request.getServerName()+:+request.getServerPort()+path+/;
%>
<%@ page language=java import=java.sql.* %>



>




<%
String sql;
ResultSet RS_result;
%>
 

已有商品信息列表:

 


搜索:  编号:  名称: 类别:所有<% sql=select leibie from shangpinleibie order by id desc;RS_result=connDbBean.executeQuery(sql);while(RS_result.next()){%>><%=RS_result.getString(leibie)%><%}%>
 








<%
int curpage=1;//当前页
int page_record=10;//每页显示的记录数
int zgs=0;
int zys=0;
//用下面的方法(sql查询完成,速度快)
String hsgnpage=request.getParameter(page);
String fysql=select count(id) as ss from shangpinxinxi;
ResultSet RS_resultfy=connDbBean.executeQuery(fysql);
while(RS_resultfy.next()){
zgs=Integer.parseInt(RS_resultfy.getString(ss));
if((zgs % page_record)==0)
{
zys=zgs/page_record;
}
else
{
zys=zgs/page_record+1;
}
}
if (hsgnpage!=null)
{
curpage=Integer.parseInt(request.getParameter(page));//获取传递的值,需要显示的页
}
else
{
curpage=1;
}
if (curpage==0)
{
curpage=1;
}
if(curpage>zys)
{
curpage=zys;
}
if(((curpage-1)*page_record)==0 || curpage==0)
{
sql=select * from shangpinxinxi where 1=1 ;
}
else
{
String tempsql=select id from shangpinxinxi order by id desc limit 0,+(curpage-1)*page_record+;
ResultSet tempRS_result=connDbBean.executeQuery(tempsql);
int tempid=0;
String tempidstring=;
while(tempRS_result.next())
{
tempidstring=tempidstring+tempRS_result.getString(id)+,;
}
tempidstring=tempidstring.substring(0,tempidstring.length()-1);
sql=select * from shangpinxinxi where id not in (+tempidstring+) ;
}


if(request.getParameter(bianhao)== ||request.getParameter(bianhao)==null ){}else{sql=sql+ and bianhao like %+new String(request.getParameter(bianhao).getBytes(8859_1))+%;}
if(request.getParameter(mingcheng)== ||request.getParameter(mingcheng)==null ){}else{sql=sql+ and mingcheng like %+new String(request.getParameter(mingcheng).getBytes(8859_1))+%;}
if(request.getParameter(leibie)==所有 ||request.getParameter(leibie)==null ){}else{sql=sql+ and leibie like %+new String(request.getParameter(leibie).getBytes(8859_1))+%;}
sql=sql+ order by id desc limit 0,+page_record+;


RS_result=connDbBean.executeQuery(sql);
String id=;
String bianhao=;String mingcheng=;String leibie=;String jiage=;String tupian=;String beizhu=;String kucun=;
String addtime=;
int i=0;





while(RS_result.next()){
i=i+1;
id=RS_result.getString(id);
bianhao=RS_result.getString(bianhao);mingcheng=RS_result.getString(mingcheng);leibie=RS_result.getString(leibie);jiage=RS_result.getString(jiage);tupian=RS_result.getString(tupian);beizhu=RS_result.getString(beizhu);kucun=RS_result.getString(kucun);
addtime=RS_result.getString(addtime);


%>






<%
}
%>
 

 

序号 编号 名称 类别 价格 图片 库存 添加时间 操作
<%=i %> <%=bianhao %> <%=mingcheng %> <%=leibie %> <%=jiage %> target=_blank> width=88 height=99 border=0 /> <%=kucun %> <%=addtime %> >修改 >详细 &tablename=shangpinxinxi οnclick=return confirm(真的要删除?)>删除


以上数据共<%=i %>条,打印本页
 

 共<%=zgs%>条记录  <%=page_record %>条/页 首页 >上一页 >下一页 >尾页 当前第<%=curpage %>页/共<%=zys %>

 

 


2: 已有出货记录代码:
<%@ page language=java pageEncoding=gb2312%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+://+request.getServerName()+:+request.getServerPort()+path+/;
%>
<%@ page language=java import=java.sql.* %>



>




<%
String sql;
ResultSet RS_result;
%>

 

 

 

已有出货记录列表:

 


搜索:  编号:  名称:  类别: 客户姓名:所有<% sql=select xingming from kehuxinxi order by id desc;RS_result=connDbBean.executeQuery(sql);while(RS_result.next()){%>><%=RS_result.getString(xingming)%><%}%>  经手人:
 










<%
int curpage=1;//当前页
int page_record=10;//每页显示的记录数
int zgs=0;
int zys=0;
//用下面的方法(sql查询完成,速度快)
String hsgnpage=request.getParameter(page);
String fysql=select count(id) as ss from xiaoshoujilu;
ResultSet RS_resultfy=connDbBean.executeQuery(fysql);
while(RS_resultfy.next()){
zgs=Integer.parseInt(RS_resultfy.getString(ss));
if((zgs % page_record)==0)
{
zys=zgs/page_record;
}
else
{
zys=zgs/page_record+1;
}
}
if (hsgnpage!=null)
{
curpage=Integer.parseInt(request.getParameter(page));//获取传递的值,需要显示的页
}
else
{
curpage=1;
}
if (curpage==0)
{
curpage=1;
}
if(curpage>zys)
{
curpage=zys;
}
if(((curpage-1)*page_record)==0 || curpage==0)
{
sql=select * from xiaoshoujilu where 1=1 ;
}
else
{
String tempsql=select id from xiaoshoujilu order by id desc limit 0,+(curpage-1)*page_record+;
ResultSet tempRS_result=connDbBean.executeQuery(tempsql);
int tempid=0;
String tempidstring=;
while(tempRS_result.next())
{
tempidstring=tempidstring+tempRS_result.getString(id)+,;
}
tempidstring=tempidstring.substring(0,tempidstring.length()-1);
sql=select * from xiaoshoujilu where id not in (+tempidstring+) ;
}


if(request.getParameter(bianhao)== ||request.getParameter(bianhao)==null ){}else{sql=sql+ and bianhao like %+new String(request.getParameter(bianhao).getBytes(8859_1))+%;}
if(request.getParameter(mingcheng)== ||request.getParameter(mingcheng)==null ){}else{sql=sql+ and mingcheng like %+new String(request.getParameter(mingcheng).getBytes(8859_1))+%;}
if(request.getParameter(leibie)== ||request.getParameter(leibie)==null ){}else{sql=sql+ and leibie like %+new String(request.getParameter(leibie).getBytes(8859_1))+%;}
if(request.getParameter(kehuxingming)==所有 ||request.getParameter(kehuxingming)==null ){}else{sql=sql+ and kehuxingming like %+new String(request.getParameter(kehuxingming).getBytes(8859_1))+%;}
if(request.getParameter(jingshouren)== ||request.getParameter(jingshouren)==null ){}else{sql=sql+ and jingshouren like %+new String(request.getParameter(jingshouren).getBytes(8859_1))+%;}
sql=sql+ order by id desc limit 0,+page_record+;


RS_result=connDbBean.executeQuery(sql);
String id=;
String bianhao=;String mingcheng=;String leibie=;String jiage=;String kucun=;String kehuxingming=;String xiaoshoushuliang=;String beizhu=;String jingshouren=;
String addtime=;
int i=0;





while(RS_result.next()){
i=i+1;
id=RS_result.getString(id);
bianhao=RS_result.getString(bianhao);mingcheng=RS_result.getString(mingcheng);leibie=RS_result.getString(leibie);jiage=RS_result.getString(jiage);kucun=RS_result.getString(kucun);kehuxingming=RS_result.getString(kehuxingming);xiaoshoushuliang=RS_result.getString(xiaoshoushuliang);beizhu=RS_result.getString(beizhu);jingshouren=RS_result.getString(jingshouren);
addtime=RS_result.getString(addtime);


%>








<%
}
%>
 

 

序号 编号 名称 类别 价格 库存 客户姓名 出货数量 备注 经手人 添加时间 操作
<%=i %> <%=bianhao %> <%=mingcheng %> <%=leibie %> <%=jiage %> <%=kucun %> <%=kehuxingming %> <%=xiaoshoushuliang %> <%=beizhu%> <%=jingshouren %> <%=addtime %> >修改 &tablename=xiaoshoujilu onClick=return confirm(真的要删除?)>删除


以上数据共<%=i %>条,打印本页
 

 共<%=zgs%>条记录  <%=page_record %>条/页 首页 >上一页 >下一页 >尾页 当前第<%=curpage %>页/共<%=zys %>

 

 


3:出售货退货代码
<%@ page language=java pageEncoding=gb2312%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+://+request.getServerName()+:+request.getServerPort()+path+/;
%>
<%@ page language=java import=java.sql.* %>



>








<%
String sql;
ResultSet RS_result;
String id=request.getParameter(id);
sql=select * from xiaoshoujilu where id=+id;
String bianhao=;String mingcheng=;String leibie=;String jiage=;String kehuxingming=;String xiaoshoushuliang=;
RS_result=connDbBean.executeQuery(sql);
while(RS_result.next()){
bianhao=RS_result.getString(bianhao);mingcheng=RS_result.getString(mingcheng);leibie=RS_result.getString(leibie);jiage=RS_result.getString(jiage);kehuxingming=RS_result.getString(kehuxingming);xiaoshoushuliang=RS_result.getString(xiaoshoushuliang);
}
%>
 
添加出货退货:

 

 

 

 

 

 

 

 

 

编号:  *
名称:  *
类别:  *
价格:  *
客户姓名:  *
出货数量:  *
退货数量:  *
退货事由:  
经手人: /> *
>
   

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java)