《数据库概论》课程设计实验报告书_第1页
《数据库概论》课程设计实验报告书_第2页
《数据库概论》课程设计实验报告书_第3页
《数据库概论》课程设计实验报告书_第4页
《数据库概论》课程设计实验报告书_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

1、优质文本?数据库系统概论?课程设计实验报告书安徽工业大学计算机学院姓 名徐秋雨专 业数学与应用数学班 级数141学 号149084169指导教师申元霞分 数2011年 12 月 日优质文本摘 要图书馆作为丰富的图书资料的地方,其大量的图书信息,读者信息及借阅管理等是一件极其繁琐的事情,却又极其重要。传统的图书馆采用的是人工管理的方法,工作繁琐且效率低下,因此用数据库系统代替人工管理方式就十分必要了。图书借阅管理系统可以有效地管理图书资料信息,控制图书资料的借阅流程,对提高图书馆的管理效率有很大帮助。关键词:图书借阅管理,数据库应用,模块功能优质文本目录1 绪 论11.1 概述11.1.1 问题

2、的提出11.1.2 本课题的意义11.2 开发环境与工具介绍11.2.1 ADO.NET简介11.2.2 xxx研究状况12 系统需求分析与设计22.1 用户需求分析22.1.1 用户需求22.1.2 系统功能需求22.1.3 系统性能需求22.1.4 数据分析22.2 功能模块图及分模块功能描述22.2.1 系统的功能模块图22.2.2 系统功能模块简介22.3 数据库设计22.3.1 系统E-R图22.3.2 数据库逻辑结构设计23 系统实施33.1 建立数据库33.2 数据库连接33.3 主要模块实施33.3.1 登录模块的开发33.3.2 xxxxx33.4 系统测试33.4.1 软件

3、测试的对象33.4.2 软件测试的结果34 系统说明44.1 开发环境44.2 系统安装、配置与发布应用程序的步骤4总 结5参考文献6附录:局部源代码7优质文本1 绪 论1.1 概述1.1.1 问题的提出 随着社会和技术的开展,信息化时代已然来临,而作为信息的重要媒介之一的图书也越来越被需要,随着书籍数量和种类的激增,对其管理也加大了难度,图书馆大量书籍的借阅,整理等工作是管理人员的不小的负担。而运用数据库技术那么使得这一工作的效率大大提高。1.1.2 本课题的意义 本文中的图书管理系统的建立对图书的借阅,记录,查询,管理都有所裨益,大大提高了效率,减轻了图书管理人员的工作负担,也为读者带来了

4、便利。1.2 开发环境与工具介绍 Windows 2003 Server 用于构建和存放Web应用程序、网页和XMLWeb Services。它主要使用IIS6.0 Web效劳器并提供快速开发和部署使用ASP-NET技术的XMLWeb services和应用程序。支持双处理器,最低支持256MB的内存.它最高支持2GB的内存。常规的win2003平安配置包含如下几项:1、关闭不需要的端口2、关闭不需要的效劳 翻开相应的审核策略3、关闭默认共享的空连接4、磁盘权限设置5、防火墙、杀毒软件的安装6、删除GUEST来宾用户帐号7、更改administrator账户名8、更改远程连接端口Windows

5、 Server 2003具有可靠性、可用性、可伸缩性和平安性,这使其成为高度可靠的平台。SQL Server 2016 在Microsoft的数据平台上发布,可以组织管理任何数据。可以将结构化、半结构化和非结构化文档的数据直接存储到数据库中。可以对数据进行查询、搜索、同步、报告和分析之类的操作。数据可以存储在各种设备上,从数据中心最大的效劳器一直到桌面计算机和移动设备,它都可以控制数据而不用管数据存储在哪里。SQL Server 2016 允许使用 Microsoft .NET 和Visual Studio开发的自定义应用程序中使用数据,在面向效劳的架构(SOA)和通过 Microsoft B

6、izTalk Server 进行的业务流程中使用数据。信息工作人员可以通过日常使用的工具直接访问数据。效劳器组件:(1)SQL Server 数据库引擎SQL Server 数据库引擎 包括数据库引擎(用于存储、处理和保护数据的核心效劳)、复制、全文搜索以及用于管理关系数据和 XML 数据的工具。(2)Analysis ServicesAnalysis Services 包括用于创立和管理联机分析处理 (OLAP) 以及数据挖掘应用程序的工具。(3)Reporting ServicesReporting Services 包括用于创立、管理和部署表格报表、矩阵报表、图形报表以及自由格式报表的效

