b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

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

电脑杂谈  发布时间:2019-07-18 06:05:52  来源:网络整理

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<<"读者服务 1新增 2更该 3删除 4查找 5显示 6全删 0退出"<<endl;

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<<"读者不存在"<<endl;

break;

c语言图书管理系统代码_c语言图书管理系统程序设计_c语言图书管理系统课设

}

cout<<"请输入新读者姓名:";

cin>>rname;

r->setname(rname);

break;

case 3:

cout<<"请输入读者编号:";

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<<"读者不存在"<<endl;

break;

}

r->delbook();

break;

case 4:

cout<<"请输入读者编号:";

cin>>readerid;

r=query(readerid);

if(r==NULL)

{

cout<<"该读者编号不存在"<<endl;

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<<setw(6)<<no<<setw(18)<<name<<setw(10)<<(onshelf==1?"在架":"已借")<<endl;

}

};

 

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;

c语言图书管理系统程序设计_c语言图书管理系统课设_c语言图书管理系统代码

}

cout<<"新增成功!"<<endl;

}

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<<"图书管理 1新增 2更该 3删除 4查找 5显示 6全删 0退出"<<endl;

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<<"该图书不存在"<<endl;

break;

}

cout<<"输入新书名:";

cin>>bname;

b->setname(bname);

cout<<"更名成功!"<<endl;

break;

case 3:

cout<<"输入图书编号:";

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<<"该图书不存在!"<<endl;

break;

}

b->delbook();

break;

case 4:

cout<<"请输入图书编号:";

cin>>bookid;

b=query(bookid);

if(b==NULL)

{

cout<<"该书不存在!"<<endl;

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<<" 1借书      "<<endl;

cout<<" 2还书      "<<endl;

cout<<" 3图书维护  "<<endl;

cout<<" 4读者维护  "<<endl;

cout<<" 0离开      "<<endl;

cin>>choice;

switch(choice)

{

case 1:

c语言图书管理系统代码_c语言图书管理系统课设_c语言图书管理系统程序设计

cout<<"借书,请输入读者编号:";

cin>>readerid;

cout<<"图书编号:";

cin>>bookid;

r=ReaderDB.query(readerid);

if(r==NULL)

{

cout<<"哈哈,借书成功!";

break;

}

b=BookDB.query(bookid);

if(b==NULL)

{

cout<<"不存在该书!"<<endl;

break;

}

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

{

cout<<"该书已借"<<endl;

break;

}

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

break;

cout<<"借书成功!"<<endl;

case 2:

cout<<"还书,请输入读者编号:";

cin>>readerid;

cout<<"请输入图书编号;";

cin>>bookid;

r=ReaderDB.query(readerid);

if(r==NULL)

{

cout<<"不存在该读者!"<<endl;

break;

}

b->retbook();

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

break;

cout<<"还书成功!"<<endl;

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

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...