数据库课程设计报告图书馆期刊管理系统_第1页
数据库课程设计报告图书馆期刊管理系统_第2页
数据库课程设计报告图书馆期刊管理系统_第3页
数据库课程设计报告图书馆期刊管理系统_第4页
数据库课程设计报告图书馆期刊管理系统_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、 期刊管理系统课程设计报告及部分代码 1.绪论22.需求分析32.1系统需求分析32.2功能需求分析32.3期刊管理e-r图42.4期刊管理状态转换图43系统设计及可行性研究93.1数据概念结构设计93.1.1期刊管理数据流图93.1.2期刊管理系统流程图133.1.3期刊管理结构图143.1.4期刊管理数据字典144.2数据逻辑结构设计224.2.1数据逻辑结构设计224.2.2数据表的设计224.2.3数据库二维表结构245实现245.1系统测试245.1.1 测试目的255.1.2登录测试255.1.3管理测试255.1.4借阅管理测试265.1.5 查询管理测试276参考文献271.绪

2、论不管学校还是各企事业等的图书馆都离不开图书期刊管理,如果图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂,工作量大,出错率高,出错后不易更改。所以有必要建立一个图书期刊管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。2.需求分析2.1系统需求分析图书管理系统需要满足来自两方面的需求,这两个方面分别是图书借阅者、图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;图书馆管理人员对图书借阅者的借阅及还书要求进行操作, 还有对

3、图书借阅者管理,图书库存更新,图书其它信息,如征订等管理。 如果图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和维护部分个人信息。 图书借阅者只应该查询和维护本人的借书情况和个人信息, 图书馆管理人员有修改图书借阅者借书和还书记录的权限。图书馆管理员可以浏览、查询、添加、删除、修改、统计图书的基本信息;浏览、查询、统计、添加、删除和修改图书借阅者的基本信息,并且对读者征订信息管理。2.2功能需求分析1、 期刊登记:新期刊入库,期刊登记主要用于实现对图书馆各种图书进行登记,为实现书刊的借还作好先前准备。首先需要登记各期刊的信息,可以用期刊信息表来实现:期刊信息表:刊名、刊

4、号、出版年份、卷期数量和库存。 2、 期刊借阅:主要用于实现以下三个功能:期刊续借、期刊归还、期刊新借。可以用借阅信息表和读者信息表来实现:借阅信息表:学号、图书期刊号、借阅日期、还书日期读者信息表:姓名、性别、学号、系、班级、借阅期限3、 期刊查询:主要用于实现读者要查询自己想要的图书,先通过查询,如果有就可以借。有以下功能:(1)某人所借的期刊清单,每人能同时最多能借5本书,超过5本不能再借阅,而且每人不能借阅相同的图书,图书借阅期限为90天,能查询借阅时间过期的图书及借者(2)可以按图书名称、图书作者等信息查询所需要的图书(3)按关键字查询,查询出相应的关键字的文章题目,作者,刊名,年,

5、卷,期;(4)期刊的去向,可以查询图书当前被谁借走(5)图书库存,图书的剩余数量可以用文章信息表和期刊信息表实现:文章信息表:图书期刊号,文章题目,文章作者期刊信息表:刊名,刊号,出版年份,卷期数量和库存。 4、 期刊征订:用于某些读者热衷于的那种图书,可以进行征订,通过记录征订信息表而找出相应的期刊,从而可以满足读者,可以用征订信息表来实现:征订信息表:期刊名,期刊号,邮发代号2.3期刊管理e-r图2.4期刊管理状态转换图管理员借阅 读者查询管理员征订图书 读者征订信息3系统设计及可行性研究3.1数据概念结构设计3.1.1期刊管理数据流图图 1图 2 图3.1图3.2 图3.3图3.4 总图

6、3.1.2期刊管理系统流程图3.1.3期刊管理结构图3.1.4期刊管理数据字典名字:期刊信息表别名:描述:在每次查询期刊时,准确反映期刊库存,数量的详细信息的信息表定义:期刊信息表=图书期刊号+图书刊名+出版年+卷+期+数量+库存位置:显示给管理员计算机名字:图书期刊号别名:描述:可以标识特定图书的关键域定义:图书期刊号=6数字6位置:期刊信息表 借阅信息表 文章信息表 征订信息表 查询 库存清单名字:库存别名:描述:用于显示书库中同一种书还存有多少本,明确此时是否有此书可以借来方便读者和管理员管理了解借出书的情况定义:库存=总数量借出数量位置:期刊信息表 库存更新 管理期刊 查询期刊信息名字

