(有源代码和数据库)基于VS和MS SQL SERVER2000的图书管理系统的设计与实现

上传人:r****d 文档编号:138435817 上传时间:2022-08-20 格式:DOC 页数:29 大小:710KB
收藏 版权申诉 举报 下载
(有源代码和数据库)基于VS和MS SQL SERVER2000的图书管理系统的设计与实现_第1页
第1页 / 共29页
(有源代码和数据库)基于VS和MS SQL SERVER2000的图书管理系统的设计与实现_第2页
第2页 / 共29页
(有源代码和数据库)基于VS和MS SQL SERVER2000的图书管理系统的设计与实现_第3页
第3页 / 共29页
资源描述:

《(有源代码和数据库)基于VS和MS SQL SERVER2000的图书管理系统的设计与实现》由会员分享,可在线阅读,更多相关《(有源代码和数据库)基于VS和MS SQL SERVER2000的图书管理系统的设计与实现(29页珍藏版)》请在装配图网上搜索。

1、四川工商职业技术院学 生 实 训 报 告实 训 课 程 WinForms高级应用开发 开课实验室 机房10 系 部 信息工程系 年 级 2008级 专业班 计算机08318 小组成员:学 生 姓 名 徐 伟 学 号 28 学 生 姓 名 刘 毅 学 号 学 生 姓 名 杨 星 学 号 23 学 生 姓 名 胡 然 学 号 47 学 生 姓 名 王 娇 学 号 14 学 生 姓 名 冯 通 学 号 开 课 时 间 2010至 2011 学年 第 一 学期目录一、概述3项目名称3背景3二、项目任务说明3系统实现的目标3总体功能需求与关键信息需求3图书管理系统的可行性分析4 用户环境4 其他要求5三

2、、需求分析5系统需求5 实现功能5(1)系统用例图5(2)功能清单7用例说明7四、系统设计9 模块设计9 类图9 时序图10五、数据库设计12 逻辑设计12 表设计12六、界面设计14、主界面实现14、用例界面实现15七、系统维护和改进18 运行维护18系统的改进与提高19八、代码19九、总 结28一、概述项目名称图书管理系统背景当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性

3、。图书管理系统(电子阅览室)主要提供网上的电子图书阅览平台,读者可以通过该系统阅览丰富的电子资源。在图书管理系统中,读者可以方便地对书目进行检索和阅览,足不出户便可尽览群书。图书管理系统主要提供网上的图书阅览平台。电子阅览室可提供24小时的在线服务,最大限度的利用了当前互联网的各种优势,使得您无论身在何处,只要能接入互联网就可以享受到它所提供的方便,快捷的服务。它既具有传统图书馆的大部分功能,像图书的查阅及阅览,又新增了基于现有网络技术的许多实用的功能,像用户注册,书签,书评等。它充分的利用了互联网资源,使商家和用户都能从中获得益处。二、项目任务说明2.1系统实现的目标图书管理系统的开发主要要

4、实现的目标有以下几个方面:(1)界面设计友好、美观。(2)数据存储安全、可靠。(3)信息分类清晰、准确。(4)强大的查询功能,保证数据查询的灵活性。(5)实现对图书借阅和归还过程的全程数据信息跟踪。(6)提供图书借阅排行榜,为图书管理员提供了真实的数据信息。(7)提供灵活、方便的权限设置功能,使整个系统的管理分工明确。(8)具有易维护性和易操作性。总体功能需求与关键信息需求根据图书管理系统的实际需求,可以将图书管理系统划分为系统设置、图书管理、读者管理、图书借还、系统查询。(1)系统设置模块:添加删除管理员、设置管理员的权限、说明图书存放书架信息添加删除书架信息。(2)读者管理模块:添加删除不