7、劳器和客户端组件。Reporting Services 还是一个可用于开发报表应用程序的可扩展平台。(4)Integration ServicesIntegration Services 是一组图形工具和可编程对象,用于移动、复制和转换数据。管理工具:(1)SQL Server Management StudioSQL Server Management Studio 是一个集成环境,用于访问、配置、管理和开发 SQL Server 的组件。Management Studio 使各种技术水平的开发人员和管理员都能使用 SQL Server。 Management Studio 的安装需要 In

8、ternet Explorer 6 SP1 或更高版本。(2)SQL Server 配置管理器SQL Server 配置管理器为 SQL Server 效劳、效劳器协议、客户端协议和客户端别名提供根本配置管理。(3)SQL Server ProfilerSQL Server Profiler 提供了一个图形用户界面,用于监视数据库引擎实例或 Analysis Services 实例。(4)数据库引擎优化参谋数据库引擎优化参谋可以协助创立索引、索引视图和分区的最正确组合。(5)Business Intelligence Development StudioBusiness Intelligenc

9、e Development Studio 是 Analysis Services、Reporting Services 和 Integration Services 解决方案的 IDE。 BI Development Studio 的安装需要 Internet Explorer 6 SP1 或更高版本。(6)连接组件安装用于客户端和效劳器之间通信的组件,以及用于 DB-Library、ODBC 和 OLE DB 的网络库。1.2.1 ADO.NET简介 ADO.NET的名称起源于ADOActiveX Data Objects,是一个COM组件库,用于在以往的Microsoft技术中访问数据。之

10、所以使用ADO.NET名称,是因为Microsoft希望说明,这是在NET编程环境中优先使用的数据访问接口。可让开发人员以一致的方式存取资料来源(例如 SQL Server 与 XML),以及透过 OLE DB 和 ODBC 所公开的资料来源。资料共用的消费者应用程序可使用 来连接至这些资料来源,并且撷取、处理及更新其中所含的资料。可将资料管理的资料存取分成不连续的元件,这些元件可分开使用,也可串联使用也包含 .NET Framework 资料提供者,以用于连接资料库、执行命令和撷取结果。这些结果会直接处理、放入 DataSet 物件中以便利用机器操作 (Ad Hoc)的方式公开给使用者、与多

11、个来源的资料结合,或在各层之间进行传递。DataSet 物件也可以与.NET Framework 资料提供者分开使用,以便管理应用程序本机的资料或来自 XML 的资料。1.2.2 xxx研究状况 - - - - - - - - -内容省略- - - - - - - - - - - - - - - - - -优质文本2 系统需求分析与设计2.1 用户需求分析2.1.1 用户需求减轻图书管理人员的工作负担,方便读者对图书信息的检索和借阅情况的查询2.1.2 系统功能需求图书信息管理,读者信息管理,借阅管理2.1.3 系统性能需求图书信息管理:录入各种图书信息,维护图书信息。读者信息管理:维护读者信

12、息,并根据实际情况需要修改,更新,删除读者的信息。借阅管理:包括借书,还书,过期图书归还处理。2.1.4 数据分析图书信息包括图书编号,图书名称,图书类型,作者,出版社,价格。其中图书类型可以由图书分类号说明,每个图书分类号对应一个图书类型。读者信息包括证件号,姓名,证件状态有无效,联系方式。借书时登记借书时间,还书时登记归还时间,并设定借阅规定时间。2.2.1 系统的功能模块图2.2 功能模块图及分模块功能描述图书管理系统系统维护信息统计图书信息管理读者信息管理图书借阅管理罚金标准设置用户管理图书类别设置读者类别设置读者借阅排行图书借阅排行图书总量统计按图书类别统计图书借阅图书归还查阅图书删

13、除图书修改图书添加图书删除读者修改读者添加读者 2.2.2 系统功能模块简介1读者模块:读者添加:添加新的读者的信息。当有新的读者查阅或借阅图书时,管理员可以通过点击读者添加录入其信息:证件号,姓名,证件状态,联系方式。读者修改:针对现有读者,管理员选定要修改的旧的图书证号,输入新的证件号、姓名、证件状态和联系方式进行修改,同时可以返回上一级和退出修改界面。读者删除:当检测到读者证件状态失效时可以将其记录从数据库中删除。2图书模块图书添加:主要实现的功能是在Book表中添加新的数据。用户通过输入图书的编号、书名、作者、出版社、出版社、价格,在图书库中添加一本新的图书。同时可以返回上一级和退出删