7、:借阅信息表别名:描述:反映读者借阅信息的数据表定义:借阅信息表=学号+图书期刊号+借阅日期+还书日期位置:显示给管理员计算机名字:学号别名:描述: 用于标识借阅图书的读者资料的关键域,可将读者与借阅的图书联系以便管理员管理借阅信息和读者信息定义: 学号=6数字6位置: 借阅信息表 读者信息表名字:借阅日期别名:描述: 用来记录读者借书时的日期,便于查阅读者借书的天数来判断是否超出规定的借阅期限便于管理定义: 借阅日期=0数字字符7位置: 借阅信息表 读者信息表 管理信息名字:还书日期别名:描述: 用于配合查询借阅书籍是否超出期限定义: 还书日期=0数字字符7位置: 借阅信息表 读者信息表 管

8、理信息名字:读者信息表别名:描述:显示读者详细信息的数据表定义:读者信息表=姓名+性别+学号+系+班级+借阅期限位置:显示给管理员计算机名字:姓名别名:描述:和学号共同用于描述读者信息情况,便于书的借出与归还管理定义: 姓名=0字符7位置: 读者信息表 借阅信息 征订名字:系别名:描述: 用于定位某同学的具体信息便于图书借出管理定义: 系=0字符7位置: 读者信息表 借阅信息表名字:班级别名:描述: 用于结合学号,姓名以及系可以精确地查找到某读者,以防不还书情况下可以找到借书本人,便于管理定义: 班级=0字符7位置: 读者信息表 征订名字:借阅期限别名:描述: 用于规定严格的借书天数,可以约束

9、读者借阅便于书的使用定义: 借阅期限=90位置: 读者信息表名字:文章信息表别名:描述:对文章各种信息的详细记录表定义:文章信息表=图书期刊号+文章题目+文章作者位置:管理员计算机名字:文章题目别名:描述:便于查询有其内容的图书,便于读者借阅以及图书征订定义: 文章题目=0字符7位置: 文章信息表 查询期刊 核对期刊 征订表名字:文章作者别名:描述:用来更加精确地寻找图书来借阅和征订 定义: 文章作者=0字符7 位置: 文章信息表 核对期刊 征订表名字:征订信息表别名:描述:显示读者提供所需征订图书详细信息的数据表定义:征订信息表=期刊名+期刊号+邮发代号位置:显示给管理员计算机名字:邮发代码

10、别名:描述:标识同一出版社的关键域,便于订阅图书定义:邮发代码= 5数字5 位置: 征订信息表 期刊信息名字: 管理信息别名:描述:显示管理期刊或者读者情况信息表定义: 管理信息=期刊信息+读者信息位置: 期刊信息表或者读者信息表名字:管理操作结果别名:描述:将管理的期刊或者读者信息结果以表格式传送给管理员定义:管理操作结果位置:显示在管理员的计算机名字:查询期刊信息别名:描述:管理员用于查询所需期刊是否有以及其库存定义:查询期刊信息=查询期刊的数量+期刊库存位置:显示在计算机屏上的期刊信息表名字:查询结果别名:描述:用于将查询的期刊或者读者信息结果反馈给管理员定义:查询结果=期刊信息结果+读

11、者信息结果位置: 显示在管理员计算机名字:核对期刊别名:描述:用于核对所借的期刊名,期刊号等信息定义:核对期刊=核对图书刊名+核对图书期刊号位置: 期刊信息表 名字:管理期刊别名:描述:用于管理借出期刊后的期刊整理定义:管理期刊=期刊数量增减+种类的增减位置: 显示管理员计算机上,体现在库存信息表名字:更新库存别名:描述:管理期刊后的保存更新操作 定义:更新库存=期刊信息表位置:期刊信息名字:查询期刊信息别名:描述:读者用于查询期刊是否存有以及库存是否满足定义:查询期刊信息=文章信息表+期刊数量+库存位置: 反馈给读者计算机的期刊信息表 名字:管理读者信息别名:描述:计算机用来登记借阅图书的读

