图书管理系统实验报告_第1页
图书管理系统实验报告_第2页
图书管理系统实验报告_第3页
图书管理系统实验报告_第4页
图书管理系统实验报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、实验报告【金超逸】 【】一、 实验题目图书销售管理系统的设计与实现。二、 开发环境操作系统:Windows 7 家庭普通版数据库管理软件: Microsoft SQL Server 2008SQL Server Management Studio编程语言:javaWeb开发环境:jsp三、 数据库设计其实这个项目的ER图不能算是标准意义上的ER图,因为各个关系各自独立存在就可以了user和其它表没有什么联系,book和另外两个表frecord以及npn之间的所有联系也只是在对book进行特定的两种更新时frecord和npn也有对应的更新。因此,这个数据库结构中根本就只有“实体集”,而无真正的

2、“联系集”。每个表的功能和属性:npn:记录维护总平衡tou:总支出ti:总收入rn:财务记录总数frecord:收录维护财务记录cp:动作前总平衡acc:动作金额usage:动作用途numob:动作涉及书本数量time:动作时间number:财务记录编号book:记录维护书籍信息isbn:isbntitle:书名author:作者publisher:出版社price:零售价iprice:进价snum:库存数量unum:未付款数量dnum:已付款数量user:记录维护用户信息username:用户名password:密码rname:真实姓名num:工号gender:性别age:年龄四、 系统设

3、计1. 用户管理a) 1)系统用户分为超级管理员用户和普通管理员用户。普通管理员用户只能对图书进货、销售等信息进行管理,只能查询和修改自己的用户信息;而超级管理员除了可以对图书进货、销售等信息进行管理,还能创建新的用户和查看所有用户的资料。2)超级管理员用户在系统完成时便已经存在(即其用户名和密码已经存在于数据库中)。而普通管理员用户的用户名和密码需要由超级管理员用户来创建。 3)用户的密码不能以明文形式保存于数据库中,而必须先加密,一般采用MD5算法进行加密。 4)每位用户除了用户名和密码信息外,还有真实姓名,工号,性别,年龄等基本信息。 5)系统所有功能只有用户登录了才能进行操作。 系统通

4、过嵌入的判断页面保持登录。通过Attribute记录登录信息,若已登录,验证通过,否则自动送往登陆页面。用两个不同的标记,以及不同的嵌入页面,区分普通管理员和超级管理员。普通管理员无法通过超级管理员专用页面的验证。关于用户信息的查询和更新通过jdbc连接后调用sql语句实现,而所有关于具体某用户信息的处理通过提交表单来实现。MyJsp.jsp是登录页面,提交登录信息至login.jsp处理。login.jsp嵌入了javabean,用封装在Ebcy中的函数md5给密码进行MD5hash。提交的密码hash以后跟user库中保存的密文进行对照,如正确,设置一个正确的Attribute信号,这个信

5、号在登出前一直有效;如果select的结果为空,或密文不匹配,则送回登陆页面MyJsp.jsp。login.jsp根据用户名的不同把成功登陆的用户送往不同的页面:若是超级管理员“admin”,则送至管理员页面“admain.jsp”,否则送往主管理页面“main.jsp”。主管理页面重点不在于用户管理,但每个用户可以编辑自己的信息。编辑信息通过表单送至editu.jsp执行编辑。管理员界面里填写表单可提交至Cnew.jsp创建新用户。而mm.jsp使用一个查询select * from user 找出所有用户信息并打印在屏幕上,并且嵌在表单中,提交单选框信息可以由dlus.jsp执行删除用户操

6、作。2. 库存书籍管理系统中需要维护整个书城目前库存的所有书籍信息,包括书籍ISBN号,书籍名称,出版社,作者,零售价格,当前库存数量等。 main.jsp上有按钮指向bm.jsp,这是书籍管理界面的首页。书籍管理主要通过关系“book”来实现。“book”中的各个属性存储了需要的各条信息。“价格”分为“进价”和“零售价”,而“数量”则细分成了“库存数量”、“未付款数量”、“已付款数量”三种不同的类别,以便进行后面的处理。3. 书籍查询 可以使用书籍编号、书籍ISBN号、书名、作者、出版社等方式查询库存的相关书籍。 从bm.jsp出发,sch.jsp是查询页面。这个页面主要有三个板块:一是计算

7、查询,二是显示结果,三是编辑信息。编辑信息在后面会提到,这里不赘述。计算查询是利用提交到自己的表单,将关键词嵌入sql语句,从而得出结果集。例如这样一条语句select * from book where snum0 and (isbn like %+kw+% or title like %+kw+% or author like %+kw+% or publisher like %+kw+%)其中kw是关键词字符串。结果集用一个表格来显示,如下图。4. 图书信息修改 可以修改书籍名称、作者、出版社、零售价格等信息。从上图可以看到,sch.jsp产生的表格里有一栏“编辑信息”。这个表格其实也是

