版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
v1.0可编辑可修改v1.0可编辑可修改PAGEPAGEPAGEII―PAGEII―v1.0可编辑可修改PAGE【摘要】本系统是为解决汽车销售公司的管理问题而设计。随着经济的发展和国内汽车市场的不断扩大,某汽车销售公司定单成倍增加,各项业务更加细化,各部门分工更加明确。而目前的人工管理方式显然已是不符合现代企业的管理要求。基于整体考虑,本次课程设计任务就是设计一个管理系统,利用计算机来代替人工操作。减轻了员工的劳动强度,提高了劳动质量和效率,减少了错误的发生。本次设计,从需求分析,概念设计,逻辑设计,物理设计,到数据库的建立、运行,再到数据库的安全维护等各个方面进行了详细的分析设计。并且值得一提的是,我认真分析了企业的业务需求,公司的主要职责和主要结构等信息,从而保证了设计出比较符合公司需要的管理系统。【关键词】数据库;课程设计;轿车销售管理JAVA
Carsalessystem【Abstract】Thissystemistoaddressthemanagementofcarsalescompanydesigned.Witheconomicdevelopmentandthedomesticautomarketcontinuestoexpand,anautomobilesalescompanyordersmultiplied,thebusinessismorerefined,moreexplicitdivisionoflabor.Thecurrentmanualmanagementisnotclearlymeettherequirementsofmodernenterprisemanagement.
Basedonoverallconsideration,thistaskistodesignacurriculummanagementsystem,usingcomputertoreplacemanualoperation.Reducethelaborintensityoftheemployees,improvelaborqualityandefficiency,reducederrors.
Thedesign,fromrequirementsanalysis,conceptualdesign,logicaldesign,physicaldesign,todatabasedevelopment,operation,maintenance,securityofthedatabaseandthentovariousaspectsofthedetailedanalysisofthedesign.AndworthmentioningisthatIcarefullyanalyzedthecompany'sbusinessneeds,thecompany'smainresponsibilitiesandmainstructureinformation,thusensuringtheneedtodesignmoreinlinewiththecompany'smanagementsystem.【Keywords】Database;curriculumdesign;carsalesmanagementJAVA
目录TOC\o"1-2"\h\z\u第一章 绪论 31.1课题来源 31.2研究意义 3第二章 需求分析 41.3系统定义 41.4功能需求 41.5数据需求 4第三章 数据库设计 51.6数据库的概念 51.7数据库的选择 5进货订单表(汽车4s店向厂商进货)(stockList_table) 6仓库表(汽车4s店的仓库)(depot_table) 7财务支出表(汽车4s店进货的花费)(payout_table) 7财务收入表(每完成一次交易所得金额非利润)(income_table) 8厂商信息表(汽车4s店进车所选厂商)(factory_table) 8汽车基本信息表表(本4s店所经营的汽车信息)(car_table) 8客户信息表(凡是来本店买车或有买车意向的都成为客户)(client_table) 9客户订单表(客户下的买车订单)(orderList_table) 10角色表(公司的职位有哪些)(role_table) 10员工表(公司员工)(staff_table) 11权限表(对表的操作)(power_table) 11角色权限对应表(不同职位只能操纵相应表)(power_table) 111. 角色员工对应关系表(power_table) 12第四章 技术介绍 13JAVA开发语言的选择 131.8MVC设计模式 141.9Struts,Hibernate,Spring技术 151.10SQL语言 171.11开发环境 17第五章 系统实现 181.12系统总体架构及实现 181.13进货管理 201.14登录管理 40第六章 结束语 41致谢 42附录一数据库连接 44--PAGE47-绪论课题来源汽车产业的兴旺发展带动顾客对于汽车类型选择的大步前进,目前大多数汽车销售连锁店的销售管理是用简易进行的。随着汽车款式的不断更新,汽车各项功能配置会不断的增多,简易工作已不能适应时代的发展需求,由于各销售店每天的销售量很大,难免会在业务方面及财务方面出现漏洞,给企业的经营带来种种弊端,有时还会带给客户不必要的麻烦。要想解决这些难题,就必须有一套科学、高效、严密汽车销售管理系统作为依托进行和客户的交易。当今的中小企业,一般应具有产品开发、生产、销售、服务的能力,为此企业都设有相应的机构,以管理各个环节的业务。以此前提作为系统设计的基础,开发一个更适合客户和销售人员交流的这样一个汽车销售系统,来满足日益发展的汽车销售业.的要求。国内现状汽车产业的兴旺发展带动顾客对于汽车类型选择的大步前进,目前大多数汽车销售连锁店的销售管理是用简易进行的。随着汽车款式的不断更新,汽车各项功能配置会不断的增多,简易工作已不能适应时代的发展需求,由于各销售店每天的销售量很大,难免会在业务方面及财务方面出现漏洞,给企业的经营带来种种弊端,有时还会带给客户不必要的麻烦。要想解决这些难题,就必须有一套科学、高效、严密汽车销售管理系统作为依托进行和客户的交易。当今的中小企业,一般应具有产品开发、生产、销售、服务的能力,为此企业都设有相应的机构,以管理各个环节的业务。以此前提作为系统设计的基础,开发一个更适合客户和销售人员交流的这样一个汽车销售系统,来满足日益发展的汽车销售业.的要求。研究意义为了更好的适应汽车销售管理市场发展的不平衡性,更好的为客户在选择汽车类型方面便利,为更多不了解汽车的客户提供一个交流平台,我们选择这样一个信息管理系统来进行。
需求分析系统定义汽车销售系统的出现代替了人工记录。那么本系统作为汽车销售行业的一个系统,为公司和客户双方都提供了方便。功能需求汽车销售系统一个最主要的目的就是为销售公司和客户提供方便快捷的双向选择服务,因此其主要的使用者有两类,即客户和汽车销售公司,并且其功能主要实现双方交易的透明化和人性化。一、从信息需求的角度分析信息注册主要包括客户个人信息的采集和公司现有信息情况的采集。信息交互管理,主要包括客户向公司下订单过程的记录和公司对客户对车辆要求的满足。二、从用户的角度分析客户首次买车要注册个人信息。系统管理员要赋予部门管理员的一定权限才能方便各个模块的管理。子管理员在得到系统管理员的授权后可以对所负责部门实行所有的操作数据需求一、客户的个人信息客户要在首次购车时注册个人信息(姓名、性别、身份证号、联系方式、学历、家庭住址等)二、供货商的详细信息供货商信息包括供货商的自然信息(公司名称、公司地址、联系方式等)三、单辆车的基本信息单辆车的基本信息包括汽车的(发动机编号,汽车类型,汽车价格,汽车外观,汽车排量,供应商等)四、仓库的基本信息仓库的基本信息包括(仓库编号,仓库最大库存量,现存量等)
数据库设计数据库的概念当人们从不同的角度来描述这一概念时就有不同的定义。例如,称数据库是一个“记录保存系统”(该定义强调了数据库是若干记录的集合)。又如称数据库是“人们为解决特定的任务,以一定的组织方式存储在一起的相关的数据的集合”(该定义侧重于数据的组织)。更有甚者称数据库是“一个数据仓库”。当然,这种说法虽然形象,但并不严谨。严格地说,数据库是“按照数据结构来组织、存储和管理数据的仓库”。本系统将使用一直以来使用都最为广泛的关系模型作为数据库的建设依据。在用户的观点下,关系模型中数据的逻辑结构是一张二维表,一个关系对应通常说的一张表,并且关系的每一个分量必须是一个不可分的数据项。而一个基于关系模型的数据库则是由若干个二维表组成的。对于一些大型和中型的数据库,如Oracle,SQLServer2005等都属于关系型数据库,同时它们所带有的数据库管理工具是其他小型数据库所没有的,而同时这些工具又为管理员的工作节省了很多的时间和财力。数据库的选择本系统使用SQLserver2005实现关系型数据库。SQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。SQLServer2005数据引擎是本企业数据管理解决方案的核心。此外SQLServer2005结合了分析、报表、集成和通知功能。这使您的企业可以构建和部署经济有效的BI解决方案,帮助您的团队通过记分卡、Dashboard、Webservices和移动设备将数据应用推向业务的各个领域。与MicrosoftVisualStudio、MicrosoftOfficeSystem以及新的开发工具包(包括BusinessIntelligenceDevelopmentStudio)的紧密集成使SQLServer2005与众不同。无论您是开发人员、数据库管理员、信息工作者还是决策者,SQLServer2005都可以为您提供创新的解决方案,帮助您从数据中更多地获益。数据库表的描述概念模型是对信息世界建模,其表示方法有很多,其中最为常用的是实体-联系模型,即E-R模型,它是用E-R图来描述现实世界的概念模型。进货订单表(汽车4s店向厂商进货)(stockList_table)该表主要完成公司向供应商进货的基本清单录入等功能。在此表中定义了9个字段来进行进货清单的信息存储。见表3-1。表3—1字段英文名类型是否主键外键关联长度备注清单编号stockIdIntYes无汽车类型carTypevarcharNo关联汽车信息表255汽车数量caiSumintNo无只能大于零进货单价stockPriceIntNo无只能大于零进货日期stockTimedateTimeNo无进货总价stockSumintNo无由单价和数量计算入库状态enterEstvarcharNo无255默认未入库供应厂商facIdVarcharNo关联厂商表255进货管理员staIdintNo关联员工表255仓库表(汽车4s店的仓库)(depot_table)该表主要完成求公司仓库添加功能。在此表中定义了4个字段来进行仓库信息的存储。见表3-2。表3—2字段英文名类型是否主键外键关联长度备注仓库编号depotIdIntYes无仓库管理员staIdvarcharNo关联员工表255现存量liveSumintNo无不能小于零最大库存量maxSumintNo无不能小于等于零财务支出表(汽车4s店进货的花费)(payout_table)该表主要完成公司财务的支出功能。在此表中定义了5个字段来进行财务的信息存储。见表3-3。字段英文名类型是否主键外键关联长度备注支出编号payIdIntYes无进货订单号:stockIdintNo关联进货订单表支出总额payCouintNo无由进货单得到支出时间payTimevarcharNo无255财务管理员staIdintNo关联员工表财务收入表(每完成一次交易所得金额非利润)(income_table)该表主要完成公司财务的收入功能。在此表中定义了6个字段来进行财务的信息存储。见表3-4。字段英文名类型是否主键外键关联长度备注收入编号incomeIdIntYes客户订单编号orderIdintNo关联汽车信息表应收金额accMoneyintNo关联汽车信息表从汽车信息表中能到实收金额factMoneyIntNo收款时间receTimedateTimeNo收款人staIdintNo关联员工表厂商信息表(汽车4s店进车所选厂商)(factory_table)该表主要对供应商信息的管理。在此表中定义了4个字段来进行信息存储。见表3-5。表3—5字段英文名类型是否主键外键关联长度备注厂商编号facIdIntYes无厂商名称facNamevarcharNo无255厂商地址facAddrvarcharNo无255厂商联系方式facTelvarcharNo无255汽车基本信息表表(本4s店所经营的汽车信息)(car_table)该表主要记录对汽车的基本信息进行录入和修改功能。在此表中定义了9个字段来进行信息存储。见表3-6。表3—6字段英文名类型是否主键外键关联长度备注发动机编号engineIdvarcharYes无255汽车类型carTypeVarcharNo无255汽车外观carShowVarcharNo无255汽车售价carPriceIntNo无汽车排量carPaivarcharNo无255供应商facIdintNo关联与厂商信息表进货订单号stockIdintNo关联与进货订单表仓库编号depotIdintNo关联与仓库表出售状态carStatevarcharNo255默认未售出客户信息表(凡是来本店买车或有买车意向的都成为客户)(client_table)该表的主要功能是对客户的基本信息进行登记。在此表中定义了7个字段来进行信息存储。见表3-7。表3—7字段英文名类型是否主键外键关联长度备注客户身份证号cliCardVarcharYes无50客户姓名cliNameVarcharNo无255客户性别cliSexVarcharNo无50客户联系方式cliTelVarcharNo无255客户住址cliAddVarcharNo无255客户职业cliWorkVarcharNo无255客户学历cliXueliVarcharNo无255客户订单表(客户下的买车订单)(orderList_table)该表的主要功能是记录客户下订单表的信息。在此表中定义了8个字段来进行信息存储。见表3-8。表3—8字段英文名类型是否主键外键关联长度备注订单编号orderIdIntYes客户身份证号:cliCardvarcharNo关联客户表50销售人员:staIdintNo关联员工表汽车类型:carTypeVarcharNo关联汽车信息表255汽车数量:carSumIntNo只能为1订单时间:orderTimedateTimeNo订单状态:orderEstVarcharNo50默认未交易发动机编号角色表(公司的职位有哪些)(role_table)该表的主要功能是记录公司职位的信息。在此表中定义了2个字段来进行信息存储。见表3-9。表3—9字段英文名类型是否主键外键关联长度备注角色编号rIdIntYes无角色名rNameVarcharNo无255员工表(公司员工)(staff_table)该表的主要功能是记录公司员工的信息。在此表中定义了5个字段来进行信息存储。见表3-10。表3—10字段英文名类型是否主键外键关联长度备注员工编号staIdIntYes员工登录密码staPassVarcharNo255员工姓名staNameVarcharNo255员工性别staSexVarcharNo50联系方式staTelVarcharNo255权限表(对表的操作)(power_table)该表的主要功能是记录管理员权限的信息。在此表中定义了3个字段来进行信息存储。见表3-11。表3—11字段英文名类型是否主键外键关联长度备注权限编号pIdIntYes无权限名pNameVarcharNo无255权限路径pURIVarcharNo无255角色权限对应表(不同职位只能操纵相应表)(power_table)该表的主要功能是记录角色对应权限的信息。在此表中定义了2个字段来进行信息存储。见表3-12。表3—12字段英文名类型是否主键外键关联长度备注角色编号rIdIntyes关联角色表权限编号rIdIntyes关联权限表角色员工对应关系表(power_table)该表的主要功能是记录员工与角色对应关系的信息。在此表中定义了2个字段来进行信息存储。见表3-13。表3—13字段英文名类型是否主键外键关联长度备注角色编号ridIntYes关联角色表员工编号staIdIntyes关联员工表
技术介绍JAVA开发语言的选择现在,市场上可以选购的应用开发产品很多,流行的也有数十种。目前在我国市场上最为流行,使用最多,最为先进的可用作企业级开发语言的产品有:SUN公司的JavaMicrosoft公司的VisualBasicMicrosoft公司的VisualCBorland公司的DelphiPowersoft公司的PowerBulider在目前市场上这些众多的程序开发工具中,有些强调语言的弹性与执行效率;有些偏重于可视化程序开发工具所带来的便利性与效率的提高,各有各的优点和特色,也满足了不同用户的不同需求。我的网站选择Java语言开发,其原因基于以下几点:Java是一种简单的、面向对象的、分布式的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的语言。一、简单Java的风格类似于C++,并且摒弃了C++中容易引发程序错误的地方,如指针和内存管理。此外Java提供了丰富的类库。二、面向对象面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的。Java支持静态和动态风格的代码继承及重用。三、分布式Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。四、健壮Java致力于检查程序在编译和运行时的错误。Java自己操纵内存减少了内存出错的可能性。Java提供Null指针检测数组边界、检测异常出口、字节代码校验。五、安全Java的安全性可从两个方面得到保证。一方面,在Java语言里,像指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。六、结构中立为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。七、可移植的Java的可移植性一直是Java程序设计师们的精神指标,也是Java之所以能够受到程序设计师们喜爱的原因之一,最大的功臣就是JVM的技术。JAVA编译器产生的目标代码(J-Code)是针对一种并不存在的CPU--JAVA虚拟机(JAVAVirtualMachine),而不是某一实际的CPU。JAVA虚拟机能掩盖不同CPU之间的差别,使J-Code能运行于任何具有JAVA虚拟机的机器上。八、高性能Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C++的性能没什么区别。九、多线程Java支持多线程,多线程功能使得在一个程序里可同时执行多个小任务。线程,有时也称小进程,是一个大进程里分出来的小的独立的进程。十、动态Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。MVC设计模式MVC是Model-View-Controller的简称,它是一种设计模式,它把应用程序分成三个核心模块:模型、视图、控制器,它们各自处理自己的任务。视图是用户看到并与之交互的界面,作用包括向用户显示相关的数据、接受用户的输入、向模型查询业务状态、接受模型发出的数据更新事件,从而对用户界面进行同步更新。模型表示业务数据和业务逻辑,是应用程序的主体部分。一个模型能为多个视图提供数据,因此提高了代码的可重用性。控制器接受用户的输入并调用模型和视图去完成用户的需求。当Web用户单击Web页面中的递交按钮来发送HTML表单时,控制器本身不输出任何东西和做任何处理。控制器接收请求并决定调用哪个模型组件去处理请求,然后决定调用哪个视图来显示模型处理返回的数据。MVC的优点表现在如下几个方面:首先,最重要的一点是多个视图能共享一个模型。同一个模型可以被不同的视图重用,大大提高了代码的可重用性。由于MVC的三个模块相互独立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松偶合的构件。此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。MVC处理过程的结构图,见图4-1。图4—1Struts,Hibernate,Spring技术StrutsStruts是目前Java
Web
MVC框架中不争的王者。Struts由一组相互协作的类(组件)、Serlvet以及jsp
tag
lib组成。由于Struts实质上就是在JSPModel2的基础上实现的一个MVC框架,所以基于struts构架的web应用程序基本上符合JSP
Model2即MVC的设计标准。其中的模型是JavaBean,控制器是ActionServlet、Action,视图是JSP、Struts客户化标签。Struts控制器组件主要包括:充当Struts框架的中央控制器的ActionServlet组件、充当每个子应用模块的请求处理器的RequestProcessor组件、负责处理一项具体的业务的Action组件。其工作流程如图4-2图4—2Struts
的另一特点是使用ActionFormBean,ActionFormBean也是一种JavaBean,除了具有一些JavaBean的常规方法,还包含一些特殊的方法,用于验证HTML表单数据以及将其属性重新设置为默认值。Struts框架利用ActionFormBean来进行View组件和Controller组件之间表单数据的传递。JSP文件使用Struts标签读取修改后的ActionFormBean的信息,重新设置HTML表单。HibernateHibernate是连接Java应用程序和关系数据库的中间件,它封装了JDBC,实现了Java对象的持久化;封装了所有数据访问细节,使业务逻辑层专注于业务逻辑。并且通过对象关系映射(ObjectRelationalMapping,简称ORM)解决了面向对象与关系数据库之间存在的互不匹配的现象。如图4-3SpringSpring是为了降低企业应用开发的复杂性而创建的。Spring只使用基本的JavaBeans就能完成以前必须通过EJB来完成的事情,而与EJB是相比,Spring的核心是个轻量级的容器,它是实现IoC(InversionofControl-控制反转)容器,是非侵入性的框架,并提供AOP(Aspect-orientedprogramming-面向方面编程)概念的实现方式,提供对持久层和事务的支持,提供MVCWeb框架的实现,并对一些常用的企业服务API提供一致的模型封装,是一个全方位的应用程序框架。图4—3SQL语言SQL(StructureQueryLanguage结构化查询语言)自1974年被提出,至今已经是世界上最流行的关系数据库的标准语言。SQL语言的分类一、DDL(DataDefinitionLanguage)数据定义语言,其作用包括创建数据库对象、删除数据库对象、修改数据库对象(create、drop、alter)。二、DML(DataManipulationLanguage)数据操纵语言,其作用包括查找数据信息、插入数据信息、删除数据信息、更改数据信息(select、insert、delete、update)。三、DCL(DataControlLanguage)数据控制语言,作用主要对是授权数据库对象(grant,revoke)。开发环境操作系统:WINDOWSXP;运行工具:IE开发工具:Eclipse数据库:MySQL服务器:Tomcat辅助工具:AdobePhotoshopCS,Flash
系统实现系统总体架构及实现系统总体结构图图5—1用户首页界面风格汽车销售系统的主页面可以4大管理模块,如果想了解具体的信息或进行相对的操作,就必须具有相应的权限。通过身份登录以后,可以实现相关的功能的操作。对于没有权限的用户,本系统将不提供任何服务。进货管理功能描述进货管理只有进货管理员才可以登录在登录后可显示“进货管理”,选择“查看进货订单”“增加进货订单”“查看汽车基本信息”“查看供应商信息”“添加厂商信息”等操作,可以对相应的功能进行操作。模块流程图进货管理流程图进货管理流程图汽车信息增查改厂商信息增查改进货订单表厂商信息表汽车信息表仓库模块财务模块进货单信息增查改提交数据是否实现否是数据库图5—3界面风格代码实现(部分)DAO实现方法:packageclassStockListDaoImplextendsDaoSupportimplementsStockListDAO{ privatestaticfinalStringSQL_insert="insertintostockList_table(carType,carSum,stockPrice,stockSum,stockTime,facId,enterEst,staId)values(,,,,,,,)"; privatestaticfinalStringSQL_select="selectstockId,carType,carSum,stockPrice,stockSum,stockTime,facId,enterEst,staIdfromstockList_table"; privatestaticfinalStringSQL_selectById="select*fromstockList_tablewherestockId="; privatestaticfinalStringSQL_update="updatestockList_tablesetcarType=,enterEst=,stockTime=,carSum=,facId=,stockPrice=,stockSum=wherestockId="; privatestaticfinalStringSQL_selectFactory="selectfacIdfromfactory_table"; privatestaticfinalStringSQL_selStaId="selectstaIdfromstaff_table"; privatestaticfinalStringSQL_FindId="selectstockId,carType,carSum,stockPrice,stockSum,stockTimefromstockList_tablewhereenterEst='未入库'"; privatestaticfinalStringSQL_Findengine="select*fromcar_tablewherestockId="; privatestaticfinalStringSQL="select*fromstockList_tablewhereenterEst='未入库'"; privateintret=0; DefaultParamsparams=newDefaultParams(); publicList<StockListDTO>SQL(Pagingpaging){ try{ return(SQL,,paging); }catch(SQLExceptione){ (); } returnnull; } publicintinsert(StockListDTOstockList){ try{ ()); ()); ()); ()); ()); ()); ()); ()); ret=(SQL_insert,params); }catch(SQLExceptione){ (); } returnret; }etAttribute("check"))).getStaId()); intret=(dto); if(ret!=0){ return; } return; } @Override protectedStringlistByPaging(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ StockListDaoImpldao=(StockListDaoImpl),conn); StaffDaoImpldao1=(StaffDaoImpl),conn); paging=(); (request); List<StockListDTO>stockList=(paging); Map<Integer,String>facList=(); Map<Integer,String>staList=(); "1234"); ("paging",paging); ("stockList",stockList); ("map",facList); ("map1",staList); return; } @SuppressWarnings("deprecation") @Override protectedStringupdate(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=(); StringcarType=("carType"); intstockId=("stockId")); StringenterEst=("enterEst"); intcarSum=("carSum")); intstockPrice=("stockPrice"));etAttribute("check"))).getStaId()); (liveSum); (MaxSum); DepotDaoImpldao=(DepotDaoImpl),conn); intret=(dto); if(ret!=0){ return; } return; } protectedStringlist(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ Stringtype=("carType"); type=newString("iso-8859-1"),"utf-8"); intorderId=("orderId")); CarDaoImpldao=(CarDaoImpl),conn); paging=(); (request); List<CarDTO>list=(type,paging); if()==0){ ("error","暂无此车"); return; } ("carList",list); ("orderId",orderId); ("paging",paging); return; } @Override protectedStringlistByPaging(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ DepotDaoImpldao=(DepotDaoImpl),conn); paging=(); (request); List<DepotDTO>depotList=(paging); StaffDaoImpldao2=(StaffDaoImpl),conn); Map<Integer,String>map=(); ("paging",paging); ("map",map); ("depotList",depotList); return; } @OverrideetAttribute("check"))).getStaId()); (carType); (carPrice); (carSum); (newDate()); ("1"); OrderListDaoImpldao=(OrderListDaoImpl),conn); StaffDaoImpldao1=(StaffDaoImpl),conn); Map<Integer,String>staList=(); ("map",staList); intret=(dto); if(ret!=0){ return; } return; } @Override protectedStringlistByPaging(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ OrderListDaoImpldao=(OrderListDaoImpl),conn); StaffDaoImpldao1=(StaffDaoImpl),conn); paging=(); (request); List<OrderListDTO>orderList=(paging); Map<String,String>mapList=(); Map<Integer,String>staList=(); "1234"); ("paging",paging); ("orderList",orderList); ("map",mapList); ("map1",staList); return; } @Override protectedStringlistPaging(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ StaffDaoImpldao1=(StaffDaoImpl),conn); StringorderEst=null; orderEst=("orderEst"); if(orderEst!=null){ ().setAttribute("orderEst",orderEst); }else{ orderEst=(String)().getAttribute("orderEst"); } OrderListDTOdto=newOrderListDTO(); (orderEst); OrderListDaoImpldao=(OrderListDaoImpl),conn); paging=(); (request); List<OrderListDTO>orderEstList=(paging,dto); Map<String,String>mapList=(); Map<Integer,String>staList=(); "1234"); ("paging",paging); ("orderEstList",orderEstList); ("map",mapList); ("map1",staList); return; } @Override protectedStringupdate(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ StringcliCard=("cliCard"); StringcarType=("carType"); intcarPrice=("carPrice")); intcarSum=("carSum")); intorderId=("orderId")); OrderListDTOdto=newOrderListDTO(); (cliCard); (carType); (carPrice); (carSum); (newDate()); ("1"); (orderId); OrderListDaoImpldao=(OrderListDaoImpl),conn); intret=(dto); if(ret!=0){ return; } return; } @Override protectedStringadd(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ HttpSessionsession=(); StringcliCard=("cliCard"); ClientDTOdto=newClientDTO(); (cliCard); OrderListDaoImpldao=(OrderListDaoImpl),conn); List<CarDTO>carTypeList=(); List<StaffDTO>staffList=(); ("clientList",dto); ("carTypeList",carTypeList); ("staffList",staffList); return; } 财务管理添加财务支出添加财务收入进货订单表客户订单表财务收入表财务支出表进货模块销售模块etAttribute("CheckDTO");财务管理添加财务支出添加财务收入进货订单表客户订单表财务收入表财务支出表进货模块销售模块 IncomeDTOdto=newIncomeDTO(); (orderId); (accMoney); (factMoney); (((CheckDTO)().getAttribute("check"))).getStaId()); (newDate());IncomeDaoImpldao=(IncomeDaoImpl),conn); intret=(dto); if(ret!=0){ return; } return; } @Override protectedStringlistByPaging(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ IncomeDaoImpldao1=(IncomeDaoImpl),conn); paging=(); (request); List<IncomeDTO>list=(paging); StaffDaoImpldao2=(StaffDaoImpl),conn); Map<Integer,String>map=(); ("paging",paging); ("map",map); ("incomelist",list); if()==0){ ("msg","暂无信息"); return; } return; } @Override protectedStringupdate(HttpServletRequestrequest, HttpServletResponseresponse)throwsServletException,IOException{ quals("1")){ if(dto==null){ ("error","无此订单"); return; } if().equals("-1")){ ("error","此订单已失效"); return; } if().equals("0")){ ("error","此订单已交易"); return; } } ("map",map); ("order",dto); return; } publicStringcreateChart(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ JFreeChartchart; IncomeDaoImpldao=(IncomeDaoImpl),conn); List<IncomeDTO>list=(); Stringcols[]={"1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"}; Stringrows[]={"销售额"}; doublevalues[][]=newdouble[1][12]; for(inti=0;i<12;i++){ for(IncomeDTOdto:list){ Calendarcal=(); ()); if==i){ values[0][i]=values[0][i]+()).doubleValue(); } } } CategoryDatasetdataset=(rows, cols,values); chart=("年度统计","月份","单位/元",dataset, ,true,true,false); ("楷体_GB2312",,20,chart); ("filename",(700,400,request,chart)); returnSUCCESS; } protectedvoidsetSpecial(Stringname,intstyle,intsize,JFreeChartchart){ StringnoMessage="获取失败,请重新访问"; name=(name==null"宋体":name); name=("")"宋体":name); style=(style<=0:style); size=(size<1212:size); Fontfont=newFont(name,style,size); ().setFont(font); CategoryPlotp=(); noMessage=(noMessage==null"NoData":noMessage); (noMessage); CategoryAxisx=(); (font); (font); etItemFont(font); } publicStringgetPNGName(intwidth,intheight,HttpServletRequestrequest,JFreeChartchart){ StringtmpName=""; try{ tmpName=(chart,width,height,()); }catch(IOExceptione){ ("生成图片异常",()); } returntmpName; }}登录管理功能描述该模块是登录专用,登录时系统会自动验证身份,判定所拥有的权限。模块流程图界面风格结束语在前面几章中,我们对汽车销售系统从需求分析、设计、实现等阶段分别做了介绍。本系统实现了客户登记和工作人员登录的身份验证以及厂商和汽车详细信息的采集、进货的管理、仓库的管理、销售和财务的管理、客户可以通过此系统了解到公司车辆的详细信息。工作人员也可以通过此程序查看各方面的运作情况。本文对所选择的开发语言做了介绍,本系统在开发过程中采用Struts、Hibernate、Spring三大框架相结合,利用Spring的声明式事务管理,不同于以往开发过程中所使用的编程式事务管理,在这一点上,本文也做了详细的介绍。此外,在项目的开发过程中采用规范的软件工程的开发流程,因此在需求分析及数据库设计部分做了大量的工作,这些对系统后期的编码过程起到了指导作用,在本文中也有所体现。本系统也将会在今后的应用中逐步完善,做到尽善尽美。致谢两年的大学生活即将结束,在这两年中我不仅学到了很多知识和技能,也有了很多社会经历,学会了为人处事的道理。两年中,学校领导和老师们一直给予我们无微不致的关怀,在传授我们文化知识的同时,还给我们讲述人生的哲理以及走向社会去求职、去竞争的能力和技巧等等,这些都使我受益匪浅。在此,我感谢学校领导和老师对我的辛勤教导,感谢陪伴我渡过两年时光的同学们,也感谢一直支持我、鼓励我、供我完成大学学业的父母。在我即将走向社会之际,更是深感责任的重大,为此,我更会牢记师长们的教诲,认认真真地做事,坦坦荡荡地做人,把所学、所掌握的所有知识技能,全部用到工作之中,不辜负师长们对我的谆谆教诲。
参考文献[1](美)MartyHall,Larry与JSP核心编程.第二版.赵学良译.北京:清华大学出版社,[2]林上杰,林康司.技术手册.北京:电子工业出版社,[3]孙卫琴.精通Struts:基于MVC的JavaWeb设计与开发.北京:电子工业出版社,[4]孙卫琴.精通Hibernate.北京:电子工业出版社,[5]林信良.Spring技术手册.北京:电子工业出版社,[6]张孝祥.Java就业培训教程.北京:清华大学出版社,[7]林信良.JavaJ
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医用耗材总包合同
- 电商平台实施服务合同
- 应收应付台账
- 混合集成电路装调工安全素养评优考核试卷含答案
- 尿素装置操作工岗前技术管理考核试卷含答案
- 空调器制造工岗前操作技能考核试卷含答案
- 烧结球团原料工操作规范强化考核试卷含答案
- 2026年中秋节假期值班安排课件
- 鱼糜制作工岗位绩效目标考核试卷含答案
- 环氧树脂装置操作工测试验证评优考核试卷含答案
- 2026 年秋季开学大学军训网络文明行为教育课件
- 某机械厂采购管理办法
- 2026-2030中国暖宫带市场销售格局与前景需求潜力研究研究报告
- (2026年)检验检测机构资质认定“一单一库”的学习与解读(2026年实施)课件
- 机修钳工(高级)证考试题及答案
- 2025年注册结构工程师考试一级专业考试真题及答案解析
- 2026年中级注册安全工程师《化工安全实务》真题与解析
- 24J113-1 内隔墙-轻质条板(一)
- 统编版小学一年级上册《道德与法治》2024秋版全套课件合集
- 阿司匹林的介绍
- 体育场馆消防安全知识教育培训
评论
0/150
提交评论