图书信息管理系统文档格式.docx
- 文档编号:16805559
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:13
- 大小:50.10KB
图书信息管理系统文档格式.docx
《图书信息管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《图书信息管理系统文档格式.docx(13页珍藏版)》请在冰豆网上搜索。
(1)主要是运用到类和对象,还有带参数的构造函数以及析构函数以及数组来实现本程序,并在主函数对各个功能模块进行调用
(2)建立了能存放类的数组。
(3)类内函数的调用以及类外函数的调用。
(4)if语句的使用和switch语句的使用以及文件的读取与创建
(5)体现数据抽象和封装;
体现数据访问属性和继承属性。
(6)使用了构造的类层次
3.功能设计或算法设计
(1)功能模块图:
(2)运行过程图:
。
4.程序定义的类及函数说明
类的设计:
Book类的设计:
Bookname[strNum]:
char
number[strNum]:
kind[type]:
inttag;
intnum;
intadd
Book(){}
getkind():
getname():
getnum():
int
getlab():
setnumber(charnum[]):
void
setname(charna[]):
setkind(charkin[]):
delbook():
addbook(intn,char*na,char*kin):
disp():
数据成员:
charbookname[StrNum];
用来存放书名。
charnumber[StrNum];
用来存放图书的编号。
charkind[Type];
用来存放图书的类型。
定义删除标记。
定义图书编号为整形。
intadd;
增加标记。
函数成员:
Book(){}无参构造函数,用于为书名和作者姓名设置默认值。
chargetkind()用于获取图书类型。
chargetname()用于获取书名。
intgetnum()用于获取图书编号。
intgettag()用于获取删除标记。
voidsetname(charna[])用于设置书名。
voidsetkind(charkin[])用于设置类型。
voiddelbook()用于删除图书。
voidaddbook(intn,char*na,char*kin)用于增加图书。
voiddisp()用于输出图书。
函数的设计:
classBDatabase{}图书管理类的设置,实现对图书的添加,查找,删除等。
inttop;
设置图书记录指针。
Bookbook[Maxb];
设置图书记录(Maxb定义为最多可存储的图书数,定义为整形)。
voidclear()清空图书记录。
intaddbook(intn,char*na,char*kin)增加图书记录。
Book*query(intbookid)查找图书记录。
voidbookdata定义图书库。
voiddisp()输出。
~BDatabase()设置析构函数
main()由此函数开始对图书管理系统的主菜单进行调用与功能的实现。
函数的实现,程序的主界面的引导
5.程序清单
#defineStrNum20
#defineType20
#include<
iostream>
iomanip>
string>
fstream>
//输入/输出文件流类
usingnamespacestd;
constintMaxb=100;
//最多可存储的图书
classBook
{
private:
intlab;
//删除标记
intnum;
//图书编号
intadd;
//增加标记
charnumber[StrNum];
//编号
charbookname[StrNum];
//书名
charbookkind[Type];
//图书类型
public:
Book(){}
chargetkind()//获取图书类型
{
returnbookkind[Type];
}
chargetname()//获取书名
{
returnbookname[StrNum];
}
intgetnum()//获取图书编号
returnnum;
intgetlab()//获取删除标记
returnlab;
voidsetname(charna[])//设置书名
strcpy(bookname,na);
voidsetkind(charkin[])//设置类型
strcpy(bookkind,kin);
voiddelbook()//删除图书
lab=1;
voidaddbook(intn,char*na,char*kin)//增加图书
lab=0;
num=n;
voiddisp()//输出图书
cout.flags(ios:
:
left);
//设置对齐的标志位为左
cout<
<
setw(15)<
num<
setw(20)<
bookname<
bookkind<
endl;
}
};
classBDatabase
inttop;
Bookbook[Maxb];
//图书记录
BDatabase()//构造函数,将book.txt读到book[]中
Bookb;
top=-1;
fstreamfile("
book.txt"
ios:
in);
while
(1)
{
file.read((char*)&
b,sizeof(b));
if(!
file)break;
top++;
book[top]=b;
}
file.close();
voidclear()//全删
top=-1;
intaddbook(intn,char*na,char*kin)//增加图书
Book*p=query(n);
if(NULL==p)
{
top++;
book[top].addbook(n,na,kin);
return1;
}
return0;
Book*query(intbookid)//查找图书
for(inti=0;
i<
=top;
i++)
if(book[i].getnum()==bookid&
&
book[i].getlab()==0)
{
return&
book[i];
returnNULL;
voiddisp()//图书库
for(inti=0;
if(book[i].getlab()==0)
book[i].disp();
~BDatabase()//析构函数,将book[]写到book.txt文件中,实现文本的写入
fstreamfile("
out);
if(book[i].getlab()==0)
file.write((char*)&
book[i],sizeof(book[i]));
voidmain()
BDatabaseBookDB;
charchoice;
charbname[40];
charbkind[40];
charnewType[20];
intbookid;
Book*b;
while(choice!
='
0'
)
cout<
"
\t******************************************************************\n"
;
\n\n"
\t\t\t图书管理系统\n\n"
\t\t\t1新增图书记录\n"
\t\t\t2更改图书记录\n"
\t\t\t3删除图书记录\n"
\t\t\t4查找图书记录\n"
\t\t\t5显示图书记录\n"
\t\t\t6清空全部记录(慎用)\n"
\t\t\t0退出系统\n"
请选择(1,2,3,4,5,6,0):
cin>
>
choice;
switch(choice)
case'
1'
cout<
输入图书编号:
cin>
bookid;
输入图书类型:
newType;
输入图书书名:
bname;
BookDB.addbook(bookid,bname,newType);
break;
2'
b=BookDB.query(bookid);
if(b==NULL)
{
cout<
该图书不存在"
}
输入新的书名:
b->
setname(bname);
输入新的类型:
bkind;
setkind(bkind);
3'
读入图书编号:
cin>
b=BookDB.query(bookid);
if(b==NULL)
{
break;
}
chartg1;
确定要删除此记录吗?
(Y/N)"
tg1;
if(tg1!
n'
tg1!
N'
b->
delbook();
已成功删除该书记录!
}
case'
4'
if(b==NULL)
}
图书编号图书名称图书类型\n"
disp();
5'
6'
chartg2;
确定要清空所有记录吗?
tg2;
if(tg2!
tg2!
BookDB.clear();
已成功清空记录!
default:
cout<
输入错误,请从新输入(数字为0~6):
}
6.体会及总结
通过实验加深了对c++的了解,在程序设计上提高了自己的动手能力,在实践中增强了自己的编程水平。
但是因为大家能力有限,还有部分功能未能完善,例如对书名,编号的排序等等,这些局限性都是有待逐步完善的方面。
而且通过这次课程设计,我们培养了自己对C++编程的兴趣,编程能力也有所提高,但仍存在许多不足,不能独自写出功能很齐全的代码,写代码要参考很多资料,所以今后应培养我们自己独立写代码的能力。
参考文献:
《C++程序设计》(唐浩强编著)清华大学出版社
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 信息管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)