图书管理系统C++代码Word文件下载.docx

上传人:b****1 文档编号:5796620 上传时间:2023-05-05 格式:DOCX 页数:41 大小:913.60KB
下载 相关 举报
图书管理系统C++代码Word文件下载.docx_第1页
第1页 / 共41页
图书管理系统C++代码Word文件下载.docx_第2页
第2页 / 共41页
图书管理系统C++代码Word文件下载.docx_第3页
第3页 / 共41页
图书管理系统C++代码Word文件下载.docx_第4页
第4页 / 共41页
图书管理系统C++代码Word文件下载.docx_第5页
第5页 / 共41页
图书管理系统C++代码Word文件下载.docx_第6页
第6页 / 共41页
图书管理系统C++代码Word文件下载.docx_第7页
第7页 / 共41页
图书管理系统C++代码Word文件下载.docx_第8页
第8页 / 共41页
图书管理系统C++代码Word文件下载.docx_第9页
第9页 / 共41页
图书管理系统C++代码Word文件下载.docx_第10页
第10页 / 共41页
图书管理系统C++代码Word文件下载.docx_第11页
第11页 / 共41页
图书管理系统C++代码Word文件下载.docx_第12页
第12页 / 共41页
图书管理系统C++代码Word文件下载.docx_第13页
第13页 / 共41页
图书管理系统C++代码Word文件下载.docx_第14页
第14页 / 共41页
图书管理系统C++代码Word文件下载.docx_第15页
第15页 / 共41页
图书管理系统C++代码Word文件下载.docx_第16页
第16页 / 共41页
图书管理系统C++代码Word文件下载.docx_第17页
第17页 / 共41页
图书管理系统C++代码Word文件下载.docx_第18页
第18页 / 共41页
图书管理系统C++代码Word文件下载.docx_第19页
第19页 / 共41页
图书管理系统C++代码Word文件下载.docx_第20页
第20页 / 共41页
亲,该文档总共41页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

图书管理系统C++代码Word文件下载.docx

《图书管理系统C++代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统C++代码Word文件下载.docx(41页珍藏版)》请在冰点文库上搜索。

图书管理系统C++代码Word文件下载.docx

(至少一种排序方式,例如出版时间排序)

6)按书名查询和按作者名查询

7)图书信息的删除与修改

8)学生可自动增加新功能模块(视情况可另外加分)

(3)界面友好,输入信息符合逻辑如登录号不为负数,日期输入符合一定的格式等。

【程序设计的具体说明】

数据结构和函数自行定义,要求清晰明确。

二、需求分析

图书管理系统面向两类人,一类是普通读者,另一类是管理员;

(1)读者:

首先读者要通过卡号和密码的验证才能进入系统;

1、图书的查找:

读者可以通过图书的书号、书名、作者名或者出版社查找图书信息,当查找成功时输出图书的信息,包括书号,书名,作者名,出版社,出版时间以及此书是否在架,当查找失败时返回查找失败信息。

2、图书的借阅:

当读者查找到想要借阅的图书后,输入图书书号进行借书,返回借阅成功的信息。

输入无效的书号或者借阅已经借出去的图书则不能借阅成功。

3、图书的归还:

输入要归还的书的书号进行还书,返回归还成功的信息。

输入

无效的书号或者归还还未被借出的图书则归还不成功。

4、查询自己的借书信息:

可以查看自己借了那些书,输出这些书的编号。

(2)管理员:

管理员要先通过密码验证才能进入系统;

1、图书的借阅:

管理员可以通过输入读者的卡号和图书的编号帮读者借书,只有当这两个信息都正确时才能借阅成功,否则输出借阅失败的信息。

2、图书的归还:

管理员可以通过输入读者的卡号和图书的编号帮读者还书,只有当这两个信息都正确时才能归还成功,否则输出归还失败的信息。

3、图书的维护:

包括图书的新增、删除、查找、显示、以及全删;

、图书的新增:

首先给图书编号,在给图书编号之前先判断是否有图书为该编号,如果有则编号不成功重新输入编号,如果没有则编号成功,继续添加图书的其他信息,包括书名、作者、出版社、出版时间、价格等信息。