5、同类型的读者及注明可借图书的数量、添加删除读者的档案。(3)图书管理模块:添加删除不同类型的的图书及注明图书可借的天数库存数量、添加删除图书的档案。(4)图书借还模块:可查询读者借阅和归还图书的信息及图书的现有库存量。(5)系统查询模块:可根据不同的条件(条形码、书名、类别、作者、书架、出版社)查询读者需要的图书、读者可根据不同的条件(图书条形码、图书名称、读者编号、读者名字、到期时间)查询自己借阅图书信息。图书管理系统的可行性分析本次毕业设计题目:“学校图书管理系统的开发”主要目的是利用数据库软件编制一个管理软件,用以实现图书、读者以及日常工作等多项管理。同时对整个系统的分析、设计过程给出一

6、个完整论证。图书管理系统是一种基于集中统一规划的数据库数据管理新模式。在对图书、读者的管理,其实是对图书、读者数据的管理。本系统的建成无疑会为管理者对图书管理系统提供极大的帮助。本系统的设计主要从以下几方面做起:系统业务流程分析、系统的功能设计、系统的数据库结构设计等。作这些工作需对数据库知识有足够认识,并深入的了解Visual C#的使用和管理系统的相关知识。在信息时代的今天,人类需要对在政治、经济、军事、文化、科研、教育等领域产生的大量信息进行管理,并对数据进行加工处理,数据库技术则是信息管理与数据处理的先进技术。随着信息量的不断增加,作为计算机的三大主要应用(科学计算、过程控制和数据处理

7、)之一的数据处理,已迅速上升为计算机应用主要方面,数据库技术则成为人们日常生活中处理数据不可缺少的有力工具,并且现代的信息管理系统几乎都以数据库技术作为核心。现在大多数的图书管理方式为手工处理,重复劳动多,劳动强度大,而且容易出错,新系统的使用能否可以很好的解决这些问题要看系统的可行性,可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。系统的可行性分析有以下几个方面:(1)技术可行性:处理速度快、准确通过权限的设置,数据的安全性好、方便查询、借阅管理等。 (2)经济可行性:系统建设不需要很大的投入、可缩减人力投入。(3)运行上可行性:本系统作为一个小型的图书馆信息管理系统,

8、所耗费的资源非常的小。 (4)从各种社会因素可行性分析:可降低工作人员工作强度,提高效率,会得到学校工作人员的一致同意的。综上所述通过可行性分析认为新系统的开发方案切实可行,可进行开发。2.4 用户环境 2005数据库:SQL Server 2000及其他客户端:浏览器 2.5 其他要求绘制UML所需要的Rational XDE绘制E-R图所需要的PowerDesigner 三、需求分析3.1系统需求随着互联网的爆炸性发展,人们越来越习惯于利用网络来实现所需的服务。传统的图书馆不能满足一部分现代人的需要,而电子阅览室,由于其不受时间与空间的限制同时又具有传统图书馆的大部分功能,能够满足各类用户

9、的常规与特殊需求,而且其方便快捷,实现技术又比较成熟,因此受到当代人的喜爱。 实现功能(1)系统用例图 1借阅者请求服务的用例图用例图说明:(1) Serch for Book:书籍查询用例。(2) Reserve the book:书籍预订用例。(3) Logon the system:登陆系统。(4) Query Info:查询借阅信息。(5) Borrow the book:借阅书籍。(6) Return the book:归还书籍。(7) Return With Fine:还书时交纳罚金。如果借阅者所借书籍超过借阅期限未还,还书的时候就要交纳一定的罚金。2.图书馆管理员处理借书 、还书

10、等的用例图用例图说明:(1) Get book:借阅书籍(2) Get With Fine:书籍预定处理(3) Lend book:归还书籍(4) Check user account:查询用户账户信息(5) Remove Reservation:删除预定信息用例图说明:(1) Remove Book:删除书籍(2) Add Book:增加书籍(3) Remove or Update Title:删除或更新书目(4) Add Title:增加书目(5) Query Book Info:查询图书信息(6) Query Borrower Info:查询借阅者信息(7) Remove or Upda

