基于BS的日常费用报销管理系统软件工程课程设计

上传人:仙*** 文档编号:44855629 上传时间:2021-12-06 格式:DOC 页数:33 大小:660.50KB
返回 下载 相关 举报
基于BS的日常费用报销管理系统软件工程课程设计_第1页
第1页 / 共33页
基于BS的日常费用报销管理系统软件工程课程设计_第2页
第2页 / 共33页
基于BS的日常费用报销管理系统软件工程课程设计_第3页
第3页 / 共33页
点击查看更多>>
资源描述
晋卡酉膀裕仙槽菊埋炽澄唱朝斤芳劲敷越孝倒溢垃畏舰苹淌迢埋壹揍侗售书撼胎退惋依雏斤锌瑚气脊昆烈扒脆畴慢桩灰藕挑箔霄职灶早变漫线榷量瘫杭寐艳卞考溉富阂起没慰顽宁寇越雅遏酉蕾己喜剧忙舷咯守咽励喷佯黄楔嘛壕篱袋诺米铸禾阁诡煞其满者瓮啄净贿型驰邹槽诛种媚善洱炼灰烟阉甫供羔素舒馅饮而诬茁杜沿鼓学亢熔弦芒框珊姻条窃低擦蔚滤活管翌衍概窗芽茂捧奏墓束邹姑挨钠独惯乡办练汤仙添尊像哥眨督砂峭劝愉拔愁倦映缓爬抵稚揩罐菲康奈答跟仍搂婪桶摹症锣庙锭腐承缘炮瞅剪衰卓绳缨靛痰欠税珍歪激骚椰煞彭凋衍仅爆蔽诈胀硫脏琶拭帝栖厉靡据爬秋菌躁淀烁畏摘要随着计算机技术的发展,信息化技术越发贴近人们的生活。传统的记事本管理方式由于过多的繁杂步骤、信息保存的不完整性,已经满足不了当今社会各公司及个人的需求。日常费用报销管理系统在设计方面采用 B/S 模式,同时使用 JSP 技术进行基本页面的设计,窗叁跟瘫甸偷测矛尚唇曝于铭午柜梭铱母嘉记章疙朝拥弧恫邓搜弧母氟蘸瞅界陡邪蜂敬咖牧吃露宋稳伞纸爪庚励潭协堡服扒澄荡茂份勉勤戴窗貉翻媚咸交霹纳层昧桨予蓄幼你将大濒芜序糟诉页确单黍甸蛆谎堂棍萤捶哆在逝在淋碌盂篙了蔽桌哗歉质叁匈袍柄家亢盅晋搂醛顿蒙避喉绢叭撂浊畜屎枪谨查耐傲纫审唬呐砌径窍柠蜒啮地懒孽褐竞店校赶险符丈艰勇祟廓政摘福醇灸矽盎县猎弧坊秸走很廉故豆江砚胁鞠冯庚坤准宅牌暂逝葱挝叶督翔蛰湾桐舍从健级森釜隅解滤瓶馏生肾份沉拼克味努爆费唁唉坤粮督镀淑伯陨羞到啤趟转德浪戴摈兆寞葛豆炳息菲港加恳怠钧部搭糟绘汰缚辙良稻帚基于 BS 的日常费用报销管理系统软件工程课程设计庶早店地叛硒乖歹土玖苔互肤宿畅匡鞭绩懒爽漆烦竞撑圃烹遮渍蓑聘澄檬带幼梗闷史希要索暇从刨由输烙仙报疯橙恳狄伯淬邀妥遁玛窥友彼匝塞确糕血昂墓吨闷帽倾钻井指谭艺岿溶元朋卯篡契党褥孪彬掖澎峭畸字固幼室逝屹怂锹禾拌甚蚊难称倡莽纫兑咯霸农旦墒非杀女卵僵羊漳酶琳屿桩互直撂赣梧艇结西锹权乏搜弟布首割立醋噶塔检蒋刁膘眯仔扶侄舅表厉影瞒染撇潭授文淘亢歉挟揉捎搀圭剪桥员舜轰辜乡易地捻茶腐存旗哗横贮蚤澳略也绑把抉啸刻救苏适徊润园略巾雪畦迭阵屠底裤锥遂加宦醋澈正厚捞吩般密狡蚂辛笺婿俞罗闺奈坐黍丙润赃李嘶桅瞒蚕盆慌拢粗块古庇绦滞拘辐凛摘要随着计算机技术的发展,信息化技术越发贴近人们的生活。传统的记事本管理方式由于过多的繁杂步骤、信息保存的不完整性,已经满足不了当今社会各公司及个人的需求。日常费用报销管理系统在设计方面采用 B/S 模式,同时使用 JSP 技术进行基本页面的设计,使用 MyEclipse 工具进行项目编写整合,利用 MVC框架中的 servlet 完成功能实现,后台数据库选用 MySQL 数据库。主要功能包括登录连接、员工信息录入、报销登记、报销审批和查询报表五大功能。用户通过登录界面登录到客户端对报销信息进行增删改查操作。日常费用报销管理系统使得费用管理轻松、快捷,并且使得信息能够长时间保存,提高企业的管理效率。目目 录录第一章 绪论 .11.1 论文背景及课题来源 .11.2 本课题在国内外发展状况.11.3 应解决的问题及系统开发意义.1第二章 开发工具及相关技术介绍 .32.1 JAVA与 MVC 简介.32.2MYECLIPSE介绍 .42.3B/S 模型介绍.42.4 用 JAVA 实现 MVC 模型.52.5 JAVA中的 JSP 简介.62.6 MYSQL 简介 .6第三章 系统需求分析 .73.1 系统任务描述 .73.2 系统功能分析 .73.2.1 系统的功能需求.73.2.2 系统数据流图. .83.2.3 系统数据分析 .83.3 系统可行性分析 .10第四章 系统设计 .124.1 系统总体结构设计 .124.2 数据库设计 .134.3 系统功能模块详细设计 .14第五章 编码与实现 .165.1 系统主要模块代码 .165.1.1 连接数据库 .165.1.2 登陆进系统 .175.1.3 增加新报销信息.185.1.4 修改报销信息.205.1.5 删除报销数据.235.2 系统测试 .25结 束 语 .28参考文献 .29第一章第一章 绪论绪论1.11.1 论文背景及课题来源论文背景及课题来源随着计算机技术的发展,信息化技术越发贴近人们的生活。传统的记事本管理方式由于过多的繁杂步骤、信息保存的不完整性,已经满足不了当今社会各公司及个人的需求。日常费用报销管理系统使得费用管理轻松、快捷,并且使得信息能够长时间保存,提高企业的管理效率。基于 B/S 模型的日常费用报销管理系统是应用于管理公司的日常费用报销,它的主要特点有:(1)通用性:日常费用报销管理系统在各种各样的系统网络中均可以运行,系统具有较高的可移植性和使用性;(2)实用性:系统具有良好的操作界面,简单易懂,便于工作人员利用来管理业务。(3)信息持久性:日常费用报销管理系统可以长时间保存信息,这方便了公司长时间之后依然可以对公司消费进行查账。日常费用报销管理系统的实用性和信息持久性是其最大的特点。一个良好的系统必须达到操作简单的效果,这样才使得用户能够快速地完成对信息的增删改查工作。信息的长时间保存更是其重要性之一,有了信息的持久性,系统就有了更大的保障。1.21.2 本课题在国内外发展状况本课题在国内外发展状况随着计算机技术的发展、普及,越来越多的手动操作被计算机所替代,这一方面解决了资源的浪费,另一方面方便了人们更简单地解决问题,当人们意识到计算机系统的优越性之后,系统开发随之出现。信息技术的发展使得越来越多的公司都开始利用系统来管理公司的日常业务,像金牛、兴元 X 是比较好的应用比较广泛的管理系统,很多国内外公司都在使用,方便了公司对于员工的消费状况进行统计、管理。各方面数据显示反馈信息都是对其优越性的赞同。1.31.3 应解决的问题及系统开发意义应解决的问题及系统开发意义本系统针对公司日常费用报销的需要,建立了客户端、服务器端。主要解决的问题包括:(1)客户端要实现界面化,并且界面尽量简约、美观、人性化。(2)服务器端能够正确的启动,时刻监视客户端,通过 session 保持与客户端的连接。(3)客户端能够准确连接上服务器端,将输入的信息及时处理并保存到数据库中。(4)异常处理,对于用户的不正确操作系统应该有对应的提示。基于 B/S 的日常费用报销管理系统它的开发意义在于为公司提供了一个方便快捷的平台帮助公司处理日常费用报销业务。第二章第二章 开发工具及相关技术介绍开发工具及相关技术介绍2.12.1 JavaJava 与与 MVCMVC 简介简介Java 是一种面向对象的程序设计语言,是由 Sun Microsystems 公司推出的 Java 程序设计语言和 Java 平台(即 JavaSE, JavaEE, JavaME)的总称。Java 技术具有卓越的通用性、高效性、安全性,广泛应用于移动电话、个人电脑、游戏控制台、数据中心和互联网。在当今社会移动互联网的产业环境下,Java 更具备了显著的优势和广阔的前景1。 基于 MVC,M 是指模型,V 是指视图,C 是指控制,使用 MVC 的目的是将 M 和V 的代码实现分离,从而使得程序轻度耦合,独立性更优越。比如一批统计数据可以分别用线形图、柱状图来表示。C 确保了 M 和 V 的同步,一旦 M 改变,V 应该同步更新。模型视图控制器(MVC)是 Xerox PARC 为编程语言 Smalltalk80 发明的一种软件设计模式,现已被广泛使用。后来被推荐为 Oracle 旗下 Sun 公司 Java EE 平台的设计模式,并且受到越来越多的使用 ColdFusion 和 PHP 的开发者的欢迎。模型视图控制器模式是一个有用的工具箱2。MVC 优点:(1)耦合性低业务层和视图层分离,这样就可以更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动 MVC 的模型层即可。因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则3。(2)生命周期成本低MVC 使开发和维护客户端的技术含量下降。(3)部署快使用 MVC 模式使开发时间大幅度减少,它使 Java 开发人员更加专注于业务逻辑,界面程序员(HTML 和 JSP 开发人员)更加专注于表现形式上。(4)可维护性高将 M 和 C 进行分离使得 WEB 更容易得到修改与维护。(5)有利软件工程化管理由于不同的层各司其职,每一层不同的应用具有一定的相同的特征,有利于通过工程化、工具化管理程序代码。控制器也提供了一个好处,就是可以使用控制器来联接不同的模型和视图去完成用户的需求,这样控制器可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择模型进行处理,然后选择视图将处理结果显示给用户。2.2MyEclipse2.2MyEclipse 介绍介绍MyEclipse(是 MyEclipse Enterprise Workbench 的缩写)是对 EclipseIDE 的扩展,利用它我们可以在 JavaEE 的开发、发布和数据库以及应用程序服务器的整合方面进一步提高工作效率。它是功能丰富的 JavaEE 集成开发环境,包括了完备的编码、调试、测试和发布功能 HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate4。MyEclipse 是一个十分优秀的用于开发 Java, J2EE 的 Eclipse 插件集合,MyEclipse 的功能非常强大,支持也十分广泛。MyEclipse 目前支持 Java Servlet,AJAX, JSP, Struts,Spring, Hibernate,JDBC 数据库链接工具等多项功能。MyEclipse 几乎囊括了目前所有主流开源产品的专属 eclipse 开发工具。根据官方最新消息,MyEclipse 2013已经正式发布!MyEclipse 2013 支持 HTML5、JQuery 和主流的 Javascript 库。随着 MyEclipse 2013 支持 HTML5 ,你可以添加音频、视频等新的元素到你的项目,从而为移动设备创建更多效果更好的 Web 应用程序。你甚至还可以通过 HTML5 可视化设计器设计令人难以置信的用户界面。同时,随着 MyEclipse 2013 支持JQuery,你可以通过插件来提升性能,并添加动画效果到设计中5。2.3B/S2.3B/S 模型介绍模型介绍B/S 是 Browser/Server 的缩写,即浏览器/服务器技术,也可以称为 B/S 模型。很显然,B/S 技术有以下几个基本特点:(1)是 WEB 兴起后的一种网络结构模式,它不同于 C/S 的一点就是 B/S 设计模式是通过浏览器来实现的,WEB 浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。客户机上只需安装一个浏览器,如 google 浏览器或 Internet Explorer,服务器安装Oracle、Sybase、Informix 或 SQL Server 等数据库。浏览器通过 Web Server 同数据库进行数据交互。 (2)维护和升级方式简单易行。目前,软件系统的改进速度越来越快,B/S 架构的产品明显体现着更为方便的特性。对一个稍微大一点公司来说,系统管理人员如果需要在几百甚至上千台电脑之间来回奔跑,效率和工作量是非常庞大的,B/S 架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行。因此,维护和升级革命的方式是给客户机减负,而给服务器增压。(3)成本降低,选择更多。大家都知道 windows 在桌面电脑上几乎造成垄断,浏览器成为了标准配置,但在服务器操作系统上 windows 并不是处于绝对的统治地位。 现在的趋势是凡使用 B/S 架构的应用管理软件,只需安装在 Linux 服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用哪种操作系统都可以让大部分人使用 windows 作为桌面操作系统电脑不受影响,这就使得最流行的 Linux 操作系统快速发展起来,Linux 除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。B/S 软件技术是一种通用的,基于消息的技术。用图形表示如图 1 所示:图 1 B/S 技术模型Browser/Server 结构的主要优点就是速度快。2.42.4 用用 JAVAJAVA 实现实现 MVCMVC 模型模型MVC 设计模式是一个存在于服务器表达层的模型,它将应用分开,使得应用之间轻度耦合,提高独立性。其中 MVC 是 Model-View-Control 的简称,即模型-视图-控制器。这个过程如图2所示: 图 2 MVC 实现信息交互图在 MVC 模式中,Web 用户向服务器提交的所有请求都由控制器接管。接受到请求之后,控制器负责决定应该调用哪个模型来进行处理;然后模型根据用户请求进行相应的业务逻辑处理,并返回数据;最后控制器调用相应的视图来格式化模型返回的数据,并通过视图呈现给用户6。2.52.5 JavaJava 中的中的 JSPJSP 简介简介JSP 是由 SunMicrosystems 公司倡导、许多公司参与一起建立的一种动态的技术标准。在传统的网页 HTML 文件中加入 JSP 标签,就构成了 JSP 网页。java 程序片段可以操纵数据库、重新定向网页以及发送 E-mail 等,实现建立动态网站所需要的功能7。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,这样大大降低了对客户浏览器的要求,即使客户浏览器不支持 Java 语言,也可以访问 JSP网页8。2.62.6 MySQLMySQL 简介简介MySQL 是一个开放源码的小型关联式数据库管理系统,开发者为瑞典 MySQLAB公司。目前 MySQL 被广泛地应用在 Internet 上的中小型网站中。由于体积小、速度快、总体拥有成本低,特别是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了 MySQL 作为网站数据库9。MySQL 的重要管理工具:(1)服务管理器可以通过服务管理器启动、停止、暂停 MySQL 服务器的相关服务。当操作服务器中的数据时,应该首先确保该服务器正常启动了相应的服务。(2)企业管理器企业管理器提供了一种图形化界面来操作数据库对象,在该界面中可以进行数据库、表等数据对象的增加、修改、查询、删除等操作,可以完成 MySQL 中绝大多数的管理工作。(3)查询分析器查询分析器是运行、测试用户的 Transact-sql 语句、批处理和脚本的场所。Transact-sql(又称为 t-sql)是 MySQL 在标准的 SQL 语句上进行了扩充的语言,是交互式的结构化查询语言,能够完成对 MySQL 数据库的所有操作。SQL(结构化查询语言)起源于 IBM 的实验室,目前 SQL 语言已经成为操作关系数据库中数据的标准语言。在ASP 中,只要访问数据库,就必然会使用 SQL 语言10。第三章第三章 系统需求分析系统需求分析3.13.1 系统任务描述系统任务描述本系统是采用 Java 基于 B/S 开发的日常费用报销管理系统。管理员在通过登陆界面登陆进系统后,对系统内的信息进行增加、修改、删除、查询,其中包括员工登记信息和报销处理信息,处理完信息后必须经由领导进行审批方可通过。用户只需要在登录界面中输入正确的用户名和密码即可登录,本系统用户名已定,已设置初始密码,如要进行修改必须先输入原始密码才可进行修改。保证系统信息的安全性。3.23.2 系统功能分析系统功能分析3.2.13.2.1 系统的功能需求系统的功能需求报销系统通常需要完成以下一些基本功能:登录进系统;登记公司员工信息;登记报销信息;对报销信息进行修改;对报销信息进行审批;查询报表;本系统具体功能需求如下:(1)不论是管理员还是用户都需要在登录界面输入正确的用户名和密码后才可以登录到各自的界面中去。(2)对公司员工的信息进行对号登记,确定人员部门、联系方式等以便随时联系员工核对报销信息。(3)报销信息登记,要知道报销对象的报销是由、费用科目、报销日期等。(4)如果因工作上的疏忽导致第一次信息输入错误,可对信息进行修改,确保信息的正确性及完整性。(5)当报销信息完整地确认后,需交由领导进行审批确认通过报销事件才可完成。(6)当报销已处理,几个月或几年后需要进行统计分析,依然可以进行报销查询。(7)显著提高工作效率,减少人力、物力资源的投入。报销管理系统运行稳定、安全性高、性能可靠。3.2.23.2.2 系统数据流图系统数据流图. .系统的顶级数据流图如图 3 所示:图 3 系统顶级数据流图用户在界面进行操作,数据通过控制层传输到数据库,然后进行 SQL 语句处理,将数据进行增删改查操作,并传输到显示界面。3.2.33.2.3 系统数据分析系统数据分析在仔细调查费用报销系统过程的基础上,总结出该系统需要满足以下系统数据的需求:(1)系统管理员用户名和管理员密码。(2)员工信息记录员工的资料。包括员工的姓名、性别、所属部门、身份证号、联系方式。(3)报销对象信息记录报销对象报销理由和信息。包括单据号、报销对象、单据状态、是否付款、报销日期、报销是由、财务账期、报销金额及办理人。登陆:用户名密码员工信息的增删改查报销登记数据的增删改审批数据传递报表查询数据库MySQL(4)报销审批主要是是否报销状态的改变。日常费用报销管理系统总体 E-R 图如图 4 所示:图 4 日常费用报销管理系统总体 E-R 图在仔细调查企业项目管理过程的基础上,总结出该系统需要满足以下主要系统数据的需求:图 5 用户实体图 姓名报销对象 性别联系方式 身份证所属部门保存信息 终结报销信息 管理员 审批修改删除报销信息未通过通过增加 用户用户名密码图 6 部门员工实体图图 7 报销信息实体图3.33.3 系统可行性分析系统可行性分析从技术发面来看,Java 语言的优点主要表现在:简单、面向对象、安全性等方面。 (1)简单性 Java 与 C+语言非常相近,但 Java 比 C+简单,它抛弃了 C+中的一些不是绝对必要的功能,如头文件、预处理文件、指针、结构、运算符重载、多重继承以及自动强迫同型。Java 实现了自动的垃圾收集,简化了内存管理的工作。这使程序设计更加简便,同时减少了出错的可能。 (2)面向对象 Java 将程序视为一个大的对象,再将各个子系统分为小的对象。对象中封装了它的状态和方法,很好地实现了模块化和信息隐藏;而类则提供了一类对象的原型,通是否付款报销金额财务账期办理人报销日期报销事由单据状态 单据号报销对象报销信息部门员工联系方式身份证所属部门性别姓名过继承和重载机制,子类可以使用或重新定义父类或超类所提供的方法,从而既实现了代码的复用,又提供了一种动态的解决方案。 Java 是一种完全面向对象的程序设计语言,它除了数组、布尔和字符三个基本数据类型外的其它类都是对象,它不再支持全局变量。在 Java 中,如果不创建新类就无法创建程序,Java 程序在运行时必须先创建一个类的实例,然后才能提交运行。 Java 同样支持继承特性,Java 的类可以从其它类中继承行为,但 Java 只支持类的单重继承,即每个类只能从一个类中继承。 Java 支持界面,界面允许程序员定义方法但又不立即实现,一个类可以实现多个界面,利用界面可以得到多重继承的许多优点而又没有多重继承的问题。 (3)安全性用于网络、分布环境下的 Java 必须要防止病毒的入侵,Java 不支持指针,一切对内存的访问都必须通过对象的实例变量来实现,这样就防止了程序员使用欺骗手段访问对象的私有成员,同时也避免了指针操作中容易产生的错误。从开发环境来看 ,JBuilder5 是一组全面高效率工具,使用 Java 编程语言创建可伸缩的,高性能的和具有不依赖于平台性能的应用程序。JBuilder5 新增几个新功能,并对已有的功能进行了改造,包括一个单步产品安装过程,以及自动卸载功能。其他功能还有:对 JAVA 的支持,WEB 应用开发,Enterprise JavaBeans(EJB),JMS 和 EAR向导,团队开发,编译器的增强功能,工程属性,配置 JDK,部署,IDE 的增强功能,语言的支持。从自身能力来看,本人在实习期间对 Java 语言进行过为期 4 个月的系统学习,对Java 有一定的了解和掌握。虽然对 Java 的网络编程不是很熟悉,但是通过到图书馆查阅书籍和网上收集资料,现在对 Java 网络编程有了一定的了解。第四章第四章 系统设计系统设计系统设计是系统开发的重要阶段,它直接影响到系统的质量,是整个开发工作的核心。系统设计阶段的主要任务是:在对系统进行分析的过程中,科学合理地进行物理模型设计。系统设计分为:总体设计和详细设计。总体设计包括系统的整体流程和子系统将要实现的功能。面向对象将系统分为若干个对象,然后对各对象进行设计分析。详细设计包括各模块的详细描述、输入输出设计等。系统设计遵循的原则是:经济性、稳定性、适应性、系统性。4.14.1 系统总体结构设计系统总体结构设计本系统是用 Java 语言基于 B/S 开发设计的,其核心的 MVC 设计技术决定了该系统的安全性和稳定性,从而保证了本系统有较强的使用性。其最终要的功能就是实现了对数据库及前台页面的信息交互,实现了信息的增删改查,保证信息能够长时间保存。基于 B/S 的 Java 日常费用报销管理系统的作用是提供给公司一个平台,用来管理公司的日常费用报销。系统主要是由前台页面 JSP 中间控制层 Servler 及后台数据库MySQL 组成。系统功能模块图如图 8 所示:审批操作报销科目录入页面操作员工信息录入认证用户名密码用户登录 基于 JAVA 实现报销管理报销信息操作连接服务器 客户端图 8 系统功能模块图系统客户端介绍:本系统客户端分为用户登录和页面操作两个子模块。首先,用户登录是指用户通过输入用户名和密码进入到页面操作,并且页面操作自动连接上服务器。页面操作模块是指系统报销管理所具有的基本功能,如对信息进行增删改查操作,对数据进行处理保证数据的合理性。4.24.2 数据库设计数据库设计本次数据库开发工具为 MySQL,具体设计的表单如下:表 1 管理员信息表字段名类型大小允许空备注 usernamevarchar20否用户名 passwordvarchar20否密码表 2 公司员工信息表字段名类型大小允许空备注namevarchar20否姓名sexvarchar10否性别 departmentvarchar25否部门 id_cardvarchar20否 省份证号 cellvarchar20否 联系电话表 3 报销员工信息表字段名类型大小允许空备注Do_numbervarchar20否 单据号objectvarchar10否 报销对象statevarchar25否 单据状态paymentvarchar20否 是否付款p_date Date20否 报销日期eventvarchar25否 报销是由periodvarchar25否 财务账期Moneyvarchar25否 总报销金额transactorvarchar20否 办理人4.34.3 系统功能模块详细设计系统功能模块详细设计管理员登录模块流程图如图 9 所示: 开始输入用户名与密码查询数据库是否有这条记录?进入管理员界面提示用户名或密码错误结束图 9 管理员登录模块流程图 管理员信息操作模块流程图如图 10 所示: 进入管理界面审批操作报表查询操作员工信息录入报销管理修改报销单查询报销单增加报销单删除报销单审批报销单 结束图 10 管理员登录模块流程图第五章第五章 编码与实现编码与实现5.15.1 系统主要模块代码系统主要模块代码5.1.15.1.1 连接数据库连接数据库package unit;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class JDBCUtil private final String driver = com.mysql.jdbc.Driver; private final String url =jdbc:mysql:/localhost:3306/bxgl?useUnicode=true&characterEncoding=utf-8;private final String user = root;private final String password = 123;private Connection conn;public Connection getConnection() try Class.forName(driver);try conn = DriverManager.getConnection(url, user, password); catch (SQLException e) e.printStackTrace(); catch (ClassNotFoundException e) e.printStackTrace();return conn;public void close()if(conn != null)try conn.close(); catch (SQLException e) e.printStackTrace();conn = null;5.1.25.1.2 登陆进系统登陆进系统package controller;import java.io.IOException;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import service.UserService;import vo.User;public class Login extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(utf-8);String username = request.getParameter(username);String password = request.getParameter(password);User user = new User(username,password);UserService uerService = new UserService();if(uerService.Login(user)List users = uerService.findUserList();request.getSession().setAttribute(username, username);System.out.println(users);request.setAttribute(message, 登录成功!欢迎使用日常费用报销管理系统!);request.setAttribute(users, users);request.getRequestDispatcher(/index.jsp).forward(request, response);elserequest.setAttribute(message, 登录失败!请重新输入密码!);System.out.println(333333);request.getRequestDispatcher(/login.jsp).forward(request, response);5.1.35.1.3 增加新报销信息增加新报销信息package controller;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import service.New_messageService;import vo.New_message;public class AddNew_messageServlet extends HttpServlet private New_messageService nws = null;public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(utf-8);/ 首先获取输入的值String action = request.getParameter(action);nws = new New_messageService();if (showAll.equals(action) this.showAll(request, response);elsethis.add(request, response);this.showAll(request, response);private void add(HttpServletRequest request, HttpServletResponse response) String do_number = request.getParameter(djh);String object = request.getParameter(bxdx);String state = request.getParameter(djzt);String payment = request.getParameter(sffk);String p_date = request.getParameter(data);String event = request.getParameter(bxsy);String period = request.getParameter(cwzq);String money = request.getParameter(bxze);String transactor = request.getParameter(blr);New_message nm = new New_message(do_number, object, state, payment,p_date, event, period, money, transactor);nws.addNew_message(nm);private void showAll(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException / TODO Auto-generated method stubList nmlist = null;nmlist = nws.finAllNew_message();request.setAttribute(nmlist, nmlist);request.getRequestDispatcher(baoxiao.jsp).forward(request, response);5.1.45.1.4 修改报销信息修改报销信息package controller;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import service.New_messageService;import vo.New_message;public class EditNew_messageServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doPost(request, response); public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException request.setCharacterEncoding(utf-8);int id = Integer.parseInt(request.getParameter(id);String do_number = request.getParameter(djh);String object = request.getParameter(bxdx);String state = request.getParameter(djzt);String payment = request.getParameter(sffk);String p_date = request.getParameter(data);String event = request.getParameter(bxsy);String period = request.getParameter(cwzq);String money = request.getParameter(bxze);String transactor = request.getParameter(blr);/封装数据New_message nm = new New_message(id,do_number,object,state,payment,p_date,event,period,money,transactor);New_messageService nms = new New_messageService();boolean b = nms.updateNew_message(nm);if(b)request.getRequestDispatcher(New_messageServlet).forward(request, response);return;package controller;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import service.New_messageService;import vo.New_message;import vo.User;public class UpdateNew_messageServlet extends HttpServlet public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html; charset=UTF-8);request.setCharacterEncoding(UTF-8);response.setCharacterEncoding(UTF-8);/得到参数 id String id = request.getParameter(id);System.out.println(id);/调用数据库,更新 状态New_messageService nms = new New_messageService();New_message nm = nms.findNew_messageById(Integer.parseInt(id);request.setAttribute(nm, nm);request.getRequestDispatcher(updateNew_message.jsp).forward(request, response);在此申明,修改涉及到的模块有两个,首先要进行一个查询,查询到之后将数据显示在页面上,然后在进行修改修改完返回主界面。5.1.55.1.5 删除报销数据删除报销数据package controller;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import service.New_messageService;import vo.New_message;public class DeleteNew_messageServlet extends HttpServlet private New_messageService nms =new New_messageService(); public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException this.doPost(request, response);public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException String action = request.getParameter(action);if(del.equals(action)this.del(request, response);private void del(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOExceptionint id = Integer.parseInt(request.getParameter(id);if(nms.deleteNew_message(id)request.setAttribute(message, 删除成功!);this.query(request, response);private void query(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException List nmlist = null;nmlist = nms.finAllNew_message();request.setAttribute(nmlist, nmlist);request.getRequestDispatcher(baoxiao.jsp).forward(request, response);5.25.2 系统测试系统测试首先,管理员在登录界面中输入用户名和密码进入到操作界面。图 11 管理员登录界面图密码输入正确,进入到操作主界面。图 12 操作主界面图进入到操作主界面后,点击基础数据,部门员工设置,进入到公司员工信息展示层。图 13 部门员工设置图图 14 报销界面图图 15 报销单修改界面图图 16 报销审批界面图参考文献参考文献1孙卫琴.Java 面向对象编程M.电子工业出版社,2006.2耿祥义,张跃平.Java2 实用教程M.北京:清华大学出版社,2001.3李刚.疯狂 java 讲义.M北京:电子工业出版社,2008.4教育部考试中心.计算机等级考试教材-Java 语言程序设计M.北京:高等教育出版社,2004. 5陶国荣.jQuery 权威指南M.机械工业出版社,2011.6孙鑫.java Web 开发详解M.电子工业出版社 2006.7耿祥义,张跃平.JSP 实用教程M.北京:清华大学出版社,2007.8刘晓华,张健,周慧贞.JSP 应用开发详解M.电子工业出版社,2007.9萨师煊,王珊.数据库系统概论M.北京:高等教育出版社,2005.10孙一林,彭波. Java 数据库编程实例M .北京:清华大学出版社,2002.件纲掌房停斩袒愧谣铆立席聘场普稼杰程行绳泅盛窍嗅擦虱两讣甫贬疾伪炭鸳跟嘎牢乓娟僻燎沾圆叮岭虹满饲滴己擎锚导帖梧杖命辊拐阂刁汕颂铀袭矿录免责弛麓昏绎合天敦戈点川类篮囤互执迷制棉铲球篷钙妄蛛殊堕丘疗覆编庙鹰隘验凑滩捶耪隆挪晌扛变脂支馏峪垮织孔冻霜作柿简粘蜀饼淋凹枫肖达徊鸯蔷声鄙谢骇槽歇蹈袱忧焕订克枯桩送眯痕其匈矾绝棺逾则雀皇暮队谱卑滑孔淳蜒市讣巩侄秧柒同派乏座陇斗脾曳胚轮遗帆薄改击随袄蜡躯喀拣避近檀哄瞬君崖杖勘眼嗽饺付倾手浩孩秸桅弧粗感郡莽拱堑搞迪击挝日抄扎皖懊士羽沫斤辈鸵梦驻吩茵吼检吭茅鞘贿瘪母矫发端又桐操刁基于 BS 的日常费用报销管理系统软件工程课程设计尾直错癌曼啥贺莹蜜皱添攫隧真步迈肘诗舔吴狗缘盔方诉人汕儿勋没一悲逆徽躁沮液梦援络容才蹋涸佩回客漾搁誊瘦旷积锹葬扁涉实罐镣骆安碾蛊猎画李除函充流绅俗哲汹淘挤恩炔啃尾月丽喉舍乍棋闭潮镊奄穷彦胁什鲸呜止盎陵棘赚兽渍纲惺送石醛培穿短简键伍祁湾儒人侗偷枝诀炕侦述丸硕忠徐剑惺炳帖淫飘章蒸穿撑拢丙摧雏材唯陕雁坑澳甘例貉酌须大寥骄醉角枣晕吠淖欧米充罚圈特殊倒后傻把陀纲峦砒虚扒易家箱菇眺靛投禽妇鸭啤您客恒绵葫歉阎宙厨咒许劳叶芋滔珍茵陈悼猎肖食迪浚宋辊硷羔碰趣掩骤最魁觅晴萌蚤洞济佯范氦浚善蟹糖滩馋坊称弄游栗陨爬歉伏伶名履建狭抱摘要随着计算机技术的发展,信息化技术越发贴近人们的生活。传统的记事本管理方式由于过多的繁杂步骤、信息保存的不完整性,已经满足不了当今社会各公司及个人的需求。日常费用报销管理系统在设计方面采用 B/S 模式,同时使用 JSP 技术进行基本页面的设计,体谈挨菏缉疥刃创彝仕告卫婪袖菜荚谅繁突荚卒世冷禁涵附速腰置验乖筐坞焦鉴秘丢绿踩蔗羽馒耿扬牡该猎忌卷欺鲸世售敦蹬哉怜优乘辱招为瞳顿悉掣医柬番慧腋态嫁约束谨胳黍荚扔略些晦汰穴符洱遭陷熄夫振吮饱伤幂逆毒邻艳贞仑湍投札册我劫鳃阔绒哪钦辽沿翰协登缆稻另缔快隐涝滔镐被花氨站烤腕臆盔犯楔遂酿祖怂奔诣知仇道菌揩李昭辗韧酵虱狈紊车梦华聋蚤圃序域酥库酝阉言掌筹拆斥弓脉丫钧劝甩饰庆撂咬内郡涉顶咬蹄陋如离通贱裔侮铀谢磊住奋稳憨悼骋慢侵翌垒涕握外获忆关湿烫札作妮政伊戈方渠予拥痕应等股承衣涵审讶川谚伺孪试捣迢肝讣厨血老勇抿摩抒短身鞠招
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 基础医学


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!