14、除界面。图书删除:当有图书遗失或淘汰时,可以在数据库中点击图书删除按钮删除其有关信息。图书查询:主要实现的功能是对已有图书的查阅。用户可以按照自己的需求来查询想要的图书。界面包括查询方式、关键词和显示结果的表格组成。选择不同的查询方式:按图书编号查询、按书名查询、按出版社查询、按作者查询,通过输入不同的关键字,得到不同的查询结果。图书修改:针对现有图书,管理员选定要修改的图书,输入新的图书的编号、书名、作者、出版社、出版社、价格进行修改,同时可以返回上一级和退出修改界面。(3)借阅模块图书借阅:主要实现的功能是当图书被借阅是录入其借阅图书的借阅日期,应还日期,归还日期,罚金。图书归还:主要实现

15、的功能是当借出的图书被归还时先调出其借阅信息,根据借阅时长决定罚金数目,并进行信息规整。2.3 数据库设计归还日期应还日期2.3.1 系统E-R图证件状态 罚金联系方式姓名借阅日期证件号借阅读者m n图书编号图书分类号m作者m图书图书名称价格 1图书分类名称属于图书类型出版社描述信息2.3.2 数据库逻辑结构设计 图书类型图书分类号,图书分类名称,描述信息 图书图书编号,图书名称,图书分类号,作者,出版社,价格 读者证件号,姓名,证件状态,联系方式 借阅证件号,图书编号,借阅日期,应还日期,归还日期,罚金优质文本3 系统实施3.1 建立数据库 创立数据系统 Create database 图书

16、借阅系统On primary(name=图书借阅系统_data,D:data图书借阅系统.mdf,Size=1000mb,)Log on(name=图书借阅系统_log,D:data图书借阅系统.ldf,Size=100mb,)创立根本表Create table 图书图书编号 char(20) not null primary key,图书名称 varchar(50) not null,图书分类号char(20) not null,作者char(30) not null,出版社char(30),价格 not null check(价格>0),Constraint student_cour

17、se_fkflh foreign key(图书分类号) references 图书类型(图书分类号)Create table 图书类型图书分类号char(20) not null primary key,图书分类名称char(20) not null,描述信息varchar(50)Create table 读者(证件号char(15) not null primary key,姓名char(20) not null,证件状态char(10) not null check(证件状态in(可用,失效),联系方式char(11) not null)Create table 借阅证件号char(15)

18、 not null primary key,图书编号char(20) not null,借阅日期 datetime not null,应还日期datetime not null,归还日期datetime,罚金not null check(罚金>0)Constraint book_borrow_pkzjsh primary key(证件号,图书编号),Constraint book_borrow_fkzjhm foreign key(证件号)references 读者证件号,Constraint book_borrow_fktsbhm foreign key(图书编号) reference

19、s 图书图书编号)创立视图Create view 读者借书情况表证件号,姓名,图书名称,借阅日期,应还日期,归还日期,罚金As Select读者.证件号,读者.姓名,图书. 图书名称,借阅.借阅日期,借阅.应还日期,借阅.归还日期,借阅.罚金From 图书,读者,借阅Where 图书.图书编号=借阅.图书编号 and 读者.证件号=借阅.证件号建立索引Create index bookborrowinfo_flhOn 图书图书分类号Create index bookborrowinfo_tsmcOn 图书图书名称Create index bookborrowinfo_cbs On 图书出版社C

20、reate index bookborrowinfo_jyrqOn 借阅证件号,借阅日期建立触发器Create trigger insert_借阅On 借阅For startAs If(select count(*) from 读者,inserted where 读者.证件号=inserted.证件号)=0BeginPrint 没有该读者信息Rollback transctionEndCreate trigger update_借阅On借阅For updateAsIfUpdate借阅日期BeignPrint不能手动修改借阅日期Rollback transctionEndCreate trigg

21、er delete_读者On 读者For deleteAs Delete from 借阅Where 证件号 in (select 证件号from deleted)3.3 主要模块实施3.3.1 登录模块的开发 Protected void Button1_Click(objectsender, EventArgse) string ConnSql = ConfigurationManager.ConnectionStrings“图书馆ConnectionString".ConnectionString;string userName = txtUserName.Text.ToStri

22、ng().Trim(); string userPwd = txtPwd.Text.ToString().Trim(); string userRole = rblClass.SelectedValue.Trim(); string selectStr = “;Switch (userRole) case"0":/身份为管理员时 selectStr = "Select * from 管理员 where 管理员账号 = '"+ userName + "'" Break;case"1": /身份为读者时

