图书信息管理系统说明书_第1页
图书信息管理系统说明书_第2页
图书信息管理系统说明书_第3页
图书信息管理系统说明书_第4页
图书信息管理系统说明书_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 *实践教学* 兰州理工大学计算机与通信学院2014年秋季学期 面向对象 课程设计题 目: 图书信息管理系统 专业班级: 物联网一班 姓 名: 陈昱溪 学 号: 13280132 指导教师: 马维俊 成 绩: 31前言随着各高等院校的规模不断扩大,图书馆的藏书、管理人员、读者的数量也越来越多,图书管理涉及到大量的数据处理,传统的人工系统已经不能完成庞大的数据处理,因为图书的情况是随时改变的,因此必须对图书进行动态的管理,而这对于管理人员来说是一件比较复杂的事情。因此,为方便对图书馆书籍、读者资料、借还书等进行高效的管理。因此设计一款图书馆信息管理系统可以提高对图书的管理。在设计的过程中运用c+

2、语言可以较便捷的设计出这样一款软件。目 录摘 要3第一章 系统总体设计41.系统功能模块图42.各类间关系4第二章 详细设计5第三章 系统测试71.测试方法:用实际数据进行测试72.测试用例73.测试结果7第四章 软件使用说明书14总 结15参考文献16致谢17 附录.18 摘 要随着各高等院校的规模不断扩大,图书馆的藏书、管理人员、读者的数量也越来越多,图书管理涉及到大量的数据处理,传统的人工系统已经不能完成庞大的数据处理,因为图书的情况是随时改变的,因此必须对图书进行动态的管理,而这对于管理人员来说是一件比较复杂的事情。因此,为方便对图书馆书籍、读者资料、借还书等进行高效的管理。提高业务流

3、程效率,让管理员从繁重的工作中解脱出来,使管理员在使用一个软件以后能极其容易地对所有图书进行管理,并且准确无误,轻松自如。因此开发一个图书管理系统是当务之急,也是本论文选题的重要意义和研究宗旨。总之,建立图书馆的计算机自动化管理系统,不但可以大大提高图书流通率,而且推动了社会文化生活。关键词:图书管理;面向对象;自动化管理。第一章 系统总体设计图书管理系统是一套功能强大、操作简便而又实用的图书管理软件,它可以被广泛的应用于各种类型的图书馆中。开发此系统的目的为了实现图书管理工作的系统化,规范化和自动化,为图书管理提供便利。确定了该系统需实现以下功能:(1)实现对图书信息的添加、删除、查询、修改

4、等操作;(2)实现对读者信息的添加、删除、查询、修改等操作;(3)实现图书借阅功能;(4)实现图书归还功能;1.系统功能模块图根据用户需求,本系统将主要实现以下功能,如图1-1所示:图书信息录入归还图书图书信息管理系统读者信息录入图书信息查询读者信息查询借阅图书图1-1 系统功能模块图其中:信息录入:包括对学生基本信息的录入,图书基本信息的录入等。信息查询:对读者基本信息的查看和图书基本信息的查看。2.各类间关系本系统共使用两个类:book类,reader类,如图1-2所示图书信息管理系统信息查询图书借阅信息录入读者信息查看归还图书图书信息查看借出图书输入图书信息输入读者信息图1-2第二章 详

5、细设计1、类的设计、Book类的设计(内部函数流程图),如图2-1所示Class Book获取图书类型获取书名获取图书编号获取删除标志设置书名设置类型删除图书增加图书输出图书图2-1、BDatabase类的设计,如图2-2所示Class BDatabase图书记录删除全部记增加记录查找图书记图书库(函数)图2-2、主函数流程图,如图2-3所示输入2:读者管理输入3:借阅图书输入0;退出输入1:图书管理输入4:归还图书图2-3第3章 系统测试1.测试方法本阶段完成的任务是对系统框架的编码有效性进行检验校对,对在程序运行的过程中出现的问题及相关功能运行中显现缺陷,及时对代码进行修改和完善,使程序达