11、te Borrower:删除或更新借阅者账户(8) Add Borrower:添加借阅者账户(2)功能清单功能编号功能名称备注01登陆系统02退出登陆03管理员登录04借书处理05还书处理06添加图书07修改密码08查询个人信息09查询图书信息10删除图书11借阅图书12返还图书13系统管理员登陆即超级管理员14读者信息管理15图书信息管理16图书资料管理用例说明 用例01:用户登录A.用例图B.描述用户进行登录已拥有操作系统的权限。C.参与者管理员、普通用户 用例02:退出登录A. 用例图B. 描述用户退出登录C. 参与者普通用户、管理员 查找图书 A、用例图 B、描述在功能主页上,点击图书

12、信息管理,再点击此图书链接,可进行图书查询。输入图书名称、作者或描述后,点击确定按钮,进行图书查找。系统要验证用户是否登陆,如果没登陆,则不能阅读此书。 C、参与者普通用户 查询用户基本信息 A、用例图 B、描述功能主页上,点击登陆按钮,输入个人账号、密码登陆,进入个人主页,点击基本信息进行查询,查询后显示用户户基本信息。 C、参与者普通用户四、系统设计4.1 模块设计1. 用户登录模块:填写已分配的用户名称,填写正确的密码,进入主控制页面。2. 图书查询模块:图书分类,按类型逐级显示。3. 图书搜索模块:提供多种查询条件,可按需要进行查询。4. 管理员模块:显示书评列表和一条书评内容,添加书

13、评。5. 图书入库模块:为喜爱的图书投票,显示投票结果,选出认为最值得一看的图书。6. 权限管理模块:分配用户名和密码,设定用户的级别。同时,还要给图书资源进行分级,以确定哪些级别的用户可以阅读。 4.2 类图1.图书档案管理类、设置图书类型类、设置出版社类、图书注销类之间相互关系2. 读者档案管理类、读者类型设置类等之间的关系4.3 时序图(1)系统管理员添加书籍(2)图书管理员处理借书(3)系统管理员删除书目五、数据库设计5.1 逻辑设计图书管理系统的系统E-R图如图5.2 表设计书管理员基本信息表tb_admin,如表1所示表1 tb_admin(管理员)表字段名数据类型长度主键描述Ad

14、m_idvarchar50是管理员编号Adm_namevarchar50否姓名Adm_passwordvarchar30否密码读者详细信息表tb_reader,如表2所示。表2 tb_reader(读者信息)表字段名数据类型长度主键描述Reader_idvarchar30是读者编号Reader_namevarchar50否读者名称sexchar4否性别Rea_typevarchar50否读者类型 birthday smalldatetime4否生日paperTypevarchar20否证件类型paperNumvarchar30否证件号码telephonevarchar20否 emailvarc

15、har50否E-mailcreateDatesmalldatetime4否注册日期remarktext16否备注borrownumint4否 借阅次数图书详细信息表tb_book,如表3所示。表3 tb_bookkifo(图书信息)表字段名数据类型长度主键描述Book_codevarchar30是图书条形码Book_namevarchar50否图书名称Book_typevarchar50否图书类型autorvarchar50否作者translatorvarchar50否译者pubnamevarchar100否出版社pricemoney8否价格pageint4否页码bcasevarchar50否

16、书架storagebigint8否 存储数量inTimesmalldatetime4否入馆时间borrownumint4否被借次数图书借阅和归还信息表tb_borrow_back,如表4所示。字段名数据类型长度主键描述Bor_idvarchar30是借书编号Rea_idvarchar20否读者编号Book_codevarchar30否图书条形码borrowTimesmalldatetime4否借书时间ygbackTimesmalldatetime4否应该还书时间sjbackTimesmalldatetime4否实际还书时间borrowopervarchar30否借书操作backopervarc

