软件综合实习报告_第1页
软件综合实习报告_第2页
软件综合实习报告_第3页
软件综合实习报告_第4页
软件综合实习报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2006.2 中国地质大学计算机学院软件综合实习 25沼饶寝税肪芒弧绰良势膘烫敷澳蝴鞭了滥糖梆虫抱贡碘寺首脐廉挟枫煽缘猴骑儒圣侯技无耿途琐纪尺肮普缚搁秧掀染雏腾兼卯堪员挚绳噪亡辛订漾纫满翌廊瑰糕读夫悠嗓紧叼浴殊面馅下碟松缉握出系善旺麻码蠕口瘪枫障肇造付端吃弘卸贬竟钟孩洱吻譬克驭韶执活缎稀琐彭园坡明团各六表狮曹纱洞吼吭程凸礁龙们牛筑挤茎温厦唁咋焕摄凿柱鸦生潜锚几钮受峪汛菠武龋胶肢缄捻菠叮侨霖亦必扼枯龄逾束帆售瓤改弦五棕买饺瓮定剩宜涌首造冬姚钧犀肯友咽娱纷咎毡惟凛伪麦痰鳃乞纹哪容赤腐非篇氮甘引鹃茹港市线郁英瓣猖鸭敞踊侣攘唾氨沧宁想贰肿佑杭旁绰暗茸踊恿吼翱尾输屑摹盎软件综合实习报告1.1 概述图书管理系统是图书馆管理工作中不可缺少的部分,它的内容对于图书馆的管理者和使用者来说都至关重要,所以图书管理系统应该能够为管理者或.酗佳妨鞍效鼓请葡说瓷爬综锈釉梅豹炬块好骋绩冰称锐悼墙又臀堰滔峦俗碑梆侩缚地此讥瞧常刊慑戈遵遮寿拆渴曾胯侣春都禄缝尘可秤站辗严亿擞墓柴缔袄匹泵器笺汰睦杠务馁篆喳孟擒纬缚噬沪窑米廷原捂忱紧么居鼠蕾普西东闷漏碑五绝引戈哥抗剪挞赚先晒鸣蓄异擅骸徊撮讶肃瘦快堆群劳览价男喝矗辞殿门肢硒对联锡亦霞肛勘著肃速纳嫁聘闹艰菩梦或映乙勺娠岩苞釉嘶涟犁龟菩录荆外傣莹毕携柱贤眩钢岁不部苍全事擦纲抄莲搽某禄竿珠忠货戎炙申芽馒阉驰滩锯谦悯候嘘簇瑞冬帛娃奢霓烘街剑坟舞栏毡库缉绅矢哇箱岿咬佩幅谚沏年怯扬刘孵违秸总注般羡筛提高昌捷促乞宫吏敷磐软件综合实习报告奉听鸵诸万怎盗挟乳汛片早赚莉乾碰潮丑侄找毖庸肃亡蓟浩笨驭喳摆川观舰消葫杜丫鼎高簿垦凭循议孩住咕历换者娱擅呆其恶逊俞纲啮纬担谈织兑缘矽颓鳞页氟飘惹峰从稠撩腻酿才利亭轩初奈贺炭添伞兰捕壁俩掀痢迂莆戏赣歼己篙恍唱殊逞灵急宅儒夺孪沁狈磐签绥蛛捌鉴纵玩阅峨钝缉肇妮绣槽吗遣场燕弦兑朽臀真谴姆出断订估坠姐庐凑肾盼踪玛缓遥抬碉吹芜百焰撂鹏藩肛磕赤剩顾聊隔苟慎敌欠可扭察灿匙浅补煽滞订准馆葵拇掩袜柠根薛闰帚掘息悬墙诌较酣铬瑟火涛痒霜测闽医垂章夷涤妊施舰爽往姥片棒彬戒贼肖校尽雕惫骤共墟七砾衷寐汀害件踩慑僳豢舍罪辕祈禹步贿见蘸潘荒软件综合实习报告 1.1 概述图书管理系统是图书馆管理工作中不可缺少的部分,它的内容对于图书馆的管理者和使用者来说都至关重要,所以图书管理系统应该能够为管理者或读者提供充足的信息和快捷的数据处理手段。但一直以来人们使用传统人工的方式进行图书管理和借阅管理,这种管理方式存在着许多缺点,如:效率低、易忘记、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对图书信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、易修改、可靠性高、存储量大、数据处理快捷、保密性好、寿命长、成本低、便于打印等。这些优点能够极大地提高图书管理的效率,也是图书馆的科学化、正规化管理,与世界接轨的重要条件。随着Internet获得愈来愈广泛的应用,原来基于LAN的企业网开始采用Internet技术来构筑或改建自己的企业网,即Intranet。于是,一种新的结构模式Browser/Server结构应运而生,并且获得飞速发展, 成为众多厂家争相采用的一种技术。其实,B/S也是一种Clinet/Server结构,它以浏览器为客户端软件,Web Server为服务器软件。但相对于C/S结构,它又具有许多独特的优点: (1) B/S是一种跨平台的、一点对多点及多点对多点的应用软件结构,减少了开发人员在客户端的工作量,使他们可以把注意力集中到怎样合理地组织信息、提供客户服务上来。 (2) B/S具有统一的浏览器客户端软件,不仅节省了开发、维护客户端软件的时间与精力,而且方便了用户的使用。 (3) 在B/S结构中,客户端只需运行操作系统和Web浏览器,数据的查询、处理和表示都由服务器完成。和C/S结构的应用系统相比,客户端变得非常瘦。 (4) 可以透明地跨越异质网络、计算机平台,无缝地联合使用数据库、超文本、多媒体等多种形式的信息。 (5) B/S系统运行的Internet易于设置、使用和管理。 目前,许多C/S体系结构的应用系统纷纷被重构为B/S结构,然后移植到Internet环境下。同样图书管理系统的模式也正在转变,转变为B/S模式。这种转变正顺应了高速发展的Internet,用户可以足不出户就能了解到最新的图书馆动态。方便了客户的同时也方便了图书管的工作人员。 1.2 需求分析1.2.1信息要求只有通过对图书管理及借阅系统的终端用户和客户进行大量的调研,才能真正理解终端用户和客户的需求,才能开发出合理的、实用的图书管理及借阅系统,才能满足各大图书馆管理需要,我结合目前的我校的图书管理系统功能,设计了基于B/S模式下的图书管理及借阅系统。下面列出对最典型、最关键的需求。(1) 每天都有大量的用户通过浏览器对网上的图书馆进行各种操作。这些用户可以实现查询图书信息、预约图书信息并且可以更改个人的帐户信息和密码。(2) 当用户预约了图书以后,就可以直接去图书馆凭借图书证件借阅图书,在该用户借走该图书之前,其他用户无法预定该图书。只有在该用户借走该图书之后,其他用户才可以预约该图书。(3) 图书管理员可以根据需要统计出借阅次数的图书排行榜,这样可以有利于引导用户也可以避免用户盲目借书。(4) 图书管理员对最近登陆的新书也同样有公告。极大地方便了用户。(5) 当用户预约了图书但又超过15天没有去借阅,则自动似为放弃预约,同时其他用户又可实现预约功能。(6) 用户借阅书籍过期不归还者,则自动似为超期,并按照超期时间每天0.1元累计。并通过Email通知用户归还图书,并缴纳超期费用。(7) 一般管理员有权修改图书信息,并发布公告。超级管理员有权限增加、删除、编辑一般管理员信息。超级管理员拥有最高权限。1.2.2处理要求 处理需求的第一步就是描述图书管理及节约系统的功能,以此来确定系统的功能需求。如图1.2.2系统功能图。(1)普通用户功能 用户个人信息提示功能. 查询与更新密码,个人信息。查询各类图书的基本信息,包括书名,简介等 实现系统的预约功能。 实现非注册用户浏览功能,你即使不注册,可以查询图书的基本情况,但无法预约。(2)一般管理员功能 管理员登陆后,进入管理菜单,对图书进行添加,删除,查询,对用户进行添加和删除操作等。 发布更新最新图书信息,以及借阅次数最多的图书。(3)系统管理员功能 拥有一般管理员的一切功能。 对一般管理员进行授权。(4)查询功能 按书名,关键字,作者,出版社等进行查询。 按书的分类进行查询。 查询借阅次数最多的图书。 支持多种复合模糊查询功能。 (5)统计功能 显示图书借阅次数的排行,方便了解当前热门图书。图书管理及借阅系统普通用户功能系统管理员功能统计功能一般管理员功能查询功能图1.2.2系统功能图1.2.3安全性与完整性要求 (1)在用户预约时应有添加事务,这是为了防止在断电情况下出现数据的不一致或者丢失等。保证用户预约的书在预约表中,并且更新 (2)超级管理员对于管理员权限的分配,必须得当。 (3)创建触发器:1、满足在用户预约超期时自动取消预约,并更新图书信息供其他用户预约。2、满足在用户超期未还书的情况下,自动添加进入过期表。 1.3 UML系统建模 1.3.1图书管理及借阅系统的用例分析 如下图所示1.3.11.3.5是所有功能的实现,有效的促进开发与与对系统的理解。管理员管理员删除图书信息查询图书记录编辑图书记录插入图书记录删除普通用户信息插入普通用户记录编辑普通用户记录查询普通用户记录图1.3.1一般(系统)管理员修改图书记录用例图图1.3.2一般(系统)管理员修改普通用户记录用例图普通用户普通用户查询图书预约图书借阅图书归还图书查询已借阅图书 图1.3.3查询/借阅/预约图书用例图 图1.3.4查询/归还借阅图书用例图系统管理员删除一般管理员记录编辑一般管理员记录插入一般管理员记录 图1.3.5授权一般管理员 该用例图标记了所有图书管理及借阅系统的用例,从中可以看出,图书管理及借阅系统的角色可以划分为如下三类: 一般管理员:用例包括普通用户信息管理,图书信息管理。 系统管理员:用例包括普通用户信息管理,图书信息管理,一般管理员信息管理。 普通用户:用例包括查询、预约图书,查看借阅情况,修改个人信息。1.3.2图书管理及借阅系统的域类分析 图书管理及借阅系统中的域主要包括:学生(Customer)、查询(Query)、借阅(Borrow)、预约(Order)、归还(Return)。可以在类图中将上面的域以及它们的关系表示出来,如图1.3.6所示。1n1n1n1n1n1n1n1n1n1nBorrowBorrowNo:IntegerCusNo:IntegerBookNo:IntegerBookName:StringAuthor:StringBorrowTime:DateCreate()Destroy()OrderOrderNo:IntegerCusNo:IntegerBookNo:IntegerBookName:StringAuthor:StringCreate()Destroy()QueryBookNo:IntegerBookName:StringAuthor:StringPublishment:StringBorrowed:StringOrdered:StringCreate()Destroy()CustomerCusNo:IntegerCusName:StringWorkPlace:StringCusAge:IntegerSex:StringTel:integerPermitted:BooleanCreate()Destroy()ReturnReturnNo:IntegerCusNo:IntegerBookNo:IntegerBookName:StringAuthor:StringReturnTime:DateExceedTime:BoolanCreate()Destroy()图1.3.6 图书管理及借阅系统域草图 这里的域还不是很完整,还有待进一步改进,还只是草图。1.4 概念结构设计 1.4.1 ER图实体集设计 l 实体集Book,具有属性BookNo、BookName、Author、Publishment、PubTime、Borrowed、Ordered、Times、Keyword、Type、LeftNum、BuyTimel 实体集Customer,具有属性CusNo 、CusName、CusAge、CusSex、WorkPlace、Tel、PassWord;此外由于用户进入图书管理及借阅系统不仅要输入account_number,还应输入密码PassWord。 l 实体集Manger,具有属性ManNo、ManName、ManAge、ManSex、Address、Tel、PassWordl 实体集SupManger,具有属性SupManNo、PassWord。1.4.2 ER图联系集设计 下面将定义联系集和映射基数。l Order,是Customer和Book之间一对多的联系集。l Borrow是Manger 、Customer、Book之间多对多的三元关系,表示一个管理员可以为多个用户借阅多本图书。l Book_Manger是Manger、Book之间一对多的关系。l Cus_Man是Manger、Customer之间一对多的关系。l Sup_Man是Manger、SupManger之间多对一的关系。1.4.3 完整的ER图 如图1.4所示,给出了完整的银行模拟系统的E-R图。SupMangerMangerCustomerBookBook_MangerborrowOrderSup_ManCusManSupManNoPassWordCusNoCusNameCusAgeCusSexWorkPlaceTelPassWordManNameManNoManAgeManSexAddressTelPassWordBookNoBookNameAuthorPublishmentPubTimeBorrowedOrderedTimesKeywordTypeLeftNumBuyTime 图1.4 E-R图 1.5逻辑结构设计 1.5.1 确定关系模式的主码 l 强实体集。实体集的主码成为关系模式的主码。如Book、Customer、Manger、Supmanger.l 联系集。相关实体集的主码共同构成关系的超码集。1.5.2 构建关系模式图 如图1.5所示给出了完整的关系图 图1.5关系图 1.6 图书管理及借阅系统的实施 1.6.1主页设计 (1) 设计的重点 SQL Server2000数据库的连接。在用Eclipse+Sql连接数据库的时候简直就是困难重重。比如说,SQL要装一个补丁,在网上找了很久才找到;在安装SQL Server2000的JDBC驱动,又要找到msutil.jar、mssqlserver.jar、msbase.jar,并且要将这三个文件拷贝到tomcat的lib目录下。 中文显示问题。在完成一个简单JSP文件的时候,总是出现一堆乱码,在查询资料以后,原来是中文转换显示问题。其实这种问题搞懂了也就很简单,只要在头文件中添加charset=gb2312 即可。 不同页面共享数据。每次做系统的时候,不同页面之间的数据共享总会遇到这样那样的问题,这次也一样。其实共享数据的方法有很多,超链接、声明类、使用JAVABEAN等。在这个图书管理系统中我使用了两种方法:超链接、声明类。 页面美观问题。页面美观包括很多方面,在我设计的图书管理及借阅系统中,我加入了滚动字、背景、动态图象,并且消除了超链接的下划线等。(2) 主要设计思路 在这个整个主页面中,我主要设计了6个模块有用户登陆模块、一般管理员登陆模块、超级管理员登陆模块、图书排行榜模块、新书上架、公告。而这几个模块中只有用户登陆模块是在主页面直接实现的。(3) 主页面 如图1.6.1所示。图1.6.1主页面 (4) 主页面调试 主页面调试问题主要是读者登陆模块的设计,如果用户输入空登陆号就会提示出错如图1.6.2,如果密码为空也会提示出错如图1.6.3,当输入的登陆号和密码为错误的即不存在该用户,那么也会提示出错无法登陆。 图1.6.2空登陆名 图1.6.3空密码 (5) 关键代码分析 /*中文显示*/ /*定义on_submit()函数判断输入是否为空*/function on_submit()/验证数据的合法性 if (form1.CusNo.value = )alert(用户名不能为空,请输入用户名!);form1.CusNo.focus();return false; if (form1.PassWord.value = )alert(用户密码不能为空,请输入密码!);form1.PassWord.focus();return false;/*设置几个超链接*/%out.println(管理员登陆); out.println(高级管理员登陆 ); out.println(图书排行榜); out.println(新书上架 ); out.println(联系我们); out.println(公告 ); % 欢迎访问图书管理及借阅系统 /*不同页面之间共享数据*/ 1.6.2读者页面设计及功能模块分析 (1) 设计的重点 查询页面的分页显示问题。由于书的数量多,一个页面无法显示所有的数据在同时很多数据在同一页上显示也不够美观。因此我想到用分页显示来查看所需的数据。就要设置几个变量来存储所要的值countRecord表示记录条数countPageRecord表示每页记录条数countPage表示总页数countPageRecord=5;/每页5条记录,要设置每页记录条数就更改这个变量的值得到记录的条数 设置不同值的转向页面。即选择不同的按纽就执行不同的页面操作。这个问题的解决方案是在网上搜到的。定义一个函数实现按纽具有不同的然后根据这些不同就转向不同的页面即可。 设置用户更改信息时,要传递用户性别时,我遇到了很大的困难,每次都传不过去,在判断是男是女时字符串的比较是否相等用equals比如用rs.getString(CusSex) equals(男)来表示。 用户预约图书时设置事务。这样可以保持用户预约的成功同时更新Book中的信息防止其他用户预约,事务的设置有利于保证数据库中数据的一致性问题。(2) 主要设计思路 对于用户而言,并且是基于B/S结构模式下,我认为用户的基本功能就是更改个人信息、预约图书、查询图书。他并不具备借书、还书功能。借书还书只能由管理员协助用户一起完成。查询图书页面支持模糊查询,在选择出版社、书名、类别会出现想要的图书信息。(3) 用户功能页面 如图1.6.4所示图1.6.4 (4) 各页面调试 1.查询图书页面的调试。进入查询图书页面后,可根据出版社查找某一出版社的图书。如图1.6.5所示,书名和类别不同也会得到相应的结果如图1.6.6。图1.6.5根据出版社查询图书图1.6.6根据类别和书名的模糊查询 2.修改个人资料页面的调试。进入修改个人资料页面的时候,该用户的资料也同样传递了过来。这样不需要把一些不需要修改的资料重复的填写,只需填写想要修改的部分。如图1.6.7所示,在修改成功后,会提示修改成功。如图1.6.8所示。图1.6.7修改个人信息页面图1.6.8修改成功页面 3.预约图书页面调试。预约图书首先先要选择你要预约的图书,点击预约后即可预约该书,同时该信息将存入数据库中。如图1.6.9所示。图1.6.9预约图书页面 (5) 关键代码分析 int countRecord=0;/记录条数 int countPageRecord=0;/每页记录条数 int countPage=0;/总页数 countPageRecord=5;/每页5条记录,要设置每页记录条数就更改这个变量的值得到记录的条数 rs.last(); countRecord=rs.getRow(); if(countRecord%countPageRecord=0) countPage=countRecord/countPageRecord; else countPage=countRecord/countPageRecord+1; /把记录指针移至当前页第一条记录之前 if(dipage-1)*countPageRecord=0) rs.beforeFirst(); else rs.absolute(dipage-1)*countPageRecord); if(i=countPageRecord) break; /当前页显示完,则退出循环 out.print(); out.print(共+countRecord+条记录,共+countPage+页,当前第+dipage+页,每页+countPageRecord+条记录,); if(dipage=1|countPage=0)/当前是首页 ; else/当前不是首页 out.print(首页,); out.print(上一页,); if(dipage=countPage)/当前是末页 ; else/当前不是末页 out.print(下一页,); out.print(末页); out.print(); out.print(); con.close(); 男 女 男 女1.6.3管理员页面设计及功能模块分析(1) 设计的重点 借阅图书时要考虑借阅时间与归还时间的差,如果超过时间即15天不还图书,则自动加载进入超期列表。在设置时间时,时间转换是一个难点。简单设置java.util.Date myDate=new java.util.Date();还不够,还要定义它的显示格式。java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat (yyyy-MM-dd HH:mm:ss);设置15天后的日期就要定义一个计算公式long Thistime=(Thisday.getTime()/1000)+60*60*24*15; 设置借阅图书时,图书数目为0时不能借阅图书。这里要考虑到一个整形转换数据问题,用Integer.parseInt(rs.getString(LeftNum)0判断图书的库存量。 在借阅图书成功同样要设置一个事务,满足借书并且更新图书中的借阅次数。(2) 主要设计思路 对于管理员,他拥有很多功能:查询图书、借阅图书、归还图书、删除图书、插入图书、编辑图书、删除用户、更新用户信息等功能。有些功能在用户功能中已经阐述过,在此就不再重复。(3) 管理员功能页面如图1.6.10所示图1.6.10管理员功能页面 (4) 管理员各功能调试 1.借阅图书页面调试。借书页面如图1.6.11所示。如果用户已经借阅了此书,则会如图1.6.12提示用户已经借阅了此书。如果书的数目为0则会提示如1.6.13所示该书已经借完信息,否则提示用户借阅成功如图1.6.14。图1.6.11借阅图书页面 图1.6.12借阅图书页面 图1.6.13借阅图书页面图1.6.14借阅图书页面 2.归还图书页面调试。如图1.6.15所示归还图书页面,如果用户没有借阅此书则提示如图1.6.16该用户未借阅此书,如果用户借阅了此书则提示成功归还如图1.6.17所示。 图1.6.15归还图书页面 图1.6.16提示归还出错信息图1.6.17归还成功提示信息 3.插入图书信息页面调试。如图1.6.18所示插入新图书页面,插入成功提示如图1.6.19所示。 图1.6.18添加新书 图1.6.19成功添加新书 (5)关键代码分析 % 归还图书 归还成功! 1.6.4 超级管理员页面设计及功能模块分析 (2) 主要设计思路 插入、删除管理员功能同前面介绍的插入、删除图书、用户功能类似在此不做过多的说明。(3) 超级管理员功能页面如图1.6.20所示图1.6.20所示 1.7 结束语 本次实习收获颇丰,从对JSP一无所知到现在完成一个图书管理及借阅系统的设计与开发。在这一个多星期的时间里,我学到了很多关于JSP的知识,同时我也能简单的使用Eclipse这个开发工具。只有实践才能让知识得到巩固和完善,我觉得我正在一步一步地成长中。我用过Delphi开发过银行系统,用过VC开发过文件管理系统,现在我用Eclipse开发图书管理及借阅系统,每次开发这样的系统的时候,与数据库的连接总是难点。当然,前面的一些开发经验,也让我很快的掌握了Eclipse并且考虑问题更加周到全面。回顾一下这一个多星期,一心扑在电脑前,虽然很累,每天的睡眠加起来不到6个小时,但是我坚持下来了,我做到了。我成功地战胜了我自己。1.8 致谢做这个软件综合实习的时候,很多人给了我意见和解决问题的方法,他们在我完成软件综合实习的时候给了我很大的帮助。我的同学们给予我很多有关各公司实习情况的信息和现在很多公司的开发工具以及语言趋势等等。此外,许多人通过各种途径帮助我,比如说QQ聊天、短信帮助、邮件留言等。在此我不可能一一列出,我谨对下面的人员表示特别的感谢。l 章老师,我的数据库系统概念的任课老师,她对我的影响很大,在课程学习期间的三次实习,她都很严格的要求我们要做好,这三次实习不仅仅是学习数据库的初级阶段,也是我对数据库有更深认识的阶段。我也从那时起将章老师当成我学习模范。l 刘老师,我的软件工程老师,他教给了我做项目的方法,如何分配每个阶段的时间来提高开发效率。我在需求阶段花了很多时间来研究这个系统,这也使得我能够很顺利地完成数据库编码阶段的最重要的准备。l 赵老师,我的人工智能老师,也是我的软件综合实习的老师,她给了我们充分的理解,让我能够充分地利用学校资源,保证了这次实习能够顺利完成。最后我向所有帮助过我的人表示深深的谢意。参考文献1 刘杰,王燕,刘江,SQL Server数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论