6、到课程设计的基本要求。2.测试用例(1)借出(归还)一本图书:编号:1 书名:陌生人 作者:花开半夏 出版社:青春出版社(2)添加一本图书:编号:9 书名:爵迹 作者:郭敬明 出版社:上海文艺出版社(3)添加一个读者:学号:7 姓名:陈昱溪 专业:物联网 3.测试结果1.借出一本图书:(1)进入主界面,如图3-1所示 图3-1(2)选择功能3,如图3-2所示图3-2(3)进入借阅图书界面,如图3-3所示图3-3(4)图书借阅成功,如图3-4所示 图3-4 (5)查看书架,陌生人已借出,如图3-5所示图3-52.归还图书(1)进入选择界面,选择功能4,如图3-6所示图3-6(2)进入归还图书界面

7、,输入还书信息,如图3-7所示图3-7(3)图书归还成功,如图3-8所示图3-8(4)查看书架,陌生人已在架,如图3-9所示图3-93.添加一本图书(1)进入主界面,选择功能1图书管理,如图3-10所示图3-10(2)输入管理员密码,如图3-11所示图3-11(3)进入图书管理主界面,选择功能1,如图3-12所示图3-12(4)进入图书添加界面,输入添加信息,如图3-13所示图3-13(5)图书添加成功界面,如图3-14所示图3-14(6)查看书架,爵迹已添加,如图3-15所示图3-154.添加读者(1)进入主界面,选择功能2读者管理,如图3-16所示图3-16(2)输入管理员密码,如图3-1

8、7所示图3-17(3)进入读者管理主界面,选择功能1,如图3-18所示图3-18(4)输入读者信息,添加读者成功,如图3-19所示 图3-19(5)对比读者信息,可知“陈昱溪”已添加成功,如图3-20,3-21所示、图3-20 图3-21第四章 软件使用说明书 按照主界面的提示行操作,根据提示输入要执行的名令前的代码,然后进入付界面根据付界面的提示内容进行下一步操作。注意在输入数据是要严格按照提示进行操作否则会进入死循环。在用完该系统后注意要推出系统。总结:本系统实现了图书管理系统的典型功能,包括查询所有记录的信息,添加查找等功能,而且具有较高的安全性。但是因为自己独立完成且能力有限,还有部分

9、功能未能完善,例如对书名,编号的排序等等,这些局限性都是有待逐步完善的方面。而且通过这次课程设计,我培养了自己对C+编程的兴趣,编程能力也有所提高,但仍存在许多不足,不能独自写出功能很齐全的代码,写代码要参考很多资料,所以今后应培养自己独立写代码的能力。通过这次的课程设计,让我充分的感觉到了要自己设计一个程序是多么的难,以及学习好c+是多么的重要。在这个程序的设计过程中,我清楚的意识到自己的水平有多么的薄弱,课程的知识学得有多么的不扎实。看网上的例子好像觉得也没那么难,自己一上机实际操作就出现了很多问题,调试的时候系统总是在报错,还有很多警告,每增加一个函数就要调试好久,有时候应为少了一个大括

10、号或是分号,导致要找很久很久。虽然系统可以运行,也具有了一些基本的功能,但我意识到了自己有太多的不足。1、通过实验加深了对c+的了解,在程序设计上提高了自己的动手能力,在实践中增强了自己的编程水平。2、但是因为自己独立完成且能力有限,还有部分功能未能完善,例如对书名,编号的排序等等,这些局限性都是有待逐步完善的方面。3、而且通过这次课程设计,我培养了自己对C+编程的兴趣,编程能力也有所提高,但仍存在许多不足,不能独自写出功能很齐全的代码,写代码要参考很多资料,所以今后应培养自己独立写代码的能力。以后还会有很多的课程设计,一定要吸取这次的教训,把知识学懂学透学精,真正的为我所用,这样走上社会我才

