ДАЮ 1ОО БАЛЛОВ! Безотлагательно!!! Нужна программка на С++ Желая бы часть!Опишите

ДАЮ 1ОО БАЛЛОВ! СРОЧНО!!! Нужна программка на С++
Хотя бы часть!

Опишите класс С - книжка. Члены класса - создатель - динамическая строка знаков, заглавие книги - строчка знаков, год издания целое число. Обусловьте в классе конструктор по умолчанию, конструктор инициализации, деструктор класса и функции - члены класса чтения имени творца книги, чтения наименования книжки, чтения цены книги, года издания. Объявите в классе дружескую функцию для конфигурации года издания и цены книги. В программке покажите работоспособность класса С.

Задать свой вопрос
1 ответ

В задании обозначено сделать дружескую функцию для того чтоб устанавливать новейшую стоимость на книгу, но не указано делать поле price, поэтому я его добавил (с типом double).

Мой вариант:

include lt;iostreamgt;

include lt;string.hgt;

using namespace std;

class Book

   char *autor;

   char name[50];

   int year;

   double price;

public:

   Book()

   

       autor = new char[50];

       strcpy(autor,"undefined");

       strcpy(name,"undefined");

       year=0;

       price=0;

   

   Book(char *name, char *autor, int year, double price)

   

       this-gt;autor = new char[50];

       this-gt;year=year;

       strcpy(this-gt;name,name);

       strcpy(this-gt;autor,autor);

       this-gt;price=price;

   

   Book()

   

       delete[]autor;

   

   char* getName() return name;

   char* getAutor() return autor;

   double getPrice() return price;

   int getYear() return year;

   friend  void setPrice(Bookamp; obj, double price);

   friend  void setYear(Bookamp; obj, int year);

;

void setPrice(Bookamp; obj, double price)

   obj.price = price;

void setYear(Bookamp; obj, int year)

   obj.year = year;

int main()

   Book b("Harry Potter","Joanne Rowling",1995,100);

   cout lt;lt; "Book name - " lt;lt; b.getName() lt;lt; endl;

   cout lt;lt; "Autor name - " lt;lt; b.getAutor() lt;lt; endl;

   cout lt;lt; "Release year - " lt;lt; b.getYear() lt;lt; endl;

   cout lt;lt; "Book price - " lt;lt; b.getPrice() lt;lt; endl;

   setPrice(b,150);

   setYear(b,1997);

   cout lt;lt; "New book price - " lt;lt; b.getPrice() lt;lt; endl;

   cout lt;lt; "New release year - " lt;lt; b.getYear() lt;lt; endl;

   cin.get();

   cin.get();

Andrjuha Sljuzar
Пример:class MyClass public: void foo();;void MyClass::foo() // do something
Bogoradze Dmitrij
На счет конструктора и заглавий таких же как и у полей класса. Для этого умышленно разработаны различные Code Style - советую ознакомиться желая бы с геософтовским. Если сказать о том как избежать схожих названий переменных, то можешь найти в подавляющем большинстве кодингстайлов, что переменные аттрибуты объекта следует именовать с приставки с какой-нибудь буковкой, к образцу m (member), что повышает как читабельность так и простоту содержания кода в чистоте, так же об жтом говорит Маерс.
Егор Раппа
4. На счет константных способов. Советую почитать Маерса на которого неисчерпаемо здесь ссылаюсь - метериал очень доступный, а так как он, так и сам Страуструп разговаривает о том, что все способы не модифицирующие внутреннее состояние класса следует делать постоянными, по тому, что дефинишн класса это по факту твой API к сути, в твоем случаи он не подходит её внутреннему поведению (способ не постоянный = предпологается что он видоизменит внутренее состояние сути, желая у тебя это не так).
Юрка Лебяченко
5. Рекомендовано писать френд-функции сначала дефинишена класса (вообщем рекомендовано от слова "совершенно" их не использовать, но в нашем случаи задание такое), обусловленно это тем, что все external dependency обязаны быть прозрачно видны сходу, а не там, куда может программер и не прочитать.
Ксения
6. Консоль выключается только если ты программируешь через визуал студию и не умеешь её настраивать (запусти просто не через дебаг мод, скорее всего поможет). Ты делаешь по факту костыль который будет мешать обычной работе программы. Это следует удалить и выучиться воспользоваться средой в которой ты работаешь.
Юрий
7. Компилятор почти все делает за ленивых программистов, да не все. По скольку программирование на C++ это не тоже самое что на Js/Python итд что дозволяет писать что угодно и как угодно и все одинаково будет работать... На C++ требуется особенное внимание к таким мелочам как качество кода, в данном случаи работает верховодило One enter point - One exit point. В твоем случаи заключительное отсутствует, рекомендовано вставлять по двум причинам - очевидность кода и снижение потенциально небезопасных мест.
Гроз Антонина
Сейчас то что ниже ты написал:- Обучение (не главно школьника либо не школьника) должно быть корректным и правильным. Коль ты не желаешь, не знаешь либо не умеешь писать как минимум превосходно, то лучше не берись. Ты вливаешь информацию на самых ранних шагах обучения, что всенепременно ведет к тому, что придется переучиваться позднее, что есть больнее и труднее.
Илюша
- this является излишней конструкцией в конструкторе объекта (простите за товтологию), решается это адекватным неймингом переменных и полей класса. В тот же момент как return в main как я теснее ссылался к правилу One enter point - one exit point является возмутительным его нарушением.
Маргарита Белгородская
- Способности адеватного написания кода понадобятся в работе, следует выробатывать их начиная с обучения, ибо такими темпами работы может и не быть по этому направлению. А как сказал выше, следует писать как минимум хорошо, если речь входит об ответах здесь.
Анжелика Рындина
Постскриптум1. Я не разговариваю что твой ответ нехороший, но косяки есть, и их следует поправлять, не в этом ответе так в последующих.2. Я коментирую ответы на C и C++ и буду коментировать, это моя стехия и я смотрю что бы ответы были или хорошими, или коментирую что не так - для этого коментарии здесь и необходимы.3. Все что я писал - не из 90х, ты можешь это отыскать в книгах подолбных Effective Modern C++ или C++ the complete reference от создателей языка или людей с громадным опытом и признаным авторитетом.
, оставишь ответ?
Имя:*
E-Mail:


Последние вопросы
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость

Физика.

Из точки м выходят 3 луча MP MN и MK причём

Геометрия.

выпиши в свою тетрадь те правила этикета которые тебе не были

Разные вопросы.

Анна хорошо учится у неё много подруг свободное от учёбы время

Обществознание.

10) Килограмм конфет дороже килограмма печенья на 52 р. За 8

Математика.

Во сколько раз число атомов кислорода в земной коре больше числа

Химия.

Составить монолог от имени дневника двоечника 7-10 предложений

Русский язык.

Рассматривая литературный язык как сложное взаимодействие книжного языка и разговорного,В.И.Чернышёв горячо

Разные вопросы.

Арабы входят в __________________ групп народов. Местом расселения арабов с незапамятных

Разные вопросы.

Грузовой автомобиль марки краз за одну поездку может доставить 7.500 кирпичей

Математика.

Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт