精华内容
下载资源
问答
  • 2.2 主要功能说明: 一.欢迎界面:改界面主要是作为本系统的封面,程序运行后该界面会出 ... ... (4)恢复vfp系统界面:该界面主要是用来退出当前运行的图书管理系统,恢复到vfp系统继续进行操作。
  • 经过长达四天的咸鱼,我在课设的进展只有一个ER...图书借阅管理系统 系统基本功能要求 1.登录连接数据库管理系统 系统须有登录连接数据库管理系统的功能。2.增、删、改、查询功能系统须有增加、删除、修改、查...

     

     

     

     

    经过长达四天的咸鱼,我在课设的进展只有一个ER图。这对我来说是远远落后于理想中进度的。

    所以在昨天下午我到达学校宿舍,给自己营造一个不受干扰的环境,好好开始做课设了。

     

    课程设计题目 

    图书借阅管理系统

     

    系统基本功能要求

     

    1.登录连接数据库管理系统
    系统须有登录连接数据库管理系统的功能。
    2.增、删、改、查询功能
    系统须有增加、删除、修改、查询数据的功能。
    3.简单的统计分析功能
    系统须有统计、排名等功能。
    4.完整性约束功能
    系统须有实体完整性约束和参照完整性约束。

     


    系统其它功能要求(可选)
    尝试在系统使用视图、存储过程、触发器、用户定义完整性约束等功能。

     

    E-R图

    数据库实现:SqlServer2012

     

    转载于:https://www.cnblogs.com/earsonlau/p/8356186.html

    展开全文
  • 学校数据库设计的课设作业; 基于B/S架构; 前端选择Vue.js; 后端选择node.js; 项目部署选择nginx进行反向代理; 代码里面有注释。 #### 课程设计目的 - 掌握数据库设计的基本方法; - 了解C/S与B/S结构应用...
  • 一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和学生...
  • 图书管理系统数据库设记,包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。此系统功能分为面向学生和面向管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,管理员可以完成书籍和...
  • java19117图书借阅管理系统cs该设计有演示视频 100%能运行买重包换 保密发送 一校一份编号:java19117语言+数据库:jsp+sql2008论文字数:20654字 摘 要随着信息技术的发展,在图书馆的管理中运用传统的手工操作方式...

    6fdeb4c2fa14b01e71ffe535ba4e0f14.png

    22807d3a8f82637d590489103d4aba3e.png

    java19117图书借阅管理系统cs
    该设计有演示视频    100%能运行
    买重包换  保密发送  一校一份

    编号:

    java19117

    语言+数据库:

    jsp+sql2008

    论文字数:

    20654字

    摘 要

    随着信息技术的发展,在图书馆的管理中运用传统的手工操作方式在现在这个数字化的时代已显得极不适应,工作人员和读者对于运用计算机来辅助和管理自身工作的需求正在逐步提高。学校也在不断的提高它的各个部门的管理质量,然而至今还有很多学校仍然采用人工管理的方式,手工管理图书信息已不能适应社会的发展。

    。本文介绍的是一个图书管理系统的基本设计方法,整个应用系统的设计意义和设计思路,研究开发的过程,以及具体各模块的分析和描述。该图书管理系统可实现添加,删除,查询等管理系统的基本功能,运行结果证明是一个可以满足借阅者和图书馆工作人员需要的管理系统。此系统基于C/S架构,使用Java的开发环境 和SQL Server 2000 数据库访问技术。

    关键词 图书馆信息管理;Java;SQL Server 2000

    目 录

    第1章 绪论 1

    1.1 引言 1

    1.2 JAVA 概述 2

    1.3 SQL Server 2000概述 3

    第2章 图书馆信息管理系统需求分析 5

    2.1系统开发的背景、目的及意义 5

    2.1.1 系统开发的背景 5

    2.1.2 系统开发的目的及意义 6

    2.2系统的主要内容 6

    2.3系统开发环境 7

    2.3.1 开发所需软件 7

    2.3.2 软件系统安装 7

    2.3.3 JDK配置环境变量 7

    2.3.4 检查JDK环境是否配置成功 9

    2.4系统各模块及功能 10

    2.4.1 图书管理模块 10

    2.4.2 读者管理模 10

    2.4.3 图书查询模块 10

    2.4.4 用户管理模块 10

    2.4.5 帮助模块 10

    2.5图书馆信息管理系统的功能模块图 11

    2.6小结 11

    第3章 数据库设计 12

    3.1 数据库创建 12

    3.2 数据表的创建 12

    第4章 系统详细设计与实现 14

    4.1系统界面的设计概述 14

    4.1.1 AWT抽象窗口工具集的相关软件包 14

    4.1.2 相关组件简介 14

    4.1.3 相关容器简介 14

    4.2用户登录界面及功能介绍 15

    4.2.1 用户登录界面 15

    4.3 管理员登陆后的功能 16

    4.3.1 主页面 16

    4.3.2图书管理 19

    4.3.2.1新书入库 19

    4.3.2.2借书功能 20

    4.3.2.3还书功能 21

    4.3.3 读者管理模块 22

    4.3.3.1新增读者 22

    4.3.3.2管理员查阅借阅信息 23

    4.3.3.3读者信息查询 25

    4.3.4 图书查询 28

    4.3.5 用户管理 30

    4.3.6帮助 30

    4.4读者登录后的功能 32

    4.4.1图书管理 32

    4.4.2 读者管理模块 33

    4.4.3 图书查询 34

    4.4.4 用户管理 35

    4.4.5帮助 37

    4.5 建立数据库连接…………………………………………………………………… ..37

    结 论 39

    致 谢 40

    参 考 文 献 41

    附录A 外文参考文献(译文) 41

    附录B 外文参考文献(原文) 50

    2baeb662fe2df8605981a87ff42da72b.png
    展开全文
  • 图书管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者和读者来说都至关重要,直接关系到图书的借用率,所以开发图书管理系统能够为管理员和读者提供充足的信息和快捷的查询手段。 编写程序系统主要实现...
  • 图书管理系统数据库实验报告

    热门讨论 2009-10-24 13:25:30
    第一章 概述 本文主要介绍的是专为齐齐哈尔大学学校使用而开发的图书馆信息管理系统的设计。...(3)图书借阅管理系统:可按书名、借阅学生查询借阅数据,显示已、没归还图书借阅数据信息,可清除已归还借阅信息。
  • 图书管理数据库系统

    万次阅读 多人点赞 2020-01-29 19:22:44
    发本文的原因:本文是一个很经典的图书管理系统设计,大学本科实验,用...该实验设计开发一个简单的图书管理数据库系统,包括图书馆内书籍的信息、学校在校师生的信息以及师生的借阅信息。此系统用户面向图书管理员...

    发本文的原因:本文是一个很经典的图书管理系统设计,大学本科实验,用例图,流程图真香!包含全部设计架构和源代码 ,可直接使用。

    链接:https://pan.baidu.com/s/16Wda96TQ_4MWHj5cXNhZaA 
    提取码:ug6z

    1  系统简介

    该实验设计开发一个简单的图书管理数据库系统,包括图书馆内书籍的信息、学校在校师生的信息以及师生的借阅信息。此系统用户面向图书管理员和借阅读者,图书馆管理员可以完成图书、读者、图书类型、学科类型、读者类型等基本信息的增加、删除和修改,可以制定借阅规则;读者可以进行图书的借阅、续借、归还、预约的确认等操作。

    系统开发技术及工具:Java JSP HTML Oracle数据库 tomcat服务器 Windows10系统  PC机

    2  系统分析

    2.1 功能模块简介

     

    2.2 功能需求描述

    • 借阅功能:

    图书出借时考虑三个问题:

    1. 读者是否因为超期、罚款等情况被关闭了借阅权限;
    2. 读者是否已经借满其限额。
    3. 该书是否不在库中;

    如果不存在以上情况,则可以出借。

    • 预约功能:

    读者想借的书如果不在库中(已经被出借),读者可以预约该图书,当该图书被归还时系统给读者发送邮件,提醒他来借阅,此时其他读者也可以借阅该书。

    • 续借功能:

    读者还书的时候可以续借该图书,续借的过程包括先执行还书操作,再执行借阅操作。

    • 发送催还邮件:

    管理员可以发送邮件提醒读者到期还书。

    • 读者管理功能:

    对读者信息进行查看、添加、修改、删除。将读者分为不同类别,赋以不同权限。

    • 系统管理功能:

    对管理员的登录账号、密码进行添加、修改、删除。

    • 借阅规则管理功能:

    对图书借阅规则进行查看、添加、修改、删除。

    2.3 系统用例图

     

    3 系统数据库设计

    3.1 系统概念模型设计

    数据库需要描述的数据信息包括以下几种:

    (1)读者信息

    (2)书籍信息

    (3)管理员信息

    (4)藏书分类信息

    (5)图书学科分类信息

    (6)读者分类信息

    (7)读者与书籍之间的关系(借阅关系E-R图)

    (8) 读者类型与书籍类型之间的关系(规则关系E-R图)

    这些数据项之间的关系可以用下列E-R图表示:

     

    3.2 数据库详细设计

    本系统共设计9个表、6个序列、4个存储过程、3个函数、4个触发器。

    针对一般图书管理信息系统的需求,通过对图书管理工作过程的内容和数据流程分析,设计如下面所示的9个数据表

    1. 读者信息

    属性:读者编号,读者姓名,联系电话,邮箱地址,所在系,权限状况,读者类型,备注

    主键:读者编号

    2.书籍信息

    属性:图书编号,ISBN,书名,作者,出版社,出版日期,简介,封面图片,价格,学科类型,藏书类型

    主键:图书编号

    3.管理员信息

    属性:编号,账号,密码

    主键:编号

    4)读者类型

    属性:编号,类型,说明

    主键:编号

    5)藏书类型

    属性:编号,类型,说明

    主键:编号

    6)学科类型

    属性:编号,类型,说明

    主键:编号

    7)借阅信息

    属性:图书编号,读者编号,借阅日期,应还日期

    主键:图书编号,读者编号

    8)预约信息

    属性:图书编号,读者编号,预约日期

    主键:图书编号,读者编号

    9)借阅规则

    属性:图书类型,读者类型,期限,册数,续借次数,逾期罚款

    主键:图书类型,读者类型

    6个序列:

    读者编号、图书编号、读者类型编号、藏书类型编号、学科编号、管理员编号

    4个存储过程:

      • 检查借阅是否超期的存储过程;
      • 判断读者可否进行借阅的存储过程;
      • 计算超期罚款的存储过程;
      • 将超期未还的读者借阅权限关闭的存储过程;

    4个函数:

      • 计算图书应归还日期的函数;
      • 计算读者可借阅图书册书的函数;
      • 计算读者已经借阅某类型图书的册数的函数;
      • 计算读者应交欠费的函数。

    4个触发器:

      • 删除藏书类型的触发器;
      • 删除读者类型的触发器;
      • 删除图书的触发器;
      • 删除读者的触发器。

     

    3.3 表设计

    1、数据库表逻辑结构设计。

    表1 读者表(reader)

     

    列名

    类型

    长度

    约束

    备注

    readerid

    number

    11

    主键

    读者编号

    name

    varchar2

    10

    非空

    读者姓名

    telephone

    varchar2

    15

     

    联系电话

    email

    varchar2

    30

     

    邮箱地址

    dept

    varchar2

    20

     

    所在院系

    right

    number

    1

    取值为0或1

    借阅权限

    readertype

    number

    11

    外键

    读者类型

    demo

    varchar2

    1000

     

    说明

    2 图书表(book)

     

    列名

    类型

    长度

    约束

    备注

    bookid

    number

    11

    主键

    书籍编号

    bookname

    varchar2

    20

    非空

    书籍名称

    author1

    varchar2

    20

    非空

    书籍作者

    author2

    varchar2

    20

     

    书籍作者

    author3

    varchar2

    20

     

    书籍作者

    pubdate

    date

     

     

    出版日期

    publish

    varchar2

    30

     

    出版社

    photo

    varchar2

    100

     

    图片地址

    abstract

    varchar2

    4000

     

    内容简介

    Price

    number

    7,2

    非空

    价格

    ISBN

    varchar2

    17

    非空

    书籍ISBN码

    bookclass

    number

    11

    外键

    学科类型

    booktype

    number

    11

    外键

    藏书类型

     

    表3 管理员用户表(admin)

    列名

    类型

    长度

    约束

    备注

    Id

    number

    11

    主键

    管理员编号

    username

    varchar2

    10

    非空

    管理员帐号

    password

    varchar2

    11

    非空

    帐号密码

    4 读者类型(reader_type)

    列名

    类型

    长度

    约束

    备注

    typeid

    number

    11

    主键

    类型编号

    typename

    varchar2

    20

    非空

    类型名称

    demo

    varchar2

    100

     

    说明

    5 藏书类型表(book_type)

    列名

    类型

    长度

    约束

    备注

    typeid

    number

    11

    主键

    类型编号

    typename

    varchar2

    20

    非空

    类型名称

    demo

     varchar2

    100

     

    说明

    6 学科类型表(book_class)

    列名

    类型

    长度

    约束

    备注

    classid

    number

    11

    主键

    类型编号

    classname

    varchar2

    20

    非空

    类型名称

    demo

     varchar2

    100

     

    说明

     

    表7 借阅表(borrow)

    列名

    类型

    长度

    约束

    备注

    readerid

    number

    11

    联合主键,外键

    读者编号

    bookid

    number

    11

    联合主键,外键

    图书编号

    borrowdate

    date

     

     

    出借日期

    due

    date

     

     

    应还日期

    8 预约表(preconcert)

    列名

    类型

    长度

    约束

    备注

    readerid

    number

    11

    联合主键,外键

    读者编号

    bookid

    number

    11

    联合主键,外键

    图书编号

    predate

    date

     

     

    预约日期

    9 规则表(rule)

    列名

    类型

    长度

    约束

    备注

    booktype

    number

    11

    联合主键,外键

    藏书类型号

    readertype

    number

    11

    联合主键,外键

    读者类型号

    days

    number

    5

    非空

    期限(天)

    num

    number

    5

    非空

    册数(本)

    renew

    number

    5

    非空

    续借次数(次)

    overtime

    number

    5,2

    非空

    逾期处罚(元/册/天)

     

     

    2、创建数据库表的脚本。

    (1)创建BOOK_ClASS

    create table book_class(

    classid number(11) primary key,

    classname varchar2(20) not null,

    demo varchar2(100) 

    );

    (2)创建admin

    create table admin(

    id number(11) primary key,

    username varchar2(10) not null,

    password varchar2(11) not null

    );

    (3)创建reader_type

    create table reader_type(

    typeid number(11) primary key,

    typename varchar2(20) not null,

    demo varchar2(100)

    );

    (4)创建reader

    create table reader(

    readerid number(11) primary key,

    name varchar2(10) not null,

    telephone varchar2(15),

    email varchar2(30),

    dept varchar2(20),

    right number(1) check(right=0 or right=1),

    readertype number(11) references reader_type(typeid),

    demo varchar2(1000)

    );

    (5)创建book_type

    create table book_type(

    typeid number(11) primary key,

    typename varchar2(20) not null,

    demo varchar2(100)

    );

    (6)创建book

    create table book(

    bookid number(11) primary key,

    bookname varchar2(20) not null,

    author1 varchar2(20) not null,

    author2 varchar2(20),

    author3 varchar2(20),

    pubdate date,

    publish varchar2(30),

    photo varchar2(100),

    abstract varchar2(4000),

    price number(7,2) not null,

    isbn varchar2(17) not null,

    bookclass number(11) references book_class(classid),

    booktype number(11) references book_type(typeid)

    );

    (7)创建borrow

    create table borrow(

    readerid number(11),

    bookid number(11),

    borrowdate date,

    due date,

    primary key(readerid,bookid),

    foreign key (readerid) references reader(readerid),

    foreign key (bookid) references book(bookid)

    );

    (8)创建preconcert

    create table preconcert(

    readerid number(11),

    bookid number(11),

    predate date,

    primary key(readerid,bookid),

    foreign key (readerid) references reader(readerid),

    foreign key (bookid) references book(bookid)

    );

    (9)创建rule

    create table rule(

    booktype number(11),

    readertype number(11),

    days number(5) not null,

    num number(5) not null,

    renew number(5) not null,

    overtime number(5,2) not null,

    primary key(booktype,readertype),

    foreign key (booktype) references book_type(typeid),

    foreign key (readertype) references reader_type(typeid)

    );

     

    3.4 序列设计

    为了方便自动产生连续的读者编号、图书编号、读者类型编号、藏书类型编号、学科编号、管理员编号等字段,在数据库中分别用下列序列产生相应的编号。

    (1)create sequence seq_reader start with 1 increment by 1;

    (2)create sequence seq_book start with 1 increment by 1;

    (3)create sequence seq_reader_type start with 1 increment by 1;

    (4)create sequence seq_book_type start with 1 increment by 1;

    (5)create sequence seq_book_class start with 1 increment by 1;

    (6)create sequence seq_admin start with 1 increment by 1;

    3.5 视图设计

    为了方便查询读者借阅图书的情况及图书的借阅统计,创建下列视图。

    1. 创建名为“READER_BOOK_VIEW”的视图,包括读者信息、所借图书信息及借阅信息。

    CREATE OR REPLACE VIEW reader_book_view

    AS

    SELECT name,bookname,borrowdate,due,last_due  FROM readet,book,borrow

    WHWER reader.teadid=borrow.readid AND borrow.bookid=book.bookid;

    1. 创建名为“BOOK_TYPE_STAT_VIEW”的视图,包括各类图书的借阅统计信息。

    CREATE OR REPLACE VIEW book_type_stat_view

    AS

    SELECT booktype,COUNT(booktype)  FROM (

    SELECT readerid,borrow.booktype,booktype,borrowdate,due,last_due

    FROW borrow,book WHWER book.bookid=borrow.bookid)

    1. 存储过程设计

      1. 检查借阅是否超期的存储过程

    Create or replace procedure p_days_from_due(v_readerid number,v_bookid number,v_days out number)

    As

    Begin

    Select due –sysdate into v_days from borrow where readerid=v_readerid and bookid=v_bookid;

    Exception

    When others then

    v_days:=0;

    End;

    2.判断读者可否进行借阅的存储过程

    Create or replace procedure p_can_borrow(v_readerid in number, v_bookid in number, v_num out number)

    As

    V_right number;

    V_borrowed_num number;

    V_rule_num number;

    Begin

    Select right into v_right from reader where readerid=v_readerid;

    v_borrowed_num:=f_borrowed_num(v_readerid,v_bookid);

    v_rule_num:=f_rule_num(v_readerid,v_bookid);

    If v_right=1 then v_num:=0;

    Else

    v_num:=v_rule_num-v_borrowed_num;

    End if;

    Exception

     When others then

       v_num:=0;

    End;

    3.计算超期罚款的存储过程;

    Create or replace procedure p_timeover_money(v_readerid number,v_bookid number ,v_money out number)

    As

    V_days number;

    V_readertype number;

    V_booktype number;

    Begin

    p_days_from_due(v_readerid,v_bookid,v_days);

    Select booktype into v_booktype from book where bookid=v_bookid;

    Select readertype into v_readertype from reader where readerid=v_readerid;

    Select overtime*floor(abs(v_days)) into v_money from rule where readertype=v_readertype and booktype=v_booktype;

    Exception

    When others then

    v_money:=0;

    End;

    4.将超期未还的读者借阅权限关闭的存储过程

    Create or replace procedure p_cant_borrow(v_readerid in number, v_bookid in number, v_right out number)

    As

    V_right number;

    V_due date;

    V_next_date num;

    Begin

    Select right into v_right from reader where readerid=v_readerid;

    v_due:=f_borrowed_num(v_readerid,v_bookid);

    v_next_date:= to_date(sysdate,'yyyymmdd')-to_date(v_due,'yyyymmdd');

    If v_next_date >=0 then v_right=0;

    Else

    v_right=1;

    End if;

    Exception

    When others then

    v_right=0;

     

    3.7函数设计

    (1)计算图书应归还日期的函数。

    Create or replace function f_date_is_due(v_readerid number,v_bookid number)

    Return varchar2 as

    V_booktype number;

    V_readertype number;

    V_date varchar2(10);

    Begin

    Select booktype into v_booktype from book where bookid=v_bookid;

    Select readertype into v_readertype from reader where readerid=v_readerid;

    Select to_char(sysdate+days, 'yyyy-mm-dd') into v_date from rule where readertype=v_readertype and booktype=v_booktype;

    Return v_date;

    Exception

    /*尚未制定该类图书借阅规则*/

    When no_data_found then

    Select to_char(sysdate+30,’yyyy-mm-dd’) into v_date from dual;

    Return v_date;

    End;

     

    (2)计算读者可借阅图书册数的函数

    Create or replace function f_rule_num(v_readerid in number,v_bookid in number) return number

    As

    V_booktype number;

    V_readertype number;

    V_num number;

    Begin

    Select booktype into v_booktype from book where bookid=v_bookid;

    Select readertype into v_readertype from reader where readerid=v_readerid;

    Select num into v_num from rule where readertype=v_readertype and booktype=v_booktype;

    Return v_num;

    Exception

    /*尚未制定该类图书借阅规则*/

    When no_data_found then

    select max(num) into v_num from rule;

    return v_num;

    End;

     

    (3)计算读者已经借阅某类型图书的册数的函数

    Create or replace function f_borrowed_num(v_readerid number,v_bookid number)return number as

    V_num number;

    V_type number;

    Begin

    Select booktype into v_type from book where bookid=v_bookid;

    Select count(*) into v_num from book,borrow where book.bookid=borrow.bookid and readerid=v_readerid and booktype=v_type;

    Return v_num;

    End;

     

    (4)计算读者应交欠费的函数。

    create or replace function f_owned_money(v_readerid number)return number

    As

    v_fine number:=0.0;

    v_money number:=0.0;

    v_days number;

    v_borrow borrow%ROWTYPE;

    cursor c_borrow is select * from borrow where readerid=v_readerid;

    Begin

      for v_borrow in c_borrow loop

         p_days_from_due(v_borrow.readerid,v_borrow.bookid,v_days);

         if (v_days<0) then

            p_timeover_money(v_borrow.readerid,v_borrow.bookid,v_money);

            v_fine:=v_fine+v_money;

         end if;

      end loop;

      Return v_fine;

    End;

     

    3.8触发器设计

    (1)删除藏书类型的触发器。

    Create or replace trigger tr_delete_booktype

    Before delete on book_type for each row

    begin

    delete from book where booktype=:old.typeid;

    delete from rule where booktype=:old.typeid;

    End;

     

    (2)删除读者类型的触发器。

    Create or replace trigger tr_delete_readerype

    Before delete on reader_type for each row

    begin

    delete from reader where readertype=:old.typeid;

    delete from rule where readertype=:old.typeid;

    End;

     

    (3)删除图书的触发器。

    Create or replace trigger tr_delete_book

    Before delete on book for each row

    begin

    delete from borrow where bookid=:old.bookid;

    delete from preconcert where bookid=:old.bookid;

    End;

     

    (4)删除读者的触发器。

    Create or replace trigger tr_delete_reader

    Before delete on reader for each row

    begin

    delete from borrow where readerid=:old.readerid;

    delete from preconcert where readerid=:old.readerid;

    End;

     

    4.系统主要功能模块设计与实现

    4.1数据库的连接与访问

    1.注册驱动通过Class.forName()获取Oracle数据库驱动

    2.获取连接DriverManager.getConnection()

    3.获取数据库操作对象

    4.执行sql   executeQuery(sql); executeUpdate(sql); executeDelete(sql);

    5.处理查询结果集

    关键代码:

    Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); //通过Class.forName()获取Oracle数据库驱动

    String url="jdbc:oracle:thin:@localhost:1521:orcl"; //数据库名,端口号

    String user="scott";        //用户名

    String password="tiger";     //密码

    conn=DriverManager.getConnection(url, user, password);  //建立连接

    5.1借书管理

    (1)功能页面列表

    (2)业务流程图 

    (3)核心代码

    String sql1="select * from borrow where bookid="+bookid;

    ResultSet rs1=dbCon.executeQuery(sql1);

    rs1.next();

    int y=rs1.getRow();

    if(y>0)

    {

    //该书未还

    out.print("<center>该书未还!<a href=javascript:history.go(-1)>后退</a></center>");

    out.print("<br><center><a href=..\\main.jsp>〈〈返回首页</a></center>");

    }

    else

    {

    //判断该读者还能借几本书

    CallableStatement a=con.prepareCall("{call p_can_borrow(?,?,?)}");

    a.setInt(1,readerid.intValue()); 

    a.setInt(2, bookid.intValue());   

    a.registerOutParameter(3, Types.INTEGER);//输出

    a.execute(); 

    int  num=a.getInt(3);

     if(num>0)

     {

     

     //计算到期日期

     

    // 调用有一个in参数的函数; the function returns a VARCHAR

    CallableStatement cs = con.prepareCall("{? = call f_date_is_due(?,?)}");

    cs.registerOutParameter(1, Types.VARCHAR);

     

    cs.setInt(2, readerid.intValue());

    cs.setInt(3, bookid.intValue());

     

    cs.execute();

    String due = cs.getString(1);

     

    String sql="insert into borrow(readerid,bookid,borrowdate,due) values("+

    readerid+","+bookid+",sysdate,to_date('"+due+"','yyyy-mm-dd'))";

    System.out.println(sql);

     

    dbCon.executeUpdate(sql);

     

    out.print("<center>出借成功!<a href=javascript:history.go(-1)>继续借书</a></center>");

    out.print("<br><center><a href=..\\main.jsp>〈〈返回首页</a></center>");

    }

     else

    {

    //该书不能出借

    out.print("<center>出借限额已满或读者无权限!<a href=javascript:history.go(-1)>后退</a></center>");

    out.print("<br><center><a href=..\\main.jsp>〈〈返回首页</a></center>");}}
    (4)界面实现

    5.2还书管理

    1. 功能页面列表

    (2) 业务流程图 

    3)核心代码

    //还书入库

    String sql1="delete from borrow where bookid="+bookid+" and readerid="+readerid;

            dbCon.executeUpdate(sql1);

    //判断该书是否超期

    CallableStatement  a=con.prepareCall("{call p_days_from_due(?,?,?)}");

    a.setInt(1,readerid.intValue()); 

    a.setInt(2, bookid.intValue());   

    a.registerOutParameter(3, Types.INTEGER);//输出

    a.execute(); 

    int  num=a.getInt(3);

     if(num>=0)

     {

     //还书未超期

    dbCon.executeUpdate(sql);

    out.print("<center>还书成功!<a href=javascript:history.go(-1)>后退</a></center>");

    out.print("<br><center><a href=..\\main.jsp>〈〈返回首页</a></center>");

    }

     else

    {

     

    //计算超期罚款金额

    // 调用有一个OUT参数的存储过程; the procedure returns a NUMBER

    CallableStatement cs = con.prepareCall("{ call p_timeover_money(?,?,?)}");

    cs.setInt(1, readerid.intValue());

    cs.setInt(2, bookid.intValue());

    cs.registerOutParameter(3, Types.INTEGER);

    cs.execute();

    int m = cs.getInt(3);

    dbCon.executeUpdate(sql);

    out.print("<center>出借已超期!需缴纳罚款"+m+"元<a href=javascript:history.go(-1)>后退</a></center>");

    out.print("<br><center><a href=..\\main.jsp>〈〈返回首页</a></center>");

    }


     
    6.总结 

      本次综合实验让我深刻的体会到 Oracle 的魅力所在,加深了我对 Oracle 数 据库的理解,提升了我对 Oracle 数据库的综合运用能力。例如,我是在本次实 验中才理解了序列的用法,并真正用到实践中来。Oracle 的索引、视图等提高 了 orale 的访问速度,序列提高了数据插入的速度。函数和存储过程简化了后端 代码的量同时提高了稳定性和安全性,触发器的设计保证了数据的一致性。一个 完整的开发流程让我看到了 Oracle 数据库在实际开发过程中相比 MySQL 的优势 所在。 本次实验同样用到了 tomcat 服务器、JSP 技术。作为一个轻量级的服务器 tomcat 较为适合小型项目部署。JSP 技术对于小型项目也挺适用,虽然没有实现 前后端分离,但是可以让功能的实现变得易于完成代码的编写,也易于理解。本 次实验所用图书管理系统数据库模型数据库表设计等很经典,其价值值得深入挖 掘探索,完全可以称为我们今后数据库设计的入门案例。 

    展开全文
  • 使用该程序之后,工作人员可以查询和管理图书馆内书籍信息,学校在校学生信息以及学生借阅信息,该系统功能分为面向学生和面向图书管理员两部分,其中学生可以进行借阅、续借、归还和查询书籍等操作,图书管理员可以...
  • 图书管理系统数据库设计 点击: 发布日期:2007-7-30 7:56:00 进入论坛 1、摘要: 一个简单的图书管理系统包括图书馆内书籍的信息、学校在校学生的信息以及学生的借阅信息。此系统功能分为面向学生和面向管理员...
  • 基于sqlserver设计,包括该系统是为图书馆信息而设计管理学校图书,用途主要是为了处理每日借阅,退货和各种查询操作。在分析了系统的要求之后,已经制定了明确系统必须主要实现一些功能以下几个方面: (1)图书...
  • 数据库 图书管理系统

    热门讨论 2011-07-18 23:50:35
    图书管理系统主要是为图书借阅人提供方便快捷的服务,以及为图书管理人员提供可靠的信息与帮助,其具体的意义如下: 1. 提高图书管理的效率,节约相关的管理成本。 2. 为学校提供系统,规范的图书管理手段。 3. 增强...
  • 图书管理系统 问题描述: 1) 学校图书室有各种图书一万多册。 2) 每种图书都有书名、书号(ISBN)、一名或多名作者(译者)、出版社等。 3) 借书证记录有借阅者的借书证编号,读者姓名,读者性别,读者种类,登记...
  • 数据库图书管理系统

    千次阅读 2018-05-22 16:55:00
    分析学校图书借阅系统,尝试模拟该借阅系统数据库结构自行设计一个数据库数据库所支持的功能和存储的信息需至少包含如下几个方面。 读者信息,可参考下图,只需设计其中主要属性信息即可。需要注意,每个读者...

    【数据库】图书管理系统

    分析学校的图书借阅系统,尝试模拟该借阅系统的数据库结构自行设计一个数据库。数据库所支持的功能和存储的信息需至少包含如下几个方面。

    读者信息,可参考下图,只需设计其中主要属性信息即可。需要注意,每个读者可能有着不同的借阅权限,比如:本科生能借阅50本,教师能借阅100本,而且借阅时限也不同,所以,为了便于管理,将读者分为不同等级,每个等级有着不同的借阅权限。因此需要设计借阅等级信息的结构,其中应包含最大借阅量,最长借阅时限等信息。

     

    图书信息,可参考下图,只需设计其中主要属性信息即可。与图书内容相关的学科主题词信息(主题词经常要临时增加,所以要单独保存)。为了方便图书馆采购,还需要存储出版社联系信息(地址、通信方式等)。(注意,一部书只能由一个出版社出版)

     

    注意,同一部书一般提供了多本供借阅,多本书有着不同的条码号,如下图所示,同一个书籍信息下提供了多本图书,而且存放在不同位置。因此,需要考虑每部图书信息和具体的每本图书信息之间的关系

     

    读者可以针对图书进行评论,如下图所示,包括评论内容,评论时间,评论者,评分等信息。注意评论针对的是一部图书,而并非某一本书(因为有多本)。

     

    ----------要求-----------

    分析设计以上基本问题的概念模型(E-R图)。

    根据概念模型设计相应的关系模式。

    设定一些约束:例如,读者姓名不能为空,读者等级默认为0,图书条码为7位数字构成。

    向每个数据表中输入若干测试数据。

    创建如下视图:

    视图1:显示所有当前仍未归还的图书条码、借阅者姓名、编号、借阅时间和应还时间;

    视图2:显示某图书条码和历史总借阅量;

    视图3:显示与某主题词相关的所有图书条码和历史总借阅量;

    视图4:显示某读者的编号(如20181001)和其当前所有未归还图书的条码、图书名称和应还日期;

    视图5:显示某读者的编号和其对应的历史借阅信息,包括图书条码、图书名称、实际借阅日期和实际归还日期;

    视图6:显示某读者编号和其发表的书评内容,包括评论的图书名称、评论时间和评论内容;

    视图7:显示某出版社名称及其出版的所有图书名称。

     

     

    ER图:

     

    代码:

    create database db
    use db
    
    create table 借阅等级信息(
        借阅等级 int primary key,
        最长借阅时间 int,
        最大借阅数量 int,
    )
    
    insert into 借阅等级信息 values
    (0, 30, 10),
    (1, 60, 20),
    (2, 90, 30),
    (3, 120, 40)
    
    create table 读者信息(
        姓名 char(15) not null,
        证件号 char(12) primary key,
        借阅等级 int default 0,
        累计借书 int default 0,
        foreign key(借阅等级) references 借阅等级信息(借阅等级)
    )
    
    insert into 读者信息(姓名, 证件号, 借阅等级) values
    ('张三', '541607120165', 1), 
    ('李四', '541707010185', 3),
    ('王五', '541707120165', 1),
    ('赵六', '541505980268', 2),
    ('孙七', '541407010169', 0),
    ('周八', '541307010489', 1)
    
    create table 出版社信息(
        出版社 varchar(20) primary key,
        地址 varchar(25),
        联系电话 char(7)
    )
    
    insert into 出版社信息 values
    ('清华大学出版社', '北京', '4979421'),
    ('晟威出版社', '天津', '5564130'),
    ('南海出版公司', '海南', '4984910'),
    ('上海文艺出版社', '上海', '6640239')
    
    create table 图书信息(
        索书号 char(15) primary key,
        作者 char(15),
        书名 char(15),
        出版社 varchar(20),
        出版时间 date,
        foreign key(出版社)references 出版社信息(出版社)
    )
    insert into 图书信息 values
    ('b12987', '严蔚敏', '数据结构', '清华大学出版社', '2012-02-06'),
    ('b97894', '东野圭吾', '幻夜', '南海出版公司', '2004-08-02'),
    ('b16546', '吴玉华', '物理实验教程', '清华大学出版社', '2013-05-15'),
    ('b89490', '张雪峰', '考研指点', '晟威出版社', '2016-12-12'),
    ('b56400', '郏宗培', '纸上寻仙记', '上海文艺出版社', '2011-02-05')
    
    create table 单本图书信息(
        条码号 char(7) primary key check(len(条码号) = 7),
        索书号 char(15),
        馆藏地 varchar(40),
        书刊状态 varchar(6) check(书刊状态 in ('可借', '借出', '非可借')),
        历史借阅量 int default 0,
        foreign key(索书号)references 图书信息(索书号)
    )
    
    insert into 单本图书信息(条码号, 索书号, 馆藏地, 书刊状态) values
    ('t987628', 'b97894', '三楼A8', '借出'),
    ('t594805', 'b97894', '二楼C7', '可借'),
    ('t984910', 'b89490', '五楼A2', '借出'),
    ('t940566', 'b12987', '负一楼D3', '借出')
    
    create table 借阅信息(
        借阅号 char(6) primary key,
        借阅时间 date,
        归还时间 date,
        图书条码号 char(7),
        借阅人证件号 char(12),
        foreign key(图书条码号) references 单本图书信息(条码号),
        foreign key(借阅人证件号) references 读者信息(证件号)
    )
    
    create table 评论信息(
        评论号 char(8) primary key,
        评分 numeric(2, 1),
        内容 varchar(200),
        评论时间 date,
        评论者id char(12),
        索书号 char(15),
        foreign key(索书号)references 图书信息(索书号),
        foreign key(评论者id)references 读者信息(证件号)
    )
    
    insert into 评论信息 values
    ('p12391', 8.9, '很有趣', '2015-06-24', '541707010185', 'b97894'), 
    ('p98523', 7.8, '受益颇多', '2016-05-22', '541307010489', 'b89490'),
    ('p94606', 6.8, '完全看不懂orz', '2017-05-02', '541607120165', 'b12987')
    
    create table 主题词信息(
        ID char(8) primary key,
        类别 char(15),
        索书号 char(15),
        foreign key(索书号)references 图书信息(索书号)
    )
    
    insert into 主题词信息 values
    ('z64400', '计算机', 'b12987'),
    ('z95410', '物理', 'b16546'),
    ('z98500', '考研', 'b89490'),
    ('z64165', '推理\悬疑', 'b97894'),
    ('z69850', '仙侠', 'b56400')
    
    --触发器1:读者借书后引发的一系列操作
    use db
    go
    create trigger trigger1
    on 借阅信息
    after insert
    as
    begin    
    update 读者信息                                                 --更改读者累计借书量
    set 累计借书 = 累计借书 + 1                                     
    from 读者信息, inserted
    where 读者信息.证件号 = inserted.借阅人证件号
    
    update 单本图书信息                                             --更改图书状态
    set 单本图书信息.书刊状态 = '借出'
    from inserted, 单本图书信息
    where inserted.图书条码号 = 单本图书信息.条码号
    
    update 单本图书信息
    set 历史借阅量 = 历史借阅量 + 1                                 --更改图书历史借阅量
    from inserted, 单本图书信息
    where inserted.图书条码号 = 单本图书信息.条码号
    end
    
    insert into 借阅信息 values
    ('j13488', '2018-05-01', '2018-08-01', 't987628', '541407010169')
    insert into 借阅信息 values
    ('j14910', '2016-12-11', '2017-01-25', 't984910', '541607120165')
    insert into 借阅信息 values
    ('j97890', '2018-05-14', '2018-06-14', 't940566', '541607120165')
    
    --试图1:显示所有当前仍未归还的图书条码、借阅者姓名、编号、借阅时间和应还时间
    go
    create view view_1(图书条码, 借阅者姓名, 编号, 借阅时间, 应还时间)
    as
    select 图书条码号, 姓名, 证件号, 借阅时间, 归还时间
    from 借阅信息, 读者信息
    where 借阅信息.借阅人证件号 = 读者信息.证件号 and 归还时间 > getdate()
    
    
    --试图2:显示某图书条码和历史总借阅量
    go
    create view view_2(图书条码, 历史总借阅量)
    as
    select 条码号, 历史借阅量
    from 单本图书信息, 图书信息
    where 单本图书信息.索书号 = 图书信息.索书号 and 书名 = '幻夜'
    
    
    --视图3:显示与某主题词相关的所有图书条码和历史总借阅量
    go
    create view view_3(类别, 图书条码, 历史总借阅量)
    as
    select 类别, 条码号, 历史借阅量
    from 单本图书信息, 图书信息, 主题词信息
    where 主题词信息.索书号 = 图书信息.索书号 and 图书信息.索书号 = 单本图书信息.索书号 and 类别 = '考研'
    
    
    --试图4:显示某读者的编号(如20181001)和其当前所有未归还图书的条码、图书名称和应还日期
    go
    create view view_4(读者编号, 条码, 图书名称, 应还日期)
    as
    select 借阅人证件号, 图书条码号, 书名, 归还时间
    from 单本图书信息, 图书信息, 借阅信息
    where 借阅信息.图书条码号 = 单本图书信息.条码号 and 单本图书信息.索书号 = 图书信息.索书号
    and 归还时间 > getdate() and 借阅人证件号 = '541607120165'
    
    
    --试图5:显示某读者的编号和其对应的历史借阅信息,包括图书条码、图书名称、实际借阅日期和实际归还日期
    go
    create view view_5(读者编号, 图书条码, 图书名称, 借阅日期, 归还日期)
    as
    select 借阅人证件号, 图书条码号, 书名, 借阅时间, 归还时间
    from 单本图书信息, 图书信息, 借阅信息
    where 借阅信息.图书条码号 = 单本图书信息.条码号 and 单本图书信息.索书号 = 图书信息.索书号
    and 借阅人证件号 = '541607120165'
    
    
    
    --试图6:显示某读者编号和其发表的书评内容,包括评论的图书名称、评论时间和评论内容
    go
    create view view_6(读者编号, 图书名称, 评论时间, 评论内容)
    as
    select 评论者id, 书名, 评论时间, 内容
    from 借阅信息, 单本图书信息, 评论信息, 图书信息
    where 借阅信息.图书条码号 = 单本图书信息.条码号 and 单本图书信息.索书号 = 评论信息.索书号
    and 评论信息.索书号 = 图书信息.索书号 and 评论者id = '541607120165'
    
    
    --视图7:显示某出版社名称及其出版的所有图书名称,并按出版时间排序
    go
    create view view_7(出版社名称, 图书名称, 出版时间)
    as
    select top 100 percent 出版社信息.出版社, 书名, 出版时间
    from 出版社信息, 图书信息
    where 出版社信息.出版社 = 图书信息.出版社
    order by 出版时间 asc
    
    
    
    --执行
    select * from view_1
    
    select * from view_2
    
    select * from view_3
    
    select * from view_4
    
    select * from view_5
    
    select * from view_6
    
    select * from view_7 order by 出版时间 asc

     

    posted @ 2018-05-22 16:55 LesRoad 阅读(...) 评论(...) 编辑 收藏

    展开全文
  • 要求能够实现学校图书管理系统的自动导入,按照系统分析自动进行读书,根据比例要求自动生成图书传阅信息、能够查询、修改各种信息,对借阅、赔偿进行统计,生成报表,基本满足学生工作人员的需要。
  • 系统主要有几个大的模块:图书信息录入、图书借阅管理、读者信息管理、图书信息查询,其中每个模块的主要功能如下: 图书信息录入:图书信息的录入采用联网查询方式,通过条码枪扫描图书的ISBN码,系统会自动搜索...
  • 基于Jsp的图书馆管理系统毕业论文(源码+数据库+sql+word毕业论文文档) ...论文设计和实现了图书借阅管理系统系统,可以根据用户的不同权限,对图书馆的的各种信息进行添加、删除、修改或查询操作
  • 图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面.对于前者要求建立起数据一致性和完整性强;数据安全性好的数据库.而对于后者则要求应用程序功能完备,易...
  • 采用SQL Server2005数据库作为后台数据库、Visual C#编程语言作为前台开发工具,通过对数据库技术进行了较深入的学习和应用,主要完成书目检索、读者管理、借阅管理图书管理、用户维护、系统维护等系统功能。...
  • 随着社会的发展,图书的数量和种类越来越多,人工手动管理会降低工作的效率,希望建立一个图书管理系统,是为了解决人工手动管理图书信息在实践的问题,从而达到系统化、规范化、标准化的水平。该系统的建立不但给...
  • 这是一个用java编写的图书管理系统。运用到了JAVA中的数据库JDBC以及图形界面GUI等知识。具有用户管理,书籍管理,借阅管理,浏览信息等功能,是一个较完善的系统。既可用于作为学校的课程设计或毕业设计,也可作为...
  • (5)图书借阅管理:读者可以登陆系统查询自己喜欢的图书,然后到图书馆进行图书借书的登记操作,当读者看完了书或需要归还时,需要拿着自己的图书到图书馆进行归还,此时有管理员办理图书归还业务。当然,如果读者...
  • C#图书管理系统课程设计文档范文

    热门讨论 2011-10-26 15:38:17
    图书管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者和读者来说都至关重要,直接关系到图书的借用率,所以开发图书管理系统能够为管理员和读者提供充足的信息和快捷的查询手段。 编写程序系统主要实现...
  • 项目:图书管理系统

    2020-07-17 19:51:37
    图书管理系统 开发环境与技术栈 Windows/Mac/Linux Maven Servlet MySQL Jackson 项目功能 ...图书借阅管理 借阅信息查询 新增借阅信息 修改借阅信息 删除借阅信息 数据库设计 数据库表
  • 图书管理系统是典型的信息管理系统...系统运行结果证明,本文所设计图书管理系统可以满足借阅者、图书馆工作人员和高级管理员三方面的需要。 设计充分利用ACCESS2000数据库技术的强大力量,提高了编程效率和可靠性。

空空如也

空空如也

1 2 3 4
收藏数 69
精华内容 27
关键字:

学校图书借阅管理系统数据库设计