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

简介: 返回:贺老师课程教学链接【项目4 - 图书馆的书】  编写一个Book类,包含name(书名)、writer(著者)、public_name(出版社)、price(价格)、number(数量)、NO(书号)等数据成员。定义成员函数setBook,用来为书籍的数据成员赋值,定义成员函数borrow和restore,分别办理借出和还回(借、还书时,暂时只完成数量的增1减1,这里的书仍是一种书

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


【项目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;
}



目录
相关文章
|
4月前
|
C++
C++代码的可读性与可维护性:技术探讨与实践
C++代码的可读性与可维护性:技术探讨与实践
89 1
|
3月前
|
关系型数据库 MySQL 测试技术
技术分享:深入C++时间操作函数的应用与实践
技术分享:深入C++时间操作函数的应用与实践
35 1
|
3月前
|
C++
C++解决线性代数矩阵转置 小实践
【6月更文挑战第3天】C++解决线性代数矩阵转置
36 2
|
3月前
|
存储 算法 安全
用C++打造极致高效的框架:技术探索与实践
本文探讨了如何使用C++构建高性能框架。C++凭借其高性能、灵活性和跨平台性成为框架开发的理想选择。关键技术和实践包括:内存管理优化(如智能指针和自定义内存池)、并发编程(利用C++的并发工具)、模板与泛型编程以提高代码复用性,以及性能分析和优化。在实践中,应注意代码简洁性、遵循最佳实践、错误处理和充分测试。随着技术发展,不断提升对框架性能的要求,持续学习是提升C++框架开发能力的关键。
67 1
|
3月前
|
C++
C++程序设计实践一上(题目来自杭州电子科技大学ACM)
C++程序设计实践一上(题目来自杭州电子科技大学ACM)
28 2
|
3月前
|
C++
C++程序设计实践一下(题目来自杭州电子科技大学ACM)
C++程序设计实践一下(题目来自杭州电子科技大学ACM)
33 1
|
3月前
|
存储 编译器 程序员
C++语言基础学习
C++语言基础学习
|
4月前
|
程序员 编译器 C++
C++中的异常处理:技术详解与实践
C++中的异常处理:技术详解与实践
|
4月前
|
安全 算法 程序员
探索C++的魅力:语言特性、编程实践及代码示例
C++是广泛应用的编程语言,尤其在系统级编程、应用开发、游戏和嵌入式系统中广泛使用。其主要特性包括:面向对象编程(封装、继承、多态),泛型编程(通过模板实现代码复用和类型安全),以及丰富的标准库和第三方库。在编程实践中,需注意内存管理、异常处理和性能优化。示例代码展示了面向对象和泛型编程,如类的继承和泛型函数的使用。C++的内存管理和库支持使其在解决复杂问题时具有高效和灵活性。
|
4月前
|
存储 算法 搜索推荐
C++编程之旅:深入理解与实践
**C++编程基础概览** C++是一种高效、灵活且功能强大的编程语言,适用于操作系统、游戏开发、网络编程等领域。它支持过程化、面向对象和泛型编程,包含丰富的数据类型、运算符、控制结构,并提供类、对象、继承等面向对象特性。C++标准模板库(STL)提供了向量、列表等数据结构和排序算法,便于开发。通过异常处理机制,C++能有效管理运行时错误。学习C++涉及深入理解其语法、数据类型、函数、面向对象概念以及如何利用STL来编写高效代码。