图书租借管理系统_第1页
图书租借管理系统_第2页
图书租借管理系统_第3页
图书租借管理系统_第4页
图书租借管理系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、计算机科学与通信工程系数据库系统课程设计报告题目: 书刊租借管理信息系统 课程代号: 06888116 课程名称:数据库系统课程设计学号: 姓名: 班级:2010级计算机1班 指导教师:刘里 完成日期:2013年5月第一章 引言31.1 设计的目的31.2 所设计应用系统的任务及目标31.2.1 所设计应用系统的任务31.2.2 所设计应用系统的目标41.3 设计开发及运行的软硬件环境4第二章 系统分析与设计52.1 系统需求分析52.1.1系统需求分析52.1.2功能需求分析62.2 数据库概念结构设计82.3 数据库创建9第三章 系统开发及实现103.1 论述设计开发采用的技术及设计效果1

2、03.1.1图书的租借103.1.2图书归还103.1.3 其他功能11第四章 总结11附录(附效果图及部分源代码)13第一章 引言1.1 设计的目的 书店从事出租图书、需实现图书的输入、查询、显示,书(碟)借、还等管理,归还时计算租金,并支付租金,书店用户分为会员用户和会员用户和一般用户包含姓名、电话等信息,图书也包含许多的基本信息,对于每次的租赁都要记录租赁物的信息以及借书人等情况,非常麻烦,书店租赁管理系统就是为了解决这些问题而被开发出来的,书店租赁管理系统完全能够满足书店的功能需求,并能方便的管理好书店的信息。1.2 所设计应用系统的任务及目标1.2.1 所设计应用系统的任务主要功能:

3、对图书信息的查询、增加图书信息、对信息的修改、进行图书借出和归还功能需求:面向会员:对图书信息的查询、对个人信息的修改面向操作员:对会员信息的修改,对图书信息的修改、图书的借出和归还性能要求: 会员能在操作员增加完图书信息后看见操作员增加的图书,对其进行查询,同时操作员可以进行图书的出租,和计算应付的金额。1.2.2 所设计应用系统的目标提供一个可以管理会员信息,可查询书籍和对书籍的出租进行管理的小系统1.3 设计开发及运行的软硬件环境1)C#语言C#是一种安全的、稳定的、简单的、优雅的,由C和C+衍生出来的面向对象的编程语言。它在继承C和C+强大功能的同时去掉了一些它们的复杂特性(例如没有宏

4、和模版,不允许多重继承)。C#综合了VB简单的可视化操作和C+的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。2)SQL Sever 2005介绍SQL Sever 2005是一个全面的、集成的、端到端的数据解决方案,他为企业中的用户提供了一个安全、可靠和高效的平台,用于企业数据管理和商业智能应用。SQL Sever 2005为信息工作者带来了强大的、熟悉的工具,同时减少了再从移动设备到企业数据系统的多平台上创建、部署、管理及使用企业数据和分析应用程序的复杂度。通过全面的功能集和现有系统的集成性,以及对日常任务的自动化管理能

5、力,SQL Sever 2005为不同规模的企业提供了一个完整的数据解决方案。3)Microsoft Visual Studio 2010介绍Visual Studio是微软公司推出的开发环境,是目前最流行的Windows平台应用程序开发环境,Visual Studio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件。第二章 系统分析与设计2.1 系统需求分析2.1.1系统需求分析图书租借业务流程:(1)读者在目录厅查阅索引卡;(2)读者写出图书租借的图书编号、图书书名交给图书租借管理员,并出示借书证;(3)管理

6、者输入读者借书证号。系统首先检查借书证是否有效,若有效,对于第一次借书的读者,在借书证上建立档案。否则,查阅借书文件,检查该读者所借图书是否超过会员权限,若已达权限,拒借,未达权限,办理借书(检查库存,修改库存目录并将读者借书情况录入借书文件。) (4)图书管理员根据图书租借的图书编号、图书书名到书库找书;(5)图书管理者确认被租借图书及图书租借者的相关信息;(6)确认无误后将图书交给读者。(7)还书时,从借书文件中读出与读者有关的记录,查阅所借日期,如超期(根据读者会员权限的规定)作罚款处理。否则,修改库存目录与借书文件。 对图书管理者可查看及更改图书馆图书租借情况和读者的相关信息,读者只能