、图书的删除:

输入图书的编号,删除该编号图书的所有信息,并提示删除成功信息,若输入无效的编号则提示删除不成功。

、图书的查找:

输入要查找图书的编号,输出该编号图书的所有信息,

若输入无效的编号则提示查找失败。

、图书的显示:

按照出版时间的先后顺序输出图书馆所有书籍的信息。

、图书的全删:

删除图书馆所有书籍的所有信息。

4、读者的维护:

包括读者的新增、更改、删除、查找、显示、以及全删;

、读者的新增:

先给读者编号,如果该编号已经有人,则提示错误,否则继续输入读者的其他信息,包括读者的名字和初始密码输出添加成功提示。

、读者的更改:

输入读者的编号,更改读者的名字,若输入的编号无效则更该失败。

、读者的删除:

输入要删除读者的编号,判断该编号是否有人,有则删除该读者的所有信息,没有则提示删除失败。

、读者的查找:

输入要查找的读者编号,编号正确则输出读者的信息,否则查找失败。

、读者的显示:

显示图书馆里所有读者的信息。

删除图书馆里所有读者的信息。

三、概要设计

12

主菜单

读者登录模块图

图书信息管理模块流程图

图书信息查找流程图

借阅信息查询模块流程图

图书归还模块流程图

图书借阅模块流程图

四、源程序代码

#include<

iostream>

#include<

iomanip>

windows.h>

conio.h>

string>

usingnamespacestd;

constintMaxbor=10;

//每位读者最多借10本书

classReader//读者类

{

inttag;

intnum;

charmima[6];

charname[10];

intborbook[Maxbor];

public:

Reader();

intgetnum();

intgettag();

char*getname();

char*getmima();

voidsetname(charna[]);

voiddelreader();

voidaddreader(intn,char*na,char*mi);

voidborrowbook(intbookid);

intretbook(intbookid);

voiddisp();

};

Reader:

reader(){}

char*Reader:

:

getname(){returnname;

}

intReader:

gettag(){returntag;

}//获取删除标记

getnum(){returnnum;

}//获取读者编号

char*Reader:

getmima(){returnmima;

}//获取读者的密码

voidReader:

setname(charna[])//设置姓名

strcpy(name,na);

}

delreader(){tag=1;

}//删除读者

addreader(intn,char*na,char*mi)//增加读者

tag=0;

num=n;

strcpy(mima,mi);

for(inti=0;

i<

Maxbor;

i++)

borbook[i]=0;

borrowbook(intbookid)//借书操作

{

if(borbook[i]==0)

{

borbook[i]=bookid;

return;

}

retbook(intbookid)//还书操作

if(borbook[i]==bookid)

borbook[i]=0;

return1;

return0;

disp()//输出读者信息

cout<

<

endl;

cout<

setw(12)<

num<

"

借书编号:

["

;

if(borbook[i]!

=0)

cout<

borbook[i]<

"

cout<

]"

<

endl;

classBook//图书类

charwriter[10];

charconcem[30];

charTime[10];

floatprice;

intonshelf;

Book();

char*getname();

intgetonshelf();

char*getwriter();

char*gettime();

char*getconcem();

floatgetprice();

voidgetTime(chartime[]);

voidsetname(charna[]);

voiddelbook();

voidaddbook(intn,char*na,char*wri,char*con,char*tm,floatpr);

//增加图书

intborrowbook();

//借书操作

voidretbook();

//还书操作

//输出图书

Book:

Book(){}

char*Book:

}//获取姓名

intBook:

getonshelf(){returnonshelf;

}//获取图书编号

char*Book:

getwriter(){returnwriter;

}//获取书籍作者

getconcem(){returnconcem;

}//获取书籍出版社

