【问题标题】:define book class with member function and store value用成员函数定义书籍类并存储值
【发布时间】:2019-03-15 21:28:12
【问题描述】:

有人可以帮我解决以下要求

包含属性 BookId、BookName 和 Price 的课程书。它还包含用于输入和显示其属性的成员函数。

再写一个Writer类,里面包含他写的WriterName、Address和NumberofBooks的属性。它包含书籍对象数组作为 iys 成员。数组的长度应为 5,以存储五本书的数据。 它还应该包含一个成员函数来输入和显示其属性。

I found a solution on google with below code 但它似乎对我的一半要求很有用。

#include<iostream.h>
#include<stdio.h>
#include<conio.h>
class BOOK
{
    int BOOKNO;
    char BOOKTITLE[20];
    float PRICE;
    void TOTAL_COST(int N)
    {
        float tcost;
        tcost=PRICE*N;
        cout<<tcost;
    }
public:
    void INPUT()
    {
        cout<<"Enter Book Number ";
        cin>>BOOKNO;
        cout<<"Enter Book Title ";
        gets(BOOKTITLE);
        cout<<"Enter price per copy ";
        cin>>PRICE;
    }

    void PURCHASE()
    {
        int n;
        cout<<"Enter number of copies to purchase ";
        cin>>n;
        cout<<"Total cost is ";
        TOTAL_COST(n);
    }
};

void main()
{
    BOOK obj;
        obj.INPUT();
        obj.PURCHASE();
        getch();
    }

【问题讨论】:

  • 你好。你问的是什么问题?
  • 我会用 std::string 替换 char BOOKTITLE[20];
  • 顺便说一句,常见的编码约定是对常量使用全部大写,例如MAX_BOOK_TITLE_LENGTH
  • 亲爱的 Thomas,我在问我应该如何修改此代码以包含以下要求编写另一个类 Writer,其中包含由他编写的 WriterName、Address 和 NumberofBooks 的属性。它包含书籍对象数组作为 iys 成员。数组的长度应为 5,以存储五本书的数据。它还应该包含一个成员函数来输入和显示其属性。
  • 您被要求编写一些代码来模拟一本书 -> 作者关系。作者有一个姓名、一个地址和他们出版的书籍的集合。一本书有一个id、一个名字和一个价格。因此,作者与一本书具有一对多的关系。换句话说,一个作者可以写很多本书。在搜索解决问题的代码之前,您需要了解如何对问题进行建模。一旦你知道如何为问题建模,你就不需要复制/粘贴代码,它只是将心智模型转录成文字。

标签: c++ function class member


【解决方案1】:

包含一个对象的实例,你要在你的类中声明一个该类型的成员:

class Writer
{
  const size_t MAX_BOOKS_WRITTEN = 5U;
  Book         books_written[MAX_BOOKS_WRITTEN];
};

在上面的类中,“that contains that contains”写成的书的数组。

【讨论】:

  • 你的意思是我只是在我的代码末尾加入了你分享的上述代码?
  • 您可以随心所欲地使用它。您可以将Writer 类放入单独的头文件中,将方法实现放入单独的源文件中。您也可以将所有内容放入一个main 文件中。有很多可能性。
  • @user3340643 - 我恳求你不要简单地复制和粘贴代码,这样你学习的效率就不会那么高,甚至可能完全阻碍你作为程序员的成长。这是一个相当微不足道的问题,您应该能够通过将问题分解成块,进行一些基本的研究/学习然后编写解决方案来解决 - 这将为您提供 OOP 其余部分的跳板,并且通常像思考程序员。只是我的 2 美分
猜你喜欢
  • 2012-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
相关资源
最近更新 更多