11、能真正的发挥所长参考文献1陈维兴 林小茶.C+面向对象程序设计教程.北京: 清华大学出版社,20092张基温.C+程序开发教程. 北京:清华大学出版社,20023吴祖峰 陈文宇 张松梅. C+语言教程. 成都:电子科技大学出版社,20084谭浩强. C语言程序设计(第二版 ). 北京:清华大学出版社,19995温秀梅 丁学钧. C+语言程序设计教程与实验.北京: 清华大学出版社,20086王育坚. Visual C+面向对象编程教程(第2版). 北京:清华大学出版社, 2003致谢短短的两周,面向课程设计结束了。这次的课程设计对我们来说是一次尝试与挑战的过程。在这期间我们有过失望,也有过喜悦,

12、失望是因为它的到来伴随着紧张的考试,喜悦是因为我们收获了好多好多。我想感谢很多人的帮助,首先,是我的老师,因为您的指导和教诲,在设计中我们基本能按照规范的方法和步骤进行,开始对实现图书管理系统问题进行讨论,并查阅有关资料,最后确定设计方案,然后设计并制作;除此之外我要感谢我的同学、朋友,因为他们的帮助,我才完成了这次课程设计,才让我有信心、有勇气去面对实践中遇到的种种困难。在实践过程中我们深刻的认识到类在C+中的重要性。在此请允许我对所有帮助了我的老师、同学、朋友真诚地说一声“谢谢”! 附录:<源程序>#include <iostream> #include <i

13、omanip> #include <string> #include <fstream>#include<windows.h>#include<conio.h>using namespace std;const int maxr=50; const int maxb=50; const int maxbor=5; class Book int flag; int number; /*编号*/ char name20; /*书名*/char author10; /*作者*/ char cbs20; /*出版社*/ int onshelf; /

14、*在架*/ public: Book() char *getname() return name; int getnumber() return number;char *getauthor() return author; char *getcbs() return cbs;int getflag() return flag; void setname(char na) strcpy(name,na); /*拷贝字符串name*/ void setauthor(char au) strcpy(author,au);/*拷贝字符串author*/ void setcbs(char cb) st

15、rcpy(cbs,cb);/*拷贝字符串*/ void delbook() flag=1; void addbook(int n,char *na,char *au,char *cb) flag=0; number=n; strcpy (name,na);strcpy (author,au);strcpy (cbs,cb);onshelf=1; int borrowbook() if (onshelf=1) onshelf=0; return 1; return 0; void backbook() onshelf=1; void disp2() /*显示全部*/ cout<<&q

16、uot; = "<<endl;cout<<setw(6)<<number<<setw(18)<<name<<setw(20)<<author<<setw(20)<<cbs<<setw(10)<<(onshelf=1?"在架":"不在架")<<endl; cout<<" = "<<endl; class BDatabase int top; Book bookm

17、axb; /*图书库函数*/ public: BDatabase() Book b; top=-1; fstream file("book.txt",ios:in); /*打开“book.txt”文件*/ while (1) file.read(char*)&b,sizeof(b); /*读取文件*/if (!file) break; top+; booktop=b; file.close(); /*关闭文件*/int addbook(int n,char *na,char *au,char *cb) /*增加记录*/ Book *p=search(n); if (

18、p=NULL) top+; booktop.addbook(n,na,au,cb);cout<<"添加图书成功!"<<endl;return 1;elsesystem("cls"); cout<<"信息重复,添加失败!"<<endl;return 0; Book *search(int bookid) /*查找书记录*/ for (int i=0;i<=top;i+) if (booki.getnumber()=bookid && booki.getflag()=0

19、) /*字符串比较*/return &booki; return NULL; void bookdata(); void disp2() for (int i=0;i<=top;i+) if (booki.getflag()=0) booki.disp2(); BDatabase() fstream file("book.txt",ios:out); for (int i=0;i<=top;i+) if (booki.getflag()=0) file.write(char*)&booki,sizeof(booki); file.close();