7、够凭借个人相关证件到图书馆经图书管理员同意方可查询和修改个人信息。图书租借管理系统的信息量大,数据安全性和保密性要求高。本功能实现图书租借信息、读者信息、总体借阅情况信息的管理。图书管理员可以浏览、查询、添加、修改图书租借的基本信息;浏览、查询、添加、删除和修改图书租借读者的基本信息;浏览、查询图书租借的借阅信息;能添加、删除和修改借阅信息。2.1.2功能需求分析整个系统共分六个模块:租赁物信息的输入、查询、显示所有租赁物的信息、借出、归还、租金。租赁物信息的输入:输入商店中所有图书和影碟的信息,并把租赁物的借出时间和归还时间都赋值为零,借出时间为零表示该租赁物还在店内。查询:查询该租赁物的状

8、态,共有三种状态,即:在店内,被借出,不存在。显示所有租赁物的信息:显示所有图书和影碟的信息。借出:输入借出信息,并进行相关的操作。归还:输入归还信息,并进行相关的操作。租金:计算租金。2.1.3数据流图图1 系统图图2.会员图3 操作员2.1.3数据字典1)用户表 User表1用户表名称字段名称类别主键非空用户名NamevarcharNoYes密码PwdvarcharNoYes身份号identityvarcharYesYes余额余额IntNoYes(2)操作员表表2操作员表名称字段名称类别主键非空标识PidVarcharYesYes密码PwdVarcharNoYes用户名UserVarcha

9、rNoYes(3)图书表表3图书表名称字段名称类别主键非空ISBN号ISBNVarcharYesYes书名PwdVarcharNoNo类别ClassVarcharNoNo数量QuantityVarcharNoYes作者AuthorVarcharNoYes租金租金IntNoYes已借出已借出IntNoYes(2)租借记录表表4租借记录名称字段名称类别主键非空身份证identityVarcharYesYesISBNISBNVarcharYesYes租借日期StartdaydatetimeNoYes操作员编号ManergeridVarcharNoYes2.2 数据库概念结构设计操作员图书信息会员出借

10、记录图4 E-R图2.3 数据库创建图5 数据库关系第三章 系统开发及实现 3.1 论述设计开发采用的技术及设计效果3.1.1图书的租借(1)功能:查询想要借的租赁物的当前状态,当图书在店内是执行借书操作并输入借出时间以及借书人的信息。 图6 借出功能3.1.2图书归还(1)功能:查询想要还的租赁物的当前状态,当租赁物被借出时执行还书操作,并输入归还时间。3.1.3 其他功能学生 :已借书 对已经借到的图书进行查询 信息修改 对个人信息进行修改 搜索 对图书进行条件搜索操作员:增加用户 增加会员用户删除用户 删除会员用户借书 会员借书还书 会员进行还书借书信息 所有的出借记录书本查看 图书信息

11、的查看用户资料 进行用户信息的修改书本增加 图书的录入充费用户的充费第四章 总结时间飞逝,一转眼数据库课程设计已接近尾声了。 面对着这一个个月来的实战演练,不仅给我们提供了一个绝好的锻炼机会,而且在面对困难的过程中还锻炼了我虚心学习、不畏艰难的奋斗精神。通过这几个月的设计,使我学会了不少知识。从最初的理论学习,到现在的自己动手实践,真可以说是先学后用。通过这么一个学习的机会,使我熟悉了Visual Studio 2008环境,学会了C#编程语言。在编程设计的每一天中,通过自己一行行代码的编写和调试,慢慢去实现系统中的每一个模块的功能,可以说这个编码过程真是有喜有悲。有时为了实现一个小小的功能,

12、就需要不断的调试代码。有时调试成功了,感觉很有成就感。有时代码很多,调试也会出现错误,为了找到那么一个小小的错误也花费了不少时间,有时还找不到头绪。所以也请教了不少老师和同学。看到了一个个问题的解决,真的很开心。真的很感谢他们!学习是一个漫长的过程。世界在发展,社会在进步,我们就必须要跟得上技术的潮流去发展。因此这就需要我们自己不断的去学习和探索。花了几个月的时间,系统功能也基本的完成了。我觉得做毕业设计是一次很好的检验自己大学所学专业知识的机会,通过这次机会,我更加的认识到自己的专业水平达到了什么高度,自己的弱点在哪。诸如此类的问题,毕业设计给了我更多的思考。总之,在学习的道路上,只要我们树

13、立了远大目标,下定决心,付出行动,锲而不舍,不管遇到什么困难,相信都会解决的。信心也是至关重要的!附录(附效果图及部分源代码)一、效果图1.登陆界面2.根据不同选择进入不同的界面3.学生可以进行对已经借阅的图书进行查询4.学生可以对图书进行条件查询5.学生对个人信息进行修改6.操作员进行会员增加提示操作成功7.操作员进行会员删除8.操作员进行图书的出借9.操作员进行还书操作提示应该付款38元10.所有已经借出的图书查询11.操作员对会员资料的查看和修改12.图书的增加二、部分实验代码1、app.config<?xml version="1.0" encoding=&q

