数据库课程设计.docx

上传人:b****8 文档编号:30278451 上传时间:2023-08-13 格式:DOCX 页数:43 大小:1.04MB
下载 相关 举报
数据库课程设计.docx_第1页
第1页 / 共43页
数据库课程设计.docx_第2页
第2页 / 共43页
数据库课程设计.docx_第3页
第3页 / 共43页
数据库课程设计.docx_第4页
第4页 / 共43页
数据库课程设计.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

数据库课程设计.docx

《数据库课程设计.docx》由会员分享,可在线阅读,更多相关《数据库课程设计.docx(43页珍藏版)》请在冰豆网上搜索。

数据库课程设计.docx

数据库课程设计

数据库课程设计报告

 

题目:

图书信息管理系统的设计与实现

学号:

09415123

姓名:

专业:

信息与计算科学

班级:

0901

 

2012年6月

目  录

1引言1

1.1课程设计选题1

1.2课程设计的目的1

1.3本选题的设计背景1

2系统分析与设计1

2.1功能及性能分析1

2.1.1数据需求1

2.1.2功能需求1

2.1.3性能需求2

2.2系统的开发运行环境2

2.3系统总体设计2

3数据库设计2

3.1数据库概念结构3

3.2数据库逻辑结构3

3.2.1关系模型及优化3

3.3数据库的实现3

3.3.1数据库的创建3

3.3.2基本表的创建4

3.3.2安全性设计6

3.3.3一致性设计6

4详细设计与实现6

4.1管理员登录模块7

4.2系统主界面模块8

4.3基础数据维护模块9

4.3.1读者信息管理界面12

4.3.2图书类别管理界面12

4.3.3图书信息管理界面13

4.4系统维护模块14

4.4.1更改口令界面14

4.4.2用户管理界面14

总结14

参考文献15

附录15

1引言

1.1课程设计选题

《图书信息管理系统》

1.2课程设计的目的

通过数据库系统课程设计,使我们更加掌握数据库系统概念这本教材,通过理论加实践使同学们真正的学懂这门课程。

熟悉SQLSERVER数据库管理系统的结构与组成;掌握SQLSERVER数据库管理系统的应用技术和的使用;应用Java工具实践《图书管理系统》的数据库应用系统的设计方法、开发过程和SQLSERVER数据库的管理与维护。

最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。

1.3本选题的设计背景

随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。

我们使用电脑的高效率才处理数据信息成为可能。

图书信息管理系统的出现,正是管理人员与信息数据,计算机的进入互动时代的体现。

友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。

通过这个系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置疑,切实有效地把计算机管理引入书店或者图书馆,提高对图书信息的管理有着显著意义。

2系统分析与设计

2.1功能及性能分析

2.1.1数据需求

此系统主要完成对图书信息的管理,因此,需要的数据信息包括:

管理员信息:

包括用户帐号和密码等信息。

图书信息,包括图书编号,图书名等;读者信息:

包括读者的基本个人信息,登记的证件以及押金。

2.1.2功能需求

从总体上考虑,系统应该实现下列功能:

基础数据维护,包括图书类别管理、图书信息管理、读者信息管理。

1)、图书类别管理:

将图书按性质类别进行分类并编号,有利于对图书的管理与查询,管理员可以进行图书类别的添加与修改。

2)、图书信息管理:

管理员可以图书信息进行以下四种基本操作:

添加新的图书信息,修改旧的图书信息、删除图书信息,查询图书信息。

3)、读者信息管理:

管理员可以对读者信息进行添加、修改与删除。

系统数据维护,包括更改口令、用户信息管理。

1)、更改口令:

管理员可以对口令进行修改。

2)、用户信息管理:

管理员可以对读者信息进行添加、修改与删除。

2.1.3性能需求

对此系统性能设计应满足如下要求:

þ保证系统数据安全性:

由于系统通过运用java语言开发的界面直接访问数据易用性强,登录界面设置了用户信息验证,通过查询登陆界面输入信息是否为数据库中合法的管理员来实现是否有权限操作此系统;

保证系统数据一致性:

数据库中的所有信息在任何操作下都能够保持一致,如一旦管理员删除或者添加了图书信息,立即在原界面就能看到相关的信息。

2.2系统的开发运行环境

本系统开发平台:

MyEclipse+SQLServer2008

本系统运行环境:

WindowsXP

2.3系统总体设计

图书信息管理系统主要实现对图书信息的查询,数据的增删改和数据处理功能,根据图书信息管理系统的特点,可以将本系统分为2大功能模块,分别为:

基础数据维护、系统数据维护。

本系统各个部分及其包括的具体功能模块如下图所示:

3数据库设计

3.1数据库概念结构设计

3.1.1整体E-R图:

3.2数据库逻辑结构设计

3.2.1关系模型及优化:

图书信息表(国际标准书号,书名,分类号,作者,译者,出版社,出版日期,价格)其主码为国际标准书号,属于3NF

读者信息表(读者证件号,证件类型,办证时间,姓名,性别,年龄,电话号码,职业,国际标准书号,最大书量,押金)其主码为读者证件号,属于3NF