gettime(){returnTime;

floatBook:

getprice(){returnprice;

}//获取书籍价格

voidBook:

setname(charna[])//设置书名

getTime(chartime[])

strcpy(Time,time);

delbook(){tag=1;

}//删除图书

addbook(intn,char*na,char*wri,char*con,char*tm,floatpr)//增加图书

strcpy(writer,wri);

strcpy(concem,con);

strcpy(Time,tm);

price=pr;

onshelf=1;

borrowbook()//借书操作

if(onshelf==1)

onshelf=0;

return1;

retbook()//还书操作

disp()//输出图书

setw(6)<

num<

name<

setw(15)<

concem<

setw(10)<

writer<

setw(12)<

Time<

setw(6)<

(onshelf==1?

在架"

已借"

)<

classBDatabase//图书库类

inttop;

Bookbook[Maxb];

BDatabase();

voidclear();

intaddbook(intn,char*na,char*wri,char*con,char*tm,floatpr);

Book*query(intbookid);

intBDatabase:

qname(char*nm);

Book*BDatabase:

Qname(char*nm);

intqzuozhe(char*wr);

Book*Qzuozhe(char*wr);

intqchuban(char*cb);

Book*Qchuban(char*cb);

voidbookdata();

~BDatabase();

BDatabase:

BDatabase()//构造函数,将book.txt读到book[]中

Bookb;

top=-1;

fstreamfile("

d:

\\book.txt"

ios:

in);

while

(1)

file.read((char*)&

b,sizeof(b));

if(!

file)break;

top++;

book[top]=b;

file.close();

voidBDatabase:

clear()//全删

intBDatabase:

addbook(intn,char*na,char*wri,char*con,char*tm,floatpr)//增加图书

Book*p=query(n);

if(p==NULL)

book[top].addbook(n,na,wri,con,tm,pr);

Book*BDatabase:

query(intbookid)//查找图书

=top;

if(book[i].getnum()==bookid&

&

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

return&

book[i];

returnNULL;

qname(char*nm)

intj=0;

for(inti=0;

if((strcmp(book[i].getname(),nm)==0)&

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

j++;

if(j==0)

return0;

else

returnj;

Qname(char*nm)

Bookb[100];

if((strcmp(book[i].getname(),nm)==0)&

b[j++]=book[i];

returnNULL;

returnb;

qzuozhe(char*wr)

inte=0;

if((strcmp(book[i].getwriter(),wr)==0)&

e++;

if(e==0)

returne;

Qzuozhe(char*wr)

intf=0;

b[f++]=book[i];

if(f==0)

qchuban(char*cb)

intg=0;

if((strcmp(book[i].getconcem(),cb)==0)&

g++;

if(g==0)

returng;

Qchuban(char*cb)

inth=0;

b[h++]=book[i];

if(h==0)

bookdata()//图书库维护

intchoice=1;

charbname[40];

intbookid;

charbwriter[15];

charbconcem[15];

charbtime[15];

floatbprice;

Book*b;

intr=0;

while(choice!

cout<

endl<

******************************************************"

**图书维护**"

**1:

新增**"

**2:

删除**"

**3:

查找**"

**4:

显示**"

**5:

全删**"

**0:

退出**"

请选择您将进行的操作:

cin>

>

choice;

switch(choice)

case1:

输入图书编号:

cin>

bookid;

do

{

if(r!

{

cout<

该编号已存在,请重新输入图书编号:

cin>

bookid;

}

r++;

if(r==3)

break;

}

while(query(bookid)!

=NULL);

if(r==3)

system("

cls"

);

break;

输入图书书名:

bname;

输入图书作者:

bwriter;

输入图书出版社:

bconcem;

输入图书出版时间:

cin>

btime;

输入图书价格:

bprice;

cout<

图书添加成功"

Sleep(1000);

system("

addbook(bookid,bname,bwriter,bconcem,btime,bprice);

break;

case2:

b=query(bookid);

if(b==NULL)

cout<

该图书不存在"

Sleep(1000);

该图书已删除"

b->

delbook();

case3:

}

您所查找的图书信息如下"

disp();

case4:

所有图书信息如下"

disp();

case5:

clear();

所有图书已删除"

system("

disp()

Booktemp;

=top&

(book[i].gettag()==0);

for(intj=i+1;

j<

(book[j].gettag()==0);

j++)

if(strcmp(book[i].gettime(),book[j].gettime())<

0)

temp=book[i];

book[i]=book[j];

book[j]=temp;

for(intx=0;

x<

(book[x].gettag()==0);

x++)

book[x].disp();

~BDatabase(

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

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2