Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2012, 13:58   #1
ulia1
Новичок
Джуниор
 
Аватар для ulia1
 
Регистрация: 30.05.2012
Сообщений: 2
По умолчанию копирование в файл и чтение из него

Ребят, очень нужна помощь. у меня есть программа, а в ней ошибки, мне трудно их найти, а день сдачи уже не за горами кому не трудно посмотрите пожалуйста, найти в чем проблема, заранее большое спасибо

В производном классе введите такие элементы – данные, как раздел знаний, к которому относится книга и цена, а также определите метод для поиска всех книг по определенной отрасли знаний.
ulia1 вне форума Ответить с цитированием
Старый 30.05.2012, 13:58   #2
ulia1
Новичок
Джуниор
 
Аватар для ulia1
 
Регистрация: 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:perator=(TBook &obj)
{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:perator ++ ()
{if (year>=2000)
return 1;
else return 0;
}
int TBook:perator -(char* str)
{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:perator=(Book & obj)
{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");
}
ulia1 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранить 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