《C++语言基础》实践参考——图书馆的书

返回:贺老师课程教学链接

【项目4 - 图书馆的书】
  编写一个Book类,包含name(书名)、writer(著者)、public_name(出版社)、price(价格)、number(数量)、NO(书号)等数据成员。定义成员函数setBook,用来为书籍的数据成员赋值,定义成员函数borrow和restore,分别办理借出和还回(借、还书时,暂时只完成数量的增1减1,这里的书仍是一种书的概念,随着课程进展,我们继续做真正的图书管理系统,每本书都能追踪到是谁何时借了,何时还了)业务,定义成员函数print用于输出—有关书的信息,定义set_NO与get_NO来实现修改类对象的书号与获得类对象的书号。自己写main函数,用来测试你编写的类。

[参考解答]

#include <iostream>
#include <cstring>
using namespace std;
class Book
{
    char name[60];
    char writer[20];
    char public_name[30];
    float price;
    int number;
    int NO;
public:
    void setBook(char * na,char *wr,char *pu, float pr,int nu,int no );
    void set_NO(int n);
    int get_NO( );
    void borrow( );
    void restore( );
    void print( );
};

int main()
{
    Book aBook;
    aBook.setBook("Change in University", "He Lijian","Posts & Telecom Press",49,5,1234);
    aBook.print();
    aBook.borrow();
    aBook.print();
    aBook.restore();
    aBook.print();
    aBook.set_NO(4321);
    aBook.print();
    cout<<"new book NO: " <<aBook.get_NO()<<endl;
    return 0;
}

void Book::setBook(char * na,char *wr,char *pu, float pr,int nu,int no )
{
    strcpy(name,na);
    strcpy(writer ,wr);
    strcpy(public_name , pu);
    price=pr;
    number=nu;
    NO=no;
}
void Book::set_NO(int n)
{
    NO=n;
}
int Book::get_NO( )
{
    return NO;
}
void Book::borrow( )
{
    number--;
}
void Book::restore( )
{
    number++;
}
void Book::print( )
{
    cout<<"name: "<<name<<endl;
    cout<<"writer: "<<writer<<endl;
    cout<<"public name: "<<public_name<<endl;
    cout<<"price: "<<price<<endl;
    cout<<"number: "<<number<<endl;
    cout<<"NO: "<<NO<<endl<<endl;
}
时间: 2024-11-27 23:55:50

《C++语言基础》实践参考——图书馆的书的相关文章

《C++语言基础》参考——学生可以相加吗?

返回:贺老师课程教学链接 谈及运算,我们总是习惯"数"的运算.而实际上,像时间之类的对象也是可以进行加减运算的.再进一步,我们的思维还可以拓展,运算加以加到任何事物上,只要我们可以为这些"运算"设计好意义. 例如:有班级类和学生类.两个学生相加,组成了一个由两个学生构成的班级:班级加学生,代表班级增加了一名新同学:学生乘学生,结果为这两个学生"结对子",可以做某些事(这个对子,需要定义成一个新的类):班级乘班级,是班级中的所有学生,两两结对子的所

《C++语言基础》参考——转换构造函数与类型转换函数

返回:贺老师课程教学链接 下面的程序,想在main函数中要完成实数加复数.复数加实数,不可以.编译下面的程序出现错误,就是因为没有提供对应类型数据的运算符重载函数. #include <iostream> using namespace std; class Complex { public: Complex():real(0), imag(0){} Complex(double r,double i):real(r), imag(i){} Complex operator+(const Co

《C++语言基础》网络课程主页

返回 贺利坚教学链接 本课程是在大学的实体课程基础上建设的一门网络课程,将我在教学中建设的资源,让更多的人能够用到. 课程链接是:点击打开链接 同步实体课在 点击打开链接,那里有92名同时学习的"同学",以及他们的博客链接. 坚持这门课程学习的学员,请在评论处留言,我将建立专门的链接,一起建设学习的氛围. 学员链接:(待加) 课程内容 一.从C到C++ 课时 视频 示例程序 自测 学习指导与实践 实践项目参考解答 1.1 由C语言到C++(暨本课介绍) 链接   1.2 C语言的基本成

