![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 30.05.2012
Сообщений: 2
|
![]()
Ребят, очень нужна помощь.
![]() ![]() ![]() В производном классе введите такие элементы – данные, как раздел знаний, к которому относится книга и цена, а также определите метод для поиска всех книг по определенной отрасли знаний. |
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 30.05.2012
Сообщений: 2
|
![]()
#include "stdafx.h"
#include<iostream> #include<conio.h> #include<locale> #include<string> #include<fstream> using namespace std; class TBook {protected: char * nazvanie; int year; public: TBook():nazvanie(0),year(0){}; TBook(char*, int); TBook(const TBook &); ~TBook(); friend istream& operator >>(istream&, TBook&); friend ostream& operator <<(ostream&, TBook&); TBook & operator =(TBook &); int operator ++ (); int operator - (char*); int Comparemarka(const char*); }; class Book: public TBook {protected: char *autor, *razdel; float price; public: Book():TBook(),autor(0),razdel(0),p rice(0){} Book(char*, char*, char*, int,float); Book(const Book &); ~Book(); Book & operator =(Book &); friend istream& operator >>(istream&, Book&); friend ostream& operator <<(ostream&, Book&); int Ot (const char*); }; TBook::TBook(char* m,int y) {nazvanie=new char[strlen(m)+1]; nazvanie=m; year=y; } TBook & TBook: ![]() {nazvanie=new char[strlen(obj.nazvanie)+1]; nazvanie=obj.nazvanie; year=obj.year; return *this; } TBook::~TBook() {delete [] nazvanie; //Освобождаем память, выделенную под название книги } istream& operator >>(istream& s, TBook& obj) {char buf[50]; cout<<"\nВведите :\n"; cin>>buf; obj.nazvanie=new char[strlen(buf)+1]; strcpy(obj.nazvanie,buf); cout<<"\nГод выпуска:\n"; cin>>obj.year; return s; } ostream& operator <<(ostream& s, TBook& obj) {cout<<"\n"<<obj.nazvanie<<" "<<obj.year; return s; } int TBook: ![]() {if (year>=2000) return 1; else return 0; } int TBook: ![]() {if (!strcmp(str,nazvanie)) return 1; else return 0; } Book::Book(char* m,char* autor1, char* razdel1,int y,float price1) {TBook::TBook(m,y); autor=new char [strlen(autor1)+1]; strcpy(autor, autor1); razdel=new char [strlen(razdel1)+1]; strcpy(razdel, razdel1); price=price1; } Book & Book: ![]() {nazvanie=new char[strlen(obj.nazvanie)+1]; strcpy(nazvanie,obj.nazvanie); year=obj.year; autor=new char[strlen(obj.autor)+1]; strcpy(autor,obj.autor); razdel=new char[strlen(obj.razdel)+1]; strcpy(razdel,obj.razdel); price=obj.price; return *this; } Book::~Book() {delete [] autor; delete [] razdel; } istream& operator >>(istream& s, Book& obj) {char buf[50]; cout<<"\nВведите название книги:"; cin>>buf; obj.nazvanie=new char[strlen(buf)+1]; strcpy(obj.nazvanie,buf); cout<<"\nВведите автора книги:\n"; cin>>buf; obj.autor=new char[strlen(buf)+1]; strcpy(obj.autor,buf); cout<<"\nВведите раздел знаний к которому относиться данная книга:\n"; cin>>buf; obj.razdel=new char[strlen(buf)+1]; strcpy(obj.razdel,buf); cout<<"\nГод издания книги:\n"; cin>>obj.year; cout<<"\nЦена книги:\n"; s>>obj.price; return s; } ostream& operator <<(ostream& s, Book& obj) {s<<"\nНазвание книги:\n"<<obj.nazvanie<<" "<<"\Автор книги:\n"<<obj.autor<<" "<<"\nРаздел знаний:\n"<<obj.razdel<<"\nГод издания:\n"<<obj.year<<"\nЦена:\n"< <obj.price<<"\n____________________ _________\n"<<endl; return s; } int Book::Ot(const char *razdel1) { if(strcmp(razdel,razdel1)==0) return 1; else return 0; } int TBook::Comparemarka(const char* marka1) {if (strcmp(nazvanie,nazvanie1)==0) return 1; else return 0; } void main() {locale L(locale()); locale::global(locale("rus")); ofstream out ("inform.txt"); ifstream in("inform.txt"); Book *A; int i,n,d,x; char s[80],g[80]; cout<<"\nВведите количество книг:\n"; cin>>n; A=new Book[n]; cout<<"\nВведите информацию о книге:\n"; for(i=0;i<n;i++) cin>>A[i]; cout<<"\n________Вы ввели информацию в файл inform.txt:____________\n"; for(i=0;i<n;i++) out<<A[i]; cout<<"\n________Содержимое файла inform.txt:_______________________\ n"; while (!in.eof()) { char vod[500]; in>>vod; cout<<vod<<endl; } cout<<"\nВведите название раздела для поиска:\n"; cin>>g; x=0; for(i=0;i<n;i++) if(A[i].Ot(g)==1) {x++; break; } if(!x) cout<<"__________________________Не т данного раздела!___________________________ ______\n"; else cout<<"\n_____________Список книг с таким разделом _________________________\n"; cout<<A[i]; system("pause"); } |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сохранить Graphics в файл или считать с него цвет | Alexan-Dwer | Java Мобильная разработка (Android) | 1 | 05.02.2012 14:19 |
Поднять сервер и принять с него файл. | wint1000 | Фриланс | 0 | 28.12.2010 19:31 |
чтение из файла и запись в него | Dycek | Общие вопросы C/C++ | 3 | 25.12.2010 21:02 |
Создать двоичный файл и записать в него n целых чисел. | Нездешний | Помощь студентам | 3 | 18.10.2009 17:27 |
Запись в файл и чтение из него. | Swool | Общие вопросы C/C++ | 8 | 26.08.2008 16:39 |