图书馆管理系统设计报告Word格式.docx

上传人:b****6 文档编号:21033246 上传时间:2023-01-27 格式:DOCX 页数:30 大小:184.27KB
下载 相关 举报
图书馆管理系统设计报告Word格式.docx_第1页
第1页 / 共30页
图书馆管理系统设计报告Word格式.docx_第2页
第2页 / 共30页
图书馆管理系统设计报告Word格式.docx_第3页
第3页 / 共30页
图书馆管理系统设计报告Word格式.docx_第4页
第4页 / 共30页
图书馆管理系统设计报告Word格式.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

图书馆管理系统设计报告Word格式.docx

《图书馆管理系统设计报告Word格式.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统设计报告Word格式.docx(30页珍藏版)》请在冰豆网上搜索。

图书馆管理系统设计报告Word格式.docx

主要完成图书馆三类物品信息的添加,要求编号唯一。

当添加了重复的编号时,则提示数据添加重复并取消添加;

当物品库已满,则提示不能再添加新的数据。

2)查询物品

可按照三种方式来查询物品,分别为:

✧按标题查询:

输入标题,输出所查询的信息,若不存在该记录,则提示“该标题不存在!

”;

✧按编号查询:

输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!

✧按类别查询:

输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有物品!

3)显示物品库:

输出当前物品库中所有物品信息,每条记录占据一行。

4)编辑物品:

可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

5)删除物品:

主要完成图书馆物品信息的删除。

如果当前物品库为空,则提示“物品库为空!

”,并返回操作;

否则,输入要删除的编号,根据编号删除该物品的记录,如果该编号不在物品库中,则提示“该编号不存在”。

6)统计信息

输出当前物品库中总物品数,以及按物品类别,统计出当前物品中各类别的物品数并显示。

例如:

总物品数30

图书类10

视频光盘类15

图画类5

7)物品存盘:

将当前程序中的物品信息存入文件中。

8)读出物品:

从文件中将物品信息读入程序。

(2)扩展功能

在完成以上基本功能的基础上,可自行进行扩展或完善,例如:

1)可按物品编号进行排序。

2)使用二进制文件存储信息。

3)添加记录时,考虑各种数据的有效性。

4)组合查询功能的实现。

2.3问题的解决方案

根据系统功能要求,可以将问题解决分为以下步骤:

(1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

(2)分析系统中的各个实体及它们之间的关系;

(3)根据问题描述,设计系统的类层次;

(4)完成类层次中各个类的描述;

(5)完成类中各个成员函数的定义;

(6)完成系统的应用模块;

(7)功能调试;

(8)完成系统总结报告。

第三章系统设计

3.1数据设计

3.1.1类设计

***************************************************************************

基类:

classziliao

{

protected:

intnumber;

chartitle[20];

charwriter[20];

charlevel[20];

inttag;

//资料删除标记

};

图书类:

classtushu:

publicziliao//定义由ziliao类派生出tushu(图书)类

private:

charpublish[20];

intISBN;

intpage;

public:

intgetno(){returnnumber;

}//获取图书编号

char*gettitle(){returntitle;

}//获取图书标题

voiddeltushu(){tag=1;

}//删除图书

intgettag(){returntag;

}//获取删除图画的标记

voidaddtushu(intn,char*t,char*w,char*l,char*p,intI,intpa){}//增加图书操作

voiddisplay(){}//显示图书信息

};

****************************************************************

视频光盘类:

****************************************************************

classguangpan:

publicziliao//定义由ziliao基类派生出guangpan(光盘)类

charname[20];

intdate;

floattime;

voiddelguangpan(){tag=1;

}//删除视频光盘

}//获取视频光盘编号

}//获取删除视频光盘的标记

}//获取视频光盘标题

voidaddguangpan(intn,char*t,char*w,char*l,char*na,intd,floatti){}//增加视频光盘操作

voiddisplay(){}//显示视频光盘信息

***************************************************************************

图画类:

classtuhua:

publicziliao//定义由ziliao类派生出的tuhua(图画)类

charcountry[20];

intlength;

intwidth;

voiddeltuhua(){tag=1;

}//删除图画

}//获取图画编号

}//获取图画标题

voidaddtuhua(intn,char*t,char*w,char*l,char*c,intle,intwi){}//增加图画操作

voiddisplay(){}//显示图画信息

图书馆资料管理类:

classtushuguan

inttop1,top2,top3,top11,top22,top33;

tushuts[maxb];

guangpangp[maxgp];

tuhuath[maxp];

voidziliaodata();

tushuguan();

voidaddtushu(intn,char*t,char*w,char*l,char*p,intI,intpa)//添加图书,加前先查找

{

ts[top1].addtushu(n,t,w,l,p,I,pa);

top1++;

top11++;

}

intlook1(intbookid)//按编号查找图书

intk=-1;

for(inti=0;

i<

top1;

i++)

if(ts[i].getno()==bookid&

&

ts[i].gettag()==0)

k=i;

returnk;

intlook11(char*m)//按标题查找图书

{

intk=-1;

if(strcmp(ts[i].gettitle(),m)==0&

{ts[i].display();

k=i;

}

voidaddguangpan(intn,char*t,char*w,char*l,char*na,intd,floatti)//添加视频光盘,加前先查找

gp[top2].addguangpan(n,t,w,l,na,d,ti);

top2++;

top22++;

intlook2(intbookid)//按编号查找视频光盘

top2;

if(gp[i].getno()==bookid&

gp[i].gettag()==0)

intlook22(char*m)//按标题查找视频光盘

if(strcmp(gp[i].gettitle(),m)==0&

{gp[i].display();

voidaddtuhua(intn,char*t,char*w,char*l,char*c,intle,intwi)//添加图画,加前先查找

th[top3].addtuhua(n,t,w,l,c,le,wi);

top3++;

top33++;

intlook3(intbookid)//按编号查找图画

top3;

if(th[i].getno()==bookid&

th[i].gettag()==0)

intlook33(char*m)//按标题查找图画

if(strcmp(th[i].gettitle(),m)==0&

{th[i].display();

~tushuguan(){}//析构函数,保存信息

3.1.2类之间的关系

1.基类为ziliao类,在其中定义了三类资料共有的属性作为数据成员。

2.tushu类、shipinguangpan类、tuhua类公用继承ziliao类。

在三个派生类中分别定义各自的属性作为数据成员,定义了增加资料、显示资料、对删除的资料做标记、获取资料编号,标题,删除资料的标记等成员函数。

3.tushuguan类,在其中定义了三个派生类的对象和记录各类资料总数的变量作为数据成员,实现了类的组合应用。

在该类中的构造函数和析构函数中分别实现了对程序中各类资料的读取和保存功能,定义了对资料按编号和标题的查找,各类资料的添加,对各类资料的管理等成员函数。

其中voidziliaodate()(对各类资料的管理)函数中包含switch语句,实现了7个分支选择结构:

退出、添加资料、查询资料、编辑资料、统计资料、删除资料、显示资料。

3.1.3函数设计

tushuguan()******************************************构造(读取)函数

实现对文件中的资料信息的读取

~tushuguan()*****************************************析构(保存)函数

实现对程序中的资料信息保存在相应的文件中

voidziliaodate()******************************************资料管理函数

实现对资料信息的管理

intmain()***************************************************主函数

调用各个资料管理函数实现各个功能的操作

3.2结构设计

3.2.1系统流程图

 

3.2.2界面设计

(1)进入程序界面

图3-1进入程序的欢迎界面

(2)选择操作对象界面

图3-2选择操作对象时的界面

(3)退出程序界面

图3-3退出程序时的界面

第四章系统实现

4.1类实现

定义基类ziliao类,然后由基类派生出tushu(图书)类、shipinguangpan(视频光盘)类、tuhua(图画)类,定义tushuguan类,实现对各类资料信息的管理。

在各类中定义相关成员函数和数据成员

组合应用

图4-1类结构图

4.2功能实现

4.2.1资料信息的读取功能的实现

该功能用于对资料信息进行读取,可将保存在相应的文本文档中的各类人员的信息读取到内存中

该功能在tushuguan类中的构造函数中,主函数中定义该类的对象,运行时自动将各文件中的资料信息读取出来

tushuguan:

:

tushuguan()

top1=0;

top11=0;

top2=0;

top22=0;

top3=0;

top33=0;

ifstreamfile1("

D:

\\图书信息.txt"

ios:

binary);

//从图书信息文件中读取图书信息

if(!

file1)

cerr<

<

"

openerror!

endl;

abort();

while(file1.read((char*)&

ts[top1],sizeof(ts[top1])))

{

file1.close();

ifstreamfile2("

\\视频光盘信息.txt"

file2)

cerr<

while(file2.read((char*)&

gp[top2],sizeof(gp[top2])))

file2.close();

ifstreamfile3("

\\图画信息.txt"

file3)

while(file3.read((char*)&

th[top3],sizeof(th[top3])))

file3.close();

4.2.2资料信息的添加功能的实现

该功能用于对资料信息进行添加

该功能分别调用tushuguan类中的查询函数,分别实现对图书、视频光盘、图画信息的添加

case1:

{//添加资料

intchoice1;

cout<

endl<

◆选择您要添加的资料类别:

"

▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"

◤◥"

▏1:

图书2:

视频光盘3:

图画▕"

◣◢"

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔"

cin>

>

choice1;

if(choice1==1)//添加图书

if(top11>

=maxb){cout<

◇图书库已满,无法添加!

◇"

break;

else

{cout<

◆输入您要添加的图书编号:

cin>

a;

if((look1(a)==-1)&

(look2(a)==-1)&

(look3(a)==-1))

请输入该图书的标题:

;

cin>

b;

cout<

请输入该图书的作者:

c;

cout<

请输入该图书的评级(未评级,一般,儿童,成人):

d;

请输入该图书的出版社:

e;

请输入该图书的ISBN号:

f;

请输入该图书的页数:

g;

addtushu(a,b,c,d,e,f,g);

★添加成功!

}

elsecout<

☆该编号已存在,无法添加!

☆"

break;

if(choice1==2)//添加视频光盘

if(top22>

=maxgp){cout<

◇视频光盘库已满,无法添加!

else

{cout<

◆输入您要添加的视频光盘编号:

{

cout<

请输入该视频光盘的标题:

请输入该视频光盘的作者:

请输入该视频光盘的评级(未评级,一般,儿童,成人):

请输入该视频光盘的出品者姓名:

请输入该视频光盘的出品年份:

请输入该视频光盘的视频时长:

h;

addguangpan(a,b,c,d,e,f,h);

if(choice1==3)//添加图画

{if(top33>

maxp){cout<

◇图画库已满,无法添加!

else

{cout<

◆输入您要添加的图画编号:

if((look1(a)==-1)&

{

请输入该图画的标题:

请输入该图画的作者:

请输入该图画的评级(未评级,一般,儿童,成人):

请输入该图画的国籍:

请输入该作品的长:

请输入该作品的宽:

addtuhua(a,b,c,d,e,f,g);

}

4.2.3资料信息的查询功能的实现

该功能用于对资料信息进行查询,可按照编号或标题或类别进行查询。

分别调用tushuguan类中的查询函数和各派生类中的显示函数,分别实现对图书、视频光盘、图画信息的查询

case2:

if(top11+top22+top33==0)

{cout<

▁▁▁▁▁▁▁▁▁▁"

▏*****************┃"

▏当前物品库为空!

┃"

▏*****************┃"

▔▔▔▔▔▔▔▔▔▔"

else

◆选择您要查询的方式:

▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁"

endl

按编号查询2:

按标题查询3:

按类别查询▕"

endl;

▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔"

intch

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1