图书管理系统C++信息管理系统Word文件下载.docx
- 文档编号:20957755
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:19
- 大小:174.08KB
图书管理系统C++信息管理系统Word文件下载.docx
《图书管理系统C++信息管理系统Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统C++信息管理系统Word文件下载.docx(19页珍藏版)》请在冰豆网上搜索。
输入输出,C++程序中总是少不了输入和输出的语句,实现与程序内部的信息交流。
特别是屏幕输出的功能,几乎每个程序都要用到,使用它把计算机的结果显示在屏幕上。
函数,C++的程序是由若干个文件组成的,每个文件又是由若干个函数组成,因此,可以认为C++的程序就是函数串,即由若干个函数组成,函数与函数之间是相对的,并且是并行的,函数之间可以调用。
在组成一个程序的若干个函中,必须有一个main()。
语句,语句是组成程序的基本单元。
函数是由若干条语句组成的。
但是,空函数是没有语句的。
语句是由单词组成,单词间用空格符分隔,C++程序中的语句又是以以分号结束。
语句除了有表达式语句和空语句之外,还有复合语句、分支语句、循环语句和转向语句等若干类。
变量,多数程序都需要说明和使用变量。
广义讲,对象包含了变量,即将变量也称为一种对象,狭义讲,将对象看作是类的实例,对象是指某个类的对象。
其他,除了以上讲述的5个部分以外,还有其他组成部分。
例如,符号常量和注释信息也是程序的一部分。
C++中都尽量把常量定义为符号常量,在C++的程序中出现的是符号常量,该符号常量代表着某个确定的常量值。
2.12C++程序的实现
C++源程序的实现与其他高级语言源程序实现的原理是一样的。
一般都要经过编辑、编译、运行。
其中最要的是编译过程,C++是以编译方式实现的高级语言。
C++程序的实现,必须要使用某种C++语言的编译器对程序进行编译。
编译器的功能是将程序的源代码转换成为机器代码的形式,称为目标代码;
然后,再使目标代码进行连接,生成可执行文件。
该过程可分为三个子过程:
预处理过程、编译过程(词法分析、语法分析、符号表、错误处理程序、生成目标代码)、连接过程。
第三章系统分析
1.图书管理系统设计
任何一个软件的开始都是进行系统的需求分析。
需求分析要根据用户的功能要求、界面以及其他要求进行分析,当然在此需求分析是根据我自己对图书管理系统的基本了解以及系统所需要的基本功能来进行的。
其次制作的各个流程图才是真正的系统设计,是在完成需求分析的基础上进行的。
2.用户的功能需求分析
图书管理系统需要的功能分析如下:
管理系统具有多个管理员,管理员可以使用不同的用户名和密码进入管理系统,并可以修改自己的密码;
(一)进入系统后可以重新登录该系统;
(二)在系统中可以对数据库进行简单的操作;
(三)最基本的功能还应具有可以编辑图书——录入、删除图书资料。
图书分类信息的添加、修改、删除和查询。
此功能为图书的分类管理提供依据。
(四)图书基本信息的添加、修改、删除和查询。
(五)借阅证件分类信息的添加、修改、删除和查询。
不同类型的借阅证件可以借阅的最大数量、最大天数和续借天数不同。
(六)图书借阅证件的添加、修改、删除、挂失和查询。
(七)图书借阅管理,包括图书借阅、图书归还、图书续借、图书挂失和图书催还等。
3.系统运作流程
该系统涉及到用户以及管理员,在两者之间进行一系列的操作。
管理员对图书进行录入、删除等操作,和用户之间的交流则是进行借阅图书操作。
运作流程图如图:
第四章系统的实现
1、类的设计
Book类的设计:
Book
Name[strNum]:
char
number[strNum]:
kind[type]:
inttag;
intnum;
intadd
Book(){}
getkind():
getname():
getnum():
int
gettag():
setnumber(charnum[]):
void
setname(charna[]):
setkind(charkin[]):
delbook():
addbook(intn,char*na,char*kin):
disp():
(1)数据成员
charname[StrNum];
用来存放书名。
charnumber[StrNum];
用来存放图书的编号。
charkind[Type];
用来存放图书的类型。
定义删除标记。
定义图书编号为整形。
intadd;
增加标记。
(2)函数成员
Book(){}无参构造函数,用于为书名和作者姓名设置默认值。
chargetkind()用于获取图书类型。
chargetname()用于获取书名。
intgetnum()用于获取图书编号。
intgettag()用于获取删除标记。
voidsetname(charna[])用于设置书名。
voidsetkind(charkin[])用于设置类型。
voiddelbook()用于删除图书。
voidaddbook(intn,char*na,char*kin)用于增加图书。
voiddisp()用于输出图书。
2.主程序的设计:
(1)函数的设计:
classBDatabase{}图书管理类的设置,实现对图书的添加,查找,删除等。
inttop;
设置图书记录指针。
Bookbook[Maxb];
设置图书记录(Maxb定义为最多可存储的图书数,定义为整形)。
voidclear()清空图书记录。
intaddbook(intn,char*na,char*kin)增加图书记录。
Book*query(intbookid)查找图书记录。
voidbookdata();
定义图书库。
voiddisp()输出。
~BDatabase()设置析构函数,将book[]写到book.txt文件中
voidBDatabase:
:
bookdata()由此函数开始对图书管理系统的主菜单进行调用与功能的实现。
(界面参看执行界面部分)
最后用main()函数的实现,程序的主界面的引导
3.源代码分析:
/*****************************************************************************************/
#defineStrNum20
#defineType20
#include<
iostream>
iomanip>
string>
fstream>
//输入/输出文件流类
usingnamespacestd;
constintMaxb=100;
//最多可存储的图书
classBook
{
private:
inttag;
//删除标记
intnum;
//图书编号
intadd;
//增加标记
charnumber[StrNum];
//编号
charname[StrNum];
//书名
charkind[Type];
//图书类型
public:
Book(){}
chargetkind()//获取图书类型
{
returnkind[Type];
}
chargetname()//获取书名
{
returnname[StrNum];
}
intgetnum()//获取图书编号
returnnum;
intgettag()//获取删除标记
returntag;
voidsetname(charna[])//设置书名
strcpy(name,na);
voidsetkind(charkin[])//设置类型
strcpy(kind,kin);
voiddelbook()//删除图书
tag=1;
voidaddbook(intn,char*na,char*kin)//增加图书
tag=0;
num=n;
voiddisp()//输出图书
cout.flags(ios:
left);
//设置对齐的标志位为左
cout<
<
setw(15)<
num<
setw(20)<
name<
kind<
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].gettag()==0)
{
return&
book[i];
returnNULL;
voidbookdata();
//图书库
voiddisp()
for(inti=0;
if(book[i].gettag()==0)
book[i].disp();
~BDatabase()//析构函数,将book[]写到book.txt文件中
fstreamfile("
out);
if(book[i].gettag()==0)
file.write((char*)&
book[i],sizeof(book[i]));
bookdata()
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;
addbook(bookid,bname,newType);
break;
2'
b=query(bookid);
if(b==NULL)
{
cout<
该图书不存在"
}
输入新的书名:
b->
setname(bname);
输入新的类型:
bkind;
setkind(bkind);
3'
读入图书编号:
cin>
b=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'
disp();
6'
chartg2;
确定要清空所有记录吗?
tg2;
if(tg2!
tg2!
clear();
已成功清空记录!
default:
cout<
输入错误,请从新输入(数字为0~6):
}
//main()函数的实现,程序的主界面的引导
voidmain()
{
BDatabaseBookDB;
while(choice!
{cout<
\n\n\t\t\t欢迎使用图书管理系统\n\n"
cout<
endl<
\t\t\t图书管理系统\n\n\n\n"
setw(83)<
by(姓名——)\n\n\n\n"
\t\t\t1进入系统\n\n\t\t\t0离开"
请选择:
cin>
switch(choice)
BookDB.bookdata();
\n\n\t\t\t欢迎再次使用图书管理系统\n\n"
输入错误,请从新输入:
4.3执行界面:
1.主菜单界面,包括制作成员以及系统提示。
(由于此图含有本人姓名,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书管理系统 C+ 信息管理系统 图书 管理 系统 信息管理
![提示](https://static.bdocx.com/images/bang_tan.gif)