23、 selectStr = "Select * from 读者 where 读者编号 = '" + userName + "'" break; SqlConnection conn = newSqlConnection(ConnSql); SqlCommand cmd = newSqlCommand(selectStr, conn); try conn.Open(); /翻开连接SqlDataReader sdr = cmd.ExecuteReader(); /执行查询if (sdr.Read() /如果该用户存在 if (sdr.GetS

24、tring(1) = userPwd) /密码正确 Session"userName" = userName; Session"userRole" = userRole; conn.Close(); switch(userRole) case"0": /身份为管理员时 Response.Redirect("admain/admain.aspx"); break; case"1": /身份为读者 Response.Redirect("reader/reader.aspx");

25、break; else/密码错误,给出提示信息! lblMessage.Text ="您输入的密码错误,请检查后重新输入!" Else /用户不存在或用户名输入错误 lblMessage.Text = “该用户不存在或用户名输入错误,请检查后重新输入!"catch(Exceptionee) Response.Write("<script language=javascript>alert('" + ee.Message.ToString() + "')</script>"); fina

26、lly conn.Close(); Protected void TextBox2_TextChanged(object sender, EventArgse) Protected void txtUserName_TextChanged(object sender, EventArgse) Protected void Button2_Click(object sender, EventArgse) txtUserName.Focus(); txtUserName.Text = txtPwd.Text = string.Empty; 3.3.2 xxxxx 3.4 系统测试3.4.1 软件测

27、试的对象读者添加:public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 if(e.getSource() = jb1) new ResderServe().setVisible(true); else if(e.getSource() = jb2) /实现添加 Connection ct = null; PreparedStatement ps = null; try ct = new ConnOracle().GetConn(); /添加数据库表的信息 String str = "insert into person

28、 values(?,?,?,?)" ps = ct.prepareStatement(str); ps.setString(1, jtf1.getText(); ps.setString(2, jtf2.getText(); ps.setString(3, jtf3.getText(); ps.setString(4, jtf4.getText(); ps.setString(5, jtf5.getText(); ps.executeUpdate(); /this.dispose(); JOptionPane.showMessageDialog(null, 添加成功",JO

29、ptionPane.INFORMATION_MESSAGE); catch(Exception ex) ex.printStackTrace(); finally try if(ps != null)ps.close(); if(ct != null)ct.close(); catch(Exception ex) ex.printStackTrace(); / else if(e.getSource() = jb3) /退出 dispose(); 读者修改:public void actionPerformed(ActionEvent e) String s1,s2,s3,s4,s5,s6,s

30、7; /旧的图书证号 s1 = jtf1.getText(); /新的图书证号 s2 = jtf2.getText(); s3 = jtf3.getText(); s4 = jtf4.getText(); s5 = jtf5.getText(); s6 = jtf6.getText(); / TODO 自动生成的方法存根 if(e.getSource() = jb1) new ResderServe().setVisible(true); if(e.getSource() = jb2) /实现修改 Connection ct = null; PreparedStatement ps = nul

