doc

图书管理系统

  • 1星
  • 日期: 2015-10-31
  • 大小: 39KB
  • 所需积分:1分
  • 下载次数:0
  • favicon收藏
  • rep举报
  • 分享
  • free评论
标签: 图书

C++ 图书管理系统

文档内容节选

include iostream include iomanip include string include fstream输入输出文件流类 using namespace std const int Maxr100最多的读者 const int Maxb100最多的图书 const int Maxbor5每位读者最多借五本书 读者类实现对读者的信息的描述 class Reader private int tag 删除标记 1已删 0未删 int no 读者编号 char name10 读者姓名 int borbookMaxbor所借图书 public Reader char getname return name 获取姓名 int gettag return tag 获取删除标记 int getno return no 获取读者编号 void setnamechar na 设置姓名 strcpynamena void delbook tag1 设置删除标记 1已删 0未删 void addreaderint nchar na增加读者 tag0 non strcpy......

#include #include #include #include //输入/输出文件流类 using namespace std; const int Maxr=100;//最多的读者 const int Maxb=100;//最多的图书 const int Maxbor=5;//每位读者最多借五本书 //读者类,实现对读者的信息的描述 class Reader { private: int tag; //删除标记 1:已删 0:未删 int no; //读者编号 char name[10]; //读者姓名 int borbook[Maxbor];//所借图书 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> 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 << " 该读者不存在 "<> 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; } 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: 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? "在架":"已借") <> choice; switch (choice) { case '1': cout << "输入图书编号:"<> bookid; cout << "输入图书书名:"<> bname; addbook(bookid,bname); break; case '2': cout << "输入图书编号:"<> bookid; b=query(bookid); if (b==NULL) { cout << " 该图书不存在 "<> bname; b->setname(bname); break; case '3': cout <<" 读入图书编号:"<> bookid; b=query(bookid); if (b==NULL) { cout <<" 该图书不存在" << endl; break; } b->delbook(); break; case '4': cout << " 读入图书编号:"<> bookid; b=query(bookid); if (b==NULL) { cout <<" 该图书不存在"<< endl; break; } b->disp(); break; case '5': disp(); break; case '6': clear(); break; default:cout<<"输入错误,请从新输入:"; } } } //main() 函数的实现,程序的主界面的引导 void main() { char choice; int bookid,readerid; RDatabase ReaderDB; Reader *r; BDatabase BookDB; Book *b; while(choice!='0') { cout <> choice; switch (choice) { case '1': cout <<" 借书 读者编号:"; cin >>readerid; cout <<" 图书编号: "; cin >>bookid; r=ReaderDB.query(readerid);//按编号查找 if (NULL==r) { cout <<" 不存在该读者,不能借书"<< endl; break; } b=BookDB.query(bookid); if (b==NULL) { cout <<" 不存在该图书,不能借书"<< endl; break; } if (b->borrowbook()==0) { cout << " 该图书已借出,不能借书"<< endl; break; } r->borrowbook(b->getno()); break; case '2': cout<<"还书\n 读者编号:"; cin >>readerid; cout << " 图书编号:"; cin >>bookid; r=ReaderDB.query(readerid); if (r==NULL) { cout <<" 不存在该读者,不能还书" << endl; break; } b=BookDB.query(bookid); if (b==NULL) { cout <<" 不存在该图书,不能还书" <retbook(); r->retbook(b->getno()); break; case '3': BookDB.bookdata(); break; case '4': ReaderDB.readerdata(); break; default:cout<<"输入错误,请从新输入:"; } } }
更多简介内容

推荐帖子

CC2630 TIMAC协议栈低功耗问题
项目功能: 采集5s数据发送——休眠5s——采集5s数据发送,循环往复 平台: CC2630 协议栈:timac_1_05_02_43299   问题描述:  在休眠5s的过程中,整体电流在7,8ma,只比数据发送低1ma,这是不科学的。验证没有event在跑的时候   是可以到3,400ua的电流消耗的(主要是板子上的传感器功耗)。   看了TI的
fish001 【无线连接】
Microchip有奖直播|通过TrustFlex安全元件和Microsoft Azure实现安全身份验证
TrustFLEX安全元件是一款预配置的器件,可以采用 Microchip 的安全服务。它不仅节省成本,还减小风险,防止密钥暴露于软件或第三方。Microchip将在此次研讨会上介绍TrustFLEX 默认提供的各种身份验证用例,并讲解如何通过Microsoft Azure IoT Hub实现设备与云端的安全身份验证。   【直播详情】通过TrustFlex安全元件和Microsoft
EEWORLD社区 FPGA/CPLD
无线通信的一些基本原理
与有线传输相比,无线传输具有许多优点。或许最重要的是,它更灵活。无线信号可以从一个发射器发出到许多接收器而不需要电缆。所有无线信号都是随电磁波通过空气传输的,电磁波是由电子部分和能量部分组成的能量波。 在无线通信中频谱包括了9khz到300000Ghz之间的频率。每一种无线服务都与某一个无线频谱区域相关联。无线信号也是源于沿着导体传输的电流。电子信号从发射器到达天线,然后天线将信号作为一系列
蓝先生 RF/无线
RF/微波开关测试系统设计基础
无线通信产业的巨大成长意味着对于无线设备的元器件和组件的测试迎来了大爆发,包括对组成通信系统的各种RF IC 和微波单片集成电路的测试。这些测试通常需要很高的频率,普遍都在GHz范围。本文讨论了射频和微波开关测试系统中的关键问题,包括不同的开关种类,RF开关卡规格,和有助于测试工程师提高测试吞吐量并降低测试成本的RF开关设计中需要考虑的问题。   射频开关和低频开关的区别   将一个信号从一个
fish001 RF/无线
怎么根据时序图来编写对应的程序过程
  刚刚拿到一个芯片,常用的芯片可以参考网上的例程来做深入了解,对于一个不常用的芯片来说,Datasheet几乎是使用芯片的唯一的资料,所以根据Datasheet时序图写出对应的驱动程序就尤为重要。 本文根据一个简单的例子来阐述根据时序图来编写对应的程序过程。旨在讲解对于初学者应该怎么利用芯片的时序图编写符合要求的底层驱动程序(老鸟请跳过)。 好了,直接开始。 首先首先首先
fish001 【微控制器 MCU】
LOTO课3: 频率响应曲线测绘 --- 3组不同参数的RC低通滤波器测试
在工作和项目中,经常会遇到一个功能电路模块对信号进行调理,或滤波,或放大,或衰减,或阻抗变换。这些功能电路模块可能是无源阻容的,也可能是有源的运放电路,也可能是更复杂的系统。但是它们对信号进行调理的共最重要的特性就是频率响应曲线。在这一点上,他们对我们来说,都是一样的一个黑盒系统。 大部分时候,我们需要了解它的频率响应曲线来进行系统设计和验证,这个视频就采用最简单的RC滤波器来演示我们面
LOTO2018 移动便携

评论

登录/注册

意见反馈

求资源

回顶部

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版 版权声明

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
$(function(){ var appid = $(".select li a").data("channel"); $(".select li a").click(function(){ var appid = $(this).data("channel"); $('.select dt').html($(this).html()); $('#channel').val(appid); }) })