用户信息表(编号,姓名,性别,年龄,证件号码,办证时间,押金,管理员,密码)其主码为编号,属于3NF

图书类别表(图书类别,分类号)其主码为分类号,属于3NF

3.3数据库的实现

3.3.1数据库的创建

数据库名称:

stu

创建数据库的SQL语句如下:

Createdatabasestudent

on

name=student_dat,

filename='d:

\database\student.mdf'

logon

name=student_log,

filename='d:

\database\student.ldf'

注意:

先在D盘根目录下创建文件夹database。

3.3.2基本表的创建

在图书信息管理系统中共包含了4个数据表。

图书信息表(tb_bookInfo)用来保存图书信息,其创建该表的SQL语句如下:

createtabletb_bookInfo(

ISBNchar(13)primarykeynotnull,

typeIdsmallintnotnull,

Booknamechar(20)notnull,

writerchar(20),

translatorchar(20),

publisherchar(20),

datedate,

pricedoubleprecision,

);

该表的结构如下:

图书类别信息表(tb_bookType)用来保存图书类别信息,其创建该表的SQL语句如下:

createtabletb_bookType(

bookTypechar(10)notnull,

Idsmallintnotnull,

);

该表的结构如下:

用户信息表(tb_operator)用来保存用户信息,其创建该表的SQL语句如下:

createtabletb_operator(

idintprimarykeynotnull,

namechar(20)notnull,

sexchar(4)notnull,

ageintnotnull,

identityCardchar(13)notnull,

yajinint,

workdatedatenotnull,

telchar(13),

passwordchar(20),

adminint

);

该表的结构如下:

读者信息表(tb_reader)用来保存读者信息,其创建该表的SQL语句如下:

Createtabletb_reader(

namechar(10)notnull,

sexchar(4)notnull,

agesmallintnotnull,

identityCardchar(13)primarykeynotnull,

datedatenotnull,

maxNumchar(10),

telchar(13),

keepMoneydoubleprecision,

zjchar(10),

zychar(10),

bztimedate,

ISBNchar(13)notnull

);

该表的结构如下:

3.3.3安全性设计

该系统的用户只有两种,一种是管理员,另一种是普通用户,管理员具有对数据库操作的所有权限,用户无权对对数据库进行操作。

3.3.4一致性设计

主要是对数据库表的三种完整性进行设计:

实体完整性:

通过设置主键都已实现。

参照完整性:

读者中的ISBN不做主码,而是他的id做主码,但图书信息中ISBN做主码,所以为读者的外码,图书信息中的图书类型编号对应图书类型表的图书类型编号,用户的identitycard对应读者的identitycard,读者的ISBN对应图书信息的ISBN。

用户自定义完整性:

在该系统中,设置了图书国际编号必须为十三位,还有id等都设置了输入的限制。

4详细设计与实现

4.1管理员登录模块

该模块主要运用BorderLayout布局和GridLayout布局进行嵌套布局,通过嵌套能够得到符合一定需要的合理布局。

界面效果如下:

实现该过程的主要代码如下:

publicLoginIFrame(){

super();

finalBorderLayoutborderLayout=newBorderLayout();

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

borderLayout.setVgap(10);

getContentPane().setLayout(borderLayout);

setTitle("图书馆管理系统登录");

setBounds(200,200,275,180);

finalJPanelpanel=newJPanel();

panel.setLayout(newBorderLayout());

panel.setBorder(newEmptyBorder(0,0,0,0));

getContentPane().add(panel);

finalJPanelpanel_2=newJPanel();

finalGridLayoutgridLayout=newGridLayout(2,5);

gridLayout.setHgap(-50);

gridLayout.setVgap(35);

panel_2.setLayout(gridLayout);

panel.add(panel_2);

finalJLabellabel=newJLabel();

label.setHorizontalAlignment(SwingConstants.CENTER);

label.setPreferredSize(newDimension(0,0));

label.setMinimumSize(newDimension(0,0));

panel_2.add(label);

label.setText("用户名:

");

username=newJTextField(10);

username.setPreferredSize(newDimension(0,0));

panel_2.add(username);

finalJLabellabel_1=newJLabel();

label_1.setHorizontalAlignment(SwingConstants.CENTER);

panel_2.add(label_1);

label_1.setText("密码:

");

password=newJPasswordField(10);

password.setDocument(newMyDocument(20));

password.setEchoChar('*');//设置密码框的回显字符

password.addKeyListener(newKeyAdapter(){

publicvoidkeyPressed(finalKeyEvente){

if(e.getKeyCode()==8)

login.doClick();

}

});

panel_2.add(password);

finalJPanelpanel_3=newJPanel();

panel.add(panel_3,BorderLayout.EAST);

finalJPanelpanel_1=newJPanel();

panel.add(panel_1,BorderLayout.SOUTH);

login=newJButton();

login.addActionListener(newBookLoginAction());

login.setText("登录");

panel_1.add(login);

reset=newJButton();

reset.addActionListener(newBookResetAction());

reset.setText("重置");

panel_1.add(reset);

finalJLabeltupianLabel=newJLabel();

tupianLabel.setOpaque(true);

tupianLabel.setPreferredSize(newDimension(0,30));

panel.add(tupianLabel,BorderLayout.NORTH);

setVisible(true);

setResizable(false);

}

4.2系统主界面模块

点击登录按钮,按钮监听器就跳转到check()函数,对用户名和密码进行验证,如果用户名或密码不对,则跳出“只有管理员才可以登录!

”,否则跳转到如下主界面:

实现该过程的主要代码如下:

publicstaticvoidaddIFame(JInternalFrameiframe)

{

//添加子窗体的方法

DESKTOP_PANE.add(iframe);

}

publicMainFrame(){

super();

setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

//setModalExclusionType(ModalExclusionType.APPLICATION_EXCLUDE);

setLocationByPlatform(true);

setSize(800,600);

setTitle("图书信息管理系统");

JMenuBarmenuBar=createMenu();//调用创建菜单栏的方法

setJMenuBar(menuBar);

JToolBartoolBar=createToolBar();//调用创建工具栏的方法

getContentPane().add(toolBar,BorderLayout.NORTH);

finalJLabellabel=newJLabel();

label.setBounds(0,0,0,0);

label.setIcon(null);//窗体背景

DESKTOP_PANE.addComponentListener(newComponentAdapter(){

publicvoidcomponentResized(finalComponentEvente){

Dimensionsize=e.getComponent().getSize();

label.setSize(e.getComponent().getSize());

label.setText("

+size.height+"src='"

+this.getClass().getResource("backImg.jpg")

+"'>");

}

});

DESKTOP_PANE.add(label,newInteger(Integer.MIN_VALUE));

getContentPane().add(DESKTOP_PANE);

}

/**

*创建工具栏

*/

privateJToolBarcreateToolBar(){//创建工具栏的方法

JToolBartoolBar=newJToolBar();

toolBar.setFloatable(false);

toolBar.setBorder(newBevelBorder(BevelBorder.RAISED));

JButtonbookAddButton=newJButton(MenuActions.BOOK_ADD);

ImageIconicon=newImageIcon(MainFrame.class.getResource("bookAddtb.jpg"));//添加菜单栏图标

//bookAddButton.setText("图书添加");

bookAddButton.setIcon(icon);

bookAddButton.setHideActionText(true);

toolBar.add(bookAddButton);

JButtonbookModiAndDelButton=newJButton(MenuActions.BOOK_MODIFY);

//bookModiAndDelButton.setText("图书信息修改与删除");

ImageIconbookmodiicon=newImageIcon(MainFrame.class.getResource("bookModiAndDeltb.jpg"));//创建图标方法

bookModiAndDelButton.setIcon(bookmodiicon);

bookModiAndDelButton.setHideActionText(true);

toolBar.add(bookModiAndDelButton);

JButtonbookTypeAddButton=newJButton(MenuActions.BOOKTYPE_ADD);

ImageIconbookTypeAddicon=newImageIcon(MainFrame.class.getResource("bookTypeAddtb.jpg"));//创建图标方法

bookTypeAddButton.setIcon(bookTypeAddicon);

bookTypeAddButton.setHideActionText(true);

//bookTypeAddButton.setText("图书类别添加");

toolBar.add(bookTypeAddButton);

JButtonreaderAddButton=newJButton(MenuActions.READER_ADD);

ImageIconreaderAddicon=newImageIcon(MainFrame.class.getResource("readerAddtb.jpg"));//创建图标方法

readerAddButton.setIcon(readerAddicon);

readerAddButton.setHideActionText(true);

//readerAddButton.setText("读者添加");

toolBar.add(readerAddButton);

JButtonreaderModiAndDelButton=newJButton(MenuActions.READER_MODIFY);

ImageIconreaderModiAndDelicon=newImageIcon(MainFrame.class.getResource("readerModiAndDeltb.jpg"));//创建图标方法

readerModiAndDelButton.setIcon(readerModiAndDelicon);

readerModiAndDelButton.setHideActionText(true);

//readerModiAndDelButton.setText("读者信息修改与删除");

toolBar.add(readerModiAndDelButton);

JButtonBookSelectButton=newJButton(MenuActions.BOOK_SEL);

ImageIconBookSelecticon=newImageIcon(MainFrame.class.getResource("booksel.jpg"));//创建图标方法

//BookSelectButton.setText("图书信息查询");

BookSelectButton.setIcon(BookSelecticon);

BookSelectButton.setHideActionText(true);

toolBar.add(BookSelectButton);

JButtonExitButton=newJButton(MenuActions.EXIT);

ImageIconExiticon=newImageIcon(MainFrame.class.getResource("exittb.jpg"));//创建图标方法

ExitButton.setIcon(Exiticon);

ExitButton.setHideActionText(true);

//ExitButton.setText("退出系统");

toolBar.add(ExitButton);

returntoolBar;

}

/**

*创建菜单栏

*/

privateJMenuBarcreateMenu(){//创建菜单栏的方法

JMenuBarmenuBar=newJMenuBar();

JMenubaseMenu=newJMenu();//初始化基础数据维护菜单

ImageIconExiticon=newImageIcon(Mai

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1