12、者信息以及其基本信息的修改定义:管理读者信息=管理读者信息表+管理借阅信息表位置: 反馈给管理员的读者信息表名字:借阅结果别名:描述:显示输入查询信息后反馈给管理员的信息定义:借阅结果=姓名+性别+学号+系+班级+图书期刊号+借阅日期+还书日期+借阅期限位置: 显示给管理员计算机名字:更新库表别名:描述:输入新入库书籍的相关信息,便于以后的管理定义:登记信息=图书期刊号+文章题目+文章作者 位置: 图书信息表名字:借阅期刊别名:描述:找到书籍后转移书籍信息至读者借阅信息列表中定义:借阅期刊= 学号+图书期刊号+借阅日期+还书日期位置: 借阅信息表名字:核对信息别名:描述:核对图书与相应读者信息

13、是否匹配定义:核对信息=姓名+学号+系+班级+图书期刊号+文章题目+文章作者 位置: 文章信息表 借阅信息表名字:征订列表别名:描述:由所要征订图书的信息综合列出的信息表定义:征定列表=期刊号+期刊名+邮发代号+数目位置: 征订信息表名字:提交订表别名:描述:征订并核对信息无误后上交列表定义:提交订表=期刊号+期刊名+邮发代号+数目位置: 征订信息表 文章信息表4.2数据逻辑结构设计4.2.1数据逻辑结构设计期刊信息(刊名、刊号、出版年份、卷期数量、库存)借阅信息(学号、图书期刊号、借阅日期、还书日期)读者信息(姓名、性别、学号、系、班级、借阅期限)文章信息(图书期刊号,文章题目,文章作者)征

14、订信息(期刊名,期刊号,邮发代号)4.2.2数据表的设计期刊信息 借阅信息 读者信息文章信息 征订信息4.2.3数据库二维表结构读者信息表借阅信息表期刊信息表文章信息表征订信息表5实现5.1系统测试系统测试是将软件系统与硬件、外设和网格等其他因素结合在一起,进行信息系统的各种组装测试和确认测试。系统名称:期刊管理系统测试环境:服务器环境microsoft sql server、编程软件环境 microsoft visual studio 2005测试系统:windows xp5.1.1 测试目的本系统主要针对各学校的图书馆所使用的图书期刊管理系统。测试在于验证是否符合所要求的功能等,总结测试阶

15、段的测试以及分析测试结果,描述系统是否符合需求。5.1.2登录测试登录测试主要用于检测系统能否防止非授权用户使用系统。测试过程: 进入期刊管理系统,首先可以进入管理员或者读者分别进入,其中读者可以直接登录,管理员登录时,需输入正确的用户和密码,并选择正确的操作权限,用户可以登录;然后输入错误的账号和正确的密码或者正确的账号和错误的密码以及错误的账号和错误的密码,都不能登录。 5.1.3管理测试管理里面有期刊的添加、修改与删除等,还有读者的信息修改,添加。用来管理整个系统的基本信息功能,保证信息的准确,完整性。比如期刊的修改,在相应的文本框里输入刊名,数量等信息 就会显示相应的操作提示,并且会显

16、示各信息,如果修改出现错误会显示有误,不能进行操作。也可以在这项中进行删除必要的信息。5.1.4借阅管理测试借阅是用于学生借阅时记录的操作,可以统计借阅的信息等,并且显示借阅日期,是期刊管理系统中极其重要的部分。在相应的地方输入学生信息以及借阅的刊名,就可以显示相应的借阅成功,并且可以成功的添加学生的借阅书刊等信息。在书刊归还中,可以根据学生的信息成功的删除学生借阅信息。5.1.5 查询管理测试查询是用于管理书刊和读者的必要操作,可以用来对读者的信息和书刊的查询。可以根据查询的结构,来决定是否需要征订,是否可以借阅等信息。通过输入书刊的名字等可以执行书刊的查询,输入读者的学号等可以查询读者信息

17、。6参考文献1 软件工程导论 张海藩 清华大学出版社 2008.22 sql server2000数据库与应用 蒋秀英 清华大学出版社 2006.13 c#程序设计教程 郑阿奇,梁敬东 机械工业出版社 2009.1部分代码:首页面选择:private void btnmanager_click(object sender, eventargs e) managerlogin mj = new managerlogin(); mj.show(); this.hide(); private void btnreader_click(object sender, eventargs e) perso

