欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新Oracle-11g-图书管理系统项目报告书.doc

    • 资源ID:35376245       资源大小:713.50KB        全文页数:27页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新Oracle-11g-图书管理系统项目报告书.doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateOracle-11g-图书管理系统项目报告书课程设计报告模板数据库原理及技术应用专周图书管理信息系统实验报告书课程名称数据库原理及技术应用设计题目图书管理信息系统班级 学号 姓名 指导老师 完成时间 -目 录1 专周题目12 专周目的和要求12.1目的12.2要求13 运行环境13.1硬件环境13.2软件环境14 专周时间25 专周内容25.1完成的主要功能概述25.2概念模型等设计45.2.1 E-R模式图45.2.2所建的表45.3程序的实现95.3.1登陆模块95.3.2管理员主界面模块105.3.3读者主界面模块115.3.4添加图书125.3.5修改出版信息135.3.6修改副本信息155.3.7修改人大码165.3.8图书信息查询185.3.9图书副本信息查询205.3.10用户信息管理模块215 专周心得261 专周题目 图书管理信息系统2 专周目的和要求2.1 目的通过本次专周将这一学年所学关于Oracle的知识系统化,在平时实验课的基础上进一步掌握Oracle相关组建的应用。运用Forms Developer工具建立一个简单的数据库应用系统图书管理信息系统,掌Oracle RDBMS的功能,掌握Orcle的Forms、Graphics、SQL Report等开发工具的用法,熟悉Oracle系统下应用系统开发的过程。2.2 要求1.熟练掌握数据库的备份、恢复;2.要求用到显示游标、隐式游标、菜单、警告等来完成图书管理信息系统的编写。3 运行环境3.1 硬件环境CPU: P3同类档次或更高档次以上内存: 512MB及其以上内存硬盘空间: 40以上均可显示器: VGA或更高分辨率,建议分辨率为 1024x768像素3.2 软件环境服务器端操作系统: Windows2000 server或 Linux 客户端操作系统不限 数据库 : Oracle大型数据库管理系统4 专周时间5 专周内容5.1 完成的主要功能概述登录界面:此界面包括三个标签(用户名,密码以及界面标题)、两个文本框(用于用户名和密码的输入)、两个按钮(登录、退出 )。用户输入用户名和密码,然后点击“登录”按钮,通过到数据库表Users中查找有无相应记录,如果该条记录存在则登录到相应主界面(读者主界面或管理员主界面),如果该条记录不存在则弹出一条提示(用户名或者密码错误,请重新输入!)。“退出”按钮引用了一个警告,提醒用户是否确定要退出系统。 管理员主界面:此界面包括七个按钮(用户管理、添加图书、修改出版信息、修改副本信息、修改人大码、退出和返回登录界面)、四个标签。此界面的主要功能是实现管理员的操作权。用户管理界面:此界面的主要功能是添加,修改,删除读者和管理员的基本信息添加图书界面:此界面的主要功能是录入新书信息(包括、书名、人大码、人大码目录名、作者名、作者号、出版者、出版者地址、副本编号),根据判断是否已经存在相应记录,如果存在则提示“该记录已经存在,请重新输入!”,如果暂时没有该记录,则判断各表中是否存在相关记录,若不存在则插入一条相关新纪录。修改出版信息界面:此界面的主要功能是修改出版数据。采用绑定数据库表publishrers,调用出表中信息,管理员可以对该表数据进行修改、添加或者删除的操作。修改副本信息界面:此界面的主要功能是修改副本信息数据。采用绑定数据库表publishrers,调用出表中信息,管理员可以对该表数据进行修改、添加或者删除的操作。修改人大码界面:此界面的主要功能是修改人大码分类目录。采用绑定数据库表Categories,调用出表中信息,管理员可以对该表数据进行修改、添加或者删除的操作。修改副本信息界面:此界面的主要功能是修改副本信息。采用绑定数据库表copies,调用出表中信息,管理员可以对该表数据进行修改、添加或者删除的操作。读者主界面:此界面包括六个按钮(图书信息查询、图书副本信息查询、借书管理、还书管理、退出和返回登录界面)、四个标签。此界面的主要功能是实现读者的操作权。图书信息查询界面:该界面的主要功能是查询图书相关信息。用户通过下拉菜单选择查询方式,根据所选查询方式进行相关信息的查 询。图书副本信息查询界面:该界面的主要功能是查询副本信息。用户通过下拉菜单选择查询方式,根据所选查询方式进行相关信息的查询。附:功能模块图5.2 概念模型等设计5.2.1 E-R模式图5.2.2 所建的表数据库设计有8张表,分别是:Users表(用户表)Books表(书籍表)、Copies表(副本表)、Authors表(作者表)、Categories表(分类目录表)、Writers表(写书表)、Publishers表(出版社表)、Borrow表(借阅表)。1、Books表字段数据类型数据长度能否为空中文名备注ISBNChar20否国际标准图书编码主码TitleChar50是书名PubnameChar30是出版者名RDCodeNumber是人大码2、Copies表字段数据类型数据长度能否为空中文名备注CopyNoNumber否副本编号主码ISBNChar20是国际标准图书编码3、Authors表字段数据类型数据长度能否为空中文名备注AuthorNoNumber否作者号主码AuthorNameChar20是作者名4、Categories表字段数据类型数据长度能否为空中文名备注RDCodeNumber否人大码主码CateNameChar20是目录名5、Writers表字段数据类型数据长度能否为空中文名备注ISBNChar20否国际标准图书编码主码AutrerNoNumber否作者号主码6、Publishers字段数据类型数据长度能否为空中文名备注PubNameChar30否出版者名主码AddressChar50是地址7、Users表字段数据类型数据长度能否为空中文名备注UsersNoNumber12否用户编号主码UserNameChar20否用户名UserPwdChar20否用户密码QuanxianChar20否权限EmailNumber30是电子邮箱TelChar20是电话AddressChar20是籍贯建立用户:grant connect,resource to librarian identified by 123456;grant connect to reader identified by reader;Books表:create table Books(copyno number(10) not null,isbn char(20) not null,title char(30),pubname char(30),author char(30),authorno char(30),rdcode char(30),state number(4);insert into Books(copyno,ISBN,Title,PubName,RDCode,State,author,authorno) values(1001,'A0001','山的那边','yy出版社',1,0,'大卫','1');insert into Books(copyno,ISBN,Title,PubName,RDCode,State,author,authorno) values(1002,'A0002','再现山河','xx出版社',2,0,'无敌','2');Authors表:create table Authors(authorno number(10) not null,authorname char(20);Categories表:create table Categories(rdcode char(20)not null,catename char(20);Writers表:create table Writers(isbn char(20)not null,authorno char(20)not null);Publishers表:create table Publishers(pubname char(30)not null,address char(50);insert into publishers(pubname,address) values('yy出版社','浙江');insert into publishers(pubname,address) values('xx出版社','北京');Copies表:create table copies(copyno number(10) not null,isbn char(20);insert into copies(copyno,isbn) values(1001,'A0001');insert into copies(copyno,isbn) values(1002,'A0002');Users表:create table Users(UserName char(20) not null,UserPwd char(20) not null,UserNo number(2),Quanxian number(20),Email char(30),TEL char(20),Address char(20);insert into Users(UserName,UserPwd,UserNo,QuanXian,Email,TEL,Address) values('杨波','123',1,1,'350357474','13550399250','chengdu');insert into Users(UserName,UserPwd,UserNo,QuanXian,Email,TEL,Address) values('yangbo','456',2,2,'350357474','1355041230','chengdu');授予Reader:grant select on books to reader;grant select on publishers to reader;grant select on authors to reader;grant select on copies to reader;grant select on writers to reader;grant select on categories to reader;5.3 程序的实现5.3.1 登陆模块登陆:declarecursor login (tuser Users.UserName%type,tpwd Users.UserPwd%type)isselect * from Userswhere UserName=tuser and UserPwd=tpwd;loginrow login%rowtype;beginopen login(:login.tuser,:login.tpwd);fetch login into loginrow;if login%found thengo_block('main');message('登录成功');commit;:login.tuser:='' :login.tpwd:='' :global.quanxian:=loginrow.quanxian; :global.userno:=loginrow.userno; :global.punish:=0;elsemessage('对不起,用户名或密码错误,请重新输入');commit; :login.tuser:='':login.tpwd:=''end if;close login;end;退出:declare alert_button number;beginalert_button:=show_alert('exit_form');if alert_button=ALERT_BUTTON1 thenEXIT_FORM;elsebell;end if ;end;5.3.2 管理员主界面模块5.3.3 读者主界面模块5.3.4 添加图书declare cursor a(co Books.copyno%type) is select * from books where copyno=co; a1 a%rowtype;alert_button number;begin open a(:booksmana.copyno); fetch a into a1; if a%found thenmessage('对不起,该书已存在');commit; :booksmana.copyno:='':booksmana.isbn:='' :booksmana.rdcode:='' :booksmana.title:='' :booksmana.pubname:='' :booksmana.author:='':booksmana.state:='':booksmana.authorno:='' else alert_button:=show_alert('add');if alert_button=ALERT_BUTTON1 theninsert into books(copyno,isbn,title,pubname,rdcode,author,state,authorno)values (:booksmana.copyno,:booksmana.isbn,:booksmana.title,:booksmana.pubname,:booksmana.rdcode,:booksmana.author,:booksmana.state,:booksmana.authorno); message('添加成功'); commit; elsebell;end if ;end if;close a;end;5.3.5 修改出版信息declarecursor u(bnoo publishers.pubname%type) is select * from publishers where pubname=bnoo;u1 u%rowtype;alert_button number;a number;beginopen u(:publisher.pubname);fetch u into u1;-select count(*) into a from books where ISBN=:booksmana.ISBN;if u%found thenalert_button:=show_alert('alter');fetch u into u1; if alert_button=ALERT_BUTTON1 thenupdate publishers set pubname=:publisher.pubname,address=:publisher.address; message('修改成功'); commit; end if;elsemessage('没有此书,无法修改');end if;commit;close u;end;5.3.6 修改副本信息declarecursor u(bnoo copies.copyno%type) is select * from copies where copyno=bnoo;u1 u%rowtype;alert_button number;a number;beginopen u(:copies.copyno);fetch u into u1;-select count(*) into a from books where ISBN=:booksmana.ISBN;if u%found thenalert_button:=show_alert('alter');fetch u into u1; if alert_button=ALERT_BUTTON1 thenupdate copies set copyno=:copies.copyno,isbn=:copies.isbn; message('修改成功'); commit; end if;elsemessage('没有此书,无法修改');end if;commit;close u;end;5.3.7 修改人大码declarecursor u(bnoo books.author%type) is select * from books where author=bnoo;u1 u%rowtype;alert_button number;a number;beginopen u(:authors.author);fetch u into u1;-select count(*) into a from books where ISBN=:booksmana.ISBN;if u%found thenalert_button:=show_alert('alter');fetch u into u1; if alert_button=ALERT_BUTTON1 thenupdate books set isbn=:authors.author,rdcode=:authors.rdcode; message('修改成功'); commit; end if;elsemessage('没有此书,无法修改');end if;commit;close u;end;5.3.8 图书信息查询declarecursor b(title1 Books.title%type) is select * from books where title=title1;b1 b%rowtype;cursor a(au Books.author%type) is select * from books where author=au;a1 a%rowtype; begin if :search.list1='1'then open b(:search.text); fetch b into b1; if b%found then :search.copyno:=b1.copyno; :search.isbn:=b1.isbn; :search.rdcode:=b1.rdcode; :search.title:=b1.title; :search.publish:=b1.pubname; :search.author:=b1.author; :search.state:=b1.state; else message('没有此记录');commit; end if; close b; end if; if :search.list1='2'then open a(:search.text); fetch a into a1; if a%found then :search.copyno:=a1.copyno; :search.isbn:=a1.isbn; :search.rdcode:=a1.rdcode; :search.title:=a1.title; :search.publish:=a1.pubname; :search.author:=a1.author; :search.state:=a1.state; elsemessage('没有此记录');commit; end if; close a; end if; :global.punish:=0;end;5.3.9 图书副本信息查询declare cursor b is select * from copies;bs b%rowtype;v_count binary_integer;begin select count(rowid) into v_count from copies; open b; if(:global.punish=0) then message('已经到达第一页');commit; else :global.punish:=:global.punish-1; for i in 0.(:global.punish) loop fetch b into bs;:booksmana.copyno:=bs.copyno; :booksmana.isbn:=bs.isbn; end loop; end if; close b;end;declare cursor b is select * from copies;bs b%rowtype;v_count binary_integer;begin select count(rowid) into v_count from copies; open b; if(:global.punish=v_count) then message('已经到达最后一页');commit; else :global.punish:=:global.punish+1; for i in 0.(:global.punish) loop fetch b into bs;:booksmana.copyno:=bs.copyno; :booksmana.isbn:=bs.isbn; end loop; end if; close b;end;5.3.10 用户信息管理模块用户信息查看:declarecursor u is select * from users; admrow u%rowtype;v_count binary_integer;begin select count(rowid) into v_count from users; open u; if(:global.punish=0) then message('已经到达第一条');commit;else :global.punish:=:global.punish-1; for i in 0.(:global.punish) loop fetch u into admrow;:adminmana.userno:=admrow.userno;:adminmana.username:=admrow.username;:adminmana.userpwd:=admrow.userpwd;-:adminmana.quanxian:=admrow.quanxian;:adminmana.email:=admrow.email;:adminmana.address:=admrow.address;:adminmana.tel:=admrow.tel; end loop; message(:global.punish);close u;end if;end;declarecursor u is select * from users; admrow u%rowtype;v_count binary_integer;begin select count(rowid) into v_count from users; open u; if(:global.punish=v_count) then message('已经到达最后一条');commit;else :global.punish:=:global.punish+1; for i in 0.(:global.punish) loop fetch u into admrow;:adminmana.userno:=admrow.userno;:adminmana.username:=admrow.username;:adminmana.userpwd:=admrow.userpwd;-:adminmana.quanxian:=admrow.quanxian;:adminmana.email:=admrow.email;:adminmana.address:=admrow.address;:adminmana.tel:=admrow.tel; end loop; message(:global.punish);close u;end if;end;添加用户:declarea number;alert_button number;beginselect count(*) into a from users where userno=:adminmana.userno;if a!=0 thenmessage('该用户已存在.请重新输入注册用户信息');commit;elsealert_button:=show_alert('ZHUCE');if alert_button=ALERT_BUTTON1 theninsert into users(UserName,UserPwd,UserNo,QuanXian,Email,TEL,Address)values (:adminmana.username,:adminmana.userpwd,:adminmana.userno,2,:adminmana.email,:adminmana.tel,:adminmana.address); message('注册成功'); commit;elsebell;end if ; end if; end;删除用户:declarepc number(8);cursor u(uno users.userno%type) is select * from users where userno=uno;u1 u%rowtype;alert_button number;beginopen u(:adminmana.userno);fetch u into u1;if u%found thenalert_button:=show_alert('delete'); if alert_button=ALERT_BUTTON1 thenpc:=:adminmana.userno;delete from users where userno=pc; message('删除成功'); else bell; end if;elsemessage('没有此用户');end if;commit;close u;end;修改用户信息:declarepc number(8);cursor u(uno users.userno%type) is select * from users where userno=uno;u1 u%rowtype;alert_button number;a number; beginopen u(:adminmana.userno);fetch u into u1;select count(*) into a from users where userno=:adminmana.userno;if u%found thenalert_button:=show_alert('alter');fetch u into u1; if alert_button=ALERT_BUTTON1 thenpc:=:adminmana.userno;update users set username=:adminmana.username,userpwd=:adminmana.userpwd,address=:adminmana.address,tel=:adminmana.tel,email=:adminmana.email where userno=pc; message('修改成功'); else bell; end if;elsemessage('修改失败');end if;commit;close u;end;重置::ADMINMANA.userno:='':ADMINMANA.username:='':ADMINMANA.userpwd:='':ADMINMANA.address:='':ADMINMANA.email:='':ADMINMANA.tel:=''6 专周心得本次专周题目是图书管理信息系统,目的是将我们这一学年学习的Oracle理论知识用于实践,将分散的知识点有机地统一结合起来尽量开发出一个相对完善的系统。熟练掌握数据库的备份、恢复,掌握游标(包括隐式游标和显示游标)、菜单、警告等的使用,掌握页面布局等所学知识。这次专周不像软件测试专周是团体合作完成,而是要自己一个人完成,所以个人工作量相对大了很多。在专周过程中,遇到了很多问题,对书本知识不熟悉,很多学习过的知识都基本遗忘,所以不得一边专周一边重新温习课本。在温习过程中我发现理论和实践是有很大差别的,有些东西理论上感觉已经掌握但是实际一操作就会有错误出现,对于某些知识不知道该怎样运用在系统中,也不清楚该系统怎样布局,需要用到些什么。不过后来,通过查阅资料,并在同学和实验老师的帮助下基本解决了这些问题。通过这次专周,我把理论知识应用到了实际编程中,熟练掌握了库表的创建,游标、警告、各种布局工具的使用,掌握了数据库的逻辑备份,学会了编写代码实现程序,还学到了很多平时不了解的知识。在此次专周中,我懂得了团队力量的伟大,不知道的知识同学之间可以相互探讨、可以请教实验老师,我们能够从实验老师那里学到很多知识。这次专周为我毕业后适应适应工作打下了基础,了解到团队合作、文档编写、口头与书面表达的重要性。并在专周设计实践中,我提高了自学能力,提高了今后参与开发稍大规模实际软件项目和探索未知领域知识的能力和自信心,学到了很多书本里没有的知识。再次体会到实践对理论知识的提高有不可忽视的作用,并且在实践过程中遇到困难要积极思考、勇于解决,不要轻言放弃!通过这次专周我是受益匪浅,不仅所学知识更加牢固,而且更深刻地了解到了专周对于我们的重要性。

    注意事项

    本文(最新Oracle-11g-图书管理系统项目报告书.doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开