14、uot;utf-8" ?><configuration> <configSections> </configSections> <connectionStrings> <add name="RENTApplication3.Properties.Settings.RentdatabaseConnectionString" connectionString="Data Source=ZWY-PC;Initial Catalog=Rentdatabase;Integrated Security=Tr

15、ue" providerName="System.Data.SqlClient" /> </connectionStrings></configuration>2.Form1.cs using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;usi

16、ng System.IO;namespace RENTApplication3 public partial class Form1 : Form RadioButton managerbtn = null; Form win = null; public Form1() InitializeComponent(); Init(); private void Init() managerbtn = radioButton1; private void button1_Click(object sender, EventArgs e) String name = textBox1.Text.Tr

17、im(); String pwd = textBox2.Text.Trim(); if (name.Trim().Equals("") | pwd.Trim().Equals("") MessageBox.Show("帐号密码不能为空?"); else DataClasses1DataContext dc = new DataClasses1DataContext(); if (managerbtn.Checked = true) var query = from p in dc.Manager where p.user.Trim()

18、.Equals(name) select new p.user, p.pwd ; foreach (var a in query) /MessageBox.Show(a.ToString(); if (a.pwd.Trim().Equals(pwd) if (win = null) var p = new winManager(); p.NowManager = dc.Manager.First(c => c.user.Trim().Equals(name); win = p; break; else var query = from p in dc.User where .

19、Trim().Equals(name) select new , p.pwd ; foreach (var a in query) if(a.pwd.Trim().Equals(pwd) if (win = null) var p = new Winuser(); p.NowUser = dc.User.First(c => .Trim().Equals(); win = p; break; if (win != null) this.Hide(); win.ShowDialog(); this.Dispose(); else MessageBox.S

20、how("帐号密码不正确!"); private void button2_Click(object sender, EventArgs e) this.Dispose(); 3.Form2.csusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace RENTAp

21、plication3 public partial class Form2 : Form public TextBox txt1 = null; public TextBox txt2 = null; public Form2() InitializeComponent(); txt1 = textBox1; txt2 = textBox2; private void button1_Click(object sender, EventArgs e) if (txt1.Text.Trim().Equals("") MessageBox.Show(string.Format(

22、"0不?能¨¹为a空?", label1.Text); else if (txt2.Visible = true && txt2.Text.Trim().Equals("") MessageBox.Show(string.Format("0不?能¨¹为a空?", label2.Text); else this.Hide(); this.DialogResult = DialogResult.OK; public void setLabel(String text1, String

23、 text2) label1.Text = text1; label2.Text = text2; private void button2_Click(object sender, EventArgs e) this.Dispose(); 4.winManager.csusing System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Wi

24、ndows.Forms;using System.Data.SqlClient;namespace RENTApplication3 public partial class winManager : Form static DataClasses1DataContext dc; Manager nowManager = null; static string conString = "Data Source=ZWY-PC;Initial Catalog=Rentdatabase;Integrated Security=True" public Manager NowMan

25、ager get return nowManager; set nowManager = value; public winManager() InitializeComponent(); InitializeDataGridView(); dc = new DataClasses1DataContext(); /充?费¤? private void button5_Click(object sender, EventArgs e) Form2 inWin = new Form2(); inWin.setLabel("用®?户¡ì名?"

26、;, "金e额?"); DialogResult result = inWin.ShowDialog(); if (result = DialogResult.OK) / MessageBox.Show(string.Format("0 ok",result); var query = from q in dc.User where .Trim().Equals(inWin.txt1.Text.Trim() select q; if (query.Count() = 0) MessageBox.Show("用®?户

27、1;ì不?存ä?在¨²"); else try User user = dc.User.First(c => .Trim().Equals(inWin.txt1.Text.Trim(); user.余®¨¤额? += Convert.ToInt32(inWin.txt2.Text); dc.User.GetModifiedMembers(user); dc.SubmitChanges(); catch (Exception exec) MessageBox.Show("操¨&#

28、180;作Á¡Â失º¡ì败㨹"); else /MessageBox.Show(string.Format("0 error", result); /借¨¨书º¨¦ private void button3_Click(object sender, EventArgs e) Form2 win = new Form2(); win.setLabel("用®?户¡ì名?",

29、"ISBN"); DialogResult result = win.ShowDialog(); if (result = DialogResult.OK) String user = win.txt1.Text; String isbn = win.txt2.Text; Book book = dc.Book.First(c => c.ISBN.ToString().Trim().Equals(isbn); Rent rent = new Rent(); rent.ISBN = isbn; rent.identity = user; rent.Manergerid

30、= nowManager.user; rent.Startday = DateTime.Now; if (book.已°?借¨¨出? < book.quantity) /借¨¨书º¨¦ try book.已°?借¨¨出? += 1; dc.Book.GetModifiedMembers(book); dc.Rent.InsertOnSubmit(rent); dc.SubmitChanges(); MessageBox.Show("借¨¨书º

31、;¨¦成¨¦功|"); catch (Exception excp ) else /没?有®D书º¨¦本À?了¢? MessageBox.Show("书º¨¦本À?已°?经-没?有®D库a存ä?了¢?"); /增?加¨®用®?户¡ì private void button1_Click(object sender, EventArgs e

32、) Form2 inWin = new Form2(); inWin.setLabel("用®?户¡ì名?", "密¨¹码?"); DialogResult result = inWin.ShowDialog(); if (result = DialogResult.OK) / MessageBox.Show(string.Format("0 ok",result); var query = from q in dc.User where .Trim().Equals(in

33、Win.txt1.Text.Trim() select new ; if (query.Count() = 0) MessageBox.Show("插?入¨?成¨¦功|"); User user = new User(); = inWin.txt1.Text; user.pwd = inWin.txt2.Text; user.identity = inWin.txt1.Text; dc.User.InsertOnSubmit(user); dc.SubmitChanges(); else MessageBox.S

34、how("用®?户¡ì名?已°?经-存ä?在¨²"); else /MessageBox.Show(string.Format("0 error", result); inWin.Dispose(); /用®?户¡ì删¦?除y private void button2_Click(object sender, EventArgs e) Form2 inWin = new Form2(); inWin.setLabel("用®?

35、户¡ì名?",""); inWin.txt2.Visible = false; DialogResult result = inWin.ShowDialog(); if (result = DialogResult.OK) / MessageBox.Show(string.Format("0 ok",result); var query = from q in dc.User where .Equals(inWin.txt1.Text.Trim() select q; if (query.Count() = 0)

36、 MessageBox.Show("用®?户¡ì不?存ä?在¨²"); else try User user = dc.User.First(c => .Trim().Equals(inWin.txt1.Text.Trim(); dc.User.DeleteOnSubmit(user); dc.SubmitChanges(); MessageBox.Show("删¦?除y成¨¦功|"); catch (Exception exec) Message

37、Box.Show("操¨´作Á¡Â失º¡ì败㨹"); else /MessageBox.Show(string.Format("0 error", result); /查¨¦看¡ä所¨´有®D的Ì?借¨¨书º¨¦记?录? private void button6_Click(object sender, Event

38、Args e) var query = from q in dc.User join b in dc.Rent on q.identity equals b.identity join c in dc.Book on b.ISBN equals c.ISBN select new ,q.identity, q.余®¨¤额?, c.bookname , b.ISBN ; dataGridView1.DataSource = query; /* DateTime time = DateTime.Now; DateTime time2 = Convert.T

39、oDateTime("2013-5-9"); TimeSpan ts = time.Subtract(time2); MessageBox.Show(time.ToString(); MessageBox.Show(string.Format("0", time.ToOADate(); MessageBox.Show(string.Format("0", ts.Days.ToString(); */ private void button4_Click(object sender, EventArgs e) Form2 inWin =

40、 new Form2(); inWin.setLabel("用®?户¡ì名?", "ISBN"); DialogResult result = inWin.ShowDialog(); String identity = inWin.txt1.Text.Trim(); String bookIsbn = inWin.txt2.Text.Trim(); if (result = DialogResult.OK) / MessageBox.Show(string.Format("0 ok",result); R

41、ent rent = dc.Rent.First(c => c.identity.ToString().Trim().Equals(identity) && c.ISBN.ToString().Trim().Equals(bookIsbn); if (rent != null) Book book = dc.Book.First(c => c.ISBN.ToString().Trim().Equals(bookIsbn); User user = dc.User.First(c => c.identity.ToString().Trim().Equals(id

42、entity); book.已°?借¨¨出? -= 1; DateTime now = DateTime.Now; DateTime time2 = Convert.ToDateTime(rent.Startday); TimeSpan ts = now.Subtract(time2); int money = (int)(ts.Days) * Convert.ToInt16(book.租Áa金e); MessageBox.Show(string.Format("应®|该?支¡ì付?0",money); u

温馨提示

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

评论

0/150

提交评论