18、nlogin pl = new personlogin(); pl.show(); this.hide(); private void btnclose_click(object sender, eventargs e) this.close(); 添加期刊: public frm期刊添加() initializecomponent(); private void button1_click(object sender, eventargs e) sqlconnection nope = new sqlconnection(data source=.;initial catalog=tushu

19、guanli;integrated security=true); string sql = string.format(insert into 期刊信息表(年,刊名,数量,卷,库存) values ( + textbox2.text + , + textbox1.text + , + textbox3.text + , + textbox4.text + ,+textbox3.text+); sqlcommand nopel = new sqlcommand(sql, nope); nope.open(); int temp = (int)nopel.executenonquery(); t

20、ry if (temp 0) messagebox.show(添加成功!); textbox1.text = ; textbox2.text = ; textbox3.text = ; textbox4.text = ; frm期刊添加 主界面 = new frm期刊添加(); 主界面.show(); this.hide(); catch (exception) throw; finally nope.close(); private void button2_click(object sender, eventargs e) qk主界面 主界面 = new qk主界面(); 主界面.show

21、(); this.hide(); 期刊的归还:public partial class back : form public back() initializecomponent(); private void form9_load(object sender, eventargs e) this.taborrow.fill(this.dsback.借阅表); private void button2_click(object sender, eventargs e) qk主界面 qk = new qk主界面(); qk.show(); this.hide(); private void bu

22、tton3_click(object sender, eventargs e) sqlconnection nope = new sqlconnection(data source=.;initial catalog=tushuguanli;integrated security=true); if (textbox1.text = &textbox2.text!=) messagebox.show(学号不能为空!); if (textbox2.text = &textbox1.text!=) messagebox.show(期刊编码不能为空!); if (textbox1.text = &

23、textbox2.text = ) messagebox.show(不能全为空!); if (textbox1.text != & textbox2.text != ) sqlcommand sql = new sqlcommand(select * from 借阅表 where 学号= + textbox1.text + and 刊名= + textbox2.text + , nope); nope.open(); sqldataadapter da = new sqldataadapter(sql); datatable a = new datatable(); da.fill(a); d

24、atagridview1.datasource = a; string temp = convert.tostring(sql.executescalar(); if (temp != ) nope.close(); sqlcommand sql1 = new sqlcommand(delete from 借阅表 where 学号= + textbox1.text + and 刊名= + textbox2.text + , nope); nope.open(); sqldataadapter da1 = new sqldataadapter(sql1); string temp1 = conv

25、ert.tostring(sql1.executenonquery(); if (temp1 != ) messagebox.show(删除成功!); back shanchu = new back(); this.hide(); shanchu.show(); private void button1_click_1(object sender, eventargs e) sqlconnection nope = new sqlconnection(data source=.;initial catalog=tushuguanli;integrated security=true); if

26、(textbox1.text = & textbox2.text = ) messagebox.show(不能全为空!); if (textbox1.text != &textbox2.text=) sqlcommand con = new sqlcommand(select * from 借阅表 where 学号= + textbox1.text + , nope); nope.open(); sqldataadapter da = new sqldataadapter(con); datatable a = new datatable(); da.fill(a); datagridview

27、1.datasource = a; if (textbox1.text = & textbox2.text != ) sqlcommand con1= new sqlcommand(select * from j借阅表 where 刊名= + textbox2.text + , nope); nope.open(); sqldataadapter da1 = new sqldataadapter(con1); datatable a1 = new datatable(); da1.fill(a1); datagridview1.datasource = a1; if (textbox1.tex

28、t != & textbox2.text !=) sqlcommand con2 = new sqlcommand(select * from 借阅表 where 刊名= + textbox2.text + and 学号=+textbox1.text+, nope); nope.open(); sqldataadapter da2 = new sqldataadapter(con2); datatable a2 = new datatable(); da2.fill(a2); datagridview1.datasource = a2; 期刊的借阅:private void form8_loa

29、d(object sender, eventargs e) this.借阅表tableadapter1.fill(this.期刊dataset8.借阅表); private void button2_click(object sender, eventargs e) qk主界面 主界面 = new qk主界面(); 主界面.show(); this.hide(); private void button1_click(object sender, eventargs e) string dt1 =system.datetime.now.tostring(); int day = 7; date

30、time returntime=system.datetime.now.adddays(day); string dt2=returntime.tostring(); sqlconnection nope = new sqlconnection(data source=.;initial catalog=tushuguanli;integrated security=true); sqlcommand sql = new sqlcommand(select * from 读者信息表 where 学号= + textbox1.text + and 姓名= + textbox2.text + ,

31、nope); nope.open(); sqldataadapter da = new sqldataadapter(sql); datatable a = new datatable(); da.fill(a); datagridview1.datasource = a; string temp = convert.tostring(sql.executescalar(); if (temp != ) nope.close(); sqlcommand sql1 = new sqlcommand(select * from 期刊信息表 where 刊名= + textbox3.text + ,

32、 nope); nope.open(); sqldataadapter da1 = new sqldataadapter(sql1); datatable a1 = new datatable(); da1.fill(a1); datagridview1.datasource = a1; string temp1 = convert.tostring(sql.executescalar(); if (temp1 != ) nope.close(); sqlcommand sql2 = new sqlcommand(insert into 借阅表(学号,姓名,刊名,借书日期,还书日期) valu

33、es ( + textbox1.text + , + textbox2.text + , + textbox3.text + , + dt1+ , + dt2 + ), nope); nope.open(); sqldataadapter da2 = new sqldataadapter(sql2); string temp2 = convert.tostring(sql1.executenonquery(); if (temp2 != ) nope.close(); sqlcommand sql3 = new sqlcommand(updata 期刊信息表 set 库存=库存-1 where

34、 刊名=(select 刊名 from 借阅表 where 刊名= + textbox3.text + ), nope); nope.open(); messagebox.show(借阅成功!); frm期刊借阅 das = new frm期刊借阅(); this.hide(); das.show(); textbox1.text = ; textbox2.text = ; textbox3.text = ; else messagebox.show(此期刊无库存!); textbox1.text = ; textbox2.text = ; textbox3.text = ; else mes

35、sagebox.show(该读者不存在!); textbox1.text = ; textbox2.text = ; textbox3.text = ; 查询期刊:private void button1_click(object sender, eventargs e) if (textbox1.text != ) sqlconnection nope = new sqlconnection(data source=.;initial catalog=tushuguanli;integrated security=true); sqlcommand sql = new sqlcommand(

36、select * from 期刊信息表 where 刊名= + textbox1.text + , nope); nope.open(); sqldataadapter da = new sqldataadapter(sql); datatable a = new datatable(); da.fill(a); datagridview1.datasource = a; nope.close(); if (textbox2.text != ) sqlconnection nope = new sqlconnection(data source=.;initial catalog=tushug

37、uanli;integrated security=true); sqlcommand sql1 = new sqlcommand(select * from 期刊信息表 where 年= + textbox2.text + , nope); nope.open(); sqldataadapter da1 = new sqldataadapter(sql1); datatable a1 = new datatable(); da1.fill(a1); datagridview1.datasource = a1; nope.close(); if (textbox3.text != ) sqlc

38、onnection nope = new sqlconnection(data source=.;initial catalog=tushuguanli;integrated security=true); sqlcommand sql2 = new sqlcommand(select * from 期刊信息表 where 卷= + textbox3.text + , nope); nope.open(); sqldataadapter da2 = new sqldataadapter(sql2); datatable a2 = new datatable(); da2.fill(a2); d

39、atagridview1.datasource = a2; nope.close(); if (textbox1.text != & textbox2.text != ) sqlconnection nope = new sqlconnection(data source=.;initial catalog=tushuguanli;integrated security=true); sqlcommand sql3= new sqlcommand(select * from 期刊信息表 where 刊名= + textbox1.text + and 年=+textbox2.text+, nop

40、e); nope.open(); sqldataadapter da3 = new sqldataadapter(sql3); datatable a3 = new datatable(); da3.fill(a3); datagridview1.datasource = a3; nope.close(); if (textbox2.text != & textbox3.text != ) sqlconnection nope = new sqlconnection(data source=.c;initial catalog=tushuguanli;integrated security=true); sqlcommand sql4 = new

温馨提示

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

评论

0/150

提交评论