17、har30否还书操作isbackbit1否 是否归还表4 tb_borrowandback(图书借阅和归还信息)表权限信息表tb_purview,如表5所示。表5 tb_purview(权限信息)表字段名数据类型长度主键描述Pur_idvarchar50是用户编号systemsetbit1否系统设置readsetbit1否读者管理booksetbit1否图书管理borrowbackbit1否图书借还systemaquerybit1否系统查询六、界面设计6.1、主界面实现6.2、用例界面实现(1)管理员登陆用例(2)管理员添加读者用例(3)添加管理员用例(4)添加图书用例(5)修改密码用例(6)

18、图书搜索用例(7)借书用例(8)还书用例七、系统维护和改进7.1 运行维护本网站的维护主要包括以下内容:1权限维护管理员需要对用户的用户名、密码和权限进行维护,给每位读者分配享用的用户名和密码,确定阅读级别。2书目管理书目需要经常进行更新,在书目信息表中更改、增加各相应的数据信息。3书目类别管理书目的更新操作,引起书目类别信息表的更改,管理员就需要及时调整书目类别。7.2系统的改进与提高由于各种原因,本系统有许多缺点。针对本系统的一些缺点,在二期开发时主要在以下方面进行改进:1、 加强后台管理页面的建设本系统只是面向用户,对书目的管理只靠人工在后台操作,费时又费力。加强后台管理系统的建设,各项

19、操作由程序执行,方便、准确,又节省人工。2、图书查询页面功能应该加强例如:图书查询功能可以加入查询条件,方便读者查看符合要求的图书。3、各模块之间的联系比较混乱。八、代码下面就是该系统的主要功能及主要代码:(1)登录界面:public partial class LoginForm : Form public static string uacc; public static string upsw; public static string uname; public static string usex; public static string upart; public static

20、string uright; public LoginForm() InitializeComponent(); private void loginbtn_Click(object sender, EventArgs e) if (this.useracctxt.Text.Trim() = & this.pswtxt.Text = ) MessageBox.Show(请输入您的用户名和密码!, 提示!); return; try string sql; sql = select * from tb_user where uacc= + this.useracctxt.Text + and u

21、psw= + this.pswtxt.Text + ; OleDbDataReader dr = DBHelp.OleReader(sql); dr.Read(); if (dr.HasRows) uacc = this.useracctxt.Text; upsw = this.pswtxt.Text; uname = druname.ToString(); usex = drusex.ToString(); upart = drupart.ToString(); uright = druright.ToString(); MainForm af = new MainForm(this); t

22、his.Hide(); this.useracctxt.Clear(); this.pswtxt.Clear(); af.Show(); else MessageBox.Show(账号或密码错误!, 提示!); this.useracctxt.Clear(); this.pswtxt.Clear(); this.useracctxt.Focus(); catch (Exception) MessageBox.Show(数据库无法连接!, 警告!); private void cancelbtn_Click(object sender, EventArgs e) Application.Exit

23、(); private void LoginForm_Closing(object sender, FormClosingEventArgs e) Application.Exit(); 2.添加图书界面public partial class NewBook : Form public NewBook() InitializeComponent(); private void retbtn_Click(object sender, EventArgs e) this.Hide(); private void savebtn_Click(object sender, EventArgs e)

