还剩32页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
(论文)摘要仓库货物管理系统是当今企业必不可少的部分,一个优秀的仓库货物管理系统可以为企业的发展和经营提供坚实的技术后盾随着科学技术的蓬勃发展,应用信息技术对仓库进行管理,具有人工管理所无法比拟的优点例如,易查询、速度快、成本低、寿命长、准确性高等这些优点能极大地提高企业仓库货物管理的效率使企业的仓库货物管理井井有条,为企业的健康发展创造良好的条件本文在分析现有管理系统开发技术的基础上,实现了以Eclipse为开发平台的基于JSP的以MySql作为后台数据库的仓库管理系统该系统主要具备基本信息管理、库存管理、信息查询、用户管理等功能模块,本系统基于B/S模式,严格遵循MVC三层架构关键词JSP;Servlet;B/S模式;MVC;MYSQLAbstractCargowarehousemanagementsystemisanessentialpartoftodaysbusinessagoodcargowarehousemanagementsystemcanprovideasolidtechnicalsupportforbusinessdevelopmentandoperations.Withtherapiddevelopmentofscienceandtechnologytheapplicationofinformationtechnologyforwarehousemanagementlabormanagementhasincomparableadvantages.Forexamplethequeryiseasyfastlow-costlonglifehigheraccuracy.Theseadvantagescangreatlyimprovetheefficiencyofwarehousecargomanagemententerprisemanagementorganizedstorageofgoodsandcreatefavorableconditionsforthehealthydevelopmentofenterprises.BasedontheanalysisoftheexistingmanagementsystemdevelopmenttechnologytoachievetheEclipse-baseddevelopmentplatformtoJSPasawarehousemanagementsystemMySqlbackenddatabase.ThesystemhasthebasicinformationmanagementinventorymanagementinformationinquiryusermanagementandotherfunctionalmodulesthissystemisbasedonB/SmodestrictlyfollowtheMVCthree-tierarchitecture.KeywordsJSP;Servlet;B/S;MVC;SQLServer目录TOC\h\z\t标题12标题23标题34标题81标题1HYPERLINK\l_Toc317281786摘要IHYPERLINK\l_Toc317281788第1章绪论5HYPERLINK\l_Toc
3172817891.1选题背景5HYPERLINK\l_Toc
3172817901.2研究现状5HYPERLINK\l_Toc
3172817911.3课题的研究意义6HYPERLINK\l_Toc317281794第2章开发环境介绍7HYPERLINK\l_Toc
3172817972.3MYECLIPSE8HYPERLINK\l_Toc
3172817972.3JSP8HYPERLINK\l_Toc
3172817982.4MYSQL9HYPERLINK\l_Toc
3172818003.1MVC框架10HYPERLINK\l_Toc
3172818023.3业务流程分析12HYPERLINK\l_Toc317281821结论46HYPERLINK\l_Toc317281822致谢47HYPERLINK\l_Toc317281823参考文献48第1章绪论
1.1选题背景在计算机飞速发展的今天,将计算机这一高效的信息处理工具应用于仓库的日常管理已是势在必行,而且这也将为仓库管理带来前所未有的改变,它可以带来意想不到的效益,同时也会为企业的飞速发展提供无限潜力采用计算机管理信息系统已成为仓库管理科学化和现代化的重要标志,它给企业管理来了明显的经济效益和社会效益由于企业的物资供应管理往往是很复杂、繁锁的所掌握的物资种类众多,订货、管理、发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计计划报表繁多,因此物资管理必须实现计算化,而且必须根据企业的具体情况制定相应的方案以便提高工作效率以往企事业仓库管理员由于缺乏适当的软件而给其工作上如物资的计划,订货,核销拖收,验收入库,根据企业各个部门的需要来发送物资设备,并随时按期进行库存盘点,作台帐,根据企业领导和自身管理的需要按月,季,年进行统计分析,产生相应的报表时带来了很多不便,期间复杂,繁琐的业务让管理人员极多不便随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,人们对生活质量及工作环境的要求也越来越高,它已进入人类社会的各个领域并发挥着越来越重要的作用作为计算机应用的一部分,使用计算机对信息进行管理,具有与手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等这些优点能够极大地提高人事档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件如何通过计算机为我们完成更多的事情,进而达到办公自动化和优化日常工作的目的,也就成了一个大众化的课题仓库管理是与我们日常生活息息相关的问题大到公司、超市的仓库管理,小到图书馆的藏书管理,都可以认为是各种各样的仓库管理需求随着我国改革开放的不断深入,经济飞速的发展,企业要想生存、发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,仓库管理的全面自动化、信息化则是其中极其重要的部分为了加快仓库管理自动化的步伐,提高仓库的管理业务处理效率,建立仓库管理系统,尽可能地减少仓库管理的重复性和低效性,已变得十分必要仓库管理的操作自动化和信息的电子化,从而全面提高了仓库的管理水平虽然,最近又出现了很多新的管理模式,如基于零库存思想的沃尔玛特管理方式,但这些新的思想在中国大部分企业的管理中还是难以实现的所以如何设计好仓库管理系统,尽可能地减少仓库管理的重复性和低效性就成为当前最为重要的问题仓库管理系统的核心是入库、库存和出库之间的联系,如何处理好三者之间的关系是系统最为关键的部分另外,员工信息和供应商信息管理也是仓库管理中一个必不可少的部分,它提供着与入库和出库相关的地一些信息,使得整个系统更加完整,更加实用人工管理阶段和文件系统阶段都有着相当多的缺陷,诸如数据冗余性,数据不一致性以及数据联系弱等等也正是由于这些原因,促使人们研究新的数据管理技术,从而产生了数据库技术20世纪60年代末发生的三件大事,层次模型IMS系统的推出、关于网状模型DBTG报告的发表以及关于关系模型论文的连续发表标志着数据管理技术进入数据库阶段进入70年代以后,数据库技术得到迅速发展,开发了许多有效的产品并投入运行数据库系统克服了文件系统的缺陷,提供了对数据更高级更有效的管理当进入数据库阶段后,随着数据管理规模一再扩大,数据量急剧增加,为了提高效率,开始时,人们只是对文件系统加以扩充,在应用文件中建立了许多辅助索引,形成倒排文件系统但这并不能最终解决问题在20世纪60年代末,磁盘技术取得重要进展,具有数百兆容量和快速存取的磁盘陆续进入市场,成本也不高,为数据库技术的产生提供了良好的物质条件40多年来数据库技术得到了迅速发展,并已形成较为完整的理论体系和一大批实用系统并且,近年来,随着WorldWideWebWWW的猛增及Internet技术的迅速发展,数据库技术成为最热门技术之一面向对象软件的开发技术,也大大保障了软件开发的速度和效果随着计算机的普及,计算机等硬件价格也已经不再是什么天文数字因此,不管是从技术上,还是经济上,设计和开发一个仓库管理系统都已经具有较好的可行性
1.2研究现状 仓库管理系统是一个企业不可缺少的部分,它的内容对于企业的管理者和仓管人员来说都至关重要,为企业减少人力物力,为仓库管理带来方便,提高效益,仓库管理系统是针对企业仓库的商品货物的经常出入库和查询统计等方面工作而开发的管理软件仓库管理系统是用于完成众多仓库管理业务所面临的日常工作根据用户的要求,实现仓库的商品管理、出入库管理、查询管理及用户管理等功能用户通过相应的模块,对仓库里的商品的基本情况进行更新、删除和查询,对商品的出库和入库进行管理,对出入库明细进行查询,对使用该系统的用户进行更新、删除和查询,对库存数量进行查询,用户通过简单的操作即可轻松的管理仓库仓库管理系统开发的总体任务是实现企业物资设备管理的系统化、规范化和自动化,从而达到提高仓库管理效率的目的简洁一致,操作便利图形化界面,完备的物资管理功能,本系统基于好用、易用、美观的原则设计了统一的人机界面随着我国社会主义市场经济体制的确立和发展,商业流通领域进入了一个空前发展阶段,面临商界的激烈竞争,只有在多变的货品和顾客中挖掘并掌握市场需求,企业才能在竞争中生存和发展,如果能够选择一个好管理系统,把大量繁杂、看似毫无关系的数据,有机地结合起来,就能够为得出正确的决策做出事半功倍的效果随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用
1.3研究方法本文通过对企业的仓库管理现状及发展趋势分析,提出了基于B/S和MES的仓库管理系统方案通过理解B/S三层体系结构及有关方面的知识,实现系统的总体架构进行分析与设计,通过系统总体架构细分各个功能模块,并对仓库管理系统设计过程中出现的问题进行分析与研究本文主要的内容如下简述阐要仓库管理的研究背景,国内外的现状及发展趋势,存在的问题,以及仓库管理的重要性及意义2通过分析仓库管理系统,确定系统的各功能模块3简要了解B/S模式的三层体系结构、特点及工作原理,通过面向对象技术进行系统分析、建模,实现系统总体架构设计和功能模块详细设计的工作,确定实现仓库管理系统的策略和目标,以及类、关联、接口形式及实现操作的方法,并最终用Java语言实现系统,使开发的仓库管理系统能够满足用户需求根据仓库管理系统功能模块,用面向对象的技术建立数据库模型5采用面向对象的技术进行界面设计及有关代码的开发,在开发过程中对系统进行调试,以保证开发系统的质量6根据开发的系统进行总结,为以后进一步研究及开发做准备开发环境介绍MyEclipseMyEclipse,是在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境,主要用于Java、JavaEE以及移动应用的开发MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持相当不错MyEclipse企业级工作平台(MyEclipseEnterpriseWorkbench,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,HibernateMyEclipse是一个十分优秀的用于开发JavaJ2EE的Eclipse插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错MyEclipse可以支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具JSPJSP全名为JavaServerPages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件*.htm*.html中插入Java程序段Scriptlet和JSP标记tag,从而形成JSP文件,后缀名为*.jsp用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行它实现了Html语法中的java扩张(以%%形式)JSP与Servlet一样,是在服务器端执行的通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑JSP将网页逻辑与网页设计的显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易JSPJavaServerPages是一种动态页面技术,它的主要目的是将表示逻辑从Servlet中分离出来JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点MySQL简介MySQL是一个关系型数据库管理系统http://baike.baidu.com/view/
1450387.htm\thttp://baike.baidu.com/_blank,由瑞典MySQLhttp://baike.baidu.com/view/
24816.htm\thttp://baike.baidu.com/_blank AB公司开发,目前属于Oraclehttp://baike.baidu.com/view/
15020.htm\thttp://baike.baidu.com/_blank公司MySQLhttp://baike.baidu.com/view/
24816.htm\thttp://baike.baidu.com/_blank是最流行的关系型数据库管理系统http://baike.baidu.com/view/
1450387.htm\thttp://baike.baidu.com/_blank,在WEBhttp://baike.baidu.com/view/
3912.htm\thttp://baike.baidu.com/_blank应用方面MySQL是最好的RDBMSRelationalDatabaseManagementSystem关系数据库管理系统应用软件之一MySQL是一种关联数据库管理系统http://baike.baidu.com/view/
68446.htm\thttp://baike.baidu.com/_blank,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活http://baike.baidu.com/view/
474022.htm\thttp://baike.baidu.com/_blank性MySQL所使用的SQL语言是用于访问数据库http://baike.baidu.com/view/
1088.htm\thttp://baike.baidu.com/_blank的最常用标准化语言MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码http://baike.baidu.com/view/
394804.htm\thttp://baike.baidu.com/_blank这一特点,一般中小型网站的开发都选择MySQL作为网站数据库http://baike.baidu.com/view/
1088.htm\thttp://baike.baidu.com/_blank由于其社区版的性能卓越,搭配PHPhttp://baike.baidu.com/view/
99.htm\thttp://baike.baidu.com/_blank和Apachehttp://baike.baidu.com/view/
28283.htm\thttp://baike.baidu.com/_blank可组成良好的开发环境与其他的大型数据库http://baike.baidu.com/view/
1088.htm\thttp://baike.baidu.com/_blank例如Oraclehttp://baike.baidu.com/view/
15020.htm\thttp://baike.baidu.com/_blank、DB2http://baike.baidu.com/view/
387066.htm\thttp://baike.baidu.com/_blank、SQLServerhttp://baike.baidu.com/view/
9644.htm\thttp://baike.baidu.com/_blank等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度对于一般的个人使用者和中小型企业来说,MySQLhttp://baike.baidu.com/view/
24816.htm\thttp://baike.baidu.com/_blank提供的功能已经绰绰有余http://baike.baidu.com/view/
83153.htm\thttp://baike.baidu.com/_blank,而且由于MySQL是开放源码http://baike.baidu.com/view/
394804.htm\thttp://baike.baidu.com/_blank软件,因此可以大大降低总体拥有成本Linuxhttp://baike.baidu.com/view/
1634.htm\thttp://baike.baidu.com/_blank作为操作系统http://baike.baidu.com/view/
880.htm\thttp://baike.baidu.com/_blank,Apachehttp://baike.baidu.com/subview/28283/
5418752.htm\thttp://baike.baidu.com/_blank和Nginxhttp://baike.baidu.com/view/
926025.htm\thttp://baike.baidu.com/_blank作为Web服务器,MySQL作为数据库http://baike.baidu.com/view/
1088.htm\thttp://baike.baidu.com/_blank,PHP/Perl/Pythonhttp://baike.baidu.com/view/
21087.htm\thttp://baike.baidu.com/_blank作为服务器端脚本http://baike.baidu.com/view/
54.htm\thttp://baike.baidu.com/_blank解释器http://baike.baidu.com/view/
592974.htm\thttp://baike.baidu.com/_blank由于这四个软件都是免费或开放源码http://baike.baidu.com/view/
394804.htm\thttp://baike.baidu.com/_blank软件(FLOSShttp://baike.baidu.com/view/
1483082.htm\thttp://baike.baidu.com/_blank,因此使用这种方式不用花一分钱(除开人工成本)就可以建立起一个稳定、免费的网站系统http://baike.baidu.com/view/
3998653.htm\thttp://baike.baidu.com/_blank,被业界称为“LAMPhttp://baike.baidu.com/view/
365086.htm\thttp://baike.baidu.com/_blank“或“LNMPhttp://baike.baidu.com/view/
3714049.htm\thttp://baike.baidu.com/_blank”组合1.使用Chttp://baike.baidu.com/view/
10075.htm\thttp://baike.baidu.com/_blank和C++http://baike.baidu.com/view/
824.htm\thttp://baike.baidu.com/_blank编写,并使用了多种编译器http://baike.baidu.com/view/
487018.htm\thttp://baike.baidu.com/_blank进行测试,保证源代码http://baike.baidu.com/view/
60376.htm\thttp://baike.baidu.com/_blank的可移植性2.支持AIXhttp://baike.baidu.com/view/
349664.htm\thttp://baike.baidu.com/_blank、FreeBSDhttp://baike.baidu.com/view/
21459.htm\thttp://baike.baidu.com/_blank、HP-UX、Linuxhttp://baike.baidu.com/view/
1634.htm\thttp://baike.baidu.com/_blank、MacOS、Novellhttp://baike.baidu.com/view/
68826.htm\thttp://baike.baidu.com/_blankNetware、OpenBSDhttp://baike.baidu.com/view/
337596.htm\thttp://baike.baidu.com/_blank、OS/2Wrap、Solaris、Windowshttp://baike.baidu.com/view/
4821.htm\thttp://baike.baidu.com/_blank等多种操作系统http://baike.baidu.com/view/
880.htm\thttp://baike.baidu.com/_blank3.为多种编程语言http://baike.baidu.com/view/
552871.htm\thttp://baike.baidu.com/_blank提供了APIhttp://baike.baidu.com/view/
16068.htm\thttp://baike.baidu.com/_blank这些编程语言包括Chttp://baike.baidu.com/view/
10075.htm\thttp://baike.baidu.com/_blank、C++、Pythonhttp://baike.baidu.com/view/
21087.htm\thttp://baike.baidu.com/_blank、Javahttp://baike.baidu.com/view/
29.htm\thttp://baike.baidu.com/_blank、Perlhttp://baike.baidu.com/view/
46614.htm\thttp://baike.baidu.com/_blank、PHPhttp://baike.baidu.com/view/
99.htm\thttp://baike.baidu.com/_blank、Eiffel、Ruby.NET和Tcl等4.支持多线程http://baike.baidu.com/view/
65706.htm\thttp://baike.baidu.com/_blank,充分利用CPU资源5.优化的SQLhttp://baike.baidu.com/view/
34.htm\thttp://baike.baidu.com/_blank查询算法,有效地提高查询速度6.既能够作为一个单独的应用程序http://baike.baidu.com/view/
330120.htm\thttp://baike.baidu.com/_blank应用在客户端服务器http://baike.baidu.com/view/
3028815.htm\thttp://baike.baidu.com/_blank网络环境中,也能够作为一个库而嵌入到其他的软件中7.提供多语言支持,常见的编码http://baike.baidu.com/view/
237708.htm\thttp://baike.baidu.com/_blank如中文的GB2312http://baike.baidu.com/view/
93250.htm\thttp://baike.baidu.com/_blank、BIG5http://baike.baidu.com/view/
98718.htm\thttp://baike.baidu.com/_blank,日文的Shift_JIShttp://baike.baidu.com/view/
1568180.htm\thttp://baike.baidu.com/_blank等都可以用作数据表名和数据列名8.提供TCP/IPhttp://baike.baidu.com/view/
7729.htm\thttp://baike.baidu.com/_blank、ODBC和JDBChttp://baike.baidu.com/view/
25611.htm\thttp://baike.baidu.com/_blank等多种数据库http://baike.baidu.com/view/
1088.htm\thttp://baike.baidu.com/_blank连接途径9.提供用于管理、检查、优化数据库操作的管理工具http://baike.baidu.com/view/
1251417.htm\thttp://baike.baidu.com/_blank10.支持大型的数据库http://baike.baidu.com/view/
1088.htm\thttp://baike.baidu.com/_blank可以处理拥有上千万条记录的大型数据库http://baike.baidu.com/view/
1088.htm\thttp://baike.baidu.com/_blankMVC模式MVC全名是ModelViewController,是模型model-视图view-控制器controller的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器,使用MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同的表现形式比如一批统计数据可以分别用柱状图、饼图来表示C存在的目的则是确保M和V的同步,一旦M改变,V应该同步更新模型-视图-控制器(MVC)是XeroxPARC在二十世纪八十年代为编程语言Smalltalk-80发明的一种软件设计模式,已被广泛使用后来被推荐为Oracle旗下Sun公司JavaEE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎模型-视图-控制器模式是一个有用的工具箱,它有很多好处,但也有一些缺点系统需求分析可行性分析在实施一个项目之前,首先要对将要实施的项目进行可行性分析,确定项目是否值得进行并不是所有的问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模之内解决如果问题没有可行解的话,那么花费在这项工程上的任何时间、资源、人力和经费都是浪费的可行性分析的目的就是用最小的代价在尽可能短的时间内确定问题能否解决可行性研究的目的不是解决问题,而是确定问题是否值得去解如果是正确的就加以肯定可行性分析的实现,不能靠主观猜想,只能客观分析达到这个目的,所以就必须分析几种方法解决可能的弊端,从而判断原定的系统目标和规模是否实现,系统完成后所能带来的价值是否大于开发这个系统的投资价值因此,可行性研究实质上是要进行一次大大的压缩简化了系统分析和设计的过程我们应该给出系统的逻辑模型,然后从系统逻辑模型出发,寻找可供选择的解法,研究每一种解法的可行性一般说来,应从技术可行性、经济可行性、操作可行性等方面进行研究管理可行性信息化的仓储管理在如今的信息时代是大势所趋,而且随着现代管理理念、方法和途径的发展,仓储信息化管理手段日渐成熟,也必定会突飞猛进,所以从长远利益出发,主管领导对该项目的开发与实施会大力支持技术可行性本系统数据库选用MYSQL,开发IDE选择MyEclipse10,开发框架采用JSP+Servlet+JavaBean,技术成熟,系统稳定经济可行性采用仓储管理信息系统可取代原系统的单据手工传递工作,减少人工开支,节省资金,并且可大大提高信息量的取得,缩短信息处理周期,规划企业资源,使企业管理质量更上一个台阶营运可行性本系统操作简单,易于理解,只需通过简单熟悉,上手较快,库管人员均能进行操作,营运环境要求低面对于系统设计还应该以“标准性、安全性、兼容性、高效性、保密性、可维护性”为标准,在着眼于当前实用的基础上,为将来系统的扩展,升级留有余地软件的开发应能在较长时间内满足学校的发展需要通过可行性分析研究,认为系统的开发方案切实可行,可进行开发业务流程分析系统允许管理员和普通用户两种角色进行登录,管理员是整个系统的管理者,通过他的行为来管理系统的各项资源,包括分类,货物,员工,客户,出库,入库,同时,管理员也可以进行人员管理,角色管理,权限管理普通用户是系统的参与者,他可以修改个人信息,也可以进行一些简单模块的管理管理员和普通用户可以增删查改货物的分类,之后可以增删查改货物,每项货物必须属于一个货物分类,还可以增删查改员工和客户,入库操作时,通过已有的客户和已有的货物创建入库指令,出库时根据库存和客户创造出库指令,如果库存足够,则出库成功,否则出库失败进行每一项操作,系统都会记录在日志管理中,所有人均可查看同时,管理员还单独有用户管理,角色管理,权限管理这三个模块的权限权限管理用于规定系统中所有的权限,角色管理指定系统所有的角色,同时为各种角色配属权限,用户管理用于管理系统的使用者系统实现功能模块1后台管理功能模块
1.1密码修改管理员登录后点击密码修改模块,在旧密码处输入现在的登录密码,在新密码及确认密码处输入修改后的密码点击修改就会出现修改成功的对话框,下次登录就是用修改后的密码登录了
1.2货物分类管理点击货物分类管理后可以对分类信息进行审核,发现需要修改删除的管理员可以进行相应的操作,当有新的货物分类时需要增加时点击界面上的添加分类可以进行相应的增加
1.3货物信息管理管理员可以查看,修改,删除现有的货物,每次增加货物时,也相当于在仓库中为这个货物注册一个位置
1.4员工信息管理点击员工管理后可以对员工信息进行审核,发现需要修改删除的管理员可以进行相应的操作,当有新的员工时需要增加时点击界面上的添加员工可以进行相应的增加
1.5客户信息管理点击客户管理后可以对客户信息进行审核,发现需要修改删除的管理员可以进行相应的操作,当有新的客户时需要增加时点击界面上的添加客户可以进行相应的增加
1.6库存管理点击库存管理后可以对库存信息进行审核,点击入库按钮可以进行入库操作,入库商品必须是系统中已注册的货物,入库成功后库存中会增加相应数目,点击出库按钮进行出库操作,如果库存不足会提示并出库失败,出库成功库存会减去相应数目
1.7日志管理用户所有的操作系统均会自动记录,通过日志管理可查看所有用户的操作和时间
1.8权限管理用户可对权限进行增删查改,通过对权限的操作可以控制系统左侧功能按钮的数目
1.9角色管理用户可对角色进行增删查改,不同的角色登录系统时的功能权限不同
1.10用户信息管理点击用户管理后可以对用户信息进行审核,发现需要修改删除的管理员可以进行相应的操作,当有新的用户时需要增加时点击界面上的添加用户可以进行相应的增加,每增加一个用户相当于为系统添加一个账户系统用例图数据库设计概念结构设计数据库设计是建立数据库及其应用系统的技术,是信息系统开发和建设中的核心技术,具体说,数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)大型数据库的设计和开发是一项庞大的工程,是涉及多学科的综合性技术其开发周期长、耗资多、失败的风险也大必须把软件工程的原理和方法应用到数据库建设中来对于从事数据库设计的专业人员来讲,应该具备多方面的技术和知识主要有1.数据库的基本知识和数据库设计论述;2.计算机科学的基础知识和程序设计的方法和技术;3.软件工程的原理和方法;4.应用领域的知识在信息世界中,信息从客观事物出发流经数据库,通过决策机构最后又回到客观世界,信息的这一循环经历了三个领域信息世界,数据世界,现实世界现实世界的事物反映到人的头脑中,人的大脑对它有个认识过程,经过分析(选择、命名、分类等)进入信息世界这些信息再进一步加工、编码,然后进数据世界,而软件系统的开发工作需要考虑这两个方面的问题,也就是要考虑系统开发所需要的数据,以及如何对这些数据进行操作这两个问题贯穿了整个软件系统的开发过程,这也就是数据库的设计问题,软件设计的一个核心数据库可以被定义为是在计算机存储设备上合理存放的,相互关联的数据集合,这种集合具有以下特点·以一定的数据模型来组织数据,数据尽可能的不重复·以最优方式为某个特定组织的多种应用服务·其数据结构独立于使用它的应用程序·对数据的定义、操纵和控制,由数据库管理信息系统统一管理数据库设计的主要任务是针对一个给定的应用环境,在给定的硬件环境、操作系统、以及数据库管理信息系统等软件环境下,创建一个性能良好的数据库模式,建立数据库及其应用系统,使之能有效地收集、存储、操作和管理数据,满足用户地各类需求数据库设计通常是在一个通用的DBMS支持下,即利用现成的DBMS作为开发的基础概念设计在系统的数据库设计中先要对系统分析得到的数据词典中的数据存储进行分析分析数据存储之间的关系然后得出系统关系模式逻辑结构设计逻辑结构设计的任务就是把概念结构设计阶段设计好的基本E-R图转换为与选用的具体机器上的数据库管理系统产品所支持得逞数据模型相符合的逻辑结构根据数据库中的几个表分别绘制数据库的实体图管理员的实体图如图客户的实体图如图商品实体图如图数据库逻辑结构数据库的设计通常是以一个已经存在的数据库管理系统为基础的,常用的数据库管理系统有MYSQL,SQLServerOracle等我采用了MYSQL数据库管理系统主要数据库表详细信息如下admin管理员表主要用于保存管理员的基本信息,该表的结构如表所示列名说明类型备注adminid管理员IDInt不允许空adminnumber管理员编号Varchar20不允许空password密码Varchar20不允许空Adminname管理员姓名Varchar20不允许空roleid角色IDInt不允许空goods商品表主要用于记录商品信息,该表的结构如表所示字段说明类型长度备注goodstididint主键typeid分类int不允许空goodsname名称varchar50不允许空price价格double不允许空remark备注varchar50不允许空status状态int不允许空详细设计管理员登陆用户登录实现的过程主要有几个步骤,首先对用户输入的信息进行保存,首先判断验证码是否相同,如果相同再利用从数据库中获取的数据进行检索看是不是有用户输入的信息在数据库中是否存在如果存在就返回正确的结果,如果不正确就返回错误的结果如果结果数据库中存在就显示登录成功,如果数据库不存在就显示失败请重新登录登录页面的页面效果如下用户登录的主要代码如下publicStringgetCheckCode{intwidth=90;intheight=26;BufferedImageimage=newBufferedImagewidthheightBufferedImage.TYPE_INT_RGB;response.setContentTypeimage/jpeg;OutputStreamout=null;try{out=response.getOutputStream;}catchIOExceptione1{e
1.printStackTrace;}Graphicsgs=image.getGraphics;gs.setColorColor.white;gs.fillRect00widthheight;gs.setFontnewFont黑体Font.BOLD27;Randomrandom=newRandom;forinti=0;i10;i++{gs.setColornewColorrandom.nextInt255random.nextInt255random.nextInt255;gs.drawLinerandom.nextInt90random.nextInt30random.nextInt90random.nextInt30;}StringBuildersub=newStringBuilder;forinti=0;i4;i++{gs.setColornewColorrandom.nextInt255random.nextInt255random.nextInt255;Stringstr=String.valueOfrandom.nextInt10;gs.drawStringstr15*i+125;sub.appendstr;}session.setAttributecheckCodesub.toString;try{ImageIO.writeimagejpegout;}catchIOExceptione{e.printStackTrace;}finally{ifout!=null{try{out.close;}catchIOExceptione{e.printStackTrace;}}}returnnull;}publicStringvalidateCheckCode{StringcheckCode=Stringsession.getAttributecheckCode;Stringcaptcha=request.getParametercaptcha;ifcheckCode.equalscaptcha{returntrue;}else{message=验证码错误!;returnfalse;}}publicStringvalidateSpecialist{SpecialistServicespecialistService=newSpecialistService;Specialistspe=specialistService.validateSpecialistServicespecialist;ifspe!=null{session.setAttributespecialistspe;LogServicelogService=newLogService;logService.addLogService登录getSpecialistId;returnlogin;}else{request.setAttributemessage用户名或密码错误!;returnerror;}}分页器各种页面上的分页主要代码如下packagecom.hygj.util;importjava.util.List;publicclassPagerE{privateintpageIndex;privateintpageSize;privateintpageOffset;privateinttotalRecord;privateinttotalPage;privateListEdatas;privateStringstyle;publicintgetPageIndex{returnpageIndex;}publicvoidsetPageIndexintpageIndex{this.pageIndex=pageIndex;}publicintgetPageSize{returnpageSize;}publicvoidsetPageSizeintpageSize{this.pageSize=pageSize;}publicintgetTotalRecord{returntotalRecord;}publicvoidsetTotalRecordinttotalRecord{this.totalRecord=totalRecord;}publicintgetTotalPage{returnintMath.ceildoubletotalRecord/pageSize;}publicvoidsetTotalPageinttotalPage{this.totalPage=totalPage;}publicListEgetDatas{returndatas;}publicvoidsetDatasListEdatas{this.datas=datas;}publicintgetPageOffset{returnpageOffset;}publicvoidsetPageOffsetintpageOffset{this.pageOffset=pageOffset;}publicStringgetStyle{iftotalRecord==0{StringBuildersub=newStringBuilder;sub.appendtableborder=0cellpadding=0cellspacing=0id=\paging-table\;sub.appendtr;sub.appendtdimgclass=\page-far-left\/td;sub.appendtdimgclass=\page-left\/td;sub.appendtdnbsp;nbsp;nbsp;nbsp;nbsp;Page0/0nbsp;nbsp;nbsp;nbsp;nbsp;/td;sub.appendtdimgclass=\page-right\/td;sub.appendtdimgclass=\page-far-right\/td;sub.appendtd;sub.append/td;sub.append/tr;sub.append/table;returnsub.toString;}else{StringBuildersub=newStringBuilder;sub.appendtableborder=0cellpadding=0cellspacing=0id=\paging-table\;sub.appendtr;sub.appendtdahref=javascript:document.getElementByIdpageIndex.value=1;document.forms
[0].submit;imgclass=\page-far-left\/a/td;sub.appendtdahref=javascript:document.getElementByIdpageIndex.value=+this.getPageIndex==11:this.getPageIndex-1+;document.forms
[0].submit;imgclass=\page-left\/a/td;sub.appendtdnbsp;nbsp;nbsp;nbsp;nbsp;Page+this.getPageIndex+/+this.getTotalPage+nbsp;nbsp;nbsp;nbsp;nbsp;/td;sub.appendtdahref=javascript:document.getElementByIdpageIndex.value=+this.getPageIndex==this.getTotalPagethis.getTotalPage:this.getPageIndex+1+;document.forms
[0].submit;imgclass=\page-right\/a/td;sub.appendtdahref=javascript:document.getElementByIdpageIndex.value=+this.getTotalPage+;document.forms
[0].submit;imgclass=\page-far-right\/a/td;sub.appendtd;sub.appendselectonchange=\javascript:document.getElementByIdpageIndex.value=this.value;document.forms
[0].submit;\;forinti=1;i=this.getTotalPage;i++{sub.appendoption+this.getPageIndex==iselected=selected:+value=+i+第+i+页/option;}sub.append/select;sub.append/td;sub.append/tr;sub.append/table;returnsub.toString;}}publicStringgetSecondStyle{iftotalRecord==0{StringBuildersub=newStringBuilder;sub.appendtableborder=0cellpadding=0cellspacing=0id=\paging-table\;sub.appendtr;sub.appendtdimgclass=\page-far-left\/td;sub.appendtdimgclass=\page-left\/td;sub.appendtdnbsp;nbsp;nbsp;nbsp;nbsp;Page0/0nbsp;nbsp;nbsp;nbsp;nbsp;/td;sub.appendtdimgclass=\page-right\/td;sub.appendtdimgclass=\page-far-right\/td;sub.appendtd;sub.append/td;sub.append/tr;sub.append/table;returnsub.toString;}else{StringBuildersub=newStringBuilder;sub.appendtableborder=0cellpadding=0cellspacing=0id=\paging-table\;sub.appendtr;sub.appendtdahref=javascript:document.getElementByIdpageIndex.value=1;document.forms
[1].submit;imgclass=\page-far-left\/a/td;sub.appendtdahref=javascript:document.getElementByIdpageIndex.value=+this.getPageIndex==11:this.getPageIndex-1+;document.forms
[1].submit;imgclass=\page-left\/a/td;sub.appendtdnbsp;nbsp;nbsp;nbsp;nbsp;Page+this.getPageIndex+/+this.getTotalPage+nbsp;nbsp;nbsp;nbsp;nbsp;/td;sub.appendtdahref=javascript:document.getElementByIdpageIndex.value=+this.getPageIndex==this.getTotalPagethis.getTotalPage:this.getPageIndex+1+;document.forms
[1].submit;imgclass=\page-right\/a/td;sub.appendtdahref=javascript:document.getElementByIdpageIndex.value=+this.getTotalPage+;document.forms
[1].submit;imgclass=\page-far-right\/a/td;sub.appendtd;sub.appendselectonchange=\javascript:document.getElementByIdpageIndex.value=this.value;document.forms
[1].submit;\;forinti=1;i=this.getTotalPage;i++{sub.appendoption+this.getPageIndex==iselected=selected:+value=+i+第+i+页/option;}sub.append/select;sub.append/td;sub.append/tr;sub.append/table;returnsub.toString;}}}Mybatis框架sql统一写在xml中用户sql语句的实现效果如下xmlversion=
1.0encoding=UTF-8!DOCTYPEmapperPUBLIC-//mybatis.org//DTDMapper
3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtdmappernamespace=com.hygj.mapper.SpecialistMapperselectid=validateSpecialistparameterType=SpecialistresultType=Specialistselectspecialistidspecialistnamepasswordroleidfromspecialistwherespecialistname=#{specialistName}andpassword=#{password}/selectupdateid=deleteSpecialistByRoleIdparameterType=intupdatespecialistsetstatus=0whereroleid=#{roleId}/updateselectid=findSpecialistListparameterType=MapresultType=Specialistselects.specialistidspecialistids.specialistnamespecialistnames.roleidroleidr.rolenamerolenames.ageages.sexidsexidfromspecialistsrolerwheres.roleid=r.roleidandstatus=1iftest=specialistName!=nullands.specialistnamelike#{specialistName}/ififtest=roleId!=nullands.roleid=#{roleId}/ififtest=sexId!=nullands.sexid=#{sexId}/iforderbys.${sort}${order}limit#{pageOffset}#{pageSize}/selectselectid=countSpecialistparameterType=MapresultType=intselectcounts.specialistidfromspecialistsrolerwheres.roleid=r.roleidandstatus=1iftest=specialistName!=nullands.specialistnamelike#{specialistName}/ififtest=roleId!=nullands.roleid=#{roleId}/ififtest=sexId!=nullands.sexid=#{sexId}/if/selectinsertid=addSpecialistparameterType=Specialistinsertintospecialistspecialistnamepasswordroleidagesexidmobilephoneqqaddressstatusvalues#{specialistName}#{specialistName}#{roleId}#{age}#{sexId}#{mobilePhone}#{qq}#{address}1/insertupdateid=deleteSpecialistparameterType=intupdatespecialistsetstatus=0wherespecialistid=#{specialistId}/updateselectid=getSpecialistparameterType=intresultType=Specialistselects.specialistidspecialistids.specialistnamespecialistnamer.rolenamerolenames.ageages.sexidsexids.mobilephonemobilephones.qqqqs.addressaddressfromspecialistsrolerwheres.specialistid=#{specialistId}ands.roleid=r.roleid/selectupdateid=updateSpecialistparameterType=Specialistupdatespecialistsetspecialistname=#{specialistName}roleid=#{roleId}age=#{age}sexid=#{sexId}mobilephone=#{mobilePhone}qq=#{qq}address=#{address}wherespecialistid=#{specialistId}/updateupdateid=changePasswordparameterType=Specialistupdatespecialistsetpassword=#{password}wherespecialistId=#{specialistId}/updatedeleteid=rolldeletefromspecialist/deleteupdateid=personalUpdateparameterType=Specialistupdatespecialistsetspecialistname=#{specialistName}age=#{age}sexid=#{sexId}mobilephone=#{mobilePhone}qq=#{qq}address=#{address}wherespecialistid=#{specialistId}/updateselectid=getLabourSpecialistListresultType=Specialistselectspecialistidspecialistnamefromspecialistwhereroleid=2andstatus=1/selectselectid=getSpecialistNameByIdparameterType=intresultType=Stringselectspecialistnamefromspecialistwherespecialistid=#{specialistId}/selectselectid=getManagerListresultType=Specialistselectspecialistidspecialistnamefromspecialistwherestatus=1androleid=1/select/mapper系统测试软件测试的定义测试是程序的执行过程,目的在于发现所开发程序的错误系统测试完整的定义应该是在精心控制的系统环境下,采用相应的技术手段,利用一组事先构造好的测试实例(TestCases)执行程序以发现程序中存在的错误,并确认系统功能、性能符合需求的一个综合过程系统的开发过程中,面对着人员、技术、环境等一系列错综复杂的问题,开发人员对问题的认识与实际状况可能会存在一定的差异,项目组相关人员之间的交流和协调也不可能完美无缺,因此,在软件生存周期的每个阶段都不可避免地会产生差错我们力求在每个阶段结束之前通过严格的技术审查,尽可能早地发现并纠正差错但是,经验表明,审查并不能发现所有差错,而前一阶段的差错还可能导致后续阶段更多的差错如果在软件投入生产性运行之前,没有发现并及时纠正存在的大部分差错,则这些差错迟早会在运行过程中暴露出来那时不仅改正这些错误的代价更高,而且往往会造成非常严重的后果对于软件开发机构来说,将整个项目工作量的40%用于软件测试的情况并不少见软件测试的工作量与系统的可靠性要求成正比关系极端情况下,测试一个与人类安全有密切关系的软件(如航空/航天飞行控制、核反应推监控、导弹控制等)的费用可能是软件开发总费用的3到5倍!软件测试的目标是以最少的时间和人力找出软件中潜在的各种错误和缺陷如对软件实施了严格、规范的测试,就能够发现其中大部分的错误软件测试能够确认软件实现的功能和性能与用户需求说明的一致性软件测试还能收集到足够的测试结果为软件可靠性评价提供依据软件测试的过程上节中介绍了软件测试的概念以及方法,下面就要对我所做的程序进行一下实际的测试,来验证一下网站系统的安全性、可靠性以及稳定性为了保证测试的可靠性,还找来了其它非开发人员来协助进行测试因为这个网站系统是自己开发的,自己所做的测试难免会有遗漏之处,而找来其他的人来进行测试会更有效的达到测试的效果测试主要按照下面的顺序进行系统不足由于时间仓促在开发系统中难免不会那面全面,所以系统中会存在一些不足页面不是很美观,页面美观对一个网站有很重要的,给用户提供一个友好美观的页面对一个系统来说至关重要系统对课程的描述熟悉比较少,应该对课程信息进行详细的描述,例如增加课程周数,课程授课老师等信息对大型网站的开发缓存技术的应用很重要,当网速慢或者同时在线用户很多的时候要对系统使用缓存技术系统体验,后台添加动态信息的时候没有做到页面不刷新也就是Ajax技术,如果能好的应用Ajax技术对系统的用户体验将有更大的提高系统的搜索比较简单,有的只能按但条件进行搜索,这样对用查找对象的时候不会太准确所以系统还有很多欠缺的地方在今后的学习和开发系统的时候要尽力对系统做好架构,能够尽力开发出一套成熟,快速高效的系统结论历时一个学期,我的毕业设计在线花店系统网站终于完成了在这段时间里,对进行网站整体规划、设计与实现有了比较深入细致地了解对于网页设计方面,以前在做课程设计时接触过,所以在设计前,我在较短地时间里就很快地对MicrosoftVisualStudio做了较为详细地复习和巩固,这样在设计时,就能很快的上手进行网站界面的设计了在具体设计时,考虑到网页的整体美观和整齐化,我使用表格、框架来规范页面,收到了比较满意的效果在一个网站的设计中,数据库的建立也是很重要的这里我使用SQLServer2000来建数据库,因为它操作起来相对比较简单数据库建好后就用ASP.NET脚本语言实现数据库与网页的连接网站后台管理系统的基本功能都已经实现,管理员可以对访客信息以及给本购物系统网站的留言等内容进行管理遗憾的是由于时间、知识能力等各种因素的影响,本网站客户端的小部分程序没有完全实现,惆怅何似!通过这次毕业设计,我基本明确了一个网站系统从设计到开发的大致流程和重点关注的方向,对各个主流设计软件有了很深刻的了解同时对ASP.NET技术也有了基本的了解和掌握,使我受益匪浅在这几个月中,从当初的懵懵懂懂,到现在的完成,期间不仅是分析与设计的过程,更是学习的过程毕业设计让我将三年半的所学知识从书面的了解,到认真的复习,再到设计过程中的应用经过这三个阶段,对于大学本科所学的知识,不再是考试以前知道的,考后就会忘记,让我真正的达到了融会贯通,当然,计算机各个相关领域的知识是很渊博的,与其他专业相比知识的更新更是迅速的,不可能在这三个月内都全部掌握,但在设计的过程中,做到处处有知识,处处皆推敲,这样的过程才是真正的学习与提高在这三个月中,所学的,所看的,所用的虽然都是以前的所学,但为了考试而学和真正的应用而学让我的所得真正的有很大的不同实践是检验真理的唯一标准,我们对于科学,对于专业的态度就是要做到这一点在设计过程中,有一点让我体会很深,那就是在设计之前一定要有一个具体详细的计划,将设计任务分块,明确在什么时间段完成什么任务,然后有计划有步骤的一步步完成毕业设计,而不是开始松散,到最后加班这次的毕业设计是对我的一个很好的锻炼,我所选的毕业设计题目是利用ASP建立购物系统网站系统,在设计之前我甚至连ASP是什么都不清楚,但是在我不断的自主学习、请教老师以及和同学探讨之后,我已基本熟悉和掌握了ASP技术,并最终将毕业设计按时完成致谢本论文是在指导老师的精心指导下完成的论文从选题、撰写、修改到定稿,老师都给予了悉心的指导且倾注了大量的心血并且我从老师身上学到了很多东西老师认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高,这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导在此对老师表示最诚挚的感谢!在毕业设计过程中,每当我徘徊不前时许多老师和同学给了我很多的启示和帮助,从而使我能顺利进行并完成我的毕业设计在此我十分感谢这些给过我帮助的老师和同学参考文献
[1]郭瑞军,李杰,初晓璐.ASP数据库开发实例精粹.北京电子工业出版社,
2005.
[2]金秀,冯沃辉,施鸿翔.ASP动态网页培训教程.北京冶金工业出版社,
2000.
[3]宋彦浩.ASP建网技术源代码公开.北京中国水利水电出版社,
2001.
[4]沈精虎.Dreamweaver中文版基础培训教程.北京人民邮电出版社,
2002.
[5]张堪,候世国,所玉君.Access2000中文版入门与提高.北京清华大学出版社,
1999.
[6]魏洪斌,周鑫,刘志江.DreamweaverMX网页设计.北京清华大学出版社,
2004.
[7]李世杰.ActiveServerPagesASP
3.0网页设计手册.北京:清华大学出版社,1999
[8]奚江华.ASP.NET
2.0开发详解.电子工业出版社,2006
[9]孙践知.网络程序设计案例教程—ASP.NET+SQLServer(C#实现).北京清华大学出版社
2005.
[10]陈伟编著.SQLServer2005数据库应用与开发教程.北京清华大学出版社,2007
[11]朱玉超、鞠艳、王代勇编著.ASP.NET项目开发教程.北京电子工业出版社,2005
[12]ChristianWenz.ProgrammingASP.NETAJAX.南京东南大学出版社,
2005.
[13]ALZabirOmar.BuildingaWeb
2.0PortalwithASP.NET
3.
5.南京东南大学出版社,
2005.
[14]BenfengChenVincentY.Shen.TransformingWebPagestoBecomeStandard-CompliantthroughReverseEngineering.ACMNewYorkNYUSA,20061。