软件工程图书管理系统课程设计_第1页
软件工程图书管理系统课程设计_第2页
软件工程图书管理系统课程设计_第3页
软件工程图书管理系统课程设计_第4页
软件工程图书管理系统课程设计_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

图书管理系统课程设计报告

1.设计目的

随着计算机技术的不断发展,计算机作为学问经济时代的产物,已被广泛应

用于社会各个行业和领域。目前,我国的科技水平高速发展,计算机作为今日运

用最广的现代化工具已深化到各个领域,并且正在成为将来社会一一信息社会的

重要支柱。在这样的大背景下,现代图书馆的管理方式,资源建设等方面都发生

了重大改变,这种改变表现在图书馆工作,管理和服务平台发生的改变,图书馆

不再是传统的手工操作,人工管理,而是全面实行计算机管理。

图书馆的正常运营中总是面对大量的读者信息,图书信息以及两者相互作用

产生的借书信息,因此要对读者资源,图书资源,借书信息进行管埋。本系统的

开发就是在于提高图书管理的工作效率,加强图书馆的管理,全面实行计算机管

理。

2.可行性探讨报告

在软件的开发过程中,这一步是特别必要的。假如在定义阶段及早发觉将来

可能在开发过程中的问题,及早做出决断,可以避开大量的人力,财力和时间上

的奢侈。

1.技术可行性:本组开发成员都具有肯定的电脑学问,学习过多种程

序开发语言。特殊是在项目确定后对C#和SQLServer数据库的强化学习,

使本系统胜利开发成为可能。

2.经济可行性:本系统有其生存空间,胜利后有其市场。并且本小组

开发人员基于一种爱好去探讨他的,我们有自己的电脑,可以说成本开支

极其有限。

3.现阶段各种各样的图书馆越来越多,图书馆的书也越来越多,国书

的管理工作也越来越困难。本系统就是为了减轻图书管理人员的工作而设

计的。

4.法律可行性:本系统为我五人开发小组独立完成,不关他人,开发

胜利后其全部权归我们五人全部,用户购买后其运用权一同买断,我们将

供应技术支持。

5.基于水平和时间有限,我们的系统还不是特别完善。可扩展的地方

许多,现列举如:

建立图书预约机制建立读者反馈机制

建立过期催还机制建立条码扫描机制等。

以现有的人力和时间来衡量,我们只有放弃,

经过以上可行性论证,本系统可以按任务书要求开发。

3.项目开发支配书

开发阶段时间进度

制定开发支配两天

需求分析一周

概要设计一周

具体设计两周

系统实现三周

系统测试一周

编写课程设计报告两周

4.系统需求规格说明书

该过程是个不断相识不断细化的过程。这里所要完成的工作是深化描述软件

的功能和性能,确定软件的设计限制和软件同其他系统元素的接口细微环节,从

而奠定软件的开发基础。

1.性能需求:该系统中,各个模块只有管理人员才能对其进行操作,系统管理

人员要进行身分验证才能进入界面操作.

2.功能需求:我们设计的系统要完成的功能模块如下:

登陆模块管理员管理模块借阅卡管理模块书籍管理模块

查询管理模块。

3.环境需求:电脑须要安装.net框架3.5,安装SQLServer2008数据库,硬

件要求酷睿i3双核以上处理器,100G硬盘空间,1G以上内存,系统应有

WindowsXP,Windows?,或Windows8操作系统。

4.界面需求:本软件是面对大众,界面友好,操作简洁敏捷,依据界面上的提

示便可完成一系列动作。

5.概要设计说明书

5.1系统设计流程

(—)建库;

建立数据库;

(二)设计相应的操作界面;

5.2功能模块结构图设计

一、软件设计过程

对程序结构、数据结构、过程细微环节和接口细微环节逐步细化、评审和编

写文档的过程。从技术角度上,软件设计分成体系结构设计、数据设计、过程设

计、接口设计4个方面的工作。从管理角度上讲,软件设计分为概要设计和具体

设计两个阶段。

二、软件设计目标

设计必需实现分析模型中描述的全部显示需求,必需满意用户希望的全部隐

式需求;设计必需是可读、可理解的,使得将来易于编程、易于测试、易于维护;

设计应从实现角度动身,给出数据、功能、行为相关的软件全貌。

三、基本原理和相关概念

⑴抽象化:常用的抽象化手段有过程抽象、数据抽象和限制抽象