20、 ;void BDatabase:bookdata() int choice=1; char bname30; char aname30;char cname30; int bookid;Book *b; while (choice!=0) cout<<"tt*n"cout<<"tt nn"cout<<"tt 欢迎进入图书管理系统 "<<endl;cout<<"tt 1:添加图书 "<<endl;cout<<"tt 2:删

21、除图书 "<<endl;cout<<"tt 3:查找图书 "<<endl;cout<<"tt 4:显 示 "<<endl;cout<<"tt 0:返 回 "<<endl;cout<<"tt nn" cout<<"tt*n"cin>>choice;system("cls");switch (choice) case 1: cout<<&q

22、uot;输入图书编号:" cin>>bookid; cout<<"输入图书书名:" cin>>bname; cout<<"输入作者名:" cin>>aname; cout<<"输入出版社名称:" cin>>cname;addbook(bookid,bname,aname,cname); break; case 2: cout<<"输入图书编号:" cin>>bookid; b=search(book

23、id); if (b=NULL) cout<<"未找到相关信息资料"<<endl; break; b->delbook();cout<<"成功删除该图书"<<endl;break; case 3: cout<<"输入图书编号:" cin>>bookid; b=search(bookid); if (b=NULL) cout<<"未找到相关信息资料"<<endl; break; b->disp2(); brea

24、k; case 4: disp2(); break; /- -class Reader int flag; int number; char name10; char major10; int borbookmaxbor; public: Reader() char *getname() return name; char *getmajor() return major;int getflag() return flag; int getnumber() return number; void setname(char na) strcpy(name,na); void setmajor(c

25、har m) strcpy(major,m);void delbook()flag=1; void addreader(int n,char *na,char *m) flag=0; number=n;strcpy(name,na);strcpy(major,m);for (int i=0;i<maxbor;i+) borbooki=0; void borrowbook(int bookid) for (int i=0;i<maxbor;i+) if (borbooki=0) borbooki=bookid; return; int backbook(int bookid) for

26、 (int i=0;i<maxbor;i+) if (borbooki=bookid) borbooki=0; return 1; return 0; void disp1() cout<<" = "<<endl;cout<<setw(5)<<number<<setw(10)<<name<<setw(15)<<major<<setw(20)<<" 借书编号 " for (int i=0;i<maxbor;i+) if (bo

27、rbooki!=0) cout<<borbooki;cout<<" "<<endl;cout<<" = "<<endl; ;class RDatabase int top; Reader readmaxr; public: RDatabase() Reader s; top=-1; fstream file("reader.txt",ios:in); while (1) file.read(char *)&s,sizeof(s); if (!file) break;

28、top+; readtop=s; file.close(); int addreader (int n,char *na,char *m) Reader *p=search(n); if (p=NULL) top+; readtop.addreader(n,na,m);cout<<"添加读者成功"<<endl;return 1; elsesystem("cls");cout<<"信息重复,添加失败!"<<endl;return 0; Reader *search(int readerid

29、) for (int i=0;i<=top;i+) if (readi.getnumber()=readerid && readi.getflag()=0) return &readi; return NULL; void disp1() for (int i=0;i<=top;i+) readi.disp1(); void readerdata(); RDatabase() fstream file("reader.txt",ios:out); for (int i=0;i<=top;i+) if (readi.getflag()

30、=0) file.write(char *)&readi,sizeof(readi); file.close(); ; void RDatabase:readerdata() int choice=1;char rname20;char rmajor20;int readerid; Reader *r; while (choice!=0) cout<<"tt*n" cout<<"tt nn"cout<<"tt 欢迎进入读者管理系统 "<<endl;cout<<&quo

31、t;tt 1:添加读者 "<<endl;cout<<"tt 2:删除读者 "<<endl;cout<<"tt 3:查找读者 "<<endl;cout<<"tt 4:显 示 "<<endl;cout<<"tt 0:返 回 "<<endl;cout<<"tt nn"cout<<"tt*n"cin>>choice; system(

