没有合适的资源?快使用搜索试试~ 我知道了~
C++图书管理系统代码.doc
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 151 浏览量
2021-12-18
10:21:22
上传
评论
收藏 199KB DOC 举报
温馨提示
试读
23页
C++图书管理系统代码.doc
资源推荐
资源详情
资源评论
.
一些基本的功能:
1:添加图书以及图书编号
2:能够实行基本的借书还还书的功能。
3: 删除图书信息等
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>//输入/输出文件流类
using namespace std;
const int Maxr=100;//最多的读者
const int Maxb=100;//最多的图书
const int Maxzf=5;//每位读者最多借五本书
//读者类,实现对读者的信息的描述
class Reader
{
private:
int tag; //删除标记 1:已删 0:未删
int no; //读者编号
char name[10]; //读者姓名
int zfbook[Maxzf];//所借图书
public:
Reader<> {}
char *getname<> {return name;} //获取姓名
int gettag<> {return tag;} //获取删除标记
int getno<> {return no;} //获取读者编号
void setname<char na[]> //设置姓名
{
strcpy<name,na>;
}
void delbook<>{ tag=1; }//设置删除标记 1:已删 0:未删
void addreader<int n,char *na>//增加读者
{
tag=0;
no=n;
strcpy<name,na>;
for<int i=0;i<Maxzf;i++>
zfbook[i]=0;
}
void zfrowbook<int bookid>//借书操作
1 / 23
.
{
for<int i=0;i<Maxzf;i++>
{
if <zfbook[i]==0>
{
zfbook[i]=bookid;
return;
}
}
}
int retbook<int bookid>//还书操作
{
for<int i=0;i<Maxzf;i++>
{
if<zfbook[i]==bookid>
{
zfbook[i]=0;
return 1;
}
}
return 0;
}
void disp<>//读出读者信息
{
cout << setw<5> << no <<setw<10> << name<<"借书编号:[";
for<int i=0;i<Maxzf;i++>
if<zfbook[i]!=0>
cout << zfbook[i] << "|";
cout << "]"<<endl;
}
};
//读者类库,实现建立读者的个人资料
class RDatabase
{
private:
int top; //读者记录指针
Reader read[Maxr];//读者记录
public:
RDatabase<> //构造函数,将 reader.txt 读到 read[]中
2 / 23
.
{
Reader s;
top=-1;
fstream file<"reader.txt",ios::in>;//打开一个输入文件
while <1>
{
file.read<<char *>&s,sizeof<s>>;
if <!file>break;
top++;
read[top]=s;
}
file.close<>; //关闭 reader.txt
}
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<>;
}
3 / 23
.
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<>
{
char choice;
char rname[20];
int readerid;
Reader *r;
while <choice!='0'>
{
cout <<"\n\n\t\t\t 读 者 维 护\n\n\n\t\t 1 新 增\n\n\t\t 2 更 改\n\
n\t\t 3 删 除\n\n\t\t 4 查 找\n\n\t\t 5 显 示\n\n\t\t 6 全 删\n\n\t\t
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;
}
cout << "输入新的姓名:";
cin >> rname;
r->setname<rname>;
4 / 23
.
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;
}
r->disp<>;
break;
case '5':
disp<>;
break;
case '6':
clear<>;
break;
default:cout<<"输入错误,请从新输入:";break;
}
}
}
//图书类,实现对图书的描述,图书的编号,书名,借出,还入等
class Book
{
private:
int tag;//删除标记 1:已删 0:未删
int no;//图书编号
char name[20];//书名
int onshelf;//是否再架 1:再架 2:已借
public:
5 / 23
剩余22页未读,继续阅读
资源评论
yunxidzh
- 粉丝: 59
- 资源: 30万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 毕业设计项目源码-使用Matlab基于PSO工具箱的函数寻优算法实现.zip
- libusb源码,libusb是一个跨平台的用户空间USB库
- 独栋别墅图纸CAD图纸D025-两层-10.72&06.36米-施工图.dwg
- 甄嬛传后宫大合影(闲的没事....)
- SAP GUI for Windows 8.00 patch 7 64Bit
- 毕业设计项目源码-使用Matlab基于动态粒子群算法的动态环境寻优算法.zip
- 华为云会议安装包适配华为擎云L410 -1060 ARM架构
- 清空redis缓存脚本指令
- Keithley6517静电计测试软件,支持24通道切换,DAQ高速采集
- STM8S微控制器-寄存器操作指南
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功