・过程抽象:任何一个完成明确动能的操作都可被运用者当做单位的实体

看待,尽管这个操作时机上可能由一系列更低级的操作来完成。

・数据抽象:与过程抽象一样,允许设计人员在不同层次上描述数据,对象

的细微环节。

•与过程抽象和数据抽象一样,限制抽象可以包含一个程序限制机制而无

须规定其内部细微环节。

(2)自顶向下,逐步细化:将软件的体系结构按自顶向下方式,对各个层次的

过程细微环节和数据细微环节逐层细化,知道用程序设计语言的语句能够实现为

止,从而最终确立完全的体系结构。

⑶模块化:将一个待开发的软件分解成若干个小的简洁的部分一一模块,每

个模块可独立地开发、测试,最终组装成完整的程序。这是一种困难问题的“分

而治之”的原则。模块化的目的是使程序结构清楚,简洁阅读,简洁理解,简洁

测试,简洁修改。

(4)限制层次:表明白程序构件(模块)的组织状况。限制层次往往用程序的

层次结构(树形或网型)来表示。

•深度:程序结陶的层次数,可以反映程序机构的规模和困难程度。

・宽度:同一层模块的最大模块个数

・模块的扇出:一个模块调用(或限制)的其他模块数

・模块的扇入:调用(或限制)一个给定模块的模块个数

⑸信息屏蔽:将每个程序的成分隐微或封装在一个单一的设计模块中,定义

每一个模块时尽可能少的显露其内部的处理,可以提高软件的可修改性,可测试

性和可移植性。

⑹模块独立:每个模块完成一个相对特定独立的子功能,并且与其他模块之

间的联系简洁。衡量度量标准有两个:模块间的耦合和模块的内聚。模块独立性

强必需做到高内聚低耦合。

•耦合:模块之间联系的紧密程度,耦合度越高模块的独立性越差。耦合

度从低到高的次序为:非干脆耦合、数据耦合、标记耦合、限制耦合、外部耦合、

公共耦合、内容耦合。

・内聚是指内部各元素之间联系的紧密程度,内聚度越低模块的独立性越

差。内聚度从低到高依次是:偶然内聚、逻辑内聚、瞬时内聚、过程内聚、通信

内聚、依次内聚、功能内聚。

结构化设计方法,采纳类似于结构化分析的“由大到小”、“自顶向下,逐

层分解”的基本思想描述(分解)系统。结构化设计方法,首先以数据流图为基

础导出系统模块(功能)结构图。在导出系统模块(功能)结构图的过程中,以

独立性、低耦合性、高内聚性、公共模块作为模块划分的原则。先将系统数据流

图中的加工转换成模块,再将各大模块接着划分为较小的模块,直到每一模块都

是功能单一的模块。

依据系统功能分析和图书馆管理的特点,经过模块化的分析得到如图所示的

图书馆管理系统功能模块结构图。

书籍

书籍

超期

还书

借书

信息

维护

管n

E

5.3E-R图

管理员E-R图

管理员

学生E-R图

图书E-R图

借阅E-R图

系统整体E-R图

6.具体设计说明书

6.1数据库设计

依据设计好的各实体E-R图创建数据库的逻辑结构,本系统采纳了送了

SQLServer2008数据库,数据库名称为BookMgr.数据库BookMgr包含以下

6个表:图书信息表book、图书管理员表admin、图书类别表type、借书卡信息

表card、图书借阅表lendo

表的具体结构如下:

1)管理员表:用于保存管理员信息,结构如下

列名数据类型允许值

N□ull

>逾int

8Namevarchar(10)

passwordvarchar(10)

/******Object:Table[dbo].[Users]ScriptDato:04/26/201515:56:26

******/

SETANSI_NULLSON

GO

SETQUOTEDIDENTIFIERON

GO

CREATETABLE[dbo].[Users](

[NameJ[nvarchar](50)NULL,

[Password][nvarchar]150NL-l.L,

[Type][int]NULL

)ON[PRIMARY]

GO

2)图书信息表

数据类型允许值

到冬N□ull

W]NumInvarchar(50)

Namenvarchar(50)M

Authornvarchar(50)

Typeint0

ISBNnvarchar(50)0

CBSnvarchar(50)0

CBRQdatetime⑦

Statusnvarchar(50)