8、一个表单,选上“编辑信息”一栏的单选框,点击“操作”,选中一行的isbn会被提交到eb.jsp,而根据这个主码,就可以编辑这本书的信息了。编辑信息被提交到Bedit.jsp执行。5. 图书进货: 对于需要进货的书籍,如果库存中曾经有这本书的信息的话,则直接将这本书的ID列入进货清单,否则需要输入进货书籍的相关信息,包括ISBN号,书名,作者,出版社等。此外,每种书都要指定其进货价格和购买数量。对于刚列入进货清单的书籍给予未付款状态。 bm.jsp上的新书表单提交至Bnew.jsp实现进货。在这里提交的信息分两类,如果在“book”关系中有的isbn,也就是说不管现在有库存还是曾经在库里,只要出

9、现过,单凭isbn就可以添加新书,改变的只是书的数量;并且,系统会提示,如果书籍信息有变,要进入编辑页面修改,而不是在这里。另一种添加方式则是针对没有过记录的书,这些书就要求信息绝对完整,如果有缺,系统会利用java里的“trycatch(Exception ex)”提示信息不完整,添加失败。不用说,改变的自然是“未付款数量”,这些书处于“未付款”状态。6. 进货付款: 查询正在进货的书籍,并给予付款,付款后书籍状态为已付款。 由bm.jsp进入pay.jsp,就进入了付款页面。利用查询语句select * from book where unum0,找出所有未付款的书籍。和上面查询页面sch

10、.jsp一样,这里利用查询、表格打印、表单提交一体,提交到dpay.jsp执行付款将“book”中未付款数量的属性值减少,而已付款数量属性的值相应增多:update book set unum=unum-+pnum+,dnum=dnum+pnum+ where isbn=+isbn+。界面如下。7. 图书退货: 对未付款的书籍可以进行退货,即将书籍状态改为已退货。 ret.jsp。这个页面的设计几乎和上面的付款页面pay.jsp一模一样,只是对“book”中三个数量属性的处理上,是“退”不是“进”罢了。8. 添加新书: 对于已付款的书籍,当书籍到货后,可以将其添加到库存中,此时需要添加上书籍的

11、零售价格。 impo.jsp。同样,这个页面和上面的两个套的是一样的模板。不同的是,执行页面dimp.jsp里多了“制定零售价”的环节。提交表单到dprc.jsp,update book set dnum=dnum-+pnum+,snum=snum+pnum+,price=+rp+ where isbn=+isbn+,书籍正式进入库存,而零售价也被指定。9. 书籍购买: 使用标售零售价格购买书籍,这时书籍的库存数量需要相应地减少。 sell.jsp结构上是sch.jsp和pay.jsp的合体。如图,先查询,查询到的输入数目提交就可出售。10. 财务管理: 当对书籍进货进行付款,或购买书籍时,系

12、统的财务账户都要添加一条账单记录,记录下财务账户的支出或收入。 在dpay.jsp对“book”中的书籍数目属性进行更新时,关系“frecord”和“npn”也要更新。insert into frecord values(+String.valueOf(dp-cp)+,-+String.valueOf(rp)+*+pnum+,buy +isbn+,+pnum+,+time+,+String.valueOf(k)+)添加一条新的财务记录;update npn set tou=tou+String.valueOf(rp)+*+pnum+,rn=rn+1更新总平衡数据。“买”和“卖”是两个相对的过程

13、,于是,在执行出售的dsl.jsp中,库存相应减少,而有关财务的两个关系,也会有收入上的更新。11. 查看账单 查看某段时间内财务账户的收入或支出记录。从main.jsp进入fm.jsp,可进入财务管理界面。在首页上,能看到总的财务状况,而点击“查看详单”进入fl.jsp,就可以看到每一条财务记录。这是在关系“frecord”中执行sql查询select * from frecord 得到的。五、 特色和创新点1.编辑信息eb.jsp中,编辑信息如图,原本的信息就放在文字框里,这样既可以让编辑者知道原来信息是什么(假如他要根据原来信息修改的话),又可以实现只修改一部分剩下的原样提交,自然相当于

14、没有改变。编辑用户信息同样如此。只不过,没有显示密码,因为密码涉及安全问题,应该让编辑者输入,这样才可靠。2.模糊查询查询中使用了这样的sql语句:select * from book where snum0 and (isbn like %+kw+% or title like %+kw+% or author like %+kw+% or publisher like %+kw+%);也就是说,只要书籍信息的任意一条包含了关键词的字段,就可以被查询到。除此之外,系统还设计了“高级查询”功能。asch.jsp用以实现。如果要具体到特定的一个或多个属性查找,使用这个。select * from

15、 book where snum0 and isbn like %+is+% and title like %+ti+% and author like %+au+% and publisher like %+pu+%3.批量处理运用提交表单以及sql查询ResultSet的不断调整,本系统实现了多处批量处理。例如下图,可以一次操作多个项目。退货、付款、确认到货、出售等都使用了这样的技术。4.其它关于登陆验证维护以及书籍状态管理的特色已在前面提到。这里再补充一些。之所以没有用联系集去表示书籍状态等情形,是因为这里的书籍状态虽多,却并不复杂,可以用线性的方式即作为隶属于书籍的属性来很好地表达。如果将选题扩大,不单单再是图书销售管理系统,而结合了批发商、消费者等更多的环节和信息,诸如“会员卡”、“老主顾”等联系集就会有他们的用武之地。而在本系统的基础上扩展出这些功能也是很方便的,并不需要对原代码部分做太大修改,具有较强的添加兼容

温馨提示

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

评论

0/150

提交评论