c语言程序设计课程设计图书管理系统,c语言程序设计课程设计 图书管理系统 求原代码(2)...

fstream file("reader.txt",ios::in);

while(1)

{

file.read((char*)&s,sizeof(s));

if(!file)break;

top++;

read[top]=s;

}

file.close();

}

void clear()//删除所有读者信息

{

top=-1;

}

int addreader(int n,char *na)//添加读者,检查是否已存在

{

Reader *p=query(n);

if(p==NULL)

{

top++;

read[top].addreader(n,na);

return 1;

}

return 0;

}

Reader*query(int readerid)//按编号查找

{

for(int i=0;i<=top;i++)

if(read[i].getno()==readerid&&read[i].gettag==0)

return &read[i];

return NULL;

}

void disp()//删除读者所有信息

{

for(int i=0;i<=top;i++)

read[i].disp();

}

void readerdata();//读者库维护

~RDatabase()//析构函数,将read[]写入reader.txt文件中

{

fstream file("reader.txt",ios::out);

for(int i=0;i<=top;i++)

if(read[i].gettag()==0)

file.write((char*)&read[i],sizeof(read[i]));

file.close();

}

};

void RDatabase::readerdata()

{

int choice=1;

char rname[20];

int readerid;

Reader*r;

while(choice!=0)

{

cout<

cin>>choice;

switch(choice)

{

case 1:

cout<

cin>>readerid;

cout<

cin>>rname;

addreader(readerid,rname);

break;

case 2:

cout<

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<

break;

12-427-png_6_0_0_135_386_622_401_892.979_1262.879-664-0-0-664.jpg

}

cout<

cin>>rname;

r->setname(rname);

break;

case 3:

cout<

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<

break;

}

r->delbook();

break;

case 4:

cout<

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<

break;

}

case 5:

disp();

break;

case 6:

clear();

break;

}

}

}

class Book//图书类

{

int tag;//删除标记 1:已删;0:未删

int no;//图书编号

char name[20];//书名

int onshelf;//是否在架 1在架 0已借

public:

Book(){}

char*getname(){return name;}//获取读者姓名

int getno(){return no;}//获取图书编号

int gettag(){return tag;}//获取删除标记

void setname(char na[])//设置书名

{

strcpy(name,na);

}

void delbook(){tag=1;}//删除图书

void addbook(int n,char*na)//增加图书

{

tag=0;

no=n;

strcpy(name,na);

onshelf=1;

}

int borrowbook()//借书操作

{

if(onshelf==1)

{

onshelf=0;

return 1;

}

return 0;

}

void retbook()//还书操作

{

onshelf=1;

}

void disp()//输出图书

{

cout<

}

};

class BDatabase//图书库类

{

int top;//图书记录指针

Book book[Maxb];//图书记录

public:

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

{

Book b;

top=-1;

fstream file("book.txt",ios::in);

while(1)

{

file.read((char*)&b,sizeof(b));

if(!file)break;

top++;

book[top]=b;

}

file.close();

}

void clear()//全删

{

top=-1;

}

int addbook(int n,char*na)//增加图书

{

Book*p=query(n);

if(p==NULL)

{

top++;

book[top].addbook(n,na);

return 1;

870d3d4598327f018a4c1291300d3d76.png

}

cout<

}

Book*query(int bookid)//查找图书

{

for(int i=0;i<=top;i++)

if(book[i].getno()==bookid&&book[i].gettag()==0)

return NULL;

}

void bookdata();//图书库维护

void disp()

{

for(int i=0;i<=top;i++)

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

book[i].disp();

}

~BDatabase()//析构函数,将book[]写入book.txt文件中

{

fstream file("book.txt",ios::out);

for (int i=0;i<=top;i++)

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

file.write((char*)&book[i],sizeof(book[i]));

file.close();

}

};

void BDatabase::bookdata()

{

int choice;

char bname[40];

int bookid;

Book *b;

while(choice!=0)

{

cout<

cin>>choice;

switch(choice)

{

case 1:

cout<

cin>>bookid;

cout<

cin>>bname;

addbook(bookid,bname);

break;

case 2:

cout<

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<

break;

}

cout<

cin>>bname;

b->setname(bname);

cout<

break;

case 3:

cout<

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<

break;

}

b->delbook();

break;

case 4:

cout<

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<

break;

}

b->disp();

break;

case 5:

disp();

break;

case 6:

clear();

break;

}

}

}

void main()

{

int choice=1,bookid,readerid;

RDatabase ReaderDB;

Reader *r;

BDatabase BookDB;

Book *b;

while(choice!=0)

{

cout<

cout<

cout<

cout<

cout<

cin>>choice;

switch(choice)

{

case 1:

356119_4.jpg

cout<

cin>>readerid;

cout<

cin>>bookid;

r=ReaderDB.query(readerid);

if(r==NULL)

{

cout<

break;

}

b=BookDB.query(bookid);

if(b==NULL)

{

cout<

break;

}

if(b->borrowbook()==0)

{

cout<

break;

}

r->borrowbook(b->getno());

break;

cout<

case 2:

cout<

cin>>readerid;

cout<

cin>>bookid;

r=ReaderDB.query(readerid);

if(r==NULL)

{

cout<

break;

}

b->retbook();

r->retbook(b->getno());

break;

cout<

case 3:

BookDB.bookdata();

break;

case 4:

ReaderDB.readerdata();

break;

}

}

}

【输出结果】

1借书

2还书

3图书管理

4读者服务

0退出

3

图书管理 1新增 2更该 3删除 4查找 5显示 6全删 0退出

1

输入图书编号:1111

输入图书书名:武林外传

新增成功!

图书管理 1新增 2更该 3删除 4查找 5显示 6全删 0退出

1

输入图书编号:2222

输入图书书名:今夜无眠

新增成功!

图书管理 1新增 2更该 3删除 4查找 5显示 6全删 0退出

0

1借书

2还书

3图书管理

4读者服务

0退出

4

读者服务 1新增 2更该 3删除 4查找 5显示 6全删 0退出

1

请输入读者编号:001

读入读者姓名:周强

读者服务 1新增 2更该 3删除 4查找 5显示 6全删 0退出

0

1借书

2还书

3图书管理

4读者服务

0退出

1

借书,请输入读者编号:001

图书编号:1111

哈哈,借书成功! 1借书

2还书

3图书管理

4读者服务

0退出

2

还书,请输入读者编号:001

请输入图书编号;1111

还书成功!

1借书

2还书

3图书管理

4读者服务

0退出

3

图书管理 1新增 2更该 3删除 4查找 5显示 6全删 0退出

2

输入图书编号:2222

输入新书名:金庸全集

更名成功!

Press any key to continue

本文来自电脑杂谈,转载请注明本文网址:

http://www.pc-fly.com/a/jisuanjixue/article-113888-2.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值