1、图书馆管理系统设计报告(此文档为word格式,下载后您可任意编辑修改!)第一章 绪论11 课程设计的目的课程设计是课程教学必不可缺的一个重要环节,可加深学生对该课程所学内容的进一步的了解与巩固,是将计算机课程与实际问题相连接的关键步骤。通过课程设计,能够提高学生的分析问题,解决问题,要能很好的完成课程设计,要求我们必须掌握在学习中学到的知识,所以要我们对课本中学的知识要熟悉且掌握,从而运用所学知识解决实际问题的能力,因而必须给予足够的重视。12 课程设计的背景和意义121 课程设计的背景1. 理论研究基础(1)C+语言的基本知识和技能,如:类与对象,指针,输入/输出流,文本文件的建立保存;(2
2、)面向对象程序设计的基本思路和方法。2. 技术层面的支持(1)研究这些结构的存储、显示,并有查找、添加、删除、修改、查询、统计、保存信息、载入等功能。(2)类定义、类对象、继承、组合、多态和文件的输入/输出等内容。122 课程设计的意义(1)通过课程设计的综合训练,培养了学生分析解决实际问题和编程等实际动手能力。帮助了同学系统的掌握C+课程的主要内容。(2)综合实际应用的需求是课程设计既覆盖教学所要求的知识点,有接近工程的实际需求,训练自己实际分析问题和解决问题以及编程的能力。做到理论结合实际。13 课程设计环境(1)在Microsoft Visual C+ 6.0开发平台上编写程序源代码,修
3、改,增加功能,通过编译、连接,直到完全无误,最终执行程序,反复输入合理的以及不合理的数据进行测试并进一步完善。(2)硬件:学校机房(3)软件:Microsoft Visual C+ 6.0开发平台第二章 需求分析21 问题描述图书馆中的资料很多,如果能分类对其资料流通进行管理,将会带来很多方便,因此需要有一个媒体库管理系统。 图书馆共有三大类物品资料:图书、视频光盘、图画。这三类物品共同具有的属性有:编号、标题、作者、评级(未评级,一般,成人,儿童)等。其中图书类增加出版社、ISBN号、页数等信息;视频光盘类增加出版社、ISBN号、页数等信息;图画类增加出品国籍、作品的长和宽(以厘米计,整数)
4、等信息。22 功能要求(1)基本功能1)添加物品:主要完成图书馆三类物品信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。2)查询物品 可按照三种方式来查询物品,分别为: 按标题查询:输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!”; 按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”; 按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!”;3)显示物品库:输出当前物品库中所有物品信息,每条记录占据一行。4)编辑物品:可根据查询结果对相应的记录进行修
5、改,修改时注意编号的唯一性。5)删除物品:主要完成图书馆物品信息的删除。如果当前物品库为空,则提示“物品库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。6)统计信息输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。例如:总物品数 30图书类 10视频光盘类 15图画类 57)物品存盘:将当前程序中的物品信息存入文件中。8)读出物品:从文件中将物品信息读入程序。(2)扩展功能 在完成以上基本功能的基础上,可自行进行扩展或完善,例如:1)可按物品编号进行排序。2)使用二进制文件存储信息。3)添加
6、记录时,考虑各种数据的有效性。4)组合查询功能的实现。23 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系; (3)根据问题描述,设计系统的类层次; (4)完成类层次中各个类的描述; (5)完成类中各个成员函数的定义; (6)完成系统的应用模块; (7)功能调试; (8)完成系统总结报告。 第三章 系统设计31 数据设计311 类设计*基类:*class ziliaoprotected: int number; char title20; char writer20; c
7、har level20; int tag; /资料删除标记; *图书类:*class tushu:public ziliao /定义由ziliao类派生出tushu(图书)类private: char publish20; int ISBN; int page;public: int getno() return number; /获取图书编号 char *gettitle() return title; /获取图书标题 void deltushu() tag=1; /删除图书 int gettag() return tag; /获取删除图画的标记 void addtushu(int n,ch
8、ar *t,char *w,char *l,char *p,int I,int pa) /增加图书操作 void display() /显示图书信息 ;* 视频光盘类:*class guangpan:public ziliao /定义由ziliao基类派生出guangpan(光盘)类private: char name20; int date; float time;public: void delguangpan() tag=1; /删除视频光盘 int getno() return number; /获取视频光盘编号 int gettag() return tag; /获取删除视频光盘的标
9、记 char *gettitle() return title; /获取视频光盘标题 void addguangpan(int n,char *t,char *w,char *l,char *na,int d,float ti) /增加视频光盘操作 void display() /显示视频光盘信息 ; *图画类:*class tuhua:public ziliao /定义由ziliao类派生出的tuhua(图画)类private: char country20; int length; int width;public: void deltuhua() tag=1; /删除图画 int get
10、no() return number; /获取图画编号 int gettag() return tag; /获取删除图画的标记 char *gettitle() return title; /获取图画标题 void addtuhua(int n,char *t,char *w,char *l,char *c,int le,int wi) /增加图画操作 void display() /显示图画信息 ;*图书馆资料管理类:*class tushuguan private: int top1,top2,top3,top11,top22,top33; tushu tsmaxb; guangpan g
11、pmaxgp; tuhua thmaxp;public: void ziliaodata(); tushuguan(); void addtushu(int n,char *t,char *w,char *l,char *p,int I,int pa)/添加图书,加前先查找 tstop1.addtushu(n,t,w,l,p,I,pa); top1+;top11+; int look1(int bookid) /按编号查找图书 int k=-1; for(int i=0;itop1;i+) if(tsi.getno()=bookid&tsi.gettag()=0) k=i; return k;
12、 int look11(char *m) /按标题查找图书 int k=-1; for(int i=0;itop1;i+) if(strcmp(tsi.gettitle(),m)=0&tsi.gettag()=0) tsi.display(); k=i; return k; void addguangpan(int n,char *t,char *w,char *l,char *na, int d,float ti) /添加视频光盘,加前先查找 gptop2.addguangpan(n,t,w,l,na,d,ti); top2+;top22+; int look2(int bookid) /按
13、编号查找视频光盘 int k=-1; for(int i=0;itop2;i+) if(gpi.getno()=bookid&gpi.gettag()=0) k=i; return k; int look22(char *m) /按标题查找视频光盘 int k=-1; for(int i=0;itop2;i+) if(strcmp(gpi.gettitle(),m)=0&gpi.gettag()=0) gpi.display(); k=i; return k; void addtuhua(int n,char *t,char *w,char *l,char *c, int le,int wi)
14、/添加图画,加前先查找 thtop3.addtuhua(n,t,w,l,c,le,wi); top3+;top33+; int look3(int bookid) /按编号查找图画 int k=-1; for(int i=0;itop3;i+) if(thi.getno()=bookid&thi.gettag()=0) k=i; return k; int look33(char *m) /按标题查找图画 int k=-1; for(int i=0;itop3;i+) if(strcmp(thi.gettitle(),m)=0&thi.gettag()=0) thi.display(); k=
15、i; return k; tushuguan() /析构函数,保存信息; 312 类之间的关系1.基类为ziliao类,在其中定义了三类资料共有的属性作为数据成员。2.tushu类、shipinguangpan类、tuhua类公用继承ziliao类。在三个派生类中分别定义各自的属性作为数据成员,定义了增加资料、显示资料、对删除的资料做标记、获取资料编号,标题,删除资料的标记等成员函数。3.tushuguan类,在其中定义了三个派生类的对象和记录各类资料总数的变量作为数据成员,实现了类的组合应用。在该类中的构造函数和析构函数中分别实现了对程序中各类资料的读取和保存功能,定义了对资料按编号和标题的
16、查找,各类资料的添加,对各类资料的管理等成员函数。其中void ziliaodate()(对各类资料的管理)函数中包含switch语句,实现了7个分支选择结构:退出、添加资料、查询资料、编辑资料、统计资料、删除资料、显示资料。313函数设计tushuguan()*构造(读取)函数实现对文件中的资料信息的读取tushuguan()*析构(保存)函数实现对程序中的资料信息保存在相应的文件中void ziliaodate()*资料管理函数实现对资料信息的管理int main()*主函数调用各个资料管理函数实现各个功能的操作32 结构设计321 系统流程图 组 合 应 用322 界面设计(1)进入程序
17、界面图3-1 进入程序的欢迎界面(2)选择操作对象界面图3-2 选择操作对象时的界面(3)退出程序界面图3-3 退出程序时的界面第四章 系统实现41 类实现定义基类ziliao类,然后由基类派生出tushu(图书)类、shipinguangpan(视频光盘)类、tuhua(图画)类,定义tushuguan类,实现对各类资料信息的管理。在各类中定义相关成员函数和数据成员 组合应用图4-1 类结构图42 功能实现421 资料信息的读取功能的实现该功能用于对资料信息进行读取,可将保存在相应的文本文档中的各类人员的信息读取到内存中该功能在tushuguan类中的构造函数中,主函数中定义该类的对象,运行
18、时自动将各文件中的资料信息读取出来tushuguan:tushuguan() top1=0;top11=0; top2=0;top22=0; top3=0;top33=0; ifstream file1(D:图书信息.txt,ios:binary); /从图书信息文件中读取图书信息 if(!file1) cerropen error!endl; abort(); while ( file1.read(char*)&tstop1,sizeof(tstop1) top1+;top11+; file1.close(); ifstream file2(D:视频光盘信息.txt,ios:binary);
19、 if(!file2) cerropen error!endl; abort(); while(file2.read(char*)&gptop2,sizeof(gptop2) top2+;top22+; file2.close(); ifstream file3(D:图画信息.txt,ios:binary); if(!file3) cerropen error!endl; abort(); while(file3.read(char*)&thtop3,sizeof(thtop3) top3+;top33+; file3.close(); 422 资料信息的添加功能的实现该功能用于对资料信息进行
20、添加该功能分别调用tushuguan类中的查询函数,分别实现对图书、视频光盘、图画信息的添加case1: /添加资料int choice1;coutendl选择您要添加的资料类别: endl;coutendl;cout endl;cout 1:图书 2:视频光盘 3:图画 endl;cout endl;coutchoice1; if(choice1=1) /添加图书 if(top11=maxb) cout图书库已满,无法添加!endl;break; else cout输入您要添加的图书编号:a; if(look1(a)=-1)&(look2(a)=-1)&(look3(a)=-1) coutb
21、; coutc; coutd; coute; coutf; coutg; addtushu(a,b,c,d,e,f,g); cout 添加成功!endl; else cout=maxgp) cout视频光盘库已满,无法添加!endl;break; else cout输入您要添加的视频光盘编号:a; if(look1(a)=-1)&(look2(a)=-1)&(look3(a)=-1) coutb; coutc; coutd; coute; coutf; couth; addguangpan(a,b,c,d,e,f,h); cout 添加成功!endl; else cout该编号已存在,无法添加
22、!maxp) cout图画库已满,无法添加!endl;break; else cout输入您要添加的图画编号:a; if(look1(a)=-1)&(look2(a)=-1)&(look3(a)=-1) coutb; coutc; coutd; coute; coutf; coutg; addtuhua(a,b,c,d,e,f,g); cout 添加成功!endl; else cout该编号已存在,无法添加!endl; break; 423 资料信息的查询功能的实现该功能用于对资料信息进行查询,可按照编号或标题或类别进行查询。分别调用tushuguan类中的查询函数和各派生类中的显示函数,分别实现对图书、视频光盘、图画信息的查询case2:if(top11+top22+top33=0) coutendl; cout*endl; cout 当前物品库为空! endl; cout* endl; coutendl;else coutendl选择您要查询的方式: endl;coutendlcout endl; cout 1:按编号查询 2:按标题查询 3:按类别查询 endl;cout endl; coutendl; int ch
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2