帮忙看看图书馆管理程序
#include<iostream.h>
#include<fstream.H>
#include<stdlib.h>
#include<string.h>
struct bookData
{
int booknumber;
char bookname[30];
int store;
};
struct Person
{
char name[20];
char studynumber[10];
int count;
bookData Rbook[2];
//bookData Rbook;
};
class History
{
public:
History(fstream& a){readerbook=a;}
void writehistory();
void readhistory(fstream&);
private:
fstream readerbook;
};
class Liberian;
void Find(fstream&);
void CreateTxt(fstream&);
class Reader
{
friend Liberian;
public:
Reader(fstream&);
void print();
void handlebook(fstream&);
void change();
bool findreader();
void Addreader();
void deletereader();
private:
fstream file;
Person person;
};
class Liberian
{
public:
Liberian(char *,char *);
void changeReader(Reader&);
void selfprint();
void Append(fstream&);
private:
char workname[20];
char worknumber[20];
};
int main()
{
fstream bookRecord(" book.dat",ios::in| ios::out);
if(!bookRecord)
{
cerr<<" Can't open,try again!"<<endl;
exit(1);
}
fstream readerRecord("reader.dat",ios::in|ios::out);
if(!readerRecord)
{
cerr<<" Can't open,try again!"<<endl;
exit(1);
}
int choice;
int key; Reader reader(readerRecord);//读者管理系统
Liberian liberian("李天","123456");//图书管理员
History rec(readerRecord);//声明显示历史记录类
while(1)
{
cout<<" 请输入您的选择:\n\n"
<<"1--图书管理员\n"
<<"2--读者系统\n"
<<"0--结束程序\n";
cin>>choice;
switch(choice)
{
case 1:
{
cout<<" Hello,图书管理员:\n";
liberian.selfprint();cout<<endl;
cout<<"1-- 增加新图书\n"
<<"2-- 改变读者的属性\n"
<<"3-- 显示历史记录\n"
<<"0-- 返回\n";
cin>>key;
switch(key)
{
case 1:
liberian.Append(bookRecord);
break;
case 2:
liberian.changeReader(reader);
break;
case 3:
rec.readhistory(readerRecord);
case 0:
break ;
}
}
break;
case 2:
{
cout<<"学生读者\n"; int iflag=1;
//reader.findreader();
cout<<"1-- 借书与还书信息\n"
<<"2-- 修改个人信息\n"
<<"0-- 返回\n";
cin>>key;
switch(key)
{
case 1:
reader.handlebook(bookRecord);
break;
case 2:
reader.change();
break;
case 0:
break;
}
}
break;
default:
return 0;
}
}
return 0;
}
//增加书籍
void Liberian::Append(fstream& storef)
{
bookData book;
int choice;
int key;
int num;
storef.seekp(0,ios::end);
int posEnd=storef.tellp();
cout<<"*************书籍入库***************"<<endl;
while(1)
{
cout<<" Please enter your choice:"<<endl;
cout<<"1--添加新书\n"<<"2--已有书籍\n"<<"0--返回\n";
cin>>choice;
switch(choice)
{
case 1:
cout<<" 书号, 书名, 数量?"<<endl;
cin>>book.booknumber>>book.bookname>>book.store;
storef.write(reinterpret_cast<char*>(&book),sizeof(bookData));
break;
case 2:
storef.seekg(0,ios::beg);
cout<<"Booknumber?\n";
cin>>key;
do{
storef.read(reinterpret_cast<char*>(&book),sizeof(bookData));
}while(book.booknumber!=key&&storef.tellg()!=posEnd);
if(book.booknumber==key)
{
cout<<book.booknumber<<"----"<<book.bookname<<"----"<<book.store<<endl;
cout<<" 输入已有书增加的数量:"<<endl;
cin>>num;
if(num>0)
book.store+=num;
else
{
cout<<" Invalid input"<<endl;
}
storef.seekp(-long(sizeof(bookData)),ios::cur);////////////////////
storef.write(reinterpret_cast<char*>(&book),sizeof(bookData));
cout<<"现在书籍: "<<book.bookname<<" 余量为: "<<book.store<<endl;
}
else
cout<<"找不到此书,请重新查阅书号是否正确!"<<endl;
break;
case 0:
return ;
}
}
}
...全文


