还剩55页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
山东商业职业技术学院毕业设计(论文)题目XX面粉厂综合管理系统姓名专业班级指导老师二零一二年十二月二十五日毕业设计(论文)写作指导须知1.毕业设计(论文)是教学过程中一个十分重要的环节,是学生运用所学知识正确分析和解决实际问题的一个重要方面,是我校培养应用型人才的要求2.指导教师应为具有讲师以上或相应职称的有关专业人员,且专业对口(指所指导专业同所聘教师专业职称相一致)经学校审查同意后,才能指导学生的毕业设计(论文)3.指导教师指导学生人数,必须按我校规定执行4.学生应以严肃认真、实事求是的态度完成作业要独立思考、自己动手、不得合作、抄袭、或是找人代笔5.毕业设计(论文)选题要符合专业培养目标的要求设计(论文)写作要做到论点明确、论据充分,说理透彻,语言准确恰当,书面整洁,字迹工整,字数符合我校的有关要求并在规定的时间内完成6.答辩过程中学生要严肃认真,文明礼貌,谦虚谨慎,认真回答答辩主持人、委员等提出的问题7.填报有关表格时,应按项目要求逐项填实、填全、填清姓名张友慧学号201008270210学制三年班级软件1002班级负责人王灿论文题目牛牛面粉厂综合管理系统指导教师王灿职称或职务指导教师评语成绩指导教师签名年月日答辩情况记录答辩题目答辩情况正确基本正确经提示回答不正确未回答此表格由主持答辩的同志填写;正确为优秀;基本正确为良好;经提示回答为及格;不正确,不回答为不及格答辩委员会(或小组)评语成绩答辩人签名年月日毕业论文审查不及格补审意见成绩补审人签名职称年月日毕业设计(论文)中文摘要(格式要求宋体,小四,
1.5倍行距,写完后删除括号内容)xx面粉厂综合管理系统系统中文摘要面粉厂管理工作是目前关乎人们生活的重点要素之一,如何能科学有效的管理好面粉厂工作,是当前人们非常关心的问题因此,实现面粉厂的信息化管理有着十分重要的实践意义本系统是采用JSP作为前台开发工具,SQLServer作为后台数据库平台的基于B/S的两层模式的管理系统旨在实现对现有的企业人事管理工作中遇到的各种情况和大量数据进行数据库存储的基础上,设计并完成对其各种数据的分类、查询和统计,在深入研究的过程中,尽可能实现各类方便友好的操作界面和数据报表关键字SQLServer,B/S,数据库,数据报表毕业设计(论文)外文摘要(格式要求Calibri西文正文,小四,
1.5倍行距,写完后删除括号内容)Title:NiuniuflourmillintegratedmanagementsystemAbstract:Theflourmanagementisthekeyfactorforpeopletoliveonehowcanascientificandeffectivemanagementgoodflourmillworkisthecurrentpeopleareveryconcernedabouttheproblem.Thereforetorealizeinformationmanagementoftheflourhasveryimportantpracticalsignificance.ThissystemistouseJSPasforegrounddevelopmenttoolsSQLServerasabackenddatabaseplatformbasedonB/Stwolayermodelofmanagementsystem.Aimingattherealizationoftheexistingenterprisepersonnelmanagementinthevariousconditionsandalargenumberofdatastoragedatabaseonthebasisofdesignandcompletethevariousdataclassificationqueryandstatisticsintheprocessoffurtherresearchasfaraspossibletorealizeallkindsofconvenientfriendlyoperationinterfaceanddatareport.Thekeyword:SQLsServerB/Sdatabasethedatagramtable目录(格式要求宋体,小四,
1.5倍行距,写完后删除括号内容)TOC\o1-3\h\u1绪论
11.1问题定义及内容简介
11.
1.1问题定义
11.
1.2内容简介
11.2研究背景与研究意义
31.
2.1研究背景
31.
2.2研究意义
31.3课题调研与可行性分析
41.
3.1课题调研
41.
3.2可行性分析
41.4论文各章内容介绍42系统需求分析
62.1系统功能分析
62.2系统功能模块分析
82.3数据字典
102.4数据处理流程分析163系统设计
183.1新系统简介
193.2系统总体结构设计
193.3数据库设计194主要模块设计
234.1基本信息管理23系统用户管理23客户管理
244.
1.1添加个人信息
244.
1.2修改个人信息
254.
1.3产品类型管理255使用说明书
265.1新系统功能及运行环境简介
265.
1.1新系统功能简介
265.2语言和数据库简介
275.
2.1Java介绍
275.
2.2SQLServer2005介绍
305.3运行环境简介
315.3系统操作手册
315.
3.1系统安装手册
315.
3.2系统操作说明326所遇到的困难及其解决方案337结论34致谢35参考文献36附录37(格式要求宋体,小四,
1.5倍行距,写完后删除括号内容)1绪论牛牛面粉厂综合管理系统以小麦和面粉之间的变换以及面粉厂和客户之间的交易为中心,是人类日常生活的一个划时代的进步面粉,是人类日常生活不可或缺的宝贵资源,因而,面粉厂的规范化与量化管理,已成为现代民生中不可缺少的重要组成部分如何提高面粉厂的工作效率,提高小麦变成面粉的产量、降低人工成本、量化对面粉的管理,成为人们重点关心的问题,面粉厂原有的计算机软件难以满足面粉管理的要求,需要思想、技术更为先进的面粉厂综合管理系统这次我的毕业设计的课题是“牛牛面粉厂综合管理系统”,目的是对面粉厂的交易、资源信息进行全面的规划与管理,帮助面粉厂做到
1、完善体系管理
2、加强流程控制
3、实现量化管理
4、科学管理小麦和面粉,优化分类,全面反映面粉情况
5、管理交易财务信息,使财务明确化
1.1问题定义及内容简介
1.
1.1问题定义本次毕业设计所解决的主要问题是如何通过设计一个切实可行的软件系统用于解决目前牛牛面粉厂综合管理中信息处理总量大,内容繁多,手段落后的现状所涉及的处理内容包括开发一个能够及时处理信息更新的管理系统;开发一个为广大用户提供信息服务的信息查询系统,功能包括原粮兑换面粉、面粉厂业务管理、系统管理、面粉厂业务账务、面粉厂统计系统等;开发一个系统信息管理系统,进行相关权限的设置,密码修改等基于Web的管理系统,就是用Web万维网作为媒介,传送信息,通过网络实现信息的自动化管理构建基于Web的宾馆管理信息化平台,可以克服传统人事信息管理中的局限性,形成一种主动的、协作的、开放的管理模式,既节省资源,又不受空间限制围绕这个目标,应用平台的开发设计必须突出坚持管理内容与技术手段相结合,以内容为主的主体性要求;既要立足当今先进技术,又要考虑未来技术发展的前瞻性要求;适应于各种软硬件环境,兼顾不同系统要求,适用于不同水平用户群的通用性要求;以尽可能低廉的投入而获得尽可能高效的经济效益的经济性要求因此,开发和研制优秀的人事信息管理信息化平台对提高经济效益有着积极的意义
1.
1.2内容简介本课题主要是解决牛牛面粉厂综合管理的问题,包括原粮兑换面粉、面粉厂业务管理、系统管理、面粉厂业务账务、面粉厂统计系统等管理,目标是使牛牛面粉厂综合管理系统在智能管理上也做数据的信息化、快速化和网络化本系统主要包括员工信息、财务信息管理模块和内部信息交流模块在每一模块中,必须做到良好的用户界面,并尽量做到在单表或多表中根据单一或复合条件进行查询及修改等功能,能够对输入的数据做智能、快速处理我做的这个人事信息管理系统主要包括原粮兑换面粉、面粉厂业务管理、系统管理、面粉厂业务账务、面粉厂统计系统
1、原粮兑换面粉根据需求农户每年秋收之后,会将小麦存于面粉厂,当农户需要时,可以将小麦兑换成面粉,同样可以将小麦或小麦加工过程中产生的辅料(麸皮)领用回家或出售给面粉厂,面粉厂可以向供应商购买小麦,向粮油店及农户出售小麦、面粉或麸皮
2、面粉厂业务管理面粉厂原粮购置是对面粉厂购置原粮的业务进行记录;面粉厂面粉加工是对面粉加工的业务进行记录;面粉厂产品销售主要是对面粉厂销售业务进行记录;面粉厂库存管理对农户存储在面粉厂的原粮进行出售或者出库管理3.面粉厂系统管理系统账户管理主要是对面粉厂管理员的信息进行操作,可以点击增加按钮增加管理员,可以点击用户名修改管理员的个人信息,也可以根据ID删除一个或多个(批量删除)管理员信息客户管理主要是对面粉厂客户的信息进行操作,可以点击增加按钮增加客户信息,可以点击用户名修改客户的个人信息,也可以根据ID删除一个或多个(批量删除)客户信息产品类型管理产品类型中,已经预设了原粮的种类就是一种为小麦,ID为1,类型ID为1,生产的产出品为麸皮,ID为2,类型ID为2,目前的产品管理主要用来添加面粉厂的产出品面粉的种类,面粉种类的类型ID为3,这个也是预先设置好的4.面粉厂财务业务欠款催收对农户所欠的加工款等费用进行催收提示;收支流水登记就是普通的一个记账本;
5.面粉厂统计系统面粉厂库存清点查询所有的库存产品的库存量,需要查询视图,视图中涉及到面粉厂库存表与商品表面粉厂统计查询进行各种最后的统计工作,包括原粮入库统计,面粉领用统计,面粉加工统计,产品出库查询,原粮购置查询,产品销售查询,收入支出查询除了以上几个功能,本软件的操作十分简单,并且有良好的易管理性和可扩展性,相信会给牛牛面粉厂的管理带来很大的方便本系统采用的数据库为SQLServer首先需要安装SQLServer安装好后,打开企业管理器,建立一个名为FlourData的数据库,按照设计在新建的FlourData数据库中建立牛牛面粉厂综合管理系统的各个用户数据表,建立好数据库之后,还需要建立网站页面与后台服务器的连接三年的大学生活即将结束,这次设计将是一次实实在在的练兵,是我们三年大学生活的总结和汇报,在这次设计中,我们将以前两年所学的知识融合到一起,并加以灵活运用,计算机所涉及的领域是多方面的,本课题主要运用了JSP、SQL等工具,这次设计锻炼了我们分析问题、发现问题及解决问题的能力,使我们的水平真实的经受了一次考验在这里,我们向三年来辛勤培养我们的老师说声谢谢,尤其是王灿老师在设计期间的细心指导,在此,我们再一次表示感谢!本次设计从十月份下旬开始,十二月下旬结束,历时两个多月,在此期间,我们进行了资料收集、数据功能的实现,以及调试,反复的修改,直到最后完工,由于这是第一次进行数据库设计,经验不足,而且时间也非常紧张,因此,也存在着不少问题,敬请各位老师及同学提出批评建议
1.2研究背景与研究意义
1.
2.1研究背景随着计算机技术在各个领域的广泛应用,近年来,计算机技术在面粉厂综合管理系统领域也迅速的得到了所要的发展,可是就牛牛面粉厂综合管理来说,计算机的应用就相对的比较复杂了因为根据不同的牛牛面粉厂综合管理条件和硬件条件,相对会有不同的管理需求,同时,因为这个系统要求要和用户具有交互功能,因此要有具备发布系统,同时在界面设计上也要求要有一定的美观,给人以美的视觉效果目前这个牛牛面粉厂综合管理系统是就目前大多数面粉厂信息管理的现实条件出发设计,能够满足大部分管理的需要,同时为了照顾个别宾馆管理情况,此宾馆系统在设计上具有再开发的能力,在功能上可以再予扩充,从而成为可以根据具体服务项目而设计的应用软件
1.
2.2研究意义我们现在所做的课题就是在目前的情形下,从人事信息管理目前所现有的实际条件出发,利用企业所拥有的计算机硬件设备和软件条件,实现一整套关于人事信息管理的软件为我们的人事管理人员减少点负担,从根本上做到科学化、高效率化管理这一目的,这也是牛牛面粉厂综合管理领域发展的必然趋势应用的效益与以后的发展前景随着网络化企业管理区域的发展,面粉厂综合管理在我国得到越来越迅猛的发展,在面粉厂管理制度上便有更高的要求,如何制定一套能够适合大多数面粉厂管理的网络应用平台是现在人事管理人员亟待解决的问题,本课题研究从宾馆实际需求情况出发,根据宾馆现有的硬件设施,改变以往固定的管理模式,做到跟客户无距离的交流、登记,为他们提供更为方便、直接的服务,对宾馆的管理工作进行了科学、规范的管理,调动面粉厂管理人员以及工作人员的积极性,提高他们的工作效率,对宾馆的服务和智能化管理工作是一个推动而调动全民工作积极性,也便于领导实施监督管理,提高面粉厂管理工作的业务素质同时也可以加强与员工的交流,便于员工对企业的硬件设施以及环境做更详细的了解,实现无距离接触,无距离登记,真正建设成适应新形势下要求的面粉厂管理系统,为面粉厂的管理系统带来不可估量的利润价值
1.3课题调研与可行性分析
1.
3.1课题调研
(1).与实践活动和相关的文件和资料由教师提供,自己查找相关资料
(2).本课题要求学生有熟练的JSP网络编程开发能力,有较强的自学能力以及一定的关系数据库理论开发功底
(3).具有对面粉厂基本信息处理的能力
(4).具有系统管理安全性保证
1.
3.2可行性分析由于开发此牛牛面粉厂综合管理系统需要的环境有Windows2000及以上系统基于WEB的网络编程开发语言JSP,需要操作人员熟练使用JSP语言进行网络编程SQL语言,需要操作人员熟练使用进行相关数据库的操作具有一定的数据库开发功底及编程能力使用的网页设计开发工具JSP和SQLServer相结合,优美的界面设计再加上Windows2000稳定的运行环境的支持和开发人员的过硬技术,从功能和性能上完全都满足系统的要求因此从技术方面讲开发此牛牛面粉厂综合管理系统是可行的
1.4论文各章内容介绍第2章内容主要是系统的需求分析包括,系统功能需求分析,业务流、数据流分析,数据字典第3章主要内容是系统的设计包括,系统总体结构设计,系统数据模型设计及系统开发与运行环境确定第4章主要内容是员工信息登记主模块的设计包括,员工信息登记主模块的体系结构设计和界面设计、详细设计第5章主要内容是人事信息查询模块包括,财务信息查询和内部信息交流查询,三个模块的结构设计和详细设计第6章主要内容是员工信息管理模块包括五个子模块本模块包括这五个子模块的体系结构设计和界面设计、详细设计第7章主要内容是用户使用手册包括,系统功能简介、运行环境简介、系统安装手册、系统运行与操作指南(手册)第8章主要内容是系统评价包括系统主要功能、特色/优点介绍、系统存在不足与改进方案、毕业设计心得与收获最后还有参考资料、致谢、结论等等内容的介绍2系统需求分析2.1系统功能分析牛牛面粉厂综合管理系统是基础性的管理工作牛牛面粉厂综合管理是一个面粉厂发展的关键动力,只有加强面粉厂信息管理,充分提高每个环节的效益,才能不断提高面粉厂的劳动生产率和经济效益帮助面粉厂各领导层掌握面粉厂的情况,这就是本牛牛面粉厂综合管理系统需要完成的功能本系统主要的功能有原粮兑换面粉
(1)原粮入库原粮入库主要处理农户秋收以后把粮食存于面粉厂的业务,存储到面粉厂后,面粉厂需要给农户打印相应的凭证a添加凭证,需要输入的数据12345678b获取刚添加的凭证标志ID,进行原粮入库操作,需要输入的数据凭证标志ID,客户编号,入库原粮重量,商品类型IDc修改客户的库存信息,需要输入的数据入库原粮重量,客户编号,产品编号修改面粉厂的库存,需要输入的数据商品类型ID,入库原粮重量
(2)面粉领用面粉领用主要是处理农户需要面粉时,领用相应的面粉并且处理面粉加工过程中产生的麸皮a添加凭证,需要输入的数据12345678b获取刚添加的凭证标志ID,进行面粉领用,需要输入的数据凭证标志ID,面粉出粉率,领用面粉的重量,加工小麦的重量,麸皮的重量,面粉类型,加工单价,加工总价,是否领用麸皮c更新客户库存(小麦重量减少),需要输入的数据领用面粉的重量,客户编号,产品类型(现在就是针对小麦的,所以产品类型就是1)d更新面粉厂库存(面粉厂库存中,客户库存小麦的重量减少),需要输入的数据加工小麦的重量,产品类型(现在就是针对小麦的,所以产品类型就是1)e更新面粉厂库存面粉厂库存中,面粉厂库存面粉的重量减少,需要输入的数据领用面粉的重量,面粉的类别f若不领麸皮,需要更新面粉厂库存面粉厂库存中,客户库存麸皮的重量增加,需要输入数据领用麸皮的重量,产品类型(麸皮的产品类型已经写死了,固定为2)g若不领用麸皮的时候,还需要更新客户库存(麸皮增加),需要的输入数据领用麸皮的重量,产品类型(麸皮的产品类型已经写死了,固定为2),客户的编号面粉厂业务管理
(1)面粉厂原粮购置原粮购置是对面粉厂购置原粮的业务进行记录a获取刚添加的凭证标志ID,进行原粮购置需要输入的数据刚添加的凭证标志ID,商品类型ID,总重量,总价格,单价,袋数,每袋的重量b修改面粉厂的库存,需要输入的数据总重量,商品类型ID
(2)面粉厂面粉加工面粉加工是对面粉加工的业务进行记录a面粉加工需要输入的数据经办人ID,面粉重量,出粉率,小麦重量,麸皮重量,面粉类型,加工日期,加工编号b更新面粉厂库存(原粮减少)需要输入的数据小麦的重量,产品类型ID(数据库中内置了,小麦ID为1)c更新面粉厂库存(麸皮增加),需要输入的数据麸皮重量,产品类型ID(数据库中内置了,麸皮的ID为2)d检查面粉厂库存中,是否存在当前面粉类型的库存项,有,则更新面粉厂库存(面粉增加),没有,则增加面粉厂库存(面粉类型、面粉厂当前面粉库存重量、面粉厂客户库存重量),需要输入的数据面粉重量,面粉类型
(3)面粉厂产品销售产品销售功能主要是对面粉厂销售业务进行记录a获取刚添加的凭证标志ID,进行产品销售需要输入的数据刚添加的凭证标志ID,商品类型ID,单价,总重量,总价格,每袋的重量,袋数b更新面粉厂库存(面粉厂总库存量减少),需要输入的数据产品类型ID,总重量库存处理库存管理是对农户存储在面粉厂的原粮进行出售或者出库管理面粉业务账务
(1)欠款催收对农户所欠的加工款等费用进行催收提示a欠款催收页面显示所有存在实收与应收不符的记录,需要(客户信息表与凭证表关联查询)b打开用户的账务明细,需要输入的数据客户的ID,收支不均衡则isowe=1只查询凭证表就可以c清算,只需更改该用户的isowe由1改为0既可以
(2)收入支出流水登记就是普通的一个记账本面粉厂统计系统
(1)面粉厂库存清点查询所有的库存产品的库存量a需要查询视图,视图中涉及到面粉厂库存表与商品表
(2)面粉厂统计查询进行各种最后的统计工作,包括原粮入库统计,面粉领用统计,面粉加工统计,产品出库查询,原粮购置查询,产品销售查询,收入支出查询a原粮入库查询,需要的视图涉及到的表凭证表,客户信息表,原粮入库表,系统账户表,产品类型表b面粉领用统计,需要视图涉及到的表:凭证表,客户表,系统账户表,面粉领用表,产品类型表c面粉加工统计需要视图涉及到的表面粉加工表,系统账户表,产品类型表d原粮购置统计需要视图涉及到的表凭证表,客户表,系统账户表,原粮购置表e收入支出查询一张表收入支出表f产品出库查询g产品销售查询面粉厂系统管理
(1)系统账户管理添加用户,需要验证用户名是否重复,不重复直接添加,重复提示用户
(2)客户管理目标客户的增删改查a添加客户信息到客户信息表,需要输入的数据客户姓名,客户地址,客户手号码,固定电话,身份证号,标志位(正常为1)添加时间b添加客户库存(原粮),需要输入数据获取刚添加客户的自增ID,产品类型(系统内置了小麦的类型为1),库存量为0c添加客户库存(麸皮),需要输入的数据获取刚添加客户的自增ID,产品类型(系统内置了麸皮的类型为2),库存量为02.2系统功能模块分析根据系统功能要求可以将系统分解成几个子系统模块来分别设计应用程序界面,如图所示总的模块原粮兑换面粉原粮兑换面粉面粉厂业务管理面粉厂业务管理系统管理系统管理2.3数据字典数据库是信息管理的基础数据库结构直接关系到各种功能的实现和程序运行的效率进行数据库设计首先必须准确了解与分析用户需求(包括数据与处理)需求分析是整个设计过程的基础,是最困难、最耗费时间的一步需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用根据上一章的流程图,可以列出以下各模块记录信息所需的数据项和数据结构系统用户表appuser序号中文含义字段名类型长度备注用户编号appuseridint11PK自增用户名usernameVC32非空用户密码passwordVC32非空用户真实姓名realnameVC32用户联系电话phoneVC32注册时间rectimedatetime默认为系统当前日期用户状态statebit10:删除1正常主键appuserid_用户编号索引变更备注系统用户表主要用来保存系统管理员的相关信息,通过此表来对系统用户进行相关操作客户信息表customers序号中文含义字段名类型长度备注客户编号customeridintPK自增客户姓名customernameVC32不为空客户地址addressVC32非空客户证件号idcardVC32非空手机moblieVC32非空电话hometelephoneVC32非空注册时间rectimedatetime默认为系统时间客户状态statebit1非空0:删除1正常主键customerid_客户编号索引变更备注客户信息表主要用来保存客户的相关信息,当实现添加客户、修改客户、删除客户时会对此表进行操作客户库存表customerstore序号中文含义字段名类型长度备注客户库存编号idInt主键自增客户编号customeridint外键产品类型编号goodsidint外键库存重量weightfloat单位为kg主键id_客户库存编号索引变更备注客户库存表主要用来保存客户库存的相关信息当客户原粮入库、领用面粉、出库时对此表进行操作面粉领用表draw序号中文含义字段名类型长度备注面粉领用编号drawidint主键,自增兑换凭证编号evidint外键领用面粉重量flourweightfloat82出粉率ratefloat82需要小麦的重量stuffweightfloat82麸皮的重量branweightfloat82面粉种类typeidint外键加工单价pricefloat82单位元总加工费totalfloat82是否领用麸皮flagbit1领用,0没领主键drawid_面粉领用编号索引变更备注面粉领用表主要用来保存面粉领用的领用信息明细,顾名思义,当客户领用面粉时对此表进行操作凭证表exchangevoucher序号中文含义字段名类型长度备注兑换凭证编号evidintPK自增凭证编号evnoVC8外键客户编号customeridint11外键日期exchangedatedatetime默认sysdate应收金额receivablefloat82实收金额payfloat82经办人编号appuseridint外键凭证类型编号vouchertypeint11是否欠款isowebit10:不欠款1欠款主键evid索引变更备注凭证表主要用来保存凭证的相关信息面粉厂库存表flourstore序号中文含义字段名类型长度备注主键idintPK自增商品类型goodsidint外键现有库存量owerweightfloat82用户库存量customerweightfloat82主键id索引变更备注面粉库存表主要用来保存面粉厂库存的相关信息,当客户入库、领用面粉、处理库存、面粉厂原粮购置、面粉加工、产品销售此表会改变商品表goodstype序号中文含义字段名类型长度备注产品编号typeidIntPK自增产品名称typenameVC32面粉岀粉率noteVC32产品类型标识flagint11原粮2原粮加工后的辅料3面粉产品状态statebit10删除1正常主键typeid_产品编号索引变更备注商品表主要用来保存商品的相关记录面粉加工表process序号中文含义字段名类型长度备注主键processidintPK自增用户编号,经办人appuseridint外键加工面粉重量flourweightfloat岀粉率ratefloat加工所需原粮重量stuffweightfloat麸皮重量branweightfloat面粉类型typeidint外键加工日期processdatedatetime加工编号evnoint主键processid_编号索引变更备注面粉加工表主要用来保存面粉加工的相关信息原粮入库表putin序号中文含义字段名类型长度备注原粮入库编号pidintPK自增客户编号customeridint外键凭证编号evidint外键入库重量weightfloat单位kg入库产品类型typeidint外键主键pid索引变更备注原粮入库表主要用来保存原粮入库的基本信息商品销售表sale序号中文含义字段名类型长度备注商品销售编号sidintPK自增兑换凭证编号evidint商品类型编号typeidint外键商品单价pricefloat商品重量weightfloat总价totalfloat袋数bagfloat每袋重量bagweightfloat主键sid_商品销售编号索引变更备注商品销售表主要用来保存商品销售的相关细节原粮购置表purchase序号中文含义字段名类型长度备注原粮购置编号puridintPK自增凭证编号evidint购置产品类型typeidint外键单价pricefloat购置重量weightfloat购置总价totalfloat袋数bagfloat每袋重量bagweightfloat主键purid_原粮购置编号索引变更备注原粮购置表用来保存原粮购置记录的相关信息库存处理表takeout序号中文含义字段名类型长度备注库存处理编号tidintPK自增凭证编号evidint处理商品编号typeidint外键处理商品重量weightfloat处理方式methodint1出库2收购单价pricefloat总价totalfloat主键索引变更备注库存处理表主要用来保存库存处理的兑换记录凭证编号表voucheridgenerator序号中文含义字段名类型长度备注主键vgidintPK自增凭证编号currnoint凭证类型vtypeint凭证类型兑换入库凭证面粉领用凭证库存处理凭证原粮购置凭证产品销售凭证面粉加工凭证主键vgid索引变更备注收入支出表payout序号中文含义字段名类型长度备注收入支出编号poidintPK自增收入支出明细descriptionvarchar1024收入支出标志flagbit总金额sumfloat日期payoutdatedatetime主键索引变更备注收入支出明细
2.4数据处理流程分析1.数据处理流程数据库或数据表结构确定之后,在实际的数据处理程序设计之前需要对所处理的数据处理流程作必要的分析所谓对数据处理流程作必要的分析是指找出各数据之间的主要关系,数据存取的主要走向另外,在实际的数据处理过程中还会有些细节问题在遇到这些细节问题时,及时处理即可并且,有些细节问题不是在做数据处理流程分析时事先都能预料的对于现在这个数据处理系统来说,最主要的工作实际就是三项
(1)要将员工信息的基本情况及时录入数据库;
(2)要将用户查询情况及时录入数据库;
(3)对用户操作情况进行汇总数据流程图描绘了系统的逻辑模型,图中没有任何具体的物理元素,只是描绘信息在系统中的流动和处理情况对数据流的分析,主要是整体数据流、单元模块数据流整体数据流概括为进入计算机操作员系统的操作过程和用户(各部门或个人)进入系统的数据流向整体数据流用户通过密码进入系统,分别对上述几大功能逐一实现,其中涉及到模块数据流分析本系统行可性研究的最根本的任务是对以后的行动方针提出建议可行性分析包括经济可行性、技术可行性、操作可行性、法律可行性,是软件开发过程中必不可少的环节,不行则坚决放弃,以避免时间、资源、人力和金钱的浪费我主要考虑、分析的是经济、技术和操作可行性本系统由个人开发,对硬件软件配置要求不高,符合经济可行性的要求在技术方面在用JSP连SQLServer2005的时候可能存在问题,这个问题可以通过请教指导老师得以解决在操作方面这个系统主要是面向企业中的员工,文化程度总体水平不高,在使用中肯定会遇到问题在开发设计界面中,我们尽量做到界面友好尽量使企业中和企业外部的人更好的使用它可行性分析流图为在数据关系简单的情况下对数据处理,可以在将数据库设计好之后直接设计程序但是按正规的数据库管理系统的设计程序,无论要处理的数据关系复杂与否都应在做程序设计之前做好数据的流程分析本系统的数据关系不算太复杂但是也不简单,因此还是要仔细研究数据处理过程和各类数据之间的关系通过对用户的需求分析和数据结构分析,得到本系统的数据处理工作流程如图数据的源点/终点变换数据的处理数据存储 数据流本系统各功能模块的数据流程图如下图所示进入系统模块流程图3系统设计牛牛面粉厂综合管理是基础性的管理工作牛牛面粉厂综合管理是一个面粉厂发展的关键动力,只有加强面粉厂信息管理,才能不断提高企业的劳动生产率和经济效益帮助面粉厂各领导层掌握面粉厂的情况,这就是本牛牛面粉厂综合管理需要完成的功能本系统的数据库是使用SQLServer2005制作的,用户对数据库的投资是非常巨大的,一般都希望投资能够得到保护,即随着业务量的增长,数据库也能随之灵活地发展,在这方面,SQLServer2005提供了一个灵活的、功能强大的平台,具有很强的收缩性,可以最大程度的满足用户的需要,保护用户的投资SQLServer可以实现和现有数据库系统的无缝连接本人事信息管理分系统主要面粉厂进行管理,包括原粮兑换面粉、面粉厂业务管理、系统管理、面粉厂业务账务、面粉厂统计系统等模块
3.1新系统简介本系统是用JSP制作的牛牛面粉厂综合管理系统,此系统是基于Windows2000及以上系统环境的数据库管理系统,后台数据库采用SQLServer2005,前端使用JSP编程开发语言进行设计,此系统是网络应用的本课题的开发需要采用一种适合于数据库编程,而且具备同时访问多种数据库系统能力的开发语言与网页界面设计工具目前,JSP是一种较为流行的网络编程语言之一,在数据库开发方面具有丰富的资源,可以实现不同数据库间的异构连接,实现强大的网络数据交互功能作为一个优秀的前端开发工具,JSP广受欢迎JSP有以下一些优点
(1)效率更高;
(2)更加灵活;
(3)更易于开发;
(4)更易于配置管理;
(5)更易于扩展;
(6)更加安全
3.2系统总体结构设计本系统主要包括五个模块
3.3数据库设计数据库各个表的结构可以在SQLSERSEVER中用CREATETABLE语句来创建
1、系统用户表appuser项目名称项目代码类型长度说明用户编号[appuserid][int]11NOTNULL用户名[username][VC]32NOTNULL用户密码[password][VC]32NOTNULL用户真实姓名[realname][VC]32NULL用户联系电话[phone][VC]
(32)NULL,注册时间[rectime][datetime]NOTNULL用户状态[state][bit]1NULL
2、客户信息表customers项目名称项目代码类型长度说明客户编号[customerid][int]NOTNULL客户姓名[customername][VC]32NOTNULL客户地址[address][VC]32NOTNULL客户证件号[idcard][VC]32NOTNULL手机[moblie][VC]32NOTNULL电话[hometelephone][VC]32NOTNULL注册时间[rectime][datetime]NOTNULL客户状态[state][bit]1NOTNULL
3、客户库存表customerstore项目名称项目代码类型说明客户库存编号[id][Int]IDENTITY11NOTNULL客户编号[customerid][int]primarykey,产品类型编号[goodsid][int]primarykey库存重量[weight][float]NOTNULL
4、面粉领用表draw项目名称项目代码类型长度说明面粉领用编号[drawid][int]primarykey兑换凭证编号[evid][int]NOTNULL领用面粉重量[flourweight][float]82NOTNULL出粉率[rate][varchar][float]82NOTNULL需要小麦的重量[stuffweight][float]82NOTNULL麸皮的重量[branweight][float]82NOTNULL面粉种类[typeid][int]NOTNULL加工单价[price][float]82NOTNULL总加工费[total][float]82NOTNULL,是否领用麸皮[flag][bit]NOTNULL,
5、凭证表exchangevoucher项目名称项目代码类型长度说明兑换凭证编号[evid][int]primarykey凭证编号[evno][VC]
(8)NOTNULL客户编号[customerid][int]11NOTNULL日期[exchangedate][datetime]NOTNULL应收金额[receivable][float]82NOTNULL实收金额[pay][float]82NOTNULL经办人编号[appuserid][int]NOTNULL凭证类型编号[vouchertype][int]NOTNULL是否欠款[isowe][bit]1NOTNULL,
6、面粉厂库存表flourstore项目名称项目代码类型长度说明主键[id][int]primarykey商品类型[goodsid][int]NOTNULL现有库存量[owerweight][float]82NOTNULL用户库存量[customerweight][float]82NOTNULL
7、商品表goodstype项目名称项目代码类型长度说明产品编号[typeid][int]primarykey产品名称[typename][VC]
(32)NOTNULL面粉岀粉率[note][VC]
(32)NOTNULL产品类型标识[flag][int]1NOTNULL产品状态[state][bit]1NOTNULL
8、面粉加工表process项目名称项目代码类型说明主键[processid][int]primarykey用户编号,经办人[appuserid][int]NOTNULL加工面粉重量[flourweight][float]NOTNULL岀粉率[rate][float]NOTNULL加工所需原粮重量[stuffweight][float]NOTNULL麸皮重量[branweight][float]NOTNULL面粉类型[typeid][int]NOTNULL加工日期[processdate][datetime]NOTNULL加工编号[evno][int]NOTNULL,
9、原粮入库表putin项目名称项目代码类型说明原粮入库编号[pid][int]primarykey客户编号[customerid][int]NOTNULL入库重量[weight][float]NOTNULL入库产品类型[typeid][int]NOTNULL
10、商品销售表sale项目名称项目代码类型说明商品销售编号[sid][int]primarykey兑换凭证编号[evid][int]NOTNULL商品类型编号[typeid][int]NOTNULL商品单价[price][float]NOTNULL商品重量[weight][float]NOTNULL总价[total][float]NOTNULL袋数[bag][float]NOTNULL每袋重量[bagweight][float]NOTNULL
11、原粮购置表purchase项目名称项目代码类型说明原粮购置编号[purid][int]primarykey凭证编号[evid][int]NOTNULL购置产品类型[typeid][int]NOTNULL单价[price][float]NOTNULL购置重量[weight][float]NOTNULL购置总价[total][float]NOTNULL袋数[bag][float]NOTNULL每袋重量[bagweight][float]NOTNULL
12、库存处理表takeout项目名称项目代码类型说明库存处理编号[tid][int]primarykey凭证编号[evid][int]NOTNULL处理商品编号[typeid][int]NOTNULL处理商品重量[weight][float]NOTNULL处理方式[method][int]NOTNULL单价[price][float]NOTNULL总价[total][float]NOTNULL
13、凭证编号表voucheridgenerator项目名称项目代码类型说明主键[vgid][int]primarykey凭证编号[currno][int]NOTNULL凭证类型[vtype][int]NOTNULL
14、收入支出表payout项目名称项目代码类型长度说明收入支出编号[poid][int]primarykey收入支出明细[description][varchar]
(1024)NOTNULL收入支出标志[flag][bit]NOTNULL总金额[sum][float]NOTNULL日期[payoutdate][datetime]NOTNUll4主要模块设计本系统中我主要负责的是面粉厂系统管理模块,下面我着重论述这个模块
4.1基本信息管理该模块主要是对系统用户和客户信息进行管理,其包括客户姓名,客户地址,客户证件号,手机,电话,客户状态,用户名,用户密码,用户真实姓名,用户联系电话,用户状态等本页面包含增、删、改、查功能,对每种功能而言,对应于select….from…,delete...from..update...set...intertinto...values的SQL语句,相信熟悉SQL语言的用户应该可以很容易得分析代码中语句的功能具体流程如下
1、开始进入系统用户信息和客户信息的分页查询页面
2、点击用户名可以进入修改页面,根据客户,用户和产品的ID进行修改,可以修改客户姓名,客户地址,客户证件号,手机,电话,客户状态,用户名,用户密码,用户真实姓名,用户联系电话,用户状态等,修改失败就进入error.jsp页面,修改成功则返回显示页面
3、点击增加可以添加系统用户和客户信息(客户姓名,客户地址,客户证件号,手机,电话,客户状态,用户名,用户密码,用户真实姓名,用户联系电话,用户状态),添加失败就进入error.jsp页面,添加成功则返回显示页面
4、删除既可以单条删除也可以批量删除,点击全部选择后,点击删除可以删除全部,也可以有选择性的进行删除,删除失败就进入error.jsp页面,删除成功则返回显示页面系统用户管理客户管理
4.
1.1添加个人信息点击添加后的页面,对个人信息进行添加,添加成功就返回显示页面,添加失败则跳转到errorjsp页面
4.
1.2修改个人信息点击用户名进入修改页面,对信息进行修改,修改密码时必须输入确认密码,如果两次输入密码不一致,则修改失败,跳转到error.jsp页面
4.
1.3产品类型管理产品类型中,已经预设了原粮的种类就是一种为小麦,ID为1,类型ID为1,生产的产出品为麸皮,ID为2,类型ID为2,目前的产品管理主要用来添加面粉厂的产出品面粉的种类,面粉种类的类型ID为3,这个也是预先设置好的a添加产品类型,需要输入数据产品名称,出粉率,产品类型标识(设置为3),标志位(设置为1)b添加面粉厂库存,需要输入数据刚添加产品的自增ID,现有库存量为0,用户库存量为0产品类型管理页面5使用说明书
5.1新系统功能及运行环境简介
5.
1.1新系统功能简介本系统是基于B/S模式的牛牛面粉厂综合管理系统该系统包括原粮兑换面粉、面粉厂业务管理、系统管理、面粉厂业务账务、面粉厂统计系统等子模块,能够实现常见综合查询、统计报表功能.本课题主要是解决面粉厂综合管理管理问题,目标是使面粉厂管理人员在面粉厂的管理上也做到数据的信息化、快速化和网络化本系统主要包括原粮兑换面粉、面粉厂业务管理、系统管理、面粉厂业务账务、面粉厂统计系统五大模块我主要负责的是面粉厂系统管理模块,下面重点介绍这部分的主要模块及功能面粉厂系统管理模块主要功能客户和系统用户可分别对个人信息进行增、删、改、查删除时既可以进行单条删除,也可以进行批量删除
5.2语言和数据库简介
5.
2.1Java介绍Java是由SunMicrosystems公司于1995年5月推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称由JamesGosling和同事们共同研发,并在1995年正式推出用Java实现的HotJava浏览器(支持Javaapplet)显示了Java的魅力跨平台、动态的Web、Internet计算从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Javaapplet另一方面,Java技术也不断更新2010年Oracle公司收购了SUN由四方面组成Java编程语言、Java类文件格式、Java虚拟机和Java应用程序接口JavaAPIJava平台由Java虚拟机(JavaVirtualMachine,简称JVM)和Java应用编程接口(ApplicationProgrammingInterface,简称API)构成Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行现在Java平台已经嵌入了几乎所有的操作系统这样Java程序可以只编译一次,就可以在各种系统中运行Java应用编程接口已经从
1.1x版发展到
1.2版目前常用的Java平台基于Java
1.4,最近版本为Java
1.7Java分为三个体系J2SEJava2PlatformStandardEdition,java平台标准版,J2EEJava2PlatformEnterpriseEdition,java平台企业版,J2MEJava2PlatformMicroEdition,java平台微型版JAVA与传统程序不同,Sun公司在推出Java之际就将其作为一种开放的技术全球数以万计的Java开发公司被要求所设计的Java软件必须相互兼容“Java语言靠群体的力量而非公司的力量”是Sun公司的口号之一,并获得了广大软件开发商的认同这与微软公司所倡导的注重精英和封闭式的模式完全不同Sun公司对Java编程语言的解释是Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言Java平台是基于Java语言的平台这样的平台目前非常流行因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言Java语言主要特点有哪些?
1.简单Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了Java语言的简单性主要体现在以下三个方面1Java的风格类似于C++,因而C++程序员是非常熟悉的从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术2Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理3Java提供了丰富的类库
2.面向对象面向对象可以说是Java最重要的特性Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术Java支持静态和动态风格的代码继承及重用单从面向对象的特性来看,Java类似于SmallTalk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk
3.分布式Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同为分布环境尤其是Internet提供的动态内容无疑是一项非常宏伟的任务,但Java的语法特性却使我们很容易地实现这项目标
4.健壮Java致力于检查程序在编译和运行时的错误类型检查帮助检查出许多开发早期出现的错误Java自已操纵内存减少了内存出错的可能性Java还实现了真数组,避免了覆盖数据的可能这些功能特征大大缩短了开发Java应用程序的周期Java提供Null指针检测数组边界检测异常出口字节代码校验
5.结构中立为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式只要有Java运行系统的机器都能执行这种中间代码现在,Java运行系统有Solaris
2.4SPARCWin32系统Windows95和WindowsNT等.Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行
6.安全Java的安全性可从两个方面得到保证一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全Java语言在你的机器上执行前,要经过很多次的测试它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型
7.可移植的这句话一直是Java程序设计师们的精神指标,也是Java之所以能够受到程序设计师们喜爱的原因之一,最大的功臣就是JVM的技术大多数编译器产生的目标代码只能运行在一种CPU上如Intel的x86系列,即使那些能支持多种CPU的编译器也不能同时产生适合多种CPU的目标代码如果你需要在三种CPU如x
86、SPARC和MIPS上运行同一程序就必须编译三次但JAVA编译器就不同了JAVA编译器产生的目标代码J-Code是针对一种并不存在的CPU--JAVA虚拟机JAVAVirtualMachine,而不是某一实际的CPUJAVA虚拟机能掩盖不同CPU之间的差别,使J-Code能运行于任何具有JAVA虚拟机的机器上虚拟机的概念并不AVA所特有的加州大学几年前就提出了PASCAL虚拟机的概念;广泛用于Unix服务器的Perl脚本也是产生与机器无关的中间代码用于执行但针对Internet应用而设计的JAVA虚拟机的特别之处在于它能产生安全的不受病毒威胁的目标代码正是由于Internet对安全特性的特别要求才使得JVM能够迅速被人们接受当今主流的操作系统如OS/
2、MacOS、Windows95/NT都已经或很快提供对J-Code的支持作为一种虚拟的CPU,JAVA虚拟机对于源代码SourceCode来说是独立的我们不仅可以用JAVA语言来生成J-Code,也可以用Ada95来生成事实上,已经有了针对若干种源代码的J-Code编译器,包括Basic、Lisp和Forth源代码一经转换成J-Code以后,JAVA虚拟机就能够执行而不区分它是由哪种源代码生成的这样做的结果就是CPU可移植性将源程序编译为J-Code的好处在于可运行于各种机器上,而缺点是它不如本机代码运行的速度快同体系结构无关的特性使得Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,这成为Java应用软件便于移植的良好基础但仅仅如此还不够如果基本数据类型设计依赖于具体实现,也将为程序的移植带来很大不便例如在Windows
3.1中整数Integer为16bits,在Windows95中整数为32bits,在DECAlpha中整数为64bits,在Intel486中为32bits通过定义独立于平台的基本数据类型及其运算,Java数据得以在任何硬件平台上保持一致Java语言的基本数据类型及其表示方式如下byte8-bit二进制补码short16-bit二进制补码int32-bit二进制补码long64-bit二进制补码float32-bitIEEE754浮点数double32-bitIEEE754浮点数char16-bitUnicode字符在任何Java解释器中,数据类型都是依据以上标准具体实现的因为几乎目前使用的所有CPU都能支持以上数据类型、8~64位整数格式的补码运算和单/双精度浮点运算Java编译器本身就是用Java语言编写的Java运算系统的编制依据POSIX方便移植的限制,用ANSIC语言写成Java语言规范中也没有任何同具体实现相关的内容
8.解释的Java解释器运行系统能直接运行目标代码指令链接程序通常比编译程序所需资源少,所以程序员可以在创建源程序上花上更多的时间
9.高性能如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令Sun用直接解释器一秒钟内可调用300000个过程翻译目标代码的速度与C/C++的性能没什么区别
10.多线程多线程功能使得在一个程序里可同时执行多个小任务线程--有时也称小进程--是一个大进程里分出来的小的独立的进程因为Java实现的多线程技术,所以比C和C++更键壮多线程带来的更大的好处是更好的交互性能和实时控制性能当然实时控制性能还取决于系统本身UNIXWindowsMacintosh等,在开发难易程度和性能上都比单线程要好任何用过当前浏览器的人,都感觉为调一副图片而等待是一件很烦恼的事情在Java里,你可用一个单线程来调一副图片,而你可以访问HTML里的其它信息而不必等它
11.动态Java的动态特性是其面向对象设计方法的发展它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的在C++程序设计过程中,每当在类中增加一个实例变量或一种成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃Java从如下几方面采取措来解决这个问题Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量这样,一个在存储器生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定的这样,对类中的变量和方法进行更新时就不至于影响现存的代码解释执行字节码时,这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速执行在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃Java还简化了使用一个升级的或全新的协议的方法如果你的系统运行Java程序时遇到了不知怎样处理的程序,没关系,Java能自动下载你所需要的功能程序四.与C和C++语言的异同Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征C++安全性不好,但C和C++还是被大家所接受,所以Java设计成C++形式,让大家很容易学习Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一个很有用的功能,Java去掉了以下几个C和C++功能和特征指针运算结构typedefs#define需要释放内存全局变量的定义这个功能都是很容易引起错误的地方
5.
2.2SQLServer2005介绍SQL在客户/服务器开发中的角色SQL是一组符合工业标准的数据库操作命令集,它可以在delphi这样的编程环境中使用Sql不是一门语言,无法得到一个专门的sql软件,它只是服务器数据库的一部分作为一种查询语言,sql在80年代至90年代很受欢迎,现在他已成为网络环境中下客户/服务器数据库应用程序的开发的标准Delphi提供了支持SQL的有关组件SQL具有一些查看数据库的优势,而且只能使用sql命令来获得通过SQL,也可以灵活地查询所需要的数据,这种灵活是面向记录的数据库操作所不具备的SQL为控制服务器的数据提供了下列功能数据定义使用SQL,可以定义数据库表的结构,包括表中字段的数据类型以及不同表的字段之间的参照关系数据检索客户程序可以通过SQL向服务器请求它所需要的数据SQL还容许客户定义要检索什么数据、如何检索,例如排序、选择字段等数据完整性SQL可以实现数据完整性约束,这些完整性约束可以定义为数据库表的一部分,也可以是这些规则一存储过程或其他数据库对象的形式从表中独立出来数据处理SQL容许客户程序更、添加或删除服务器上的数据这些操作可以由客户提交的SQL语句来完成,也可以由服务器上的存储过程来完成安全性通过对不同的数据库对象定义访问权限、视图以及受限制的访问,SQL可以保护数据的安全并发访问SQL支持对数据的并发的访问、多个用户可以同时使用系统而不互相干作为关系型数据库领域出类拔萃的产品,MicrosoftSQLServer2005数据库管理系统可以满足各种类型的不同用户和独立软件供应商商业程序的要求可以说,SQLServer2005是面向21世纪的关系型数据库,它在易用性、收缩性、可靠性和数据仓库等方面的优异性能使其成为客户构建、管理和部署商业数据库的最佳选择方案之一以前的数据库解决方案不可避免地带来了过多的费用支出,并且解决方案的复杂性较高,Microsoft公司做了很大的努力,力图使SQLServer2005成为管理程序方面最为友好的数据库之一,编程人员通过简单的操作就可以完成一个复杂的管理在最近的几年中,微软大力改进了SQLServer,使得它具有很多新颖的、有创造性的特点SQLServer2005以其可收缩性的商业解决方案、强大的数据仓库以及与MicrosoftOffice及MicrosoftBackOffice的紧密集成为企业提供了很多的商业便利SQLServer2005已经成为业界领先的数据库管理系统
5.3运行环境简介该企业人事信息管理系统的运行环境体系结构Brower/Server结构编程语言Java网络操作系统Windows2000server、WindowsNT数据库操作系统MicrosoftSQL2005客户端Windows98/Windows2000/windowsXP系统的性能要求系统的性能要求通常指系统需要的存储容量以及后援存储,重新启动和安全性运行效率等方面的考虑本系统基于B/S模式,在运算时服务器整体性能要求过高,要求软件系统环境win2000以上+SQLserver2005硬件系统环境PⅢ800CPU、256MB(RAM)、10GB(HD)系统运行时对数据的保密性要求不高对一般的数据不要求进行加密此外,对其它软件几乎没有依赖性,程序健壮性较好相比较而言,客户端要求较低硬件条件PⅢ500CPU、64MRAM、
3.2G硬盘以上的PC机;打印机;局域网软件条件Windows98即可
5.3系统操作手册
5.
3.1系统安装手册本系统基于B/S模式,故客户端只具有浏览器功能,不需要安装特别软件环境,由于要用到SQLServer2005数据库,服务器必须安装SQLServer2005个人版或标准版等还有一点相当重要,为了提供WEB服务,需要有IIS,WIN2000Server和WIN2000AdvancedServer版本都自带了IIS服务,如未安装,只需在“控制面板”里找到“添加或删除程序”,并单击“添加/删除Windows组件”来添加IIS组件到系统中即可
5.
3.2系统操作说明本章的主要内容包括新系统功能简介及运行环境简介;系统的安装手册;系统操作手册各用户可以对信息进行增、删、改、查,除了单条删除还可以进行批量删除以下的界面就是客户和系统用户的显示页面添加页面此后用户可以按这页面上的提示按纽选择执行自己的权限操作6所遇到的困难及其解决方案在毕业设计的过程中,我们遇到了很多意料之外的困难,从最初的安装JAVA到最后的综合测试,从程序出错到系统问题,大部分的困难是我们以前没有遇到过的遇到的困难及其解决方案大致如下
(1)数据建表时,由于表比较多,且表之间的联系比较紧密,这样一来就造成了数据的混乱,后来我们根据第三范式重新建表,重新建表后,消除了原有的问题,表的结构也变得清晰
(2)功能和数据都有点复杂,常把需求搞错,通过画流程图解决了困难
(3)进行分页查询时,遇到了困难,通过上网查阅资料,终于成功了7结论经过两个多月的努力,我们完成了毕业设计——牛牛面粉厂综合管理系统以前我们只知道学习书本的知识,以及一些基本电脑知识,而没有注重开发一些应用性软件并不知道自己处于什么样的水平阶段,通过这次毕业设计我们发现在工具和语言使用方面我们还存在诸多不便,另外,由于我们从没有开发过类似软件的经验,以及时间的仓促,还有在技术与设计上的不足,该软件还存在着一些技术和功能划分上的不足和缺憾本系统的扩展性很强,可根据不同用户的需要,增加其他的功能模块,当然由于技术和语言使用方面存在一些不足,所以本管理系统在功能完善上有待进一步的划分和制作首先,由于数据库原理的某些方面的细节掌握不够扎实,导致设计过程中的很多变动另外对于JAVA的掌握不够透切其次,对于本次设计,由于时间、自身开发水平及其它原因,对于图形间的比较,没有能够实现,这是自己的一大遗憾通过这段时间的毕业设计,学到了很多东西,不仅把以前所学的很多知识充分利用上了,还要我学会使用了编程语言和数据库开发技术,初步了解了JAVA强大的动态交互网络编程开发能力,对JAVA网页设计软件有了更为深刻的了解和熟练的应用,我体会到了软件开发不仅是编程,它需要方方面面的考虑,同时也必须具备比较全面的知识就像我们生活中的第一件事都需要有始有终,认真对待我们在虚心听取和接受老师和同学们的意见和建议的同时,会更加努力将其加以完善,并且提高自身知识水平这并不是毕业设计的结束,更不是人生在学习生涯中的结束,而是新环境、新学习、新挑战的开始有这样我们才能学无止境,以求得更大的发展对于我们年轻人来说,我相信挑战越多,机会越多我们会打足精神,努力开创新的成绩,勇敢的面对以后发生的一切,更好的提高自己,以便能够更好为社会服务,为人民服务,近而体现自己在社会发展中的价值致谢在老师的大力支持和精心指导下,经过与同学的共同努力,经过将近三个月的时间顺利完成了本次毕业设计在这次毕业设计的过程中我们收益非浅,我深深的体会到了如何把自己所学过的专业知识与实际应用结合起来,懂得如何灵活运用自己所掌握的理论知识,通过本次毕业设计使自己的知识得以巩固和扩展本次毕业设计也使我对数据库的应用有了更好的掌握,虽然只是一个小的应用软件,但在这次实践中,特别是在收集资料,分析资料过程中第一次运用了软件工程的理论,掌握了一些分析问题、解决问题的能力,在这过程中也参考了别人的一些数据库作品及思路,并应用到自己的设计中当然,在这次做这和软件的过程中也收到了一些挫折,在功能模块的需求分析的过程中,有很多问题没有考虑彻底,在编写和修改代码的过程中遇到了很多困难,在老师和同学的帮助下,均一一克服了这些困难但这给了我编写软件的经验和教训,同时也培养了我细心,耐心等性格,树立了一种良好科学的态度通过这次毕业设计使我自己的动手能力得以增强在专业知识方面,我们学到了很多新的东西,特别在JAVA、及SQL等方面,有了很大的提高我们体会到了软件开发不仅仅是编程,它需要方方面面的考虑,同时也必须具备比较全面的知识就像我们生活中的每一件事都需要有始有终,认真对待首先我要感谢我的指导老师,因为在我做毕业设计的过程当中,他负责任的指导和建议使我受益非浅,她每时每刻的督促使我不敢有丝毫的怠慢,她一直给予我悉心的教导和莫大的支持,无论在学习上还是在精神上都给予了帮助,这些帮助和鼓舞对我而言是一笔财富,它一直鞭策着我认真的完成毕业设计,而且也让我在面对人生的设计舞台时同样充满了信心在这几个月的设计时间里,老师对我所犯的错误也给予了恰当的教导和包容,让我能够及时认识到自己的错误并力争改过在此,我向老师致以深深的谢意!参考文献
[1]JamesGosling《Java编程语言》和《Java语言规范》
[2]孙卫琴《Java面向对象编程》
[3]宋辉、江峰《Java服务器程序设计》
[4]杨绍方《Java编程实用技术与案例》
[5]袁兆山等《软件工程Java语言实现SoftwareEngineeringwithJava》
[6]ErichGamma等李英军马晓星蔡敏刘建中《设计模式可复用面向对象软件的基础DesignPatterns:ElementsofReusableObject-Orientedsoftware》
[7]BruceEckel的《ThinkinginJava》
[8]Wiley出版的《JavaDatabaseBible》
[9]OReilly出版的《Javadistributedcomputing》
[10]AddisonWiley出版的《JavaServletProgramming》和《JavaServletPages》国外2003年出版
[11]DougLea《ConcurrentProgramminginJava》2004年出版
[12]MartinFowler《PatternsofEnterpriseAppication》2004年出版
[13]《EffectiveJava》潘爱民译;2003年机械工业出版社出版附录部分源代码增、删、改、查方法添加方法publicvoidaddUserUserBeanbeanthrowsUserNameRepeatException{ListUserBeanlist=userDao.selectUserByUsernamebean.getUserName;iflist.size0{log.info添加用户时用户名已经存在;thrownewUserNameRepeatException客户名已经存在;}else{userDao.saveOrUpdatebean;}}修改方法publicvoidmodUserUserBeanbeanStringoldpasswordthrowsException{UserBeanuser=UserBeanuserDao.findByPropertyUserBeanappuserIdbean.getAppuserId.get0;ifoldpassword.equalsuser.getPassword{//原密码正确ListUserBeanlist=userDao.selectUserByUsernamebean.getUserName;iflist.size==0||list.get
0.getAppuserId==bean.getAppuserId{//可以修改因为user对象已经被持久化所以可以直接修改user.setUserNamebean.getUserName;user.setPasswordbean.getPassword;user.setPhonebean.getPhone;user.setRealNamebean.getRealName;}else{//用户名已经存在log.info修改用户时用户名已经存在;thrownewUserNameRepeatException客户名已经存在;}}else{//原密码错误log.info修改用户时原密码错误;thrownewPasswordErrorException客户名已经存在;}}publicStringupdate{try{userBusiness.modUserbeanoldpassword;returnmain;}catchUserNameRepeatExceptione{message=用户名已经存在;returnid2user;}catchPasswordErrorExceptione{message=原密码输入错误;returnid2user;}catchExceptione{e.printStackTrace;message=其他原因;returnid2user;}}删除方法publicvoiddeleteStringtablenameStringidnameStringarrayId{finalStringhql=update+tablename+setstate=0where+idname+in+arrayId+;getHibernateTemplate.executenewHibernateCallback{publicObjectdoInHibernateSessionsessionthrowsHibernateExceptionSQLException{Queryquery=session.createQueryhql;intnum=query.executeUpdate;returnnum;}};}删除提示脚本scripttype=text/javascriptfunctiondeleteAppuser{varchecks=$input[name=movedate];varname=;$.eachchecksfunctionkv{ifv.checked{name=name++v.value;}};ifname!={varconfirm_value=window.confirm是否确定要删除?;ifconfirm_value==true{$#arrayId.valname.substring1;document.forms
[0].submit;}else{document.forms
[0].del.disabled=false;}}else{alert请选择要删除的数据;}}}/script分页的方法publicStringsplit{ifcurpage=0{curpage=1;}Stringpagesize=getTextpagesize;mypage=userBusiness.splitPagecurpageInteger.parseIntpagesize;returnsplit;}/**@function不含条件的分页查询相应的结果集*@paramhql:hql语句*firstRow:起始数据索引*maxRow:每页显示多少条*@return分页的结果集*@exceptionHibernateExceptionSQLException*/privateListgetPageListfinalStringhqlfinalintfirstRowfinalintmaxRow{returngetHibernateTemplate.executeFindnewHibernateCallback{publicObjectdoInHibernateSessionsthrowsHibernateExceptionSQLException{Queryquery=s.createQueryhql;query.setFirstResultfirstRow;query.setMaxResultsmaxRow;Listlist=query.list;returnlist;}};}//分页无条件查询数据总条数publiclongitemsCountStringhql{returnLonggetHibernateTemplate.findhql.get0;}/****不含有条件的分页查询语句*@paramhql:查询对象的HQL语句*@paramcurpage当前页*@parampageSize每页显示多少条*@return封装分页信息的对象*PageModelE*/publicPageModelEsplitPagfinalStringhqlfinalintcurpagefinalintpageSize{StringitemHql=selectcount*+hql;PageModelEpp=newPageModelE;intcount=intitemsCountitemHql;//设置当前页pp.setCurPagecurpage;//设置要显示的结果集pp.setReListgetPageListhqlcurpage-1*pageSizepageSize;//设置每页显示数据条数pp.setPageSizepageSize;//设置上一页pp.setPerindexsetPerpagecurpage;//设置总的数据条数pp.setItemCountcount;//设置总页数pp.setTotalPagesetTotalPagepageSizecount;//设置下一页pp.setNextindexsetNexpagecurpagepp.getTotalPage;returnpp;}/**@function含条件的分页查询相应的结果集*@paramhql:hql语句*firstRow:起始数据索引*maxRow:每页显示多少条*@return分页的结果集*@exceptionHibernateExceptionSQLException*/privateListgetPageListfinalStringhqlfinalObject[]valuesfinalintfirstRowfinalintmaxRow{returngetHibernateTemplate.executeFindnewHibernateCallback{publicObjectdoInHibernateSessionsthrowsHibernateExceptionSQLException{Queryquery=s.createQueryhql;forinti=0;ivalues.length;i++{query.setParameterivalues[i];}query.setFirstResultfirstRow;query.setMaxResultsmaxRow;Listlist=query.list;returnlist;}};}/****Summary:含有条件的分页查询*@paramhql查询对象的HQL语句*@paramparamNames封装冒号后面的参数名的数组(String)*@paramvalues:封装参数所对应的值对象*@paramcurpage当前页*@parampageSize每页显示多少条*@return封装分页信息的对象*PageModelE*/publicPageModelEsplitPagfinalStringhqlfinalObject[]valuesfinalintcurpagefinalintpageSize{StringitemHql=selectcount*+hql;PageModelEpp=newPageModelE;intcount=intitemsCountitemHqlvalues;;//设置当前页pp.setCurPagecurpage;//设置要显示的结果集pp.setReListgetPageListhqlvaluescurpage-1*pageSizepageSize;//设置每页显示数据条数pp.setPageSizepageSize;//设置上一页pp.setPerindexsetPerpagecurpage;//设置总的数据条数pp.setItemCountcount;//设置总页数pp.setTotalPagesetTotalPagepageSizecount;//设置下一页pp.setNextindexsetNexpagecurpagepp.getTotalPage;returnpp;}//分页含有条件查询数据总条数publiclongitemsCountStringhqlfinalObject[]values{returnLonggetHibernateTemplate.findhqlvalues.get0;}privateintsetPerpageintcurPage{ifcurPage==1{return-1;}else{returncurPage-1;}}privateintsetNexpageintcurPageinttotlePag{ifcurPagetotlePag{returncurPage+1;}else{return-1;}}privateintsetTotalPageintpageSizeintcount{ifcount==0{return1;}elseifcount%pageSize==0{returncount/pageSize;}else{returncount/pageSize+1;}}连接系统数据库beanid=dataSourceclass=com.mchange.v
2.c3p
0.ComboPooledDataSourcepropertyname=jdbcUrlvalue=jdbc:sqlserver://localhost:1433;databaseName=Flour/propertyname=driverClassvalue=com.microsoft.sqlserver.jdbc.SQLServerDriver/propertyname=uservalue=sa/propertyname=passwordvalue=123456/!--连接池中保留的最大连接数Default:15--propertyname=maxPoolSizevalue=20/!--连接池中保留的最小连接数--propertyname=minPoolSizevalue=2/!--初始化时获取的连接数,取值应在minPoolSize与maxPoolSize之间Default:3--propertyname=initialPoolSizevalue10/value/property!--最大空闲时间60秒内未使用则连接被丢弃若为0则永不丢弃Default:0--propertyname=maxIdleTimevalue=60/propertyname=idleConnectionTestPeriodvalue=60!--定义在从数据库获取新连接失败后重复尝试的次数Default:30--/property!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数Default:3--propertyname=acquireIncrementvalue5/value/property!--JDBC的标准参数,用以控制数据源内加载的PreparedStatements数量但由于预缓存的statements属于单个connection而不是整个连接池所以设置这个参数需要考虑到多方面的因素如果maxStatements与maxStatementsPerConnection均为0,则缓存被关闭Default:0--propertyname=maxStatementsvalue0/value/property!--定义在从数据库获取新连接失败后重复尝试的次数Default:30--propertyname=acquireRetryAttemptsvalue30/value/property!--获取连接失败将会引起所有等待连接池来获取连接的线程抛出异常但是数据源仍有效保留,并在下次调用getConnection的时候继续尝试获取连接如果设为true,那么在尝试获取连接失败后该数据源将申明已断开并永久关闭Default:false--propertyname=breakAfterAcquireFailurevaluetrue/value/property!--因性能消耗大请只在需要的时候使用它如果设为true那么在每个connection提交的时候都将校验其有效性建议使用idleConnectionTestPeriod或automaticTestTable等方法来提升连接测试的性能Default:false--propertyname=testConnectionOnCheckoutvaluefalse/value/property/beanStruts.xmlxmlversion=
1.0encoding=UTF-8!DOCTYPEstrutsPUBLIC-//ApacheSoftwareFoundation//DTDStrutsConfiguration
2.0//ENhttp://struts.apache.org/dtds/struts-
2.
0.dtdstruts!--开发常量配置--!--指定Struts2是否为开发模式,若为开发模式,程序运行错误时会得到更多的信息--constantname=struts.devModevalue=true/!--设置浏览器是否缓存静态页面,开发阶段false上线:true--constantname=struts.serve.static.browserCachevalue=false/!--当struts.xml文件改动时,是否重新加载该文件,为提高开发效率开发阶段是true--constantname=struts.configuration.xml.reloadvalue=true/!--指定默认编码规则对于请求参数中含有中文的时候应该使用UTF-8--constantname=struts.i18n.encodingvalue=UTF-8/constant!--默认的视图--constantname=struts.ui.themevalue=simple/constant!--指定全局的国际化标签--constantname=struts.custom.i18n.resourcesvalue=global/constant!--上传下载--constantname=struts.multipart.maxSizevalue=6000000/constant!--指定请求的后缀名默认为action若为多个的话,之间用逗号隔开--!--constantname=struts.action.extensionvalue=actionjhtm/--!--将struts2的action交给Spring管理--constantname=struts.objectFactoryvalue=spring/constant!--定义公共包--packagename=base-defaultabstract=trueextends=struts-defaultglobal-resultsresultname=404type=redirect/
404.jsp/resultresultname=500type=redirect/
500.jsp/result/global-results!--global-exception-mappingsexception-mappingresult=500exception=java.lang.Exception/exception-mapping/global-exception-mappings--/package!--包含子文件--includefile=struts-system.xml/includeincludefile=struts-putin.xml/includeincludefile=struts-draw.xml/includeincludefile=struts-money.xml/includeincludefile=struts-invent.xml/includeincludefile=struts-takeout.xml/includeincludefile=struts-sale.xml/includeincludefile=struts-statis.xml/includeincludefile=struts-proces.xml/include/strutsApplication.xmlxmlversion=
1.0encoding=UTF-8beansxmlns=http://www.springframework.org/schema/beansxmlns:xsi=http://www.w
3.org/2001/XMLSchema-instancexmlns:context=http://www.springframework.org/schema/contextxmlns:aop=http://www.springframework.org/schema/aopxmlns:tx=http://www.springframework.org/schema/txxsi:schemaLocation=http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-
2.
5.xsdhttp://www.springframework.org/schema/contexthttp://www.springframework.org/schema/context/spring-context-
2.
5.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop-
2.
5.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx-
2.
5.xsd!--DAO--beanid=userDaoclass=com.sc.dao.impl.UserDAOImplpropertyname=sessionFactoryref=sessionFactory/property/bean!--为方便Junit单元测试增加BaseDAOImpl--beanid=baseDaoclass=com.sc.dao.impl.BaseDAOImplpropertyname=sessionFactoryref=sessionFactory/property/beanbeanid=customerDaoclass=com.sc.dao.impl.CustomerDAOImplpropertyname=sessionFactoryref=sessionFactory/property/beanbeanid=goodTypeDaoclass=com.sc.dao.impl.GoodsTypeDAOImplpropertyname=sessionFactoryref=sessionFactory/property/beanbeanid=customerStoredaoclass=com.sc.dao.impl.CustomerStoreDAOImplpropertyname=sessionFactoryref=sessionFactory/property/beanbeanid=flourStoredaoclass=com.sc.dao.impl.FlourStoreDAOImplpropertyname=sessionFactoryref=sessionFactory/property/bean!--service--beanid=userBusinessclass=com.sc.business.impl.UserBusinessImplpropertyname=userDaoref=userDao/property/beanbeanid=customerBoclass=com.sc.business.impl.CustomerBussinessImplpropertyname=customerDaoref=customerDao/propertypropertyname=customerstorebussinessref=customerstoreBo/propertypropertyname=basedaoref=baseDao/property/beanbeanid=goodTypeBoclass=com.sc.business.impl.GoodsTypeBussinessImplpropertyname=goodTypeDaoref=goodTypeDao/propertypropertyname=flourStoreBoref=flourStoreBo/property/beanbeanid=customerstoreBoclass=com.sc.business.impl.CustomerStoreBussinessImplpropertyname=customerStoredaoref=customerStoredao/property/beanbeanid=flourStoreBoclass=com.sc.business.impl.FlourStoreBussinessImplpropertyname=flourStoredaoref=flourStoredao/property/beanbeanid=commonBusinessclass=com.sc.business.impl.CommonBussinessImplpropertyname=customerStoreDaoref=customerStoredao/property/bean!--action--beanid=loginActionclass=com.sc.action.LoginActionscope=prototypepropertyname=userBusinessref=userBusiness/property/beanbeanid=appuserActionclass=com.sc.action.AppuserActionscope=prototypepropertyname=userBusinessref=userBusiness/property/beanbeanid=customerActionclass=com.sc.action.CustomerActionscope=prototypepropertyname=customerBoref=customerBo/property/beanbeanid=goodTypeActionclass=com.sc.action.GoodsTypeActionscope=prototypepropertyname=goodTypeBoref=goodTypeBo/property/beanbeanid=commonActionclass=com.sc.action.CommonAjaxActionscope=prototypepropertyname=customerBussinessref=customerBo/propertypropertyname=commonBusinessref=commonBusiness/propertypropertyname=flourBussinessref=flourStoreBo/property/bean/beans牛牛面粉厂综合管理系统面粉厂统计管理面粉厂系统管理原粮兑换面粉面粉厂业务管理面粉厂账户管理原粮入库库存处理面粉领用原粮购置产品销售面粉加工客户管理产品类型管理系统账户管理了解企业问题了解企业的现状了解企业的业务模式可行性分析报告可行性问题决策面向企业可行用户信息库存原有信息库存原无信息数据库入库记录牛牛面粉厂综合管理系统原粮兑换面粉面粉厂统计管理面粉厂账户管理面粉厂系统管理面粉厂业务管理。