/******Object:Table[dbo].[Book]ScriptDate:04/26/201515:56:26

******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo].[Book](

[Num][nvarchar](50)NOTNULL,

[Name][nvarchar](50)NULL,

[Author][nvarchar](50)NULL,

[Type][int]NULL,

[ISBN][nvarchar](50)NULL,

[CBS][nvarchar](50MLL,

[CBRQ][datetime]NULL,

[StatusJ[nvarchar](50)NLLL,

CONSTRAINT[PK_Book]PRIMARYKEYCLUSTERED

[Num]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DLP_KEY=OFF,

ALL0W_R0W_L0CKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

3)借书卡信息表

列名数据类型允许Null值

>8:Num;

nvarchar(50)E一

Namenvarchar(50)

Classnvarchar(50)

StartTimedatetime[oz

EndTimedatetime

[z

/******Object:Table[dbo].[Card]ScriptDate:04/26/201515:56:26

******/

SETANSI_NULLSON

GO

SETQUOTEDJDENTIFIERON

GO

CREATETABLE[dbo].[Card](

[Num][nvarchar](50)NOTNULL,

[Name]nvarchar]50\lLL,

[Class][nvarchar](5①NULL,

[StartTime][datetime]NULL,

[EndTime][datetime]NULL,

CONSTRAINT[PKCard]PRIMARYKEYCLUSTERED

(

[Num]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,IGNORE_DLP_KEY=OFF,

ALLOW_ROW_LOCKS=ON,ALLOW_PAGEJXK:KS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

4)图书借阅表

列名数据类型允许Ndl值

7

>!CardNumInvarchar(50)回

BookNumnvarchar(50)团

Timedatetime回

Statusnvarchar(50)国

/******Object:Tabic[dbo].[Lend]ScriptDate:04/26/201515:56:26

******/

SETANSI_NULLSON

GO

SETQUOTEDJDENTIFIERON

GO

CREATETABLE[dbo].[Lend](

[CardNum][nvarchar](50)NULL,

[BookNum][nvarchar](50)NULL,

[Time][datetime]NULL,

[Status][nvarchar](50)NULL

)ON[PRIMARY]

GO

5)图书类型表

列名数据类型允许Null值

IDIint0

Namenvarchar(50)叵]

/******Object:Table[dbo].[Type]ScriptDate:04/26/201515:56:26

******/

SETANSI_NULLSON

GO

SETQUOTED_IDENTIFIERON

GO

CREATETABLE[dbo],[Type](

[ID][int]IDENTITY(1,1)NOTNULL,

[Name][nvarcharl507LL,

CONSTRAINT[PKType]PRIMARYKEYCLUSTERED

(

[ID]ASC

)WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE-OFF,IGNORE_DL'P_KEY=OFF,

ALLOW_ROW_LOCKS=ON,ALLOW_PAGE_LOCKS=ON)ON[PRIMARY]

)ON[PRIMARY]

GO

6.2系统界面设计

登陆界面

//验证用户

privatevoidokButton_Click(objectsender,System.EventArgse)