24、if (this.booknotxt.Text = ) MessageBox.Show(请输入图书的信息!, 提示!); return; if (this.booknametxt.Text = ) MessageBox.Show(请输入图书的信息!, 提示!); return; if (this.classtxt.Text = ) MessageBox.Show(请输入图书的信息!, 提示!); return; if (this.isbntxt.Text = ) MessageBox.Show(请输入图书的信息!, 提示!); return; if (this.bookcosttxt.Text

25、 = ) MessageBox.Show(请输入图书的信息!, 提示!); return; if (this.bookwritertxt.Text = ) MessageBox.Show(请输入图书的信息!, 提示!); return; if (this.bookpubtxt.Text = ) MessageBox.Show(请输入图书的信息!, 提示!); return; if (this.numtxt.Text = ) MessageBox.Show(请输入图书的信息!, 提示!); return; if (this.notetxt.Text = ) MessageBox.Show(请输入

26、图书的信息!, 提示!); return; /string pat3 = u4e00-u9fa5+$;/全为汉字 /string pat4 = (u4e00-u9fa5+|A-Za-z+)$;/汉字或字母 /string pat5 = u4e00-u9fa52,4$;/两到四位汉字 string pat1 = (d-*)9dxX$;/图书的ISBN号格式X-XXXX-XXXX-X或X-XXX-XXXXX-X(X为数字,以图书实际ISBN号为准) string pat2 = +?1-90-9*$;/正整数 string pat3 = (0|1-90-9*)(.0-92)?$;/双精度浮点数 bo

27、ol m1 = Program.match(this.isbntxt.Text, pat1); bool m2 = Program.match(this.numtxt.Text, pat2); bool m3 = Program.match(this.bookcosttxt.Text, pat3); if (!m1) MessageBox.Show(图书的ISBN号格式为X-XXXX-XXXX-X或X-XXX-XXXXX-X(X为数字,以图书实际ISBN号为准)!, 提示!); this.isbntxt.Text = ; return; if (!m2) MessageBox.Show(图书购

28、买数量应为大于0的整数!, 提示!); this.numtxt.Text = ; return; if (!m3) MessageBox.Show(图书价格应为元!, 提示!); this.bookcosttxt.Text = ; return; int num; num = Convert.ToInt32(this.numtxt.Text); for (int i = 1, k = Convert.ToInt32(this.booknotxt.Text); i = num; i+, k+) string sql; sql = insert into tb_book(bno,bname,bcl

29、ass,bisbn,bcost,adder,adddate,bauthor,bpub,bstate,bnote) + values( + k.ToString() + , + this.booknametxt.Text + , + this.classtxt.Text + , + this.isbntxt.Text + , + this.bookcosttxt.Text + , + LoginForm.uname + , + DateTime.Now.ToString() + , + this.bookwritertxt.Text + , + this.bookpubtxt.Text + ,在

30、库, + this.notetxt.Text + ); DataTable dt = DBHelp.ExeOleCommand(sql); MessageBox.Show(注册成功!, 恭喜!); this.Hide(); private void rebtn_Click(object sender, EventArgs e) this.isbntxt.Clear(); Clears(); private void Clears() this.booknametxt.Clear(); /this.isbntxt.Clear(); this.bookcosttxt.Clear(); this.b

