数据库图书馆管理系统课程设计报告.doc
《数据库图书馆管理系统课程设计报告.doc》由会员分享,可在线阅读,更多相关《数据库图书馆管理系统课程设计报告.doc(19页珍藏版)》请在咨信网上搜索。
课程设计报告 ( 2011-—2012年度第2学期) 名 称:数据库原理课程设计 题 目:图书管理信息系统 院 系: 计算机系 班 级: 学 号: 学生姓名: 指导教师: 阎蕾 设计周数:1周 成 绩: 日期:2012年7月4日 《数据库原理课程设计》课程设计 任 务 书 一、 目的与要求 1. 本实验是为网络工程、信息安全等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节。通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力.为后继课程和毕业设计打下良好基础。 2. 通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力. 3. 通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力。是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、 主要内容 针对一个具有实际应用场景的中小型系统(见题目附录)进行数据库设计,重点分析系统涉及的实体、实体之间的联系,实现增加、删除、更新、查询数据记录等基本操作。大致分为如下步骤: 1。 理解系统的数据库需求,分析实体及实体间联系,画出E-R图: 1. 分析确定实体的属性和码,完成对该实体的实体完整性、用户自定义完整性的定义。 2. 设计实体之间的联系,包括联系类型和联系的属性。最后画出完整的E-R图。 2.根据设计好的E—R图及关系数据库理论知识设计数据库模式: 1) 把E—R图转换为逻辑模式; 2) 规范化设计。使用关系范式理论证明所设计的关系至少属于3NF并写出证明过程;如果不属于3NF则进行模式分解,直到该关系满足3NF为止,要求写出分解过程。 3) 设计关系模式间的参照完整性,要求实现级联删除和级联更新. 4) 用SQL语言完成数据库内模式的设计。 3.数据库权限的设计: 1) 根据系统分析,完成授权操作; 2) 了解学习收回权限的操作. 4.完成用户界面的设计,对重要数据进行加密。 5.连接数据库,用宿主语言实现系统所需的各种操作: 1) 实现数据记录的录入、删除、查询和修改. 2) 以视图的形式完成复杂查询,比如多表、多条件等. 三、 进度计划 序号 设计(实验)内容 完成时间 备注 1 根据任务书完成信息模型(概念模型、逻辑模型、完整性、规范化)的设计,并基于选用的DBMS实现该信息模型,然后录入初始数据 2 根据任务书完成各种数据定义和数据操作,并保留所有SQL语句。 3 数据库权限设计,用户界面设计 4 用可视化开发工具环境开发学生选定的信息系统(C/S或者B/S模式) 5 系统的完善与验收 四、 设计(实验)成果要求 1. 在DBMS(如oracle,SQL Server 2005/2008,DB2等)上完成完整的数据库的设计; 2. 使用可视化开发平台完成信息系统,要求可以正确运行; 3. 完成实验报告。 五、 考核方式 1. 在微机上检查数据库模式的设计、三大完整性的设计、关系属于几范式等; 2. 在微机上检查系统的运行结果,要求学生阐述使用的相关技术; 3. 实验报告的检查。 六、 题目附录 1. 学生信息管理信息系统 2. 学生成绩管理信息系统 3. 图书管理信息系统 4. 物资管理信息系统 5. 汽车销售管理信息系统 6. 超市管理信息系统 7. 通讯录管理信息系统 8. 工资管理信息系统 9. 酒店管理信息系统 10. 小区物业管理信息系统 学生姓名: 指导教师: 年 月 日 一、课程设计的目的与要求 1. 本实验是为网络工程、信息安全等专业的学生在学习数据库原理后,为培养更好的解决问题和实际动手能力而设置的实践环节.通过这个环节,使学生具备应用数据库原理对数据库系统进行设计的能力。为后继课程和毕业设计打下良好基础。 2. 通过该实验,培养学生在建立数据库系统过程中使用关系数据理论的能力。 3. 通过对一个数据库系统的设计,培养学生对数据库需求分析、数据库方案设计、系统编码、界面设计和软件调试等各方面的能力.是一门考查学生数据库原理、面向对象设计方法、软件工程和信息系统分析与设计等课程的综合实验。 二、设计正文 1. 需求分析 1.1 图书管理信息系统就是实现图书的管理 1.2 可分为三种用户:管理员,其权限最大,有增删图书信息,更改图书种类,增加图书,修改普通用户信息;普通用户,对图书进行查阅,借书和还书. 2. 系统功能设计,可以用模块结构图、功能结构图来描述。 功能结构图: 用户登录 普通用户 系统管理员 修改用户信息 增删图书借阅记录 还书 查询图书 借阅图书 增删图书 增删用户 3. 数据库概念设计(含ER图) 管理 借阅 管理员 书籍 用户 1 N M 1 1 1 1 从属 拥有 拥有 1 N 1 分类 账户 管理员账户 4. 数据库逻辑设计 4。1图书管理员表:admin: 普通用户表:Reader: 借阅图书信息用户表:IssueBook: 图书表:Book: 图书所属大类表:SmallClassOfBook: 图书所属小类表:BigClassOfBook: 4.2数据库关系图: 5. 系统编码与实现. 主要功能截图和部分核心代码: 5。1登录界面: 部分代码: using System; using System。Collections。Generic; using System。ComponentModel; using System.Data; using System。Drawing; using System。Text; using System。Windows。Forms; namespace BookManagementSystem { public partial class frmLogin : Form { private Boolean IsPass; private int count = 0; public frmLogin() { InitializeComponent(); } private void frmLogin_FormClosing(object sender, FormClosingEventArgs e) { Program。DataOperator。CloseConnection(); Environment.Exit(1); } private void BtnLogin_Click(object sender, EventArgs e) { if (account。Text。Equals("”)) { MessageBox。Show(”帐号不能为空"); return; } if (checkBox.Checked) { Program。IsAdministrator = true; IsPass = Program.DataOperator.CheckAdmin(account.Text, password.Text); if (IsPass) { Program。CurrentAccount = account。Text; this.Dispose(); } } else { Program。IsAdministrator = false; IsPass = Program.DataOperator。CheckUser(account.Text, password。Text); if (IsPass) { Program。CurrentAccount = account。Text; this.Dispose(); } } MessageBox。Show("帐号或密码错误”); count++; if (count == 5) { MessageBox.Show(”错误登录次数太多!”, ”错误”,MessageBoxButtons。OK,MessageBoxIcon.Error); Program。DataOperator。CloseConnection(); Environment。Exit(1); } return; } private void name_KeyPress(object sender, KeyPressEventArgs e) { BtnLogin。Enabled = true; } private void BtnExit_Click(object sender, EventArgs e) { Program。DataOperator.CloseConnection(); Environment。Exit(1); } private void frmLogin_Load(object sender, EventArgs e) { account.Focus(); } } } 5.2图书查询: 部分代码如下: private void BookManagementSystem_Load(object sender, EventArgs e) { this。Activate(); listView1.Select(); ClassOfBook = Program。DataOperator.GetBigClassOfBook(); IssueBook。Add(”借书”); IssueBook。Add(”还书”); IssueBook。Add("所有借还记录”); BookManage.Add(”书籍管理"); BookManage。Add("人员管理”); BookManage.Add(”书籍类别管理”); SetBtn1(); } private void SetBtn1() { currbtn = "btn1"; listView1。Select(); listView1.Dock = DockStyle.None; button1.Dock = DockStyle.Top; button2。Dock = DockStyle。Bottom; button3。SendToBack(); button3。Dock = DockStyle.Bottom; listView1.BringToFront(); listView1。Dock = DockStyle。Bottom; listView1。Dock = DockStyle。Fill; listView1。Clear(); listView1。Items。Add("”, ”所有书籍”, 0); AddItemTolistView(0, ClassOfBook); } 5.3借书界面: 借书部分代码: public frmIssueBook(string no, string name, string CountOfBook, string txt) { this.b = true; InitializeComponent(); this。BookNo。Text = no; this.BookName。Text = name; this。CountOfBook.Text = CountOfBook; this。synopsis.Text = txt; } private void frmIssueBook_Load(object sender, EventArgs e) { NoOfPersonal.Text = Program。CurrentAccount; BookNo。ReadOnly = b; BookName。ReadOnly = b; button3.Enabled = !b; //MessageBox。Show(IssueOfDate.Text); this。AcceptButton = button1; } private void button1_Click(object sender, EventArgs e) { string[] sdata = new string[4]; sdata[0] = BookNo。Text; sdata[1] = NoOfPersonal。Text; sdata[2] = NameOfPersonal。Text; sdata[3] = IssueOfDate。Text; if (sdata[0] == ”" || sdata[1] == ”” || sdata[2] == ”" || sdata[3]==””) { MessageBox。Show(”资料不完整!”); return; } // MessageBox。Show(sdata[0]+” ”+sdata[1]+” "+sdata[2]+” ”+sdata[3]); switch (Program.DataOperator.IssueBook(sdata)) { case 1: MessageBox。Show(”你已借了这本书!"); break; case 2: MessageBox。Show("借书成功!”); this。Close(); break; case 3: MessageBox.Show("失败!"); this。Close(); break; } } 5.4借书提示信息: 5.5管理员界面:管理员进行书籍,人员管理 部分代码如下: private void bookBindingNavigatorSaveItem_Click(object sender, EventArgs e) { if (MessageBox。Show("确定要保存吗?", ”保存确定”, MessageBoxButtons。YesNo, MessageBoxIcon。Question) == DialogResult。No) return; this.Validate(); this。bookBindingSource。EndEdit(); this.bookTableAdapter.Update(this。mydata2DataSet。Book); } private void frmBookManager_Load(object sender, EventArgs e) { // TODO: 这行代码将数据加载到表“mydata2DataSet。Book”中.您可以根据需要移动或移除它。 this.bookTableAdapter。Fill(this。mydata2DataSet。Book); 图片PictureBox.SizeMode = PictureBoxSizeMode。StretchImage; } private void InImage_Click(object sender, EventArgs e) { if (openFileDialog。ShowDialog() == DialogResult.OK) { 图片PictureBox。Image = Program。DataProcessor.GetImageFromFilePath(openFileDialog.FileName); } } private void GetBookClass_Click(object sender, EventArgs e) { 大类ComboBox。Items.Clear(); foreach (string sdata in pBigClassOfBook) { 大类ComboBox。Items。Add(sdata); } } private void 大类ComboBox_SelectedIndexChanged(object sender, EventArgs e) { ArrayList SmallClassOfBook = Program。DataOperator。GetSmallClassOfBook(大类ComboBox.Text); 小类ComboBox。Items。Clear(); foreach (string sdata in SmallClassOfBook) 小类ComboBox。Items。Add(sdata); } private void SerchBox_Click(object sender, EventArgs e) { try { string []SerchData=new string[3]; for (int i = 0; i 〈 SerchData。Length; i++) SerchData[i] = "%”; if(SerchBoxNo。Text!="”) SerchData[0] = SerchBoxNo。Text; if(SerchBoxName。Text!=”") SerchData[1] = SerchBoxName。Text; string CmdString = "SELECT 书籍编号, 书名, 作者, 出版社, 现有数量, 小类, 大类, 内容简介, 入库时间, 图片 FROM dbo。Book " + " where 书籍编号 like ’” + SerchData[0] + ”'" + " and 书名 like ’%” + SerchData[1] + ”%’”; // MessageBox。Show(CmdString); Program。SerchCmd[1]。CommandText = CmdString; try { this。bookTableAdapter。FillBy(this。mydata2DataSet。Book); } catch (System。Exception ex) { System。Windows.Forms.MessageBox。Show(ex.Message); } } catch (Exception ex) { // MessageBox。Show(ex.Message); } } 5。6管理员观察看借还信息: 部分代码如下: private void issueBookBindingNavigatorSaveItem_Click(object sender, EventArgs e) { if (MessageBox。Show(”确定要保存吗?”, "保存确定", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; this.Validate(); this。issueBookBindingSource。EndEdit(); this。issueBookTableAdapter.Update(this。mydata2DataSet。IssueBook); } private void frmIssueReturnManager_Load(object sender, EventArgs e) { // TODO: 这行代码将数据加载到表“mydata2DataSet。IssueBook”中。您可以根据需要移动或移除它。 this。issueBookTableAdapter。Fill(this.mydata2DataSet。IssueBook); } 5.7本实验中将所有的数据库查询,更新,删除等操作设置成方法,组合在一个类中。代码如下: using System; using System.Collections。Generic; using System。Text; using System.Data; using System。Data。SqlClient; using System。Windows。Forms; using System。Collections; using System。IO; using System。Drawing ; namespace BookManagementSystem { public class DataOperation { SqlConnection sqlconn; SqlCommand cmd; SqlParameter para; public DataOperation() { try { sqlconn = new SqlConnection(@"Data Source=LENOVO—PC;Initial Catalog=MYDATA2;Persist Security Info=True;User ID=sa;Password=123456123"); sqlconn.Open(); cmd = sqlconn。CreateCommand(); } catch (Exception ex) { MessageBox.Show(ex。Message); } } public void CloseConnection() { sqlconn.Close(); } public Boolean CheckAdmin(string account, string password) { cmd.CommandText = ”select * from admin where account=’” + account + ”’ and password=’” + password + "’”; SqlDataReader thisReader = cmd。ExecuteReader(); if (thisReader.Read()) { thisReader。Close(); return true; } else { thisReader.Close(); return false; } } public DataSet GetAllBookData() { SqlDataAdapter thisAdapter = new SqlDataAdapter(”Select * from Book”, sqlconn); DataSet thisDataSet=new DataSet(); thisAdapter。Fill(thisDataSet, "Book"); return thisDataSet; // thisAdapter.Fill(thisDataSet,"Boo } public ArrayList GetBigClassOfBook() { cmd。CommandText = ”select * from BigClassOfBook"; SqlDataReader thisReader = cmd。ExecuteReader(); ArrayList p = new ArrayList(); while (thisReader。Read()) p。Add(thisReader[”大类”]); thisReader。Close(); return p; } public ArrayList GetSmallClassOfBook(string BigClassOfBook) { cmd.CommandText = ”select * from SmallClassOfBook where 小类 LIKE ’”+BigClassOfBook+”%'"; SqlDataReader thisReader = cmd.ExecuteReader(); ArrayList p = new ArrayList(); while (thisReader。Read()) p.Add(thisReader["小类"].ToString().Split(new Char[] { ’+' })[1]); thisReader.Close(); return p; } //public public ArrayList GetSmallClassOfBook() { cmd。CommandText = "select * from SmallClassOfBook ”; SqlDataReader thisReader = cmd。ExecuteReader(); ArrayList p = new ArrayList(); while (thisReader。Read()) p.Add(thisReader["小类”].ToString()); thisReader。Close(); return p; } public int IssueBook(string []Insert) { try { cmd。CommandText = ”select * from IssueBook where 图书编号=’”+Insert[0]+”’ and "+”借书人编号='"+Insert[1]+”' and ”+”还书日期=’None’"; SqlDataReader thisReader = cmd。ExecuteReader(); if (thisReader。Read()) { thisReader.Close(); return 1; } thisReader.Close(); cmd。CommandText = ”insert into IssueBook values(@图书编号,@借书人编号,@借书人姓名,@借书日期,@还书日期)"; para = new SqlParameter(”@图书编号”, SqlDbType。NVarChar,50); para。Value = Insert[0]; cmd。Parameters。Add(para); para = new SqlParameter(”@借书人编号”- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 图书馆 管理 系统 课程设计 报告
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文