欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    图书管理系统课程设计说明书.docx

    • 资源ID:821667       资源大小:130.21KB        全文页数:29页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    图书管理系统课程设计说明书.docx

    中北大学课程设计说明书数据库课程实验周学生姓名:刘彦成学号:0706034123学院:电子与计算机科学技术学院专业:计算机科学与技术题目:图书管理系统一一借书还书管理子系统指导教师:杨晓文2023年6月10日1系统设计1.I设计目标在学习了数据库原理和SQLServer2000数据库管理系统后,采用ViSUalC+编程语言开发工具,设计并实现图书管理系统.木课程的目的是培养学生数据库技术的综合应用能力,通过设计开发一个小型的数据库管理系统,将原理与应用相结合,锻炼学生实际问题的分析、设计与编程能力。1.2开发和运行环境选择开发工具:前台开发语言为ViSUalC+,后台数据库为SQLServer2000运行环境:WindOWS2000及更高的操作系统2.数据库设计2.1需求描述图书管理系统程序运行界面分为登陆界面,功能选择系统主菜单界面两个主要界面。使用时应先知道管理员帐号和密码,登陆进入系统主菜单界面,里面包括用户信息管理,读者信息管理,图书信息管理,借书还书信息管理,关于系统等五个菜单项选择项,并其内部功能分别对应工具栏中的功能。其中用户信息管理包括增加用户、删除用户、修改密码、查询用户和退出系统。读者信息管理包括增加读者、删除读者、修改读者和查询读者。图书信息管理包括添加图书、删除图书、修改图书和查询图书。借书还书信息管理包括借书操作、还书操作、续借操作和查询操作。借书还书管理子系统的具体功能目标如下:(1)借书操作:用户借书后在借出图书信息表中添加用户信息及书籍信息等,并将图书信息表中的数量减Io(2)续借操作:当用户借阅图书后,如需延长借阅日期那么可使用此功能续借图书。(3)还书操作:用户归还书籍后在借书表中删除借出信息,同时在图书信息表中将对应书籍的数量加1,便于他人借阅。并在还书表中增加借书历史的信息。(4)逾期罚金:归还书籍时如果超过期限,规定超过一天罚0.1元钱。(5)查询借书信息:查询借书表中读者己借的图书信息。2.2数据库概念设计系统功能结构图:描述系统要实现的各个模块的功能图1图书管理系统功能结构图图2图书管理系统总体E-R图图3图书信息表E-R图图书(图书编号,图书名,价格,类别名,出版社,作者,数量,ISBN)图4读者信息表E-R图密码,性别,到期日期)图5管理员表E-图读者(借书证号,姓名,班级,学号,管理员(用户名,密码,权限)2.3数据库逻辑设计用户信息表(users):表1用户表(users)字段名字段名称数据类型主键是否为空用户名users文本Yes否权限powers文本N。否用户密码passwd文本N。否读者信息表(reader)S表2读者表(reader)字段名字段名称数据类型主键是否为空借书证号readercode文本Yes否姓名name文本No否性别sex文本No是学号sno文本No否班级dept文本No是密码passwd文本No否到期日期Iimite日期/时间No是图书信息表(book):表3图书表(book)字段名字段类型数据类型主键是否为空图书编号book_code文本Yes否书名book_name文本N。否作者writer文本No是出版社press文本No是定价pricedoubleN。是ISBNisbn文本No是数量numintNo是类别名type文本No是借书信息表(jsb):表4借书表(Jsb)字段名字段名称类型主键是否为空借书证号reader_code文本Yes否还书日期returndate日期/时间No是应还日期Limitedate日期/时间No否图书编号book_code文本Yes否罚款金额punishdoubleNo是还书信息表(hsb):表5还书表(hsb)字段名字段名称数据类型主键是否为空借书证号readercode文本Yes杏图书编号bookcode文本Yes杏借书日期borrowdate日期/时间No否应还日期return_date日期/时间No否3图书管理系统(借书还书管理子系统)详细设计3.1登陆界面:图6登陆界面图功能:提供用户登录,使用户能操作图书管理系统。代码:voidCLoginDlg:OnLoginbrO登录系统CStringstrl,str2;intsue;if(m_uet+TsOpenO)"翻开数据库m_uet.CloseO;elsem_uet.OpenO;if(!m_uet*CanUpdate()AfxMessageBox(_T(*无法登录");elseGetDlgItemText(TDC_EDTT1strl);获得编辑框中的内容GetDlgTtemText(TDC_EDTT2,str2);muet.MoveFirstO;while(!m_uet+IsEOF()m_uet.iii_users.Replace(j*","");/去掉空格以便于比拟m_uet+m_passwd.RePIaCe("","");if(muet.m_users=strl&&m_uet.m_PaSSWd=Str2)/判断用户名和密码sue1;elsebreak;m_uet.MoveNext();if(sue=1)OnOK():"用户名和密码正确,登录系统elseMeSSageBoX("用户名或密码错误,请重新输入!");m_uet.CloseO;voidCLoginDlg:0nCancel0退出系统ExitProcess(I);3.2主菜单界面:图7主菜单界面图功能:主菜单界面包含图书管理系统的所有功能,具体如下:1)用户管理模块:添加用户,删除用户,修改密码,查询用户信息。2)读者管理模块:添加读者,删除读者,修改读者信息,查询读者信息。3)图书管理模块:添加图书,删除图书,修改图书信息,查询图书信息。4)借书和还书操作模块:借书操作,还书操作,续借操作,查询借书信息。借书还书子系统界面、功能及实现代码如下:1、借书操作:借书操作界面:图8借书操作界面图借书操作功能:用户借书后在借出图书信息表中添加用户信息及书籍信息等,并将图书信息表中对应图书的数量减1。借书操作代码:voidCLibraryView:IOnBorrowsys()响应借书操作模态对话框CBorrowDlgbordlg;bordlg.DoModalO;voidCBorrowDlg:OnBorrow()借书操作CTimetime=CTime:ZGetCurrentTimeO;获得系统当前时间intm=0,suc=O,success=O;定义变量CStringstr;if(m_jet.IsOpenO)/翻开数据库m_jet.CloseO;elsem_jet.Open();if(!mJet.CanUpdateO)AfxMessageBox(T("不能完成借书功能!");elsem_jet, MoveLast ();m_jet. AddNew ();UpdateData(TRUE);m_jet. m_reader_codem_jet. m_book_code ="将记录移到最后增加新纪录"更新数据库记录=mborrow1;m_borrow2:str=m_jet.m_book_code;m_jet.m_borrow_date=time;if(time.GetMonth()=2)m=28;elseif(time.GetMonth()=41time.GetMonth()=61time.GetMonth()=91time.GetMonthO=Il)m=30:elsem=31;CTimeSpantmsp(mjO,O,O);time二time+tmsp;m_jet.m_return_date=time;UpdateData(FALSE);m_jet.UpdateO;m_jet.CloseO;if(mjbet.IsOpenO)翻开数据库m_jbet.CloseO;elsemjbet.OpenO;if(!m_jbet.CanUpdateO)AfxMessageBox(_TC不能完成借书功能!");elsem_jbet.MoveFirst();while(!m_jbet,TsEOFO)判断是否到达最后一条记录m_jbet.mbook_code.Replace("*,"");if(m_jbet<m_book_code!=str)/找到当前借出图书的信息jbet.MoveNext();elsesuccess=!;suc=l;break;if(success=!)mjbet,Edit();m_jbet.m_num=m_jbet.m_num-1;/将当前图书数量减1m_jbet.Update。:m_jbet.CloseO:关闭数据库if(suc=l)MessageBox("借书成功!");elseMessageBox("借书失败!"):m_pbt->Invalidate();重绘窗口2,还书操作:还书操作界面:图9还书操作界面图还书操作功能:用户归还书籍后在借书表中删除借出信息,同时在图书信息表中将对应书籍的数量加1,便于他人借阅,假设所借图书超出限制归还的期限应缴纳罚款金额,并在还书表中增加借书历史信息。还书操作代码:voidCLibraryView:IOnReturnsys()/响应还书操作模态对话框CReturnDlgretdlg;retdlg.DoModalO;voidCReturnDlg:OnReturnO/还书操作CStringeditl,edit2,str,strl,str2,Str3;定义变量CTimetI;intsuc=O,success=O;if(m_jret.IsOpenO)"翻开数据库借书表m_jret.CloseO;m_jret.Open();if(!m_jret.CanUpdate()AfxMessageBox(_T("无法完成还书功能!");if(m,ret+IsOpenO)/翻开数据库还书表inret*CloseO:mret.Open();if(!m_ret.CanUpdate()AfxMessageBox(_TC无法完成还书功能!");CTimetime=CTime:IGetCurrentTimeO;获得系统当前时间UpdateDataO;GetDlgItemText(TDC_EDIT2,editl);获得编辑框中的内容GetDlgItemText(IDCEDIT3,edit2);m_jret,MoveFirst();while(!m_jret.TsEOFO)/判断是否到最后一条记录m_jret.m_reader_code.Replaced"");/合并空格m_jret,m_book_code.Replace(*二""):tl=m_jret.m_return_date;suc=l;break;elsem_jret.MoveNext();下移一条表中记录if(suc=l)mret.MoveLast();m_ret.AddNewO;"在还书表中增加借书历史记录m_ret.m_reader_code=m_returnl;m_ret»m_book_code=m_return2;str=m_ret.m_book_code;m_ret.m_return_date=time;strl=m_ret.m_return_date.FormatCT(*%Y-%m-%d%H:嬲:S");时间类型转换为字符串类SetDlgItemText(TDC_EDIT4,strl);m_ret.m_limite_date=11;str2=m_ret.m_limite_date.Format(_TC*%Y-%m-%d%H:%M:%S");SetDlgItemText(IDC_EDIT5,str2);CTimebegin=m_ret.m_return_date;CTimeend=m_ret.m_limite_date;intyl=begin+GetYearO;获得年inty2=end.GetYearO;intml=begin+GetMonthO/获得月intm2=end.GetMonthO;intdl=begin.GetDayO;/获得日intd2=end.GetDay();intnum=(y2*365+m2*30+d2*1)-(y1*365÷m1*30÷d1*1);floatmon;mon=num*0三1-3;"计算罚金m_ret.m_punish=mon;str3+Format(*%f,m_ret,m_punish):SetDlgItemText(TDC_EDTT6,str3);mjret.UPdate();MessageBox("还书成功!");met.CloseO;关闭数据库还书表m_jret.MoveFirst();while(!m-jret÷IsEOF()m_jret.m_reader_code.ReplaceC","");m_jret.m_book_code,Replace("*,"");if(m-jret÷m_reader_code=editl&&m-jretfm_book_code=edit.2)mjret,DeleteO:"删除借书表中的信息break;elsem_jret.MoveNext();m_jret.CloseO;/关闭借书表elseMessageBox("归还失败!");if(m_brct.IsOpen()翻开图书表m_bret.CloseO;elsem_bret.Open();if(!m_bret.CanUpdate()AfxMessageBox(_T不能完成借书功能!");elsembret.MoveFirst();WhiIe(!m_bret,IsEOF()m_bret.mbookcode.Replace(*",*");if(m-bret÷m_book_codeI=str)mbret.MoveNext();elsesuccess=l;break;if(success=!)m_bret.Edit();m_bret.m-num=rm-bret.m_num+l:/图书表中对应图书数量加1m_bret.Update();m_bret.CloseO;/关闭图书表m_prt->Tnvalidate();3、续借操作:续借操作界面;图10续借操作界面图续借操作功能:当用户借阅图书后,如需延长借阅日期那么可使用此功能续借图书。续借操作代码:voidCLibraryView:IOnReborrowbook()响应续借操作模态对话框CReborrowDlgreborrowd1g;reborrowdlg.DoModal();voidCReborrowDlg:OnReborrow()/续借操作CStringeditl,edit2;定义变量CTimetime;intin;BOOLsue;if(m_rbet.IsOpenO)/翻开数据库借书表m_rbet.CIQSe();m_rbet.OpenO;if(!m_rbet.CanUpdate()AfxMessageBoxCTC无法修改数据库记录");elseGetDlgItemText(TDC_EDIT1,editl);获得编辑框的内容GetDlgTtemText(IDC_EDIT2,edit2);m_rbet.MoveFirst();whiIe(!mrbet÷IsEOFO)m_rbet.m_reader_code.Replace(*");合并空格m_rbet.m_book_code.Replace("*,"");if(m_rbet.m_reader_code!=editl&&m_rbet.m_book_code!=edit2)m_rbet.MoveNext();elsesuc=true;break;if(sue)m_rbet.Edit();time=m_rbet,m_return_date;if(time.GetMonthO-2)m=28;elseif(time.GetMonth()=4time.GetMonth()=61time.GetMonthO=91time.GetMonth()=11)m=30;elsem二31;CTimeSpantmsp(m,O,0O);time=time+tmsp:m_rbet.m_return_date=time:/续借一个月m_rbet.UpdateO:elseMeSSageBOXc无此图书或学号,请重新输入!Q;m_rbet.CloseO;MessageBox("续借成功!");m_prbt->InvalidateO;/重绘窗口4,查询操作:查询操作界面;图11查询操作界面图查询操作功能:查询借书表中读者己借的图书信息。查询操作代码:voidCLibraryView:OnChecksysOCcheckDlgchedlg;Chedlg.DoModal();voidCCheckDlg:OnCheckO查询读者借书信息CStringeditl,strl,str2;定义变量intsuc=O;if(m_cet.IsOpenO)"翻开数据库借书表m_cet.CloseO;elsem_cet.OpenO;if(!m_cet,CanlJpdateO)AfxMessageBox(_T("无法查询数据库记录");GetDlgltemText(TDCEDIT5,editl);获得编辑框中的内容m_cet*MoveFirstO;WhiIe(!m_cetJsEOF()m_cet*m_reader_code.Replace(*MM);合并空格if(m_cet+m_reader_code!editl)比拟借书证号是否匹配meet*MoveNext();Elsesuc=1break;if(suc=l)/假设匹配那么返回借书信息SetDlgItemText(IDCEDITl,m_cet.mreadercode);SetDlgTtemText(DC-EDTT2,m_cet.m_book_code);strl=mcet.m_borrow_date.Format(_T(z"%Y-%m-%d%H:%M:%S*);SetDlgItemText(TDC_EDIT3,strl);str2=m_cet.m_return_date.Format(_TC"%Y-%m-%d%H:%M:%S*);SetDlgItemText(IDC_EDIT4,str2);UpdateDataO;elseMessageBox,此同学未借书或无此学号,请重新输入!");m_cet.CloseO;/关闭数据库借书表m_pct->Invalidate():重绘窗口关于系统:关于系统界面:图12关于系统界面图关于系统的功能:介绍开发环境和运行环境。关于系统的代码:voidCLibraryView:OnHelpdlgOCTntroDlgintrodlg;introdlg.DoModal();4系统测试4.1借书操作测试:测试方法:输入一读者表中存在的借书证号和一图书表中存在的图书编号点击借书进行测试,假设提示借书成功信息,且借书表中对应的添加了一条新纪录,同时图书表对应图书编号的图书数量减1,假设以上两条均已实现,那么证明借书操作正确,否那么借书操作不正确。测试数据:以借书证号:OOOOh图书编号:55555为例,测试结果如下:图13借书操作测试界面图经查看表,执行借书操作前,图书表中图书编号为55555的图书数量为4,执行借书操作后此编号的图书数量为3,且借书表中对应增加了一条信息。测试结论:经反复测试由测试数据可知:借书操作功能已经实现。4.2还书操作测试:测试方法:输入一借书表中的借书证号和对应的图书编号点击还书进行测试,假设提示还书成功信息,且查询还书表中对应的添加了一条新纪录,同时图书表对应图书编号的图书数量是否加I,并且借书表中对应此条信息已经删除,假设以上三条均已实现,那么证明还书操作正确,否那么还书操作不正确。测试数据:以借书证号:OOOOh图书编号:55555为例,测试结果如下:图14还书操作测试界面图经查看表,执行还书操作前,图书表中图书编号为55555的图书数量为3,执行借书操作后此编号的图书数量为4,且借书表中对应以上借书证号和图书编号的信息己经删除,同时在还书表中增加了一条对应的信息。测试结论;经反复测试由测试数据可知:还书操作功能已经实现。4.3续借操作测试:测试方法:输入一借书表中的借书证号和对应的图书编号点击续借进行测试,假设提示续借成功信息,并且借书表中的应还日期增加了一个月。那么证明续借操作正确,否那么不正确。测试数据:以借书证号:11111,图书编号:Ulll为例,测试结果如下:图15还书操作测试界面图经查看表,执行续借操作前应还日期为2023-5-22,执行还书操作后应还日期为2023-6-22测试结论:经反复测试由测试数据可知:续借操作功能已经实现。4.4查询操作测试:测试方法:输入一借书表中的借书证号点击查询进行测试,假设在查询系统的编辑框中成功显示查询到的信息,或提示"无此借书证号,请重新输入",那么证明还书操作正确,否那么还书操作不正确。测试数据:以借书证号:00001为例,测试结果如下:图16续借操作测试界面图查询系统的编辑框中成功显示查询到的信息,且按上一条下一条能查看其他信息测试结论:经反复测试由测试数据可知:查询操作功能已经实现。5个人体会学校为了提高我们的实践能力,让我们学以致用,能灵活运用所学的知识进行编程实现一些小的程序,特安排我们进行为期两周的数据库的课程设计,并安排了指导老师帮助辅导,让我们在标准化、严谨化、实用化上面有了很大进展。通过本次数据库课程设计,我掌握了用ViSUalC+作为前台语言对数据库的操作方法,例如:增加数据库记录的AddNeW()方法,删除数据库记录的Delete()方法以及修改数据库记录的Edito方法等。明白了定义一些变量或对象时一定要注意它是否包含这个类的头文件。假设未包含那么一定要手工将头文件包含进来。例如:在类CBCrreWDIg中定义变量CLibraryView*m_pbt;时一定要在这个类中增加头文件#include"LibraryView.h",否那么将会出现错误。知道了视图类和文档类相关联的方法。同时经过学习知道了很多控件的使用方法。在此次图书管理系统的开发过程中,也遇到了许多的问题比方:数据库连接错误,对象方法名搞不清,控件其属性理解不到位,但经过认真思考并在老师和同学的帮助下顺利完成了本次设计,这次设计我从中学到了很多东西。总之,在通过真正动手之后,我ViSUaIC+语言设计和有关它的操作方面都获益匪浅,但离真正的系统开发软件设计还是很有差异的,需要我们不断学习新的知识扩充自己才能做好这一工作。学无止境,我们现在了解的东西还很少,更别说很好的掌握自己的专业知识,要谦虚的积极认真学习,不断的增强自身的能力提高个人素质,向一个真正的软件人开展。

    注意事项

    本文(图书管理系统课程设计说明书.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开