1、课程设计(论文)任务书一、课程设计(论文)题目: 图书管理系统 二、课程设计(论文)工作:自 年 12 月 22日起三、课程设计(论文)内容要求:1本课程设计目标(1)使学生掌握数据库开发基础工作步骤; (2)巩固数据库课程所学内容; (3)培养学生计算机思维能力和合作精神;(4)培养学生分析、处理问题能力;(5)提升学生科技论文写作能力。 2课程设计任务及要求1)基础要求:(1)研究课程设计任务,并进行系统需求分析;(2)对系统进行总体设计,分解系统功效模块,进行任务分配,以实现分工合作;(3)实现各功效模块代码; (4)组装各模块,并测试、完善系统。2)创新要求: 在基础要求达成后,可进行
2、创新设计,如改善界面、增加功效或进行代码优化。3)课程设计论文编写要求(1)要根据书稿规格打印誊写课程设计论文(2)论文包含封面、设计任务书(含评语)、摘要、目录、设计内容、设计小结(3)论文装订按学校统一要求完成4)参考文件:(1)数据库系统概论(第四版) 王珊、萨师煊编著 高等教育出版社(2)SQL-结构化查询语言详解 高守传编著 人民邮电出版社(3)Visual C+.NET程序设计实用教程 曾宪权编著 清华大学出版社5)课程设计进度安排内容 天数地点系统总体设计 2试验室软件设计及调试 4试验室、图书馆撰写汇报 2试验室、图书馆答辩 2试验室 学生署名: 课程设计(论文)评审意见(提议
3、单独一页(1)课程设计过程(20分):优()、良()、中()、通常()、差(); (2)是否完成调试,系统运行效果(30分):优()、良()、中()、通常()、差(); (3)回复问题(20分):优()、良()、中()、通常()、差();(4)课程设计汇报(30分):优()、良()、中()、通常()、差();(5)格式规范性及考勤是否降等级:是()、否() 评阅人: 职称: 讲师 目录一 项目内容、要求和分组情况总体介绍1二 概要设计12.1开发工具及环境12.2 系统设计任务分析22.3 系统对应数据字典及实体联络图22.4 系统功效步骤图4三 具体实现53.1 数据库建立语句53.2系统运
4、行界面及部分功效实现和介绍63.3 数据库和VC连接实现13四 设计体会和小结14五 参考文件15 一 项目内容、要求和分组情况总体介绍 本试验目标是利用数据库实现一个简单图书管理系统,实现了管理员登录、图书查询、图书借阅、图书增删、图书借阅排行榜和其它部分对图书和用户进行管理功效。 二 概要设计2.1开发工具及环境开发工具:Microsoft SQL Server 、Visual Studio .net 和Visual C+ 6.0操作系统:windows XP或win7等windows操作系统运行环境:VC+6.0、Microsoft SQL Server 2.2 系统设计任务分析使用所学
5、知识,依据图书管理系统所要实现具体功效要求,利用数据库和其它开发工具和语言,完成以下任务:(1) 图书管理系统数据库建立及数据库所需信息分析;(2) 图书管理系统界面布局及窗口设计;(3) 图书管理系统相关控件及子窗口设计;(4) 图书管理系统相关控件及功效具体实现;(5) 运行测试程序,调试并纠正运行错误;(6)调试无误,运行程序,测试具体功效并对系统进行相关优化。2.3 系统对应数据字典及实体联络图系统所需数据字典一览表:Admin 管理员备注字段类型字长是否许可为空是否为主键管理员号useridchar10NPRI密码passwardchar10NBookid图书备注字段类型字长是否许可
6、为空是否为主键图书编号ISBN_IDchar10N书名编号book_idchar10NPRIBooktype图书属性备注字段类型字长是否许可为空是否为主键图书编号ISBN_IDchar10NPRI书名book_namechar20N出版时间yeartimechar10Y作者actorchar20Y书类型book_typechar20Y书本数allnumberintY剩下书本数lastnumberintYBorrow借书还书统计备注字段类型字长是否许可为空是否为主键借书证号reader_idchar10NPRI书名编号book_idchar10NPRI借书时间borrow_timechar12N
7、应还书时间return_timechar12N实还书时间fact_timechar12Y是否未还书return intNPosition方位(存放位置)备注字段类型字长是否许可为空是否为主键书号ISBN_IDchar10NPRI方位book_positionchar30NReadertype 图书借阅者备注字段类型字长是否许可为空是否为主键借书证号reader_idchar10NPRI人名reader_namechar10N学历typechar10NType学历备注字段类型字长是否许可为空学历typechar10NPRI可借书数numberchar10N实体及其属性图:实体及其联络图:管理员登
8、录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 char(10) NOT NULL, book_id char(10) NOT NULL, primary key (
9、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) );/图书属性信息CREATE TABLE borrow(reader_id char(10) NOT NULL, book_id ch
10、ar(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) references booktype(book_id) );/图书借阅者借阅情况信息CREATE TABLE po
11、sition(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(10) NOT NULL, primary key(reader_id) );/图书借阅者信息CREATE TA
12、BLE 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; SetTitle(图书管理系统);return TRUE;相关子选项功效函数也和主框架类似,更改对应控件名称即可。在主界面中添
13、加图片函数关键由一下代码实现: 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(&rect);BITMAP bmp;bitmap.GetBitmap(&bmp); pDC-StretchBlt(0,0,rec
14、t.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.Format(select passward from admin where userid=%s,m_IDEdit); if (m_Pass
15、wardEdit=DBOpt.PasswardReturn(strSQL) CDialog:OnOK(); elseMessageBox(用户名或密码不正确!); 经过Format函数实现界面和数据库联络,判定登录信息是否正确,假如不正确,弹出一个警告窗口。(3) 读者类型管理:经过该界面能够增删读者信息,用户即读者借书证号,增加、删除和修改按钮控件操作分别对应着数据库中对readertype表进行插入、删除和更新操作。下面以删除读者类型按钮功效实现为例,实现以下:void CTypeSet:OnDeletebutton() CString strSQL;strSQL.Format(selec
16、t * 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();(4) 读者类型设置:经过该界面能够添加或删除部分用户类型,其中增加类型、修改和删除该类型控件操作分别对应着对数据库中type表进行插入、更新和删
17、除操作,和数据库相连接具体实现语句以下:“增加类型”控件和数据库连接实现语句: 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=+m_typeEdit+,number); DBOpt.ReaderTypeOperate(strSQL);“删除该类型”控件和数据库连接实现语句:strSQL.
18、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);(5) 添加图书界面:经过该界面能够添加部分图书馆新引进图书,相当于对数据库中booktype和book、position表做了个连接,并对其相关内容全部
19、做了插入操作。(6)借书管理界面: 经过该界面能够实现对读者借书管理,经过借书证号和图书编号来确定读者借书统计存放,并在数据库中插入对应借书统计。(7) 还书管理界面:在该界面中可依据输入借书证号从列表中取得借书情况,可直接勾选要书ISBN图书编号还书,也可输入图书编号后点击还书按钮。点击还书后则会对应更新该读者在数据库中相关借书信息,使得return标识为1即已还该书。(8) 续借管理界面:经过该界面能够实现图书续借管理,关键实现功效函数以下: strSQL.Format(update borrow set return_time=%s where book_id=%s and return
20、ed=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.InsertItem(i,DBOpt.strArrayOne.GetAt(i) ;m_againBList.SetItemText(i,1,DBOpt.strArrayTwo.GetAt(i
21、);m_againBList.SetItemText(i,2,DBOpt.strArrayThree.GetAt(i);MessageBox(续借三十天成功!);(9) 图书查询界面在该界面中,每个编辑框全部相当于数据库中一个索引,输入对应信息便能在列表中列出相关图书信息,能够很方便查找到相关图书和图书其它有用信息。(10) 借阅排行榜界面: 经过该界面能够查看读者借阅排行也能够查看读者借阅图书排行,经过该界面能够让管理员愈加好了解读者需求,引进能够满足读者借阅需求对应图书数量。3.3 数据库和VC连接实现 经过初始化COM库,引入ADO库定义文件,用Connection对象连接数据库,利用建
22、立好连接,经过Connection、Command对象实施SQL命令,使用完成后关闭释放连接对象。实施后会生成一个.dul文件,打开后会出现以下界面:四 设计体会和小结在这次课程设计过程中,我关键负责搭建该图书系统主界面和各个子窗口控件搭建,在搭建模块和窗口同时我更深入熟悉了.net中每个控件不一样使用方法和不一样应用范围,对MFC了解也有深入加深。经过这次课程设计,让我感觉更深刻就是和组员之间相互配合是该系统能够成功实现对应简单功效关键,每个人全部有自己优点,所谓“闻道有前后,术业有专攻”,发挥各自优点相互配合,碰到问题时一起讨论,共同出力来想措施处理,在这次课设中发觉了团体合作关键性,在以
23、后学习生活中也要继续坚持着这种团体合作精神,和团体和集体共同努力,发挥自己优点,实现自己想要或是当下需要完成目标。图书管理系统功效实现,使我对数据库认识从一个抽象认识进入到了一个具体认识境界,让我愈加深入了解到了数据库在工程和项目中具体应用,而不是仅仅停留在一个从理论上认识层次,经过相互讨论分析图书管理系统所需完成基础任务和功效,结合大家认识做了个简单需求分析,又经过数据字典创建基础抽象出实体之间联络,在此基础上我们建立了所需数据库BOOK,用来实现图书管理信息在计算机中存放,为图书管理员提供了方便。经过这次课程设计我学到了很多以前并不是很了解知识,最关键是学会了怎样经过VC连接到数据库,即了
24、解了怎样将数据库语句嵌入到程序和软件当中,怎样真正使数据库建立有其存在意义,怎样充足利用数据库实现数据存放和怎样利用不一样方法如ADO或ODBC等实现数据库和界面进行交互,为用户提供一个应用程序接口API,这些认识和收获在以后学习生活中仍能够起到很关键作用。在此系统中,具体功效实现是由另外两名组员完成,也正是因为如此,我发觉了自己在利用语言实现函数功效上欠缺,在以后学习生活中还要继续加强自己在程序语言上学习。五 参考文件1数据库系统概论(第四版) 王珊、萨师煊编著 高等教育出版社2SQL-结构化查询语言详解 高守传编著 人民邮电出版社3Visual C+.NET 程序设计实用教程 曾宪权编著 清华大学出版社