1、主要完成图书馆三类物品信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当物品库已满,则提示不能再添加新的数据。2)查询物品 可按照三种方式来查询物品,分别为: 按标题查询:输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!”; 按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在! 按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!3)显示物品库:输出当前物品库中所有物品信息,每条记录占据一行。4)编辑物品:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。5)删除物品:主要完成图书馆物
2、品信息的删除。如果当前物品库为空,则提示“物品库为空!”,并返回操作;否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。6)统计信息输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。例如:总物品数 30图书类 10视频光盘类 15图画类 57)物品存盘:将当前程序中的物品信息存入文件中。8)读出物品:从文件中将物品信息读入程序。(2)扩展功能 在完成以上基本功能的基础上,可自行进行扩展或完善,例如:1)可按物品编号进行排序。2)使用二进制文件存储信息。3)添加记录时,考虑各种数据的有效性。4)组合查询功能的实现。23
3、 问题的解决方案根据系统功能要求,可以将问题解决分为以下步骤: (1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;(2)分析系统中的各个实体及它们之间的关系;(3)根据问题描述,设计系统的类层次;(4)完成类层次中各个类的描述;(5)完成类中各个成员函数的定义;(6)完成系统的应用模块;(7)功能调试;(8)完成系统总结报告。 第三章 系统设计31 数据设计311 类设计*基类:class ziliaoprotected: int number; char title20; char writer20; char level20; int tag; /资料删除标记;图书类:cl
4、ass 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,char *t,char *w,char *l,char *p,int I,int
5、 pa) /增加图书操作 void display() /显示图书信息 ;* 视频光盘类:*class guangpan:public ziliao /定义由ziliao基类派生出guangpan(光盘)类 char name20; int date; float time; void delguangpan() tag=1; /删除视频光盘 /获取视频光盘编号 /获取删除视频光盘的标记 /获取视频光盘标题 void addguangpan(int n,char *t,char *w,char *l,char *na,int d,float ti) /增加视频光盘操作 void display
6、() /显示视频光盘信息 *图画类:class tuhua:public ziliao /定义由ziliao类派生出的tuhua(图画)类 char country20; int length; int width; void deltuhua() tag=1; /删除图画 /获取图画编号 /获取图画标题 void addtuhua(int n,char *t,char *w,char *l,char *c,int le,int wi) /增加图画操作 void display() /显示图画信息 图书馆资料管理类:class tushuguan int top1,top2,top3,top1
7、1,top22,top33; tushu tsmaxb; guangpan gpmaxgp; tuhua thmaxp; 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()=booki
8、d&tsi.gettag()=0) k=i; return k; int look11(char *m) /按标题查找图书 int k=-1; if(strcmp(tsi.gettitle(),m)=0& tsi.display(); k=i; 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) /按编号查找视频光盘 top2;
9、if(gpi.getno()=bookid&gpi.gettag()=0) int look22(char *m) /按标题查找视频光盘 if(strcmp(gpi.gettitle(),m)=0& gpi.display(); void addtuhua(int n,char *t,char *w,char *l,char *c, int le,int wi)/添加图画,加前先查找 thtop3.addtuhua(n,t,w,l,c,le,wi); top3+;top33+; int look3(int bookid) /按编号查找图画top3; if(thi.getno()=bookid&
10、thi.gettag()=0) int look33(char *m) /按标题查找图画 if(strcmp(thi.gettitle(),m)=0& thi.display(); tushuguan() /析构函数,保存信息312 类之间的关系1.基类为ziliao类,在其中定义了三类资料共有的属性作为数据成员。2.tushu类、shipinguangpan类、tuhua类公用继承ziliao类。在三个派生类中分别定义各自的属性作为数据成员,定义了增加资料、显示资料、对删除的资料做标记、获取资料编号,标题,删除资料的标记等成员函数。3.tushuguan类,在其中定义了三个派生类的对象和记录
11、各类资料总数的变量作为数据成员,实现了类的组合应用。在该类中的构造函数和析构函数中分别实现了对程序中各类资料的读取和保存功能,定义了对资料按编号和标题的查找,各类资料的添加,对各类资料的管理等成员函数。其中void ziliaodate()(对各类资料的管理)函数中包含switch语句,实现了7个分支选择结构:退出、添加资料、查询资料、编辑资料、统计资料、删除资料、显示资料。313函数设计tushuguan()*构造(读取)函数实现对文件中的资料信息的读取tushuguan()*析构(保存)函数实现对程序中的资料信息保存在相应的文件中void ziliaodate()*资料管理函数实现对资料信
12、息的管理int main()*主函数调用各个资料管理函数实现各个功能的操作32 结构设计321 系统流程图 组 合 应 用322 界面设计(1)进入程序界面图3-1 进入程序的欢迎界面(2)选择操作对象界面图3-2 选择操作对象时的界面(3)退出程序界面图3-3 退出程序时的界面第四章 系统实现41 类实现定义基类ziliao类,然后由基类派生出tushu(图书)类、shipinguangpan(视频光盘)类、tuhua(图画)类,定义tushuguan类,实现对各类资料信息的管理。在各类中定义相关成员函数和数据成员 组合应用图4-1 类结构图42 功能实现421 资料信息的读取功能的实现该功
13、能用于对资料信息进行读取,可将保存在相应的文本文档中的各类人员的信息读取到内存中该功能在tushuguan类中的构造函数中,主函数中定义该类的对象,运行时自动将各文件中的资料信息读取出来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(t
14、stop1) file1.close(); ifstream file2(视频光盘信息.txtfile2) cerr while(file2.read(char*)&gptop2,sizeof(gptop2) file2.close(); ifstream file3(图画信息.txtfile3) while(file3.read(char*)&thtop3,sizeof(thtop3) file3.close();422 资料信息的添加功能的实现该功能用于对资料信息进行添加该功能分别调用tushuguan类中的查询函数,分别实现对图书、视频光盘、图画信息的添加case1: /添加资料int
15、choice1;coutendlchoice1; if(choice1=1) /添加图书 if(top11=maxb) cout图书库已满,无法添加!break; else couta; if(look1(a)=-1)&(look2(a)=-1)&(look3(a)=-1)请输入该图书的标题:;cinb; cout请输入该图书的作者:c; cout请输入该图书的评级(未评级,一般,儿童,成人):d;请输入该图书的出版社:e;请输入该图书的ISBN号:f;请输入该图书的页数:g; addtushu(a,b,c,d,e,f,g); 添加成功! else cout=maxgp) cout视频光盘库已
16、满,无法添加! else cout输入您要添加的视频光盘编号: coutmaxp) cout图画库已满,无法添加! else cout输入您要添加的图画编号: if(look1(a)=-1)& 请输入该图画的标题:请输入该图画的作者:请输入该图画的评级(未评级,一般,儿童,成人):请输入该图画的国籍:请输入该作品的长:请输入该作品的宽: addtuhua(a,b,c,d,e,f,g); 423 资料信息的查询功能的实现该功能用于对资料信息进行查询,可按照编号或标题或类别进行查询。分别调用tushuguan类中的查询函数和各派生类中的显示函数,分别实现对图书、视频光盘、图画信息的查询case2:if(top11+top22+top33=0) cout* 当前物品库为空! * else选择您要查询的方式:endl按编号查询 2:按标题查询 3:按类别查询 endl; int cho
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1