电子图书馆源代码(图书馆电子资源怎么用)
admin 发布:2023-05-15 10:00 212
本篇文章给大家谈谈电子图书馆源代码,以及图书馆电子资源怎么用对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
图书馆信息管理C++源程序
#includeiostream.h
#includefstream.H
#includestdlib.h
#includestring.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";
cinchoice;
switch(choice)
{
case 1:
{
cout" Hello,图书管理员:\n";
liberian.selfprint();coutendl;
cout"1-- 增加新图书\n"
"2-- 改变读者的属性\n"
"3-- 显示历史记录\n"
"0-- 返回\n";
cinkey;
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";
cinkey;
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";
cinchoice;
switch(choice)
{
case 1:
cout" 书号, 书名, 数量?"endl;
cinbook.booknumberbook.booknamebook.store;
storef.write(reinterpret_castchar*(book),sizeof(bookData));
break;
case 2:
storef.seekg(0,ios::beg);
cout"Booknumber?\n";
cinkey;
do{
storef.read(reinterpret_castchar*(book),sizeof(bookData));
}while(book.booknumber!=keystoref.tellg()!=posEnd);
if(book.booknumber==key)
{
coutbook.booknumber"----"book.bookname"----"book.storeendl;
cout" 输入已有书增加的数量:"endl;
cinnum;
if(num0)
book.store+=num;
else
{
cout" Invalid input"endl;
}
storef.seekp(-long(sizeof(bookData)),ios::cur);////////////////////
storef.write(reinterpret_castchar*(book),sizeof(bookData));
cout"现在书籍: "book.bookname" 余量为: "book.storeendl;
}
else
cout"找不到此书,请重新查阅书号是否正确!"endl;
break;
case 0:
return ;
}
}
}
//书籍查询
void Find(fstream f)
{
bookData book;
int key;
int choice;
f.seekg(0,ios::end);
int posEnd=f.tellp();
cout"*************书籍查询***************"endl;
while(1)
{
cout" 请输入您的选择\n"
" 1-- 检索一本书\n"
"2-- 显示全部书籍\n"
"0-- 返回\n";
cinchoice;
switch(choice)
{
case 1:
f.seekg(0,ios::beg);
cout"输入你想检索书的书号"endl;
cinkey;
do{
f.read(reinterpret_castchar*(book),sizeof(bookData));
}while(book.booknumber!=keyf.tellg()!=posEnd);
if(book.booknumber==key)
coutbook.booknumber"---"book.bookname"---"book.storeendl;
else
cout"找不到此书,请重新确认!"endl;
break;
case 2:
f.seekg(0,ios::beg);
do{
f.read(reinterpret_castchar*(book),sizeof(bookData));
coutbook.booknumber"---"book.bookname"--"book.storeendl;
}while(f.tellg()!=posEnd);
break;
case 0:
return ;
}
}
}
Reader::Reader(fstream c)
{
file=c;
Person person={"0","0",0,{{0,"0",0}, {0,"0",0}}};
}
void Reader::print()
{
cout"Name""---"person.name'\n\n'"studynumber---"person.studynumber'\n';
}
//操作书籍??????????????????????
void Reader::handlebook(fstream filee)
{
int key; int choice;
bookData book; bool iflag;int num=0;
filee.seekp(0,ios::end);
int posEnd=filee.tellp();
while(!(iflag=findreader()))
{
num++;
if(num=3)
return;
}
//coutperson.name;
while(1)
{
cout"1-- 借书\n"
"2-- 还书\n"
"3-- 查找一本书\n"
"0-- 返回"'\n';
cinchoice;
switch(choice)
{
case 1:
{
filee.seekp(0,ios::end);
int posEnd=filee.tellp();
if(person.count=1)
{
cout" 输入你要借阅图书的书号:"endl;
cinkey;
filee.seekg(0);
do{
filee.read(reinterpret_castchar*(book),sizeof(bookData));
}while(book.booknumber!=keyfilee.tellp()!=posEnd);
//coutbook.booknumberendl;
if(book.booknumber==key)
{
//cout" 找到你想借阅的图书,成功借阅!"endl;
if(book.store0)
{
person.Rbook[person.count]=book;
person.count+=1;
book.store-=1;
filee.seekp(-long(sizeof(bookData)),ios::cur);
filee.write(reinterpret_castchar*(book),sizeof(bookData));
cout" 找到你想借阅的图书,成功借阅!"endl;
cout"书籍 :"book.bookname"剩余的本数为:"book.storeendl;
}
else
cout" 现在此图书已经被借完了,请耐心等待几天!"endl;
}
else
cout" 找不到你想要的图书"endl;
}
else
cout"你最多只能借2本\n\n";
}
break;
case 2:
{
bookData blankbook={0,"0",0};
//if(person.count0)
//{
int iflag=0;
filee.seekg(0);
cout" 输入你想要还的书的书号:"endl;
cinkey;
for(int i=0;i2;i++)
{
if(key==person.Rbook[i].booknumber)
{
person.Rbook[i]=blankbook;
cout"成功归还此书!";
iflag=1;
person.count--;
do{
filee.read(reinterpret_castchar*(book),sizeof(bookData));
}while(book.booknumber!=keyfilee.tellp()!=posEnd);
if(book.booknumber==key)
{
book.store+=1;
filee.seekp(-long(sizeof(bookData)),ios::cur);
filee.write(reinterpret_castchar*(book),sizeof(bookData));
cout"书籍 :"book.bookname"余本量为: "book.storeendl;
}
}
}
if(!iflag)
{
cout" 你没有借阅那本书,请确认!"endl;
}
// }
// else
// cout"你没有借书,请重新确认!\n\n";
}
break;
case 3:
Find(filee);
break;
case 0:
return;
}
}
}
void Reader::change()
{
char newname[20]; char newnumber[10];
int choice;
file.seekp(0,ios::cur);
int Posend=file.tellp(); bool iflag;int num=0;
while(!(iflag=findreader()))
{
num++;
if(num=3)
return;
}
cout" 请输入你的选择!"endl;
cout"1--改变名字!\n"
"2--修改学号r\n"
"0--返回\n";
cinchoice;
switch(choice)
{
case 1:
cout"输入你的新名字!\n";
cinnewname;
strcpy(person.name,newname);
break;
case 2:
cout"输入你的信学号?\n";
cinnewnumber;
strcpy(person.studynumber,newnumber);
break;
default:
break;;
}
file.seekp(-long(sizeof(Person)),ios::cur);
file.write(reinterpret_castchar*(person),sizeof(Person));
cout"信息修改成功!"endl;
}
void Liberian::selfprint()
{
cout" 图书管理员 :\n"
worknumber"---"workname" 为您服务!\n";
}
Liberian::Liberian(char *a,char*b)
{
strcpy(workname,a);
strcpy(worknumber,b);
}
void Liberian::changeReader(Reader a)
{
int choice; char newname[20];char newnumber[10];
cout"修改读者的数据信息!\n";
cout"1-- 增加一个读者\n"
"2-- 删除一个读者\n"
"0-- 结束程序\n";
cinchoice;
switch(choice)
{
case 1:
a.Addreader();
break;
case 2:
a.deletereader();
break;
case 0:
return;
}
}
void Reader::Addreader()
{
Person temp;bookData book={0,"0",0};
file.seekp(0,ios::end);
int Posend=file.tellp();
cout"输入你想要增加的读者的名字"endl;
cintemp.name;
cout"新读者的学号:"endl;
cintemp.studynumber;
temp.Rbook[1]=book; temp.Rbook[0]=book; temp.count=0;
file.write(reinterpret_castchar*(temp),sizeof(Person));
cout" 成功添加!"temp.nameendl;
}
void Reader::deletereader()
{
file.seekp(0,ios::end);
int Posend=file.tellp();
Person person;
char name[20];
cout"输入要删除的读者的名字!"endl;
cinname;
file.seekg(0);
do{
file.read(reinterpret_castchar*(person),sizeof(Person));
}while(strcmp(name,person.name)file.tellp()!=Posend);
if(!strcmp(name,person.name))
{
bookData blankbook={0,"0",0};
Person guest={"0","0",0,{{0,"0",0},{0,"0",0}}};
file.seekp(-long(sizeof(Person)),ios::cur);
file.write(reinterpret_castchar*(guest),sizeof(Person));
cout"成功删除!"person.nameendl;
}
else
cout"查无此人!"endl;
}
bool Reader::findreader()
{
file.seekp(0,ios::end);
int Posend=file.tellp();
char name[20];
Person guest={"0","0",0,{{0,"0",0},{0,"0",0}}};
cout"输入查找人的名字!";
cinname;
file.seekg(0);
do{
file.read(reinterpret_castchar*(person),sizeof(Person));
}while(strcmp(name,person.name)file.tellp()!=Posend);
if(!strcmp(name,person.name))
{
cout"查到此人:"person.nameendl;
return true;
}
else
{
cout"找不到此人,请重新确认!"endl;
return false;
}
}
//借阅历史
void History::readhistory(fstream a)
{
readerbook=a;
char name[10]="0";
readerbook.seekp(0,ios::end);
int Posend=readerbook.tellp();
Person guest; int iflag=1;
cout" 书籍借阅信息如下:"endl;
cout"姓名 学号 借书量 书籍名"endl;
readerbook.seekg(0,ios::beg);
do{
readerbook.read(reinterpret_castchar*(guest),sizeof(Person));
if(strcmp(guest.Rbook[1].bookname,name) || strcmp(guest.Rbook[1].bookname,name))
{
coutguest.name" "guest.studynumber" "guest.count" ";
for(int i=0;i2;i++)
if(strcmp(guest.Rbook[i].bookname,name))
coutguest.Rbook[i].bookname;
iflag=0;
}
}while(readerbook.tellp()!=Posend);
if(iflag)
cout"没有读者借阅图书!"endl;
}
vb+sql 图书馆管理系统源代码 谁知道啊???
哇,毕业设散迅计呀。
我用的PB8开发的。还有扫描器,服务器群。
全文客悉缓户端睁掘模查寻。全套程序。
关于电子图书馆源代码和图书馆电子资源怎么用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 05-19网络推广怎么找客户资源,怎么在网络推广
- 05-19怎么做网站,怎么做网站教程视频
- 05-19搜索关键词,word文档怎么搜索关键词
- 05-19怎么免费创建自己的网站,怎么免费创建自己的网站平台
- 05-18百度推广官方电话,免费百度广告怎么投放
- 05-18新手怎么做网络销售,网销怎么找客户资源
- 05-18个人怎么建网站,个人建网站步骤
- 05-18品牌推广与传播方案,品牌推广与传播方案怎么写
- 05-18怎么做网上销售,怎么样做网销
- 05-18贴吧友情链接在哪,手机贴吧怎么看友情贴吧
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接