32、"cls");switch (choice) case 1:cout<<"输入读者学号:" cin>>readerid; cout<<"输入读者姓名:" cin>>rname;cout<<"输入读者专业:" cin>>rmajor;addreader(readerid,rname,rmajor);break; case 2:cout<<"输入读者学号:" cin>>readerid;r=search(

33、readerid); if (r=NULL) cout<<"未找到相关信息资料"<<endl; break; r->delbook();cout<<"成功删除该读者"<<endl;break; case 3: cout<<"输入读者学号:" cin>>readerid; r=search(readerid); if (r=NULL) cout<<"未找到相关信息资料"<<endl; break; r->dis

34、p1(); break; case 4: disp1(); break; /-/-void homepage() int choice=1,bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b;system("color 1f");while(choice!=0) cout<<"tt*n"cout<<" tt nn"cout<<" tt 亲欢迎使用该图书管理系统 "<<end

35、l;cout<<" tt 注意在输入数据是要严格按照提示进行操作。 "<<endl; cout<<" tt 1:图书管理 "<<endl;cout<<" tt 2: 读者管理 "<<endl;cout<<" tt 3: 借阅图书 "<<endl;cout<<" tt 4: 归还图书 "<<endl;cout<<" tt 0: 退出 (有部分功能尚待提升)

36、"<<endl;cout<<" tt nn"cout<<"tt*n"cin>>choice;system("cls");switch (choice) case 1: int flag;do string password1,password2; char ch,ch1,ch2; cout<<"尊敬的管理员,请输入密码: "<<endl; while(ch1=getch()!=13) password1+=ch1; cout<&

37、lt;"*" cout<<endl; cout<<"请再次输入密码: "<<endl; while(ch2=getch()!=13) password2+=ch2; cout<<"*" cout<<endl; if(password1=password2) flag=0; cout<<endl<<"输入完毕!您输入的是: "<<password1<<endl; else flag=1; system(&quo

38、t;cls"); cout<<"抱歉,您两次输入的密码不一致"<<endl; cout<<"按任意键重新输入"<<endl; ch=getch(); while(flag); system("cls");BookDB.bookdata(); break; case 2: int flag;do string password1,password2; char ch,ch1,ch2; cout<<"请输入密码: "<<endl; whi

39、le(ch1=getch()!=13) password1+=ch1; cout<<"*" cout<<endl; cout<<"请再次输入密码: "<<endl; while(ch2=getch()!=13) password2+=ch2; cout<<"*" cout<<endl; if(password1=password2) flag=0; cout<<endl<<"输入完毕!您输入的是: "<<pa

40、ssword1<<endl; else flag=1; system("cls"); cout<<",抱歉,您两次输入的密码不一致"<<endl; cout<<"按任意键重新输入"<<endl; ch=getch(); while(flag); system("cls");ReaderDB.readerdata(); break; case 3: cout<<" 借书读者学号:" cin>>readerid; c

41、out<<" 图书编号:" cin>>bookid; r=ReaderDB.search(readerid); if (r=NULL) cout<<"抱歉,该读者不存在,不能借书"<<endl; break; b=BookDB.search(bookid); if (b=NULL) cout<<"抱歉,该图书不存在,不能借书"<<endl; break; if (b->borrowbook()=0) cout<<"抱歉,该图书已借出,不

42、支持借阅"<<endl; break; r->borrowbook(b->getnumber();cout<<"借阅图书成功"<<endl;break; case 4: cout<<"还书读者学号:" cin>>readerid; cout<<" 图书编号:" cin>>bookid; r=ReaderDB.search(readerid); if (r=NULL) cout<<",抱歉,不存在该读者,不能还书"<<endl; break; b=BookDB.search(bookid); if (b=NULL) cout<<"抱歉,不存在该图书,不能还书"<<endl; break; b->backbook(); r->backbook(b->g

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论