31、l; PreparedStatement ps1 = null; try ct = new ConnOracle().GetConn(); String st = "select cardNum from person" ps1 = ct.prepareStatement(st); rs = ps1.executeQuery(); if(rs.next() /将jtf1中得到的字符串与表中查询得到的用户名比拟,如果一致说明此用户已存在 String user = rs.getString(1); if(!(s1.equals(user) JOptionPane.showMe

32、ssageDialog(null, "此用户名不存在!","",JOptionPane.INFORMATION_MESSAGE); else ct = new ConnOracle().GetConn(); String str = "update person set cardNum = ?,readerName = ? cardNum = ?" ps = ct.prepareStatement(str); ps.setString(1, s2); ps.setString(2, s3); ps.setString(3, s4);

33、ps.setString(4, s5); ps.setString(5, s6); ps.setString(6, s1); ps.executeUpdate(); JOptionPane.showMessageDialog(null, "修改成功","",JOptionPane.INFORMATION_MESSAGE); catch(Exception ex) ex.printStackTrace(); finally try if(ps != null)ps.close(); if(ct != null)ct.close(); catch(Excep

34、tion ex) ex.printStackTrace(); if(e.getSource() = jb3) dispose(); 读者删除:void CDelredDlg:OnDelreader() / TODO: Add your control notification handler code here CString edit1; int suc=0; if(m_delredet.IsOpen() m_delredet.Close(); m_delredet.Open(); if (!m_delredet.CanUpdate() AfxMessageBox(_T("无法完成

35、删除功能!"); m_delredet.MoveFirst(); GetDlgItemText(IDC_EDIT1,edit1); while(!m_delredet.IsEOF() m_delredet.m_reader_code.Replace(" ",""); if(m_delredet.m_reader_code=edit1) suc=1; break; else m_delredet.MoveNext(); if(suc=1) m_delredet.Delete(); MessageBox("删除成功!"); el

36、se MessageBox("无此读者,请重新输入!"); m_delredet.Close(); m_pdelredet->Invalidate(); 图书添加:public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 if(e.getSource() = jb1) new BookServe().setVisible(true); dispose(); else if(e.getSource() = jb2) /新书入库 Connection ct = null; PreparedStatement p

37、s = null; try ct = new ConnOracle().GetConn(); /添加数据库表的信息 String str = "insert into book values(?,?,?,?,?,?,?,?)" ps = ct.prepareStatement(str); ps.setString(1, jtf1.getText(); ps.setString(2, jtf2.getText(); ps.setString(3, jtf3.getText(); ps.setString(4, jtf4.getText(); ps.setString(5, j

38、tf5.getText(); ps.setString(6, jtf6.getText(); ps.setString(7, jtf7.getText(); ps.setString(8, jtf8.getText(); ps.executeUpdate(); /this.dispose(); JOptionPane.showMessageDialog(null, "添加成功","",JOptionPane.INFORMATION_MESSAGE); catch(Exception ex) ex.printStackTrace(); finally tr

39、y if(ps != null)ps.close(); if(ct != null)ct.close(); catch(Exception ex) ex.printStackTrace(); else if(e.getSource() = jb3) dispose(); 图书查阅:public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 if(e.getSource() = jb1) /返回上一级 new BookServe().setVisible(true); dispose(); if(e.getSource() = jb2)

40、 /图书查阅 String str1 = (String)jcb1.getSelectedItem(); if(str1.trim().equals("所有查找") tm = new TableModelBook(); jt.setModel(tm); else if(str1.trim().equals("按书号查找")str1 = "bookNum" if(str1.trim().equals("按书名查找")str1 = "bookName" if(str1.trim().equals(&

41、quot;按作者查找")str1 = "author" if(str1.trim().equals("按出版社查找")str1 = "press" String str2 = jtf1.getText().trim(); String str = "select * from book where " + str1 + "='" + str2 + "'" tm = new TableModelBook(str); jt.setModel(tm); i

42、f(e.getSource() = jb3) /退出 dispose(); 图书借阅:public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 if(e.getSource() = jb1) /返回上一级 new BookInfo().setVisible(true); dispose(); else if(e.getSource() = jb2) /图书借阅 Connection ct = null; PreparedStatement ps = null; PreparedStatement ps1 = null; String

43、 cardnum,booknum,jtime,gtime; money; cardnum = jtf1.getText().toString(); booknum = jtf2.getText().toString(); jtime = jtf3.getText().toString(); gtime = jtf4.getText().toString(); money=jtf4. getText().toString(); try ct = new ConnOracle().GetConn(); String st = "select bookNum from borrowbook

44、" ps1 = ct.prepareStatement(st); rs = ps1.executeQuery(); if(rs.next() String booknumber = rs.getString(1); if(booknum.equals(booknumber) JOptionPane.showMessageDialog(null, "此书已被借阅!","",JOptionPane.INFORMATION_MESSAGE); else ct = new ConnOracle().GetConn(); String str1 = &q

45、uot;select cardNum from borrowbook" ps = ct.prepareStatement(str1); /添加数据库表的信息 String str = "insert into borrowbook values(?,?,?,?)" ps = ct.prepareStatement(str); /图书证号 ps.setString(1, jtf1.getText(); /书号 ps.setString(2, jtf2.getText(); /借阅日期 ps.setString(3, jtf3.getText(); /归还日期 ps.

46、setString(4, jtf4.getText(); ps.executeUpdate(); /this.dispose(); JOptionPane.showMessageDialog(null, "图书借阅成功!","",JOptionPane.INFORMATION_MESSAGE); catch(Exception ex) ex.printStackTrace(); finally try if(ps1 != null)ps1.close(); if(ps != null)ps.close(); if(ct != null)ct.close(); catch(Exception ex) ex.printStackTrace(); else if(e.getSource() = jb3) /退出 dispose(); 图书归还:public void actionPerformed(ActionEvent e) / TODO 自动生成的方法存根 if(e.getSource() = jb1) /返回上一级 new BookInfo().setVisible(true); dispose(); else if(e.getSource() = jb2) /图书归还 Connection ct

温馨提示

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

评论

0/150

提交评论