1、SQL数据库课程设计202020年4月19日文档仅供参考课程设计(论文)任务书一、课程设计(论文)题目: 图书管理系统 二、课程设计(论文)工作:自 年 12 月 22日起三、课程设计(论文)内容要求:1本课程设计的目的(1)使学生掌握数据库开发的基本工作流程; (2)巩固数据库课程所学的内容; (3)培养学生的计算机思维能力以及合作的精神;(4)培养学生分析、解决问题的能力;(5)提高学生的科技论文写作能力。 2课程设计的任务及要求1)基本要求:(1)研究课程设计任务,并进行系统需求分析;(2)对系统进行总体设计,分解系统功能模块,进行任务分配,以实现分工合作;(3)实现各功能模块代码; (
2、4)组装各模块,并测试、完善系统。2)创新要求: 在基本要求达到后,可进行创新设计,如改进界面、增加功能或进行代码优化。3)课程设计论文编写要求(1)要按照书稿的规格打印誊写课程设计论文(2)论文包括封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结(3)论文装订按学校的统一要求完成4)参考文献:(1)数据库系统概论(第四版) 王珊、萨师煊编著 高等教育出版社(2)SQL-结构化查询语言详解 高守传编著 人民邮电出版社(3)Visual C+.NET程序设计实用教程 曾宪权编著 清华大学出版社5)课程设计进度安排内容 天数地点系统总体设计 2实验室软件设计及调试 4实验室、图书馆撰写报
3、告 2实验室、图书馆答辩 2实验室 学生签名: 课程设计(论文)评审意见(建议单独一页(1)课程设计过程(20分):优()、良()、中()、一般()、差(); (2)是否完成调试,系统运行效果(30分):优()、良()、中()、一般()、差(); (3)回答问题(20分):优()、良()、中()、一般()、差();(4)课程设计报告(30分):优()、良()、中()、一般()、差();(5)格式规范性及考勤是否降等级:是()、否() 评阅人: 职称: 讲师 目录一 项目内容、要求与分组情况总体介绍1二 概要设计12.1开发工具及环境12.2 系统设计任务分析22.3 系统相应数据字典及实体联系
4、图22.4 系统功能流程图4三 具体实现53.1 数据库的建立语句53.2系统运行界面及部分功能的实现和介绍63.3 数据库与VC的连接实现13四 设计体会与小结14五 参考文献15 一 项目内容、要求与分组情况总体介绍 本实验的目标是利用数据库实现一个简单的图书管理系统,实现了管理员登录、图书查询、图书借阅、图书增删、图书借阅排行榜以及其它一些对图书以及用户进行管理的功能。 二 概要设计2.1开发工具及环境开发工具:Microsoft SQL Server 、Visual Studio .net 以及Visual C+ 6.0操作系统:windows XP或win7等windows操作系统运
5、行环境:VC+6.0、Microsoft SQL Server 2.2 系统设计任务分析使用所学知识,根据图书管理系统所要实现的具体功能要求,利用数据库以及其它开发工具和语言,完成以下任务:(1) 图书管理系统数据库的建立及数据库所需信息的分析;(2) 图书管理系统界面布局及窗口设计;(3) 图书管理系统相关控件及子窗口的设计;(4) 图书管理系统相关控件及功能的具体实现;(5) 运行测试程序,调试并纠正运行错误;(6)调试无误,运行程序,测试具体功能并对系统进行相关优化。2.3 系统相应数据字典及实体联系图系统所需数据字典一览表:Admin 管理员备注字段类型字长是否允许为空是否为主键管理员
6、号useridchar10NPRI密码passwardchar10NBookid图书备注字段类型字长是否允许为空是否为主键图书编号ISBN_IDchar10N书名编号book_idchar10NPRIBooktype图书属性备注字段类型字长是否允许为空是否为主键图书编号ISBN_IDchar10NPRI书名book_namechar20N出版时间yeartimechar10Y作者actorchar20Y书的类型book_typechar20Y书本数allnumberintY剩下书本数lastnumberintYBorrow借书还书记录备注字段类型字长是否允许为空是否为主键借书证号reader_
7、idchar10NPRI书名编号book_idchar10NPRI借书时间borrow_timechar12N应还书时间return_timechar12N实还书时间fact_timechar12Y是否未还书return intNPosition方位(存放位置)备注字段类型字长是否允许为空是否为主键书号ISBN_IDchar10NPRI方位book_positionchar30NReadertype 图书借阅者备注字段类型字长是否允许为空是否为主键借书证号reader_idchar10NPRI人名reader_namechar10N学历typechar10NType学历备注字段类型字长是否允许
8、为空学历typechar10NPRI可借书数numberchar10N实体及其属性图:实体及其联系图:管理员登录2.4 系统功能流程图系统修改密码用户登陆超级管理员登录退出登录图书管理系统读者类型管理读者管理读者类型设置添加图书图书管理借书管理还书管理借阅管理续借管理图书查询系统查询 帮助三 具体实现3.1 数据库的建立语句CREATE TABLE admin (userid char(10) NOT NULL, passward char(10) NOT NULL, primary key(userid) ) ;/管理员登录信息CREATE TABLE bookid (ISBN_ID cha
9、r(10) NOT NULL, book_id char(10) NOT NULL, primary key (book_id) );/图书编号及书名编号CREATE TABLE booktype(ISBN_ID char(10) NOT NULL, book_name char(20) NOT NULL, yeartime char(10) NULL, actor char(20) NULL, book_type char(20) NULL, allnumber int NULL, lastnumber int NULL, PRIMARY KEY (ISBN_ID) );/图书属性信息CRE
10、ATE TABLE borrow(reader_id char(10) NOT NULL, book_id char(10) NOT NULL, borrow_time char(12) NOT NULL, return_time char(12) NOT NULL, fact_time char12) NULL, returned char(2) NOT NULL , primary key(reader_id,book_id), foreign key(reader_id) references readertype(reader-_id), foreign key(book_id) re
11、ferences booktype(book_id) );/图书借阅者借阅情况的信息CREATE TABLE position(ISBN_ID char(10) NOT NULL, book_position char(30) NOT NULL, primary key(ISBN_ID), foreign key(ISBN_ID) references booktype(ISBN_ID) );/图书放置位置信息CREATE TABLE readertype(reader_id char(10) NOT NULL, reader_name char(10) NOT NULL, type char
12、(10) NOT NULL, primary key(reader_id) );/图书借阅者信息CREATE TABLE type (type char(10) NOT NULL, number char(10) NOT NULL, primary key(type) );/图书借阅者类型3.2系统运行界面及部分功能的实现和介绍(1)系统主界面如下:主界面框架具体由以下函数实现:CLMSystemDoc:CLMSystemDoc()BOOL CLMSystemDoc:OnNewDocument()if (!CDocument:OnNewDocument()return FALSE; SetTi
13、tle(图书管理系统);return TRUE;相关子选项的功能函数也与主框架类似,更改相应的控件名称即可。在主界面中添加图片的函数主要由一下代码实现: void CLMSystemView:OnDraw(CDC* pDC)CLMSystemDoc* pDoc = GetDocument();ASSERT_VALID(pDoc); CDC dc;dc.CreateCompatibleDC(pDC);CBitmap bitmap;bitmap.LoadBitmap(IDB_BITMAP2);dc.SelectObject(&bitmap);CRect rect;GetClientRect(&re
14、ct);BITMAP bmp;bitmap.GetBitmap(&bmp); pDC-StretchBlt(0,0,rect.Width(),rect.Height(),&dc,0,0,bmp.bmWidth,bmp.bmHeight, SRCCOPY);/ TODO: add draw code for native data here 在此函数中,只要相应的更改图片的ID以及相应的更改图片的存储路径,即可实现不同的图片插入到主界面中,实现主界面的美化。(2) 管理员登录界面:void CEntry:OnOK() UpdateData();CString strSQL;strSQL.Form
15、at(select passward from admin where userid=%s,m_IDEdit); if (m_PasswardEdit=DBOpt.PasswardReturn(strSQL) CDialog:OnOK(); elseMessageBox(用户名或密码不正确!); 经过Format函数实现界面与数据库的联系,判断登录信息是否正确,如果不正确,弹出一个警告窗口。(3) 读者类型管理:经过该界面能够增删读者信息,用户即读者的借书证号,增加、删除以及修改按钮控件的操作分别对应着数据库中对readertype表进行的插入、删除以及更新操作。下面以删除读者类型按钮的功能实
16、现为例,实现如下:void CTypeSet:OnDeletebutton() CString strSQL;strSQL.Format(select * from readertype where type=%s,m_typeEdit);DBOpt.ReadReaderType(strSQL);if (DBOpt.curItem0)MessageBox(存在此类型用户,不能删除!);return;strSQL.Format(delete type where type=%s,m_typeEdit);DBOpt.ReaderTypeOperate(strSQL);UpdateMessage()
17、;(4) 读者类型设置:经过该界面能够添加或删除一些用户的类型,其中增加类型、修改以及删除该类型控件的操作分别对应着对数据库中type表进行插入、更新以及删除的操作,与数据库相连接的具体实现语句如下:“增加类型”控件与数据库连接的实现语句: strSQL.Format(insert into type(type,number) values(%s,%d),m_typeEdit,number); DBOpt.ReaderTypeOperate(strSQL);“修改”控件与数据库连接的实现语句: strSQL.Format(update type set number=%d where type
18、=+m_typeEdit+,number); DBOpt.ReaderTypeOperate(strSQL);“删除该类型”控件与数据库连接的实现语句:strSQL.Format(select * from readertype where type=%s,m_typeEdit);DBOpt.ReadReaderType(strSQL);if (DBOpt.curItem0)MessageBox(存在此类型用户,不能删除!);return;strSQL.Format(delete type where type=%s,m_typeEdit);DBOpt.ReaderTypeOperate(st
19、rSQL);(5) 添加图书界面:经过该界面能够添加一些图书馆新引进的图书,相当于对数据库中的booktype以及book、position表做了个连接,并对其相关内容都做了插入的操作。(6)借书管理界面: 经过该界面能够实现对读者借书的管理,经过借书证号以及图书编号来确定读者借书记录的存储,并在数据库中插入相应的借书记录。(7) 还书管理界面:在该界面中可根据输入的借书证号从列表中获得借书情况,可直接勾选要书的ISBN图书编号还书,也可输入图书编号后点击还书按钮。点击还书后则会相应的更新该读者在数据库中相关的借书信息,使得return标记为1即已还该书。(8) 续借管理界面:经过该界面能够实
20、现图书的续借管理,主要的实现功能函数如下: strSQL.Format(update borrow set return_time=%s where book_id=%s and returned=0,strTime,strISBN); DBOpt.ReaderTypeOperate(strSQL);strSQL.Format(select * from borrow where reader_id=+m_readerEdit+and returned=0);DBOpt.BorrowOperate(strSQL);for ( i=0;iDBOpt.curItem;i+)m_againBList
21、.InsertItem(i,DBOpt.strArrayOne.GetAt(i) ;m_againBList.SetItemText(i,1,DBOpt.strArrayTwo.GetAt(i);m_againBList.SetItemText(i,2,DBOpt.strArrayThree.GetAt(i);MessageBox(续借三十天成功!);(9) 图书查询界面在该界面中,每个编辑框都相当于数据库中的一个索引,输入相应的信息便能在列表中列出相关的图书信息,能够很方便的查找到相关图书以及图书的其它有用的信息。(10) 借阅排行榜界面: 经过该界面能够查看读者借阅的排行也能够查看读者借阅
22、图书的排行,经过该界面能够让管理员更好的了解读者的需求,引进能够满足读者借阅需求的相应图书数量。3.3 数据库与VC的连接实现 经过初始化COM库,引入ADO库定义文件,用Connection对象连接数据库,利用建立好的连接,经过Connection、Command对象执行SQL命令,使用完毕后关闭释放连接对象。执行后会生成一个.dul的文件,打开后会出现以下界面:四 设计体会与小结在这次课程设计的过程中,我主要负责搭建该图书系统的主界面和各个子窗口的控件搭建,在搭建模块和窗口的同时我更进一步的熟悉了.net中每个控件的不同使用方法和不同的应用范围,对MFC的理解也有进一步的加深。经过这次的课
23、程设计,让我感觉更深刻的就是和组员之间的相互配合是该系统能够成功实现相应简单功能的关键,每个人都有自己的长处,所谓“闻道有先后,术业有专攻”,发挥各自的长处相互配合,遇到问题时一起讨论,共同出力来想办法解决,在这次课设中发现了团队合作的重要性,在以后的学习生活中也要继续的坚持着这种团队合作的精神,和团队和集体共同努力,发挥自己的长处,实现自己想要或是当下需要完成的目标。图书管理系统功能的实现,使我对数据库的认识从一个抽象的认识进入到了一个具体的认识的境界,让我更加深入的了解到了数据库在工程和项目中的具体应用,而不是仅仅停留在一个从理论上认识的层次,经过相互讨论分析图书管理系统所需完成的基本任务
24、和功能,结合大家的认识做了个简单的需求分析,又经过数据字典的创立基本抽象出实体之间的联系,在此基础上我们建立了所需的数据库BOOK,用来实现图书管理信息在计算机中的存储,为图书管理员提供了方便。经过这次的课程设计我学到了很多以前并不是很了解的知识,最主要的是学会了如何经过VC连接到数据库,即了解了如何将数据库语句嵌入到程序和软件当中,如何真正的使数据库的建立有其存在的意义,如何充分的利用数据库实现数据存储以及如何利用不同的方式如ADO或ODBC等实现数据库和界面进行交互,为用户提供一个应用程序接口API,这些认识和收获在以后的学习生活中仍能够起到很重要的作用。在此系统中,具体的功能实现是由另外两名组员完成的,也正是因为如此,我发现了自己在利用语言实现函数功能上的欠缺,在以后的学习生活中还要继续加强自己在程序语言上的学习。五 参考文献1数据库系统概论(第四版) 王珊、萨师煊编著 高等教育出版社2SQL-结构化查询语言详解 高守传编著 人民邮电出版社3Visual C+.NET 程序设计实用教程 曾宪权编著 清华大学出版社
©2010-2024 宁波自信网络信息技术有限公司 版权所有
客服电话:4008-655-100 投诉/维权电话:4009-655-100