,.
数据库系统原理课程设计报告
设计题目: 图书管理系统
班 级:
学 号:
姓 名:
指导教师:
完成日期:
成绩:
摘要
在计算机日益普及的今天,对个人而言若采用一套行之有效的图书管理系统来管理自己的书籍,会方便许多。对图书管理部门而言,以前单一的手工检索已不能满足人们的要求,往往是投入了大量的人力和财力却得不到搞笑的管理效率。为了便于图书资料的管理需要有效的图书管理软件,减轻工作人员的工作量,方便工作人员对它的操作,提高管理的质量和水平,做到高效,智能化管理,达到提高图书借阅信息管理效率的目的。采用数据库技术生成的的图书借阅管理系统将会极大的方便借阅者并简化图书管理人员和工作人员的劳动,使工作人员从繁忙,复杂的工作进入到一个简单,高效的工作中。基于这个问题,开发了大学图书管理系统。
目录
第一章 系统概述 1
第二章 系统数据库设计部分 2
2.1 需求分析 5
2.1.1 需求描述 5
2.1.2 数据流图 6
2.1.3 数据词典 8
2.2 数据库概念结构设计 9
2.2.1 E-R图 9
2.3 数据库逻辑结构设计 10
2.4 数据库物理结构设计 10
第三章 系统设计 12
第四章 总结 15
主要参考文献 17
附录一 17
,.
第1章 系统概述
《数据库原理及应用》课程的学习,其主要的目标是能利用课程中学习到的数据库知识与技术较好地开发设计出数据库应用系统,去解决各行各业信息化处理的要求。本实验主要在于巩固学生对数据库的基本原理和基础理论的理解,掌握数据库应用系统的设计开发的基本方法,进一步提高学生的综合运用所学的知识能力。为了使数据库的应用系统开发设计合理、规范、有序、正确、高效进行,现在广泛采用的是工程化6阶段开发设计过程与方法,它们是需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施、数据库系统运行与维护阶段。我们按照以上几点开发了图书管理系统数据库。图书管理系统要求读者较好的正我数据库知识与技术外,还要求读者掌握某种客户端开发工具或语言。这里是利用dreamwave,myeclipse,tomcat开发工具来实现示例系统的。用 j s, angularjs控制前台页面逻辑数据库用postgres,将PostgresQL驱动放在tomcat lib库中即可。编写语言java ee,程序类型:web。
这次课程设计能顺利通过是老师的细心指导和我们小组团结一致、努力的结果。在这次课程设计中每位同学都积极参与各项环节的设计,但我们也有分工。初步列出如下:李高钢和吴捷担任的工作是对系统的需求分析、构思数据流图、把E-R图转化成关系模型并对其进行规范化处理、用SQL语言建表、视图以及文档的初步编写等。余立,杨豪和高凯伦的工作是负责画数据流图和E-R图,以及转化初始关系模型,和内容摘要等的编写。李高钢是我们组的组长,除对我们所制作单个模块审核外还担任了WORD文档的总结排版。这次数据库的课程设计让我们对数据库的操作有了进一步的了解,受益匪浅。
第二章 系统数据库设计部分
2.1 需求分析
2.1.1 需求描述
每个学校都有图书馆,最初由于图书数量和种类较少,人工手动管理比较方便和灵活。随着社会的发展,图书的数量和种类越来越多,人工手动管理会降低工作的效率,希望建立一个图书管理系统,是为了解决人工手动管理图书信息在实践的问题,从而达到系统化,规范化,标准化的水平。该系统不但给管理者带来了方便,也节省了工作时间从而提高了工作的效率。
2.1.2 数据流图
图书管理员
图书管理系统
管理人员
密码输入
管理人
员
保存退出
图书存量表
数据备份
查询操作
权限认证
修改操作
录入数目
删除书目
显示操作
2.1.3 数据字典
数据流名:图书
别 名:图书馆库存图书
组 成:书名+书名+作者+出版社+剩余数
备 注:无
插入函数
主菜单函数
文件读入函数
删除函数
退出程序
文件读出函数
查询函数
显示函数
修改函数
数据概念设计
E-R图
类别编号
书名
作者
图书编号
图书
出版时间
数量
出版社
价格
编号
书名
作者
出版社
图书搜索
代号
类别
出版日期
库存数量
编号
库存
数据库逻辑结构
图书( 图书编号,图书名,图书的类别,作者,出版社,出版日期 )
图书管理员 (职工号 ,姓名,性别)
管理(图书编号,录入,删除,修改)
数据库物理机构
身份验证
退出程序
Y\N
主菜单
查找模块
删除模块
修改模块
显示模块
读入模块
备份模块
录
入
模
块
模块划分与功能需求关系
模块编号
模块名称
功能
M1
身份验证模块
输入验证信息
M2
主菜单模块
输入选择的功能
M3
录入模块
插入相关信息
M4
删除模块
删除指定信息
M5
查询模块
查询指定信息
M6
显示模块
以列表方式显示所有信息
M7
备份模块
备份文件信息
M8
退出模块
退出程序 保存文件
第三章 系统设计
1. 程序的功能;
1〉 图书信息录入,删除,修改,查询,功能
2〉 用postgres保存学生信息数据
用java ee技术实现数据库的操作
2. 输入输出的要求;
图书信息
图书编号,名称,价格,出版日期,出版单位……
3. 测试数据
Book表
图书编号,名称,价格,出版日期,出版单位
"TS006";"Android";23.50;12;"2014-07-12";"四川大学出版社";"网站设计";5
"TS007";"windosphone";23.50;12;"2014-07-25";"四川大学出版社";"中国历史";4
"TS008";"Android";23.50;12;"2014-07-09";"四川大学出版社";"网站设计";5
"TS009";"老人与海";23.50;12;"2013-08-09";"四川大学出版社";"计算机编程";3
.
数据库设计:
设计表:
图书表book ,
用户表:admin
程序设计:
交互界面采用jsp页面
用 j s, angularjs控制前台页面逻辑
数据库用postgres,将PostgresQL驱动放在tomcat lib库中即可
后端用jsp,servlet,Bean技术控制get,post,数据库的数据处理,表单的提交
用表格显示图书信息,表单控制图书的增,删,改,查
a> 1.一个登录界面
2. 表单
3.表格
Main()->登录界面
1.添加add()
2.查找search()
管理员-》主菜单 =》 3.修改
4.删除delete()
表格显示图书数据:
每个按钮对应一个post请求,用angularjs绑定元素实现 ng-click=add()提交事件,后端用servlet响应请求,再用Bean处理数据,通过servlet返回数据或页面到前端页面,显示更新信息(成功或失败)。
表格可用dreamwave等工具调整样式;
服务代码可用myeclipse工具编写
服务器用tomcat
用到的js库 angular.js
,.
第四章 总结
经过这些天的设计和开发,图书管理系统基本开发完毕。本系统基本能够完成学生图书的查询、录入、删除、修改等。这次的课程设计是分组讨论和制作的。在制作的过程中,我学到的不仅是知识,我还认识到许多事情。这次设计对我们的综合能力是一次很好的锻炼,使我的编程水平提高了一大步,同时也使我充分的认识到合作的可贵。
在我们所制作的学生学籍管理系统中,涉及到数据库、javaee等,交互界面采用jsp页面用 j s, angularjs控制前台页面逻辑数据库用postgres,将PostgresQL驱动放在tomcat lib库中即可。后端用jsp,servlet,Bean技术控制get,post,数据库的数据处理,表单的提交用表格显示图书信息,表单控制图书的增,删,改,查。
还有就是由于我们对数据库知识的掌握有限和不牢固,角色和视图的创建没有想象中的完美,备份和还原也只是初步的形成,以致学生学籍管理系统只是达到了基本要求,有待进一步改善,希望老师给予批评。
,.
主要参考文献
javaweb实战1200例
Angularjs中文社区
,.
附录
5、核心源程序清单和执行结果
源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。
Book.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page import="java.sql.*" %>
<%@ page import="java.io.*" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
My JSP book.jsp starting page
图书编号
图书名
价格
数量
出版日期
出版社
类别
书类代号
<%
try{
ResultSet rt =(ResultSet)session.getAttribute("resultset");
while(rt.next()){
String barcode=rt.getString("barcode");
String bookName=rt.getString("bookName");
int bookType=rt.getInt("bookType");
float price=rt.getFloat("price");
int count=rt.getInt("count");
java.util.Date publishDate=rt.getDate("publishDate");
String publishName=rt.getString("publish");
String introductionName=rt.getString("introduction");
%>
<%=barcode%>
<%=bookName%>
<%=price%>
<%=count%>
<%=publishDate%>
<%=publishName%>
<%=introductionName%>
<%=bookType%>
<%}
}catch(Exception e){
out.println(e);
}
%>
Sevlet: addbook.java
package ligaogang;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class addBook extends HttpServlet {
/**
* Constructor of the object.
*/
public addBook() {
super();
}
/**
* Destruction of the servlet.
*/
public void destroy() {
super.destroy(); // Just puts "destroy" string in log
// Put your code here
}
/**
* The doGet method of the servlet.
*
* This method is called when a form has its tag value method equals to get.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("");
out.println("");
out.println("
A Servlet ");
out.println(" ");
out.print(" This is ");
out.print(this.getClass());
out.println(", using the GET method");
out.println(" ");
out.println("");
out.flush();
out.close();
}
/**
* The doPost method of the servlet.
*
* This method is called when a form has its tag value method equals to post.
*
* @param request the request send by the client to the server
* @param response the response send by the server to the client
* @throws ServletException if an error occurred
* @throws IOException if an error occurred
*/
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
String BookNo=request.getParameter("BookNo");
int BookPrice=Integer.parseInt(request.getParameter("BookPrice"));
int BookType=Integer.parseInt(request.getParameter("BookType"));
String PublishHouse=request.getParameter("PublishHouse");
String BookName=request.getParameter("BookName");
int Count=Integer.parseInt(request.getParameter("Count"));
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
Date PublishDate = null;
try {
PublishDate = df.parse(request.getParameter("PublishDate"));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String BookTypeNo=request.getParameter("BookTypeNo");
DB db=new DB();
int state= db.insertBook( BookNo, BookName, BookPrice, Count, PublishDate, PublishHouse, BookTypeNo, BookType);
if(state!=-1) out.println("success!");
}
/**
* Initialization of the servlet.
*
* @throws ServletException if an error occurs
*/
public void init() throws ServletException {
// Put your code here
}
}