版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.科技大学图书馆信息管理系统学生院系:数学与计算科学学院学生班级:12级信计3班学生**:********学生:*****指导教师:建湘老师制作日期:13年12月09日-.z.目录前言........................................................2需求分析....................................................2模块功能简介................................................3各模块的设计思想............................................4详细设计....................................................5登陆界面的实现...........................................5信息登记的实现...........................................8信息的输出实现...........................................12信息查询的实现...........................................17信息清除的实现...........................................24退出系统的实现...........................................24图片背景的添加...........................................25六、测试分析...................................................27七、心得体会...................................................27致...........................................................28参考文献.......................................................28附录(主要源程序的头文件).......................................29科技大学图书馆信息管理系统(科技大学中国1207020330)摘要本次课程设计任务是通过编写一个图书馆信息管理系统,学习用VisualC++6.0开发简单的管理系统。采用VisualC++6.0软件为主要开发工具。本系统主要完成对图书馆借阅情况和图书馆书籍归还情况的管理,包括借阅信息的登记、查询、界面的清除以及归还信息的登记、查询、界面的清除等。系统还可以完成对图书资料读者资料的浏览等功能。由于我们还没有学习数据库,所以在有关大量借阅信息存储时,此系统显得心有余而力不足。系统的核心是引用I/O流和文本处理来存储和调用图书馆的借阅归还信息,每一个动作都可能影响到其它的功能,还有数据的改变,当完成对数据的操作时系统会自动地完成数据库的修改。关键字:VC++6.0;图书馆信息管理系统;模块化设计;i/O流;一、前言使用计算机管理图书馆信息,不但可以大量节省时间、人力、财力、物力,而且能更全面有效地掌握图书馆的基本情况,及时获取最新而又准确的资料和信息。此课程设计就是这样一个管理图书馆借阅归还信息的系统,其功能与实现方面有比较好的针对性和实用性。软件是在Visualc++平台上开发的,采用i/o流文本存储数据和信息,作为虚拟的数据库。利用i/o流文本操作语言,能比较方便地实现对借阅归还信息的操作与管理。二、需求分析VisualC++6.0的MFC提供了大量的类库函数强大支持。开发一个图书馆信息管理系统,可以实现借阅归还信息的管理。并提供新信息录入,现有借阅查询归还查询功能,对记录的输出等工作。图书馆管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据信息的建立和保存以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。三、模块功能简介第一次做这种比较大型的软件,不足之处在所难免,但以后一定会不断改进,以下为系统主要功能流程,如图(0)所示。图书馆信息管理系统运行系统图书馆信息管理系统运行系统输入用户名和密码输入用户名和密码信息查询登记清除退出信息查询登记清除退出归还查询借阅查询确定退出清除界面归还信息借阅信息归还登记归还查询借阅查询确定退出清除界面归还信息借阅信息归还登记借阅登记图(0)图(0)四、各模块的设计思想整个系统,采用文件存储信息,采用fwrite()余fread()函数实现信息的整块写入与读出;编写*ieruN()与duquN()函数用来记录信息的个数和读出信息的个数方便几个模块的实现模块模块的设计简介登陆系统界面输入用户名和密码,采用if语句判断,正确进入系统,错误则提示错误信息并重新输入密码,3次错误系统自动退出。读者借阅登记调用一个对话框输入借阅信息,并调用FileE*ception类用以实现信息的储存。读者归还登记调用一个对话框输入归还信息,并调用FileE*ception类用以实现信息的储存。读者借阅信息创建一个文件流对象,从文件读入借阅信息,将借阅信息输出,最后关闭文件。读者归还信息创建一个文件流对象,从文件读入归还信息,将归还信息输出,最后关闭文件。读者借阅查询调用一个对话框输入**,利用查询函数搜索储存文本的每一行,并比较所输入的**与每一行“,”前的容是否一致,若一致,则选择输出。读者归还查询调用一个对话框输入**,利用查询函数搜索储存文本的每一行,并比较所输入的**与每一行“,”前的容是否一致,若一致,则选择输出。清除界面调用函数Invalidate()刷新主界面已达到清除界面的作用退出系统调出退出系统对话框理论支撑:C、C++程序设计语言、VC6.0软件五、详细设计1、登陆界面的实现运行系统就有个用户名和密码输入窗口要求输入用户名和密码,相当于系统的门户正确输入才能进入系统,有三次输入机会。打开软件就弹出如图(1)的窗口要求输入密码和用户名。初始用户名为zc*初始密码为zc*(彩霞的首字母小写)。图(1)用户名和密码正确则进入系统,弹出消息盒子如图(2)窗口。图(2)密码错误则弹出如图(3)对话框,要求重新输入,点击确定进行再次的输入。图(3)连续输入错误三次,系统则弹出如图(4)对话框自动退出图(4)点击确定退出系统。如登录成功则进入系统如图(5)。图(5)登录界面的类为CHNKJD*TSG,具体实现为:在12信计0330彩霞View.cpp中调用CHNKJD*TSG。在12信计0330彩霞View.cpp中添加头文件*include"HNKJD*TSG.h"、*include"TC.h"、*include"ZDTC.h"、然后在CMy120330View::CMy120330View()中实现相关代码实现如下:CMy120330View::CMy120330View(){ //TODO:addconstructioncodehere CHNKJD*BTSGa; for(inti=1;i<4;i++) { if(a.DoModal()==IDCANCEL) //按退出键询问“是否确定退出系统!” { MessageBo*("确定退出"); e*it(0); } else { if(a.m_str_Srmima=="zc*"&&a.m_str_Yonghuming=="zc*") {MessageBo*("欢迎进入图书馆管理系统"); break;} else //若错误,请求重新输入 { MessageBo*("重新输入"); if(i==3) //输入三次错误系统自动退出 { CZDTCd; d.DoModal(); e*it(1); } } } } }2、信息登记的实现读者借阅登记打开系统的登记处理下滑菜单,点击借阅登记弹出如图(6)对话框。完成相关容输入后,点击确定。图(6)借阅登记对话框的类为CJYDJ,对应的函数中的类名也为CJYDJ,具体实现为:在12信计0330彩霞View.cpp中调用CJYDJ。在12信计0330彩霞View.cpp中添加头文件*include"JYDJ.h",然后在CMy120330View::OnMenuitemJydj()中实现。相关代码实现如下://///////////////////////////////////////////////////////////////////////////借阅登记类voidCMy120330View::OnMenuitemJydj(){ //TODO:Addyourmandhandlercodehere boolflag=1;while(flag==1) { CJYDJs;//用CJYDJ这个类创建一个对象s intg=s.DoModal(); fstreamofile; //创建一个输出文件流对象ofile.open("借阅登记.t*t",ios_base::app|ios::out); if(g==IDOK){ stringap; ap=s.m_str_*ingming;stringad;ad=s.m_str_Sianhao; stringab; ab=s.m_str_Shuming;stringac;ac=s.m_str_*uehao; ofile<<ac<<","<<"书籍编号:"<<ad<<":"<<ap<<"书名:"<<ab<<endl;ofile.close(); MessageBo*("信息存储完毕!"); break; } elseflag=0;}}b)读者归还登记打开系统的登记处理下滑菜单,点击归还登记弹出如图(7)对话框。进行相关信息的输入后,点击确定。图(7)归还登记对话框的类为CGHDJ,对应的函数中的类名为CGHDJ,具体实现为:在12信计0330彩霞View.cpp中调用CGHDJ。在12信计0330彩霞View.cpp中添加头文件*include"GHDJ.h",然后在CMy120330View::OnMenuitemGhdj()中实现。相关代码实现如下://///////////////////////////////////////////////////////////////////////////归还登记类voidCMy120330View::OnMenuitemGhdj(){ //TODO:Addyourmandhandlercodehere boolflag=1;while(flag==1) { CGHDJs; intg=s.DoModal(); fstreamofile; //创建一个输出文件流对象ofile.open("归还登记.t*t",ios_base::app|ios::out); if(g==IDOK){ stringap; ap=s.m_str_*ingming;stringad;ad=s.m_str_Sianhao; stringab; ab=s.m_str_Shuming;stringac;ac=s.m_str_*uehao; ofile<<ac<<","<<"书籍编号:"<<ad<<":"<<ap<<"书名:"<<ab<<endl;ofile.close(); MessageBo*("信息存储完毕!"); break; } elseflag=0;}}3、信息的输出实现a)读者借阅信息输出打开系统的信息处理下滑菜单,点击借阅信息弹出如图(8)对话框。图(8)借阅信息输出的类为CJY**C*,具体实现为:在12信计0330彩霞View.cpp中调用CJY**C*。在12信计0330彩霞View.cpp中添加头文件*include"JY**C*.h",然后在CMy120330View::OnMenuitemJy**()中实现。相关代码实现如下:///////////////////////////////////////////////////////////借阅信息类voidCMy120330View::OnMenuitemJy**(){ //TODO:Addyourmandhandlercodehere ifstreaminfile("借阅登记.t*t",ios::in); //创建一个输入文件流对象 try{ if(!infile) throwFileE*ception();}catch(FileE*ceptionfe){ //e*ceptionhandlerMessageBo*(fe.what()); //"<<fe.what()<<'\n'; e*it(0); } //从文件读入借阅信息 CClientDCdc(this); charline[101]; for(inti=0;i<400;i++) { infile.getline(line,100); CStringc_str; c_str.Format("%s",line); //转换为字符串 dc.Te*tOut(100,80,"借阅登记输出:"); dc.Te*tOut(100,100+30*i,c_str); } infile.close(); }b)读者归还信息输出打开系统的信息处理下滑菜单,点击归还信息弹出如图(9)对话框。图(9)归还信息输出的类CGH**C*,具体实现为:在12信计0330彩霞View.cpp中调用CGH**C*。在12信计0330彩霞View.cpp中添加头文件*include"GH**C*.h",然后在CMy120330View::OnMenuitemGh**()中实现。相关代码实现如下://////////////////////////////////////////////////////归还信息类voidCMy120330View::OnMenuitemGh**(){ //TODO:Addyourmandhandlercodehere ifstreaminfile("归还登记.t*t",ios::in); //创建一个输入文件流对象 try{ if(!infile) throwFileE*ception();}catch(FileE*ceptionfe){ //e*ceptionhandlerMessageBo*(fe.what()); //"<<fe.what()<<'\n'; e*it(0); } //从文件读入借阅信息 CClientDCdc(this); charline[101]; for(inti=0;i<400;i++) { infile.getline(line,100); CStringc_str; c_str.Format("%s",line); //转换为字符串 dc.Te*tOut(100,80,"归还登记输出:"); dc.Te*tOut(100,100+30*i,c_str); } infile.close(); }4、信息查询的实现读者借阅查询打开系统的查询处理下滑菜单,点击借阅登记弹出如图(10)对话框。输入**,点击确定。图(10)弹出如图(11)对话框确认信息查询,点击确认,实现信息查询图(11)弹出如图(12)对话框,出现用户需查询的信息。图(12)若输入的**无对应容,系统将弹出如图(13)“查无此人”对话框。图(13)借阅查询的对话框类为CJY**C*,在函数中对应的类为CJYC*,具体实现为:在12信计0330彩霞View.cpp中调用CJYC*。在12信计0330彩霞View.cpp中添加头文件*include"JYC*.h",然后在CMy120330View::OnMenuitemJyc*()中实现。相关代码实现如下:///////////////////////////////////////////////////////////借阅查询类voidCMy120330View::OnMenuitemJyc*(){ //TODO:Addyourmandhandlercodehere ifstreaminfile("借阅登记.t*t",ios::in); //创建一个输入文件流对象 try{ if(!infile) throwFileE*ception();}catch(FileE*ceptionfe){//e*ceptionhandlerMessageBo*(fe.what());//"<<fe.what()<<'\n'; e*it(0); } CJY**C*a; if(a.DoModal()==IDOK) { charline[100][101]; BOOLflag=FALSE; for(inti=0;i<100;i++) { infile.getline(line[i],100); CStringname_str,c_str; c_str.Format("%s",line[i]);//转换为字符串 name_str=c_str.Left(c_str.Find(","));//提取** if(!name_str.pare(a.m_str_*uehao))//与查询名比较 { flag=TRUE; name_str+="被查询到,要显示该人员信息吗?";if(MessageBo*(name_str)!=IDYES) { //CInfoDisplayDlgpDlg;//声明显示对话框对象 //pDlg.m_strName=ed.m_look //pDlg.m_strInformation=c_str; MessageBo*(c_str);//调用显示对话框 }; break; } } if(flag==FALSE)MessageBo*("查无此人!"); } infile.close(); }读者归还查询打开系统的查询下滑菜单,点击归还查询弹出如图(14)对话框。图(14)若输入的**有对应信息,则系统弹出如图(15)对话框显示查询结果:图(15)若输入**无归还登记信息,系统将弹出如图(16)“查无此人”对话框。图(16)归还查询的对话框类为CGH**C*,在函数中对应的类为CGHC*,具体实现为:在12信计0330彩霞View.cpp中调用CGHC*。在12信计0330彩霞View.cpp中添加头文件*include"GHC*.h",然后在CMy120330View::OnMenuitemGhc*()中实现。相关代码实现如下://////////////////////////////////////////////////////////归还查询类voidCMy120330View::OnMenuitemGhc*(){ //TODO:Addyourmandhandlercodehere ifstreaminfile("归还登记.t*t",ios::in); //创建一个输入文件流对象 try{ if(!infile) throwFileE*ception();}catch(FileE*ceptionfe){//e*ceptionhandlerMessageBo*(fe.what());//"<<fe.what()<<'\n'; e*it(0); } CGH**C*a; if(a.DoModal()==IDOK) { charline[100][101]; BOOLflag=FALSE; for(inti=0;i<100;i++) { infile.getline(line[i],100); CStringname_str,c_str; c_str.Format("%s",line[i]);//转换为字符串 name_str=c_str.Left(c_str.Find(","));//提取** if(!name_str.pare(a.m_str_*uehao))//与查询名比较 { flag=TRUE; name_str+="被查询到,要显示该人员信息吗?";if(MessageBo*(name_str)!=IDYES) { //CInfoDisplayDlgpDlg;//声明显示对话框对象 //pDlg.m_strName=ed.m_look //pDlg.m_strInformation=c_str; MessageBo*(c_str);//调用显示对话框 }; break; } } if(flag==FALSE)MessageBo*("查无此人!"); } infile.close(); }5、信息清除的实现清除界面一次偶然的机会注意到当界面刷新时,界面中的容会消失,故想到实现此功能,上网查到相关函数得以实现。当主界面有容想要清空时点击清除下滑框里的清除界面可实现目的清空界面在函数中的类为CQKJM,具体实现为:将其映射到12信计0330彩霞View.cpp中,然后在CMy120330View::OnMenuitemQcjm()中实现。相关代码实现如下://///////////////////////////////////////////////////////////////////////////刷新以清除界面voidCMy120330View::OnMenuitemQcjm(){ //TODO:Addyourmandhandlercodehere Invalidate(); //窗口刷新函数}6、退出系统的实现点击退出下滑框里的退出系统,弹出如图(17)对话框。点击确认退出则推出当前系统。图(17)实现退出的类为CTC,具体实现为:在12信计0330彩霞View.cpp中调用CTC。在12信计0330彩霞View.cpp中添加头文件*include"TC.h",然后在CMy120330View::OnMenuitemTc()中实现。相关代码实现如下:///////////////////////////////////////////////////////////退出系统类voidCMy120330View::OnMenuitemTc(){ //TODO:Addyourmandhandlercodehere CTCa; if(a.DoModal()==IDOK) e*it(1);}7、图片背景的添加a)找到VC上部的“插入”选择“资源”选项,出现如图(18)界面图(18)选择“引入”,找到格式为BMP的图片并引入。b)在对话框设计页面中把控件中的图像选项拖到对话框中,打开其属性如图(19),并在常规属性类型中选择位图,在图像下拉框中选择引入的位图。图(19)c)选好位图后,将对话框中的静态文本及编辑框的属性中的扩展样式均设为透明状态,如图(20)图(20)六、测试分析经过测试,该系统能够较好地完成需求分析中的任务,如借阅归还信息的登记、查询、信息输出,其中,借阅查询和归还查询这一块仍然存在很多问题。(1)有同一**(同一人)但借阅信息不同,在查询时只查询显示第一次借阅记录或归还记录。(2)当读者经过图书的借阅和归还之后信息未删减。借阅信息和归还信息没有建立起相应的桥梁关系,有待进一步完善。另外,系统的可扩展性不强。功能的实现也不太完善。没有涉及容的删除和修改,代码的处理也不是很精简,有待进一步改善。并且没有大型的支持大容量数据的后台,只有利用文本i/o处理来实现所以数据的性和安全性不高,希望以后学习数据库后开发出更好更优化的后台来实现科技大学图书馆信息的管理。七、心得体会说实话,对于一个电脑基础知识很差的我来说,第一次遇到这么大型的程序设计问题,虽然老师讲过类似的管理系统,但开始还是无从下手。经过两个星期的设计和开发,系统基本开发完毕。在本次课程设计中困难遇到不少,比如文本文件的操作,i/o流,s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院迁建项目冬季施工安全专项方案
- 儿科住院病历模板范文
- 地源热泵空调系统施工方案
- 碧桂园项目地下室防水施工方案
- 2026四川省国家工作人员学法用法考试复习重点试题(含答案)
- (完整版)视频监控系统施工组织设计方案
- 标准清水混凝土施工方案
- 技术等级考试(农艺工中级)考前模拟试题及答案汇-总
- 农田水利试题及答案
- 关于减肥的考试题及答案解析
- DG-T 222-2019水产养殖水质监控设备
- 食用油厂生产管理制度
- 多元解纷培训课件
- 橡胶制品生产工岗前技术评优考核试卷含答案
- 2025年银行担保品评估专项训练测试试卷(含答案)
- 2025版骨质疏松症症状解读及护理方法
- 实验室安全管理方针和目标
- (正式版)DB65∕T 4755-2024 《模拟高原低压缺氧环境习服训练技术规范》
- 煤质化验知识培训课件
- 跑水应急知识培训内容课件
- 矿山设备安全知识培训课件
评论
0/150
提交评论