图书管理系统c代码Word格式文档下载.docx
《图书管理系统c代码Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《图书管理系统c代码Word格式文档下载.docx(20页珍藏版)》请在冰点文库上搜索。
voidsetname(char*na)
strcpy(name,na);
voiddelbook()
tag=1;
voidaddStudent(intn,char*na)
tag=0;
number=n;
for(inti=0;
i<
Bor;
i++)
borbook[i]=0;
voidborrowbook(intbookid)//借书操作
if(borbook[i]==0)
borbook[i]=bookid;
return;
intretbook(intbookid)//还书操作
if(borbook[i]==bookid)
return1;
return0;
voidoutput()//读出读者信息
cout<
<
setw(5)<
number<
setw(10)<
name<
"
借书编号:
["
;
if(borbook[i]!
=0)
borbook[i]<
"
|"
]"
endl;
};
classRData
inttop;
//读者记录指针
Studentread[Reader];
RData()//构造函数,将Student.txt读到read[]中
Students;
top=-1;
fstreamfile("
Student.txt"
ios:
:
in);
//打开一个输入文件
while
(1)
file.read((char*)&
s,sizeof(s));
if(!
file)break;
top++;
read[top]=s;
file.close();
voidclear()
intaddStudent(intn,char*na)//查找是否存在
Student*p=equal(n);
if(p==NULL)
read[top].addStudent(n,na);
Student*equal(intStudentid)//按编号查找
for(inti=0;
=top;
if(read[i].getnumber()==Studentid&
&
read[i].gettag()==0)
return&
read[i];
returnNULL;
voidoutput()
read[i].output();
voidStudentdata();
//读者库维护
~RData()//析构函数,将read[]写到Student.txt文件中
out);
if(read[i].gettag()==0)
file.write((char*)&
read[i],sizeof(read[i]));
voidRData:
Studentdata()
charchoice;
charrname[20];
intStudentid;
Student*r;
while(choice!
='
0'
)
cout<
┏━━━━━━━━━━━━━┓\n"
┃读者维护┃\n"
┃━━━━━━━━━━━━━┃\n"
┃1.新增┃\n"
┃2.更改┃\n"
┃3.删除┃\n"
┃4.查找┃\n"
┃5.显示┃\n"
┃6.全删┃\n"
┃0.退出┃\n"
┗━━━━━━━━━━━━━┛\n"
//cout<
cin>
>
choice;
switch(choice)
case'
1'
输入读者编号:
Studentid;
输入读者姓名:
rname;
addStudent(Studentid,rname);
break;
2'
r=equal(Studentid);
if(r==NULL)
该读者不存在"
输入新的姓名:
r->
setname(rname);
3'
<
endl;
delbook();
4'
读入读者编号:
output();
5'
6'
clear();
default:
退出:
\n"
system("
cls"
);
classBook
charname[20];
intonshelf;
Book(){}
voidsetname(charna[])
voidaddbook(intn,char*na)
onshelf=1;
intborrowbook()//借书操作
if(onshelf==1)
onshelf=0;
voidretbook()//还书操作
voidoutput()//输出图书
setw(6)<
setw(18)<
name<
setw(10)
(onshelf==1?
在架"
已借"
)<
classBDatabase
Bookbook[Maxb];
//图书记录
BDatabase()//构造函数,将book.txt读到book[]中
Bookb;
book.txt"
b,sizeof(b));
file)break;
book[top]=b;
intaddbook(intn,char*na)
Book*p=equal(n);
if(NULL==p)
book[top].addbook(n,na);
Book*equal(intbookid)
if(book[i].getnumber()==bookid&
book[i].gettag()==0)
book[i];
voidbookdata();
if(book[i].gettag()==0)
book[i].output();
~BDatabase()//析构函数,将book[]写到book.txt文件中
book[i],sizeof(book[i]));
voidBDatabase:
bookdata()
charbname[40];
intbookid;
Book*b;
┃图书维护┃\n"
输入图书编号:
bookid;
输入图书书名:
bname;
addbook(bookid,bname);
b=equal(bookid);
if(b==NULL)
该图书不存在"
输入新的书名:
b->
setname(bname);
读入图书编号:
退出\n"
system("
break;
voidmain()
intbookid,Studentid;
RDataStudentDB;
BDatabaseBookDB;
while(choice!
┃图书管理系统┃\n"
┃1.借书┃\n"
┃2.还书┃\n"
┃3.图书维护┃\n"
┃4.读者维护┃\n"
借书读者编号:
Studentid;
图书编号:
bookid;
r=StudentDB.equal(Studentid);
//按编号查找
if(NULL==r)
不存在该读者,不能借书"
b=BookDB.equal(bookid);
不存在该图书,不能借书"
if(b->
borrowbook()==0)
该图书已借出,不能借书"
borrowbook(b->
getnumber());
还书\n读者编号:
图书编号:
不存在该读者,不能还书"
不存在该图书,不能还书"
retbook();
retbook(b->
BookDB.bookdata();
StudentDB.Studentdata();