(

if(tB_Namc.Text=="")

(

MessageBox.Show("请输入用户名!","提云");

return;

)

if(cB_Type.SelectedIndex<0)

(

MessageBox.Show("请选择登陆身份!","显示");

return;

)

stringstrCommand;

strCommand="selectPasswordfromUserswhereName='"+tBName.Text+

SqlCommandcoimiand=newSq1Command(strCommand,DBHelper.Conn):

SqlDataReaderreader:

reader=comnand.ExecuteReader();

if(reader.Read())

(

stringpassword=reader["Password"].ToStringO;

//验证用户

if(password==tB_Password.Text)

{

//MainForm.m_strNamc=tB_Name.Text;

this.DialogResult=DialogResult.OK;

this.CloscO;

)

else

(

MessageBox.Show("用户或口令信息不正确!","提示");

)

)

else

MessageBox.Show("用户不存在!","提示""

reader.CloseO;

主界而

privatevoid图T5管理ToolStripMenuItem_Click(objectsender,EventArgse)

(

Bookdig=newBook():

dig.MdiParent=this:

dig.Show();

}

privatevoid借书卡管理ToolStripMenuItemClick(objectsender,EventArgse)

Carddig=newCard();

dig.MdiParent=this;

dig.Show();

图书管理

privatevoidBook_Load(objectsender,HvcntArgse)

(

stringsql=string.Format(矿select[Num]编号,Book.[Name]书名,[Author]作者

,Type.Name类别,[ISBN],[CBS]出版社,[CBRQ]出版日期,[Status]出借状态fromBookleft

joinTypeonBook.Type=Type.TD^);

dataGridViewl.DataSource=DBHelper.GetDataSet(sql);

)

privatevoidbtnAdd_Click(objectsender,KvcntArgse)

(

BookAdddig=newBookAdd(;

dig.ShowDialogO;

stringsql=string.Formal(@*selecl[Num]编号,Book.[Name]书名,[Author]作者

,Type.Name类别,[ISBN],[CBS]出版社,[CBRQ]出版日期,[Status]出借状态fromBookleft

joinTypeonBook.Type=Type.ID");

dataGridViewl.DataSource=DBHelper.GetDataSet(sql);

)

借书卡管理

privatevoidCard_Load(objectsender,LvcntArgsc)

dataGridViowl.DataSource=DBUelper.GetDataSet(©^select[Num.编号

,[Name]姓名,[Class]班级,[StartTime]起先时间,[EndTime]结束时间FROM[Card]*);

)

privatevoidbuttc»il_Click(objectsender,EventArgse)

(

CardAdddig=newCardAdcl(w/,):

dig.ShowDialogO;

dataGridViowl.DataSource=DEiHclper.GetDataSet(^"select[Num'编号

,[Name]姓名,[Class]班级,[StartTime]起先时间,[EndTime]结束时间FROM[Card]");

借书界面

□,借书笞理।o।回

r借阅

privatevoidLend_Load(objectsender,HventArgsc)

(

CardNum.DataSource=DBIIelper.GetDataSet(^select*fromCard");

CardNum.DisplayMember="Num";

CardNum.ValueMember="Name";

CardName.Text=

BookNum.DataSource=DBUelper.GetDataSet(*select*fromBook");

BookNum.DisplayMember="Num";

BookNum.ValueMember="Name";

BookNamc.Text="〜;

)

privatevoidbutt(.)nl_Click(objectsender,Event.Argse)

(

stringsql=string.Format("insertintolendvaluesC{0}','{1}','{2}','在借'

CardNum.Text,BookNum.Text,DatcTimc.Now);

DBHelper.GetCanmand(sql);

sql=string.Format(""updateBooksetSlatus='已借出‘whereNum='1.0}'”,

BookNum.Text);

DBIle1per.GetC(.xiimand(sql);

MessageBox.Show("借阅胜利!“);

this.CloseO;

)

还书界面

日图书归还w31

privatevoidBack_Load(objectsender,LventArgsc)

(

CardNum.DataSource=DBIIelper.GetDataSet(^select*fromCard");

CardNum.DisplayMember="Num";

CardNum.ValueMember="Name";

CardName.Text=

)

privatevoidbuttonl_Click(objectsender,EventArgse)

(

stringsql=string.Format("updateLendsetSlatus='归还'whereEtookNum-'{0}'and

CardNum=,{1}1*,

BookNum.Text,CardNum.Text);

DBHelper.GetCommand(sql);

sql=string.Format(""updateBooksetStatus='未借出'whereNum='

BookNum.Text);

DBHelper.GetCommand(sql);

McssagcBox.Show("归还胜利!");

this.Close();

图书查询界面

privatevoidbuttonl_Click(objectsender,EvcntArgse)

stringsql=string.Format^*select[Num]编号,[Name]书名,[Author]作者

,[Type]类别,[ISBN],[CBS]出版社,[CBRQ]出版日期,[Status]出借状态fromBook

whereNumlike'orNamelike'orAuthorlike,orISBNlike'orCBS

like'*,textBoxl.Text);

dataGridViewl.DataSource=DBHelper.GetDataSet(sql);

}

超期未还图书界面

privatevoidBackTimcout_Load(objectsender,EventArgsc)

stringsql=string.Format^*selectC.Num借书卡号,C.Name姓名,

C.Class班级,B.Num书号,B.Name书名,LTime借阅时间fromLendLleftjoinBookBon

L.BookNum=B.Num

leftjoinCardConL.CardNum=C.NumwhereL.Status='在借'andL.Time<*{0}

DateTime.Now.AddMonths(-l));

dataGridV'iewl.DataSource=DBHclper.GetDa

温馨提示

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

评论

0/150

提交评论