31、ookwritertxt.Clear(); this.bookpubtxt.Clear(); this.notetxt.Clear(); this.numtxt.Clear(); private void NewBook_Load(object sender, EventArgs e) string sql; sql = select top 1 bno from tb_book order by bno desc; DataTable dt = DBHelp.ExeOleCommand(sql); int k; for (int i = 0; i 1; i+) if (dt.Rows00.T

32、oString() = ) k = 10000001; else k = Convert.ToInt32(dt.Rows00.ToString(); k+; this.booknotxt.Items.Add(k.ToString(); this.booknotxt.SelectedIndex = 0; this.classtxt.SelectedIndex = 0; private void findbtn_Click(object sender, EventArgs e) if (this.isbntxt.Text = ) MessageBox.Show(请输入图书的ISBN号!, 提示!)

33、; return; string sql; sql = select * from tb_book where bisbn= + this.isbntxt.Text + ; OleDbDataReader dr = DBHelp.OleReader(sql); dr.Read(); if (dr.HasRows) this.booknametxt.Text = drbname.ToString().Trim(); this.classtxt.Text = drbclass.ToString().Trim(); this.bookcosttxt.Text = drbcost.ToString()

34、.Trim(); this.bookwritertxt.Text = drbauthor.ToString().Trim(); this.bookpubtxt.Text = drbpub.ToString().Trim(); this.notetxt.Text = drbnote.ToString().Trim(); MessageBox.Show(找到匹配图书信息,自动填充基本信息,请填充余下信息!, 提示!); this.numtxt.Enabled = true; else Clears(); MessageBox.Show(未找到匹配图书信息!,提示!); this.booknotxt

35、.Enabled = true; this.booknametxt.Enabled = true; this.classtxt.Enabled = true; this.bookcosttxt.Enabled = true; this.bookwritertxt.Enabled = true; this.bookpubtxt.Enabled = true; this.numtxt.Enabled = true; this.notetxt.Enabled = true; 3. 图书信息管理public partial class BookManage : Form public BookMana

36、ge() InitializeComponent(); string bookisbn; private void BookManage_Load(object sender, EventArgs e) this.checkbox.SelectedIndex = 0; this.classbox.SelectedIndex = 0; private void checkbtn_Click(object sender, EventArgs e) FillGrid(); private void cell_click(object sender, DataGridViewCellEventArgs

37、 e) FillInfo(); private void nobtn_Click(object sender, EventArgs e) this.Close(); private void okbtn_Click(object sender, EventArgs e) if (this.nametxt.Text = string.Empty) MessageBox.Show(执行操作前,请先选择图书!,提示!); return; /修改同ISBN图书信息 string sql2= string.Empty; sql2 += update tb_book set bisbn= + this.i

38、sbntxt.Text + ,bname= + this.nametxt.Text + ,bclass= + this.classtxt.Text + ,bcost= + this.costtxt.Text + ,bauthor= + this.writertxt.Text + ,bpub= + this.pubtxt.Text + ,adder= + this.addertxt.Text + ,bnote= + this.notetxt.Text + ; sql2 += where bisbn= + this.bookisbn + DataTable dt2 = DBHelp.ExeOleC

39、ommand(sql2); string sql5 = string.Empty; sql5 += update tb_borrow set bname= + this.nametxt.Text + ,bisbn = + this.isbntxt.Text + ; sql5 += where bisbn= + this.bookisbn + ; DataTable dt5 = DBHelp.ExeOleCommand(sql5); MessageBox.Show(该类图书信息修改成功!, 提示!); this.checktxt.Text = ; FillGrid(); FillInfo();

40、private void FillGrid() if (this.checkbox.Text = string.Empty) MessageBox.Show(请输入你要使用的检索条件!, 提示!); return; if (this.classbox.Text = string.Empty) MessageBox.Show(请输入你要查找的图书类型!, 提示!); return; string sql = string.Empty; sql += select bid as ID号, bno as 图书编号, bname as 图书名称,bauthor as 作者, bclass as 类别,

41、 bisbn as ISBN号, bcost as 价格,bpub as 出版社, adder as 记录员, adddate as 入库日期,bnote as 内容简介,bstate as 状态 from tb_book; if (this.checktxt.Text != ) string c = this.checkbox.SelectedIndex.ToString(); switch (c) case 0:/图书名称 if (this.checktxt.Text != string.Empty) sql += where bname like % + this.checktxt.Te

42、xt + %; break; case 1:/图书编号 if (this.checktxt.Text != string.Empty) sql += where bno like % + this.checktxt.Text + %; break; case 2:/作者 if (this.checktxt.Text != string.Empty) sql += where bauthor like % + this.checktxt.Text + %; break; case 3:/isbn号 if (this.checktxt.Text != string.Empty) sql += wh

43、ere bisbn like % + this.checktxt.Text + %; break; case 4:/出版社 if (this.checktxt.Text != string.Empty) sql += where bpub like % + this.checktxt.Text + %; break; default: break; if (this.classbox.SelectedIndex.ToString() != 0) sql += and bclass= + this.classbox.Text + ; else if (this.classbox.SelectedIndex.ToString() != 0) sql += where bclass= + this.classbox.Text + ; s

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!