производный класс
Здравствуйте помогите разобраться имеется класс книга:
читать дальше »
Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
class Book{
char *author;
char *name;
char *janr;
int year;
public:
Book(char *au, char *nb, char *jr, int yr);
void set_author(char *au){author=au;} // Установка имени автора книги
void set_name(char *nb){name=nb;} // Установка названия книги
void set_janr(char *jr){janr=jr;} // Установка жанра книги
void set_year(int yr){year=yr;} // Установка года выпуска книги
// Функции "get", возвращение значений полей книги
char *get_author() {return author;}
char *get_name() {return name;}
char *get_janre() {return janr;}
int get_year() {return year;}
void printBook(); // Печать значений книги
void CalculateYearBook(); //Вычисление возраста книги
};
Book::Book(char *au, char *nb, char *jr, int yr)
// Выделение памяти
{
author = new char[strlen(au) + 1];
strcpy(author, au);
name = new char[strlen(nb) + 1];
strcpy(name, nb);
janr = new char[strlen(jr) + 1];
strcpy(janr, jr);
year=yr;
}
void Book::CalculateYearBook()
{
int MyYear = 2008,
resultYear;
resultYear = MyYear - year;
cout<<"\n This Book "<<resultYear<<" Years! \n"<<endl;
}
// Печать объекта-------------------------------------------------------------
void Book::printBook()
{
cout<<" Author Book: "<<author<<endl;
cout<<" Name Book: "<<name<<endl;
cout<<" Janre Book: "<<janr<<endl;
cout<<" Year Book: "<<year<<endl;
}
void main()
{
Book b("Servantes", "Don Kixot", "Romantic", 1950);
b.printBook();
b.CalculateYearBook();
b.set_author("Pushkin");
b.set_name("Lukomorie");
b.set_janr("skazki");
b.set_year(1968);
b.printBook();
b.CalculateYearBook();
}
Создать производный класс типа – учетная карточка наименования в библиотеке. Доопределить в нем поля: шифр, количество экземпляров, количество выдач наименования по запросу; методы: установки полей и получения значений полей, определения коэффициента востребованности наименования (относительно общего количества экземпляров наименования). Переопределить метод печати.
Я думаю, что должно выглядеть вот так
читать дальше »
Код:
#include "stdafx.h"
#include <iostream>
using namespace std;
class Book{
protected:
char *author;
char *name;
char *janr;
int year;
public:
Book(char *au, char *nb, char *jr, int yr);
void set_author(char *au){author=au;}
void set_name(char *nb){name=nb;}
void set_janr(char *jr){janr=jr;}
void set_year(int yr){year=yr;}
char *get_author() {return author;}
char *get_name() {return name;}
char *get_janre() {return janr;}
int get_year() {return year;}
void printBook();
void CalculateYearBook();
};
Book::Book(char *au, char *nb, char *jr, int yr)
{
author = new char[strlen(au) + 1];
strcpy(author, au);
name = new char[strlen(nb) + 1];
strcpy(name, nb);
janr = new char[strlen(jr) + 1];
strcpy(janr, jr);
year=yr;
}
void Book::CalculateYearBook()
{
int MyYear = 2008,
resultYear;
resultYear = MyYear - year;
cout<<"\n This Book "<<resultYear<<" Years! \n"<<endl;
}
void Book::printBook()
{
cout<<" Author Book: "<<author<<endl;
cout<<" Name Book: "<<name<<endl;
cout<<" Janre Book: "<<janr<<endl;
cout<<" Year Book: "<<year<<endl;
}
class library_card:public Book
{
int shifr;
int exeplyars;
int vydachi;
public:
library_card(int sh, int kol_ex, int kol_vyd);
void set_shifr(int sh){shifr=sh;}
void set_exeplyars(int kol_ex){exeplyars=kol_ex;}
void set_vydachi(int kol_vyd){vydachi=kol_vyd;}
int get_shifr() {return shifr;}
int get_exeplyars() {return exeplyars;}
int get_vydachi() {return vydachi;}
void printlibrary_card();
void vostrebovannost();
};
library_card::library_card(char *au, char *nb, char *jr, int yr, int sh , int kol_ex, int kol_vyd):
Book(author, name, janr, year)// сдесь ругается ??
{
shifr=sh;
exeplyars=kol_ex;
vydachi=kol_vyd;
}
void library_card::vostrebovannost()
{
}
void library_card::printlibrary_card()
{
printBook();
cout<<" shifr: "<<shifr<<endl;
cout<<" exeplyars: "<<exeplyars<<endl;
cout<<" vydachi: "<<vydachi<<endl;
}
void main()
{
Book b("Servantes", "Don Kixot", "Romantic", 1950);
b.printBook();
b.CalculateYearBook();
b.set_author("Pushkin");
b.set_name("Lukomorie");
b.set_janr("Skazki");
b.set_year(1968);
b.printBook();
b.CalculateYearBook();
card.printlibrary_card();
}
И дальше то, что я совсем непонимаю как сделать
Написать программу «Электронный каталог библиотеки», создающую картотеку библиотеки, позволяющую делать запрос на определенную книгу, выводить на экран список востребованных наименований с указанием коэффициента, изменять данные наименования (по частям и полностью), искать книгу по заданному параметру (шифр, название, автор, вид литературы) и печатать на экран содержимое каталога.
|