《C++语言基础》实践项目——初识对象

返回:贺老师课程教学链接 [项目1 - 旱冰场造价] 有一个圆形的旱冰场地,场地内抹水泥,造价为每平方米M元,围栏用木条围成,每米造价N元,输入旱冰场半径,用程序计算出其造价. 一级提示: 先定义类,确定其数据成员和成员函数.在这里要定义的旱冰场类,实际我们只关心其面积和周长,根据面积计算场地内抹水泥的造价,根据周长计算围栏的造价.有了类的定义,在main函数中定义该类对象,调用成员函数即可以完成求解.二级提示: 实际上,对于旱冰场,我们只关心它就是一个圆.这就是设计中抓住了本质.于是,设计一个

《Java语言导学(原书第6版)》一第3章 语言基础

第3章 语言基础 前面已经介绍了对象的状态存储在字段中.然而,Java程序语言经常会使用变量(variable).3.1节讨论字段与变量的关系,介绍变量的命名规则和约定.基本的数据类型(主类型(primitive type).字符串和数组).默认值(default value)和字(literal). 3.2节介绍Java程序语言的运算符.介绍常用和不常用的运算符.所有讨论都包含代码实例,而且这些代码实例都可以编译和运行. 运算符用于构建表达式,以进行计算.表达式是语句的核心组件.语句往往被划分

C++语言基础-入门简介

C++是个强大的语言,可以用于做别的语言做不了的工作.但是,这种强大功能是有代价的.开始使用C++时,你可能会遇到内存溢出和访问失效等问题,使程序死机.这里用最简短的篇幅介绍C++语言基础.C++语言本身有专著介绍,这种书还特别厚,所以别指望我能用三言两语说清楚.读者学完本书并使用C++ Builder一般时间之后,最后对C++语言再作更深入的了解. C++可以最充分地利用面向对象编程(OOP)的优势.OOP不只是一个新名词,而有它的实际意义,可以生成可复用的对象.新术语 对象(object),

c-关于C语言基础概念问题

问题描述 关于C语言基础概念问题 刚才迷茫在static的使用,于是看到下面的解释觉得好棒!我在看的C语言程序设计并没有如此详细的解释,谁能推荐一本类似于解释原理的书,就像下图中那种的,告诉你一些名词解释,代码被读取后在系统中如何被分析,被使用?感激之情将溢于言表! 解决方案 以前在图书馆看到过一本叫做 你必须要知道的C256个问题 (大概是叫这个) 里面都是一些很基础的名词解释 或者一些容易弄混淆的知识点 解决方案二: static对全局变量的修饰,可以认为是限制了只能是本文件引用此变量.有的

Swift语言指南(一)--语言基础之常量和变量

原文:Swift语言指南(一)--语言基础之常量和变量 Swift 是开发 iOS 及 OS X 应用的一门新编程语言,然而,它的开发体验与 C 或 Objective-C 有很多相似之处. Swift 提供了 C 与 Objective-C 中的所有基础类型,包括表示整数的 Int,表示浮点数的 Double 与 Float,表示布尔值的 Bool,以及表示纯文本数据的 String. Swift 还为两个基本集合类型 Array 与 Dictionary 提供了强大的支持,详情可参考 (集合

【软考教程】程序设计语言基础

继续软考教程的学习,在第1章,我们主要是对计算机的组成和工作原理做了一定了解,可以说,在他的带领下,我们对计算机硬件方面的知识,有了更加坚实的基础. 第2章,程序设计语言基础知识.不看内容,光从标题来看,并不会觉得陌生."程序设计语言",至今,我们已经接触过不止一种了,从最初的VB.到后来的VB.NET.C#.C++,软考前个阶段,我们还见到了早有耳闻的Java世界. 那么,下面就跟随着"设计语言"的脚步,一起发现编程路上美丽的风光吧. 想要对程序设计语言有个宏观上