Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.12.2011
Сообщений: 13
1

Классы, наследование

19.12.2011, 14:38. Показов 1069. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создать программу с абстрактным базовым классом и множественным наследованием,реализовать в нем:
- конструктор,деструктор, виртуальную функцию просмотра текущего состояния объекта print(), friend – функцию Run ().
Используя стандартные файловые потоки, информацию об объектах вывести в файл.Для корректной работы с файлом использовать обработку исключительных ситуаций.
17. Отдел кадров (ФИО, отдел, должность, дата приема на работу, внутренний стаж –функция Run (), ставка).
Вот мой код программы...в main выдает ошибку..не могу понять почему...может я что-то неправильно делаю..помогите, плиз, доделать лабу..

#include "stdafx.h"
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <istream>
#include <fstream>
#include <conio.h>
using namespace std;
#define SIZE 255

class base
{
public:
virtual void print()=0;
virtual void fileprint()=0;
};
//---------------------------------------------------------
class name: public base
{
protected:
char *familiya, *imya, *ot4estvo;
public:
name();
name(char *,char *,char *);
~name() {
cout<<" FIO uni4togeno"<<endl;}
void print() {
cout<<"Familiya="<<familiya<<endl;
cout<<"Imya="<<imya<<endl;
cout<<"Ot4estvo="<<ot4estvo<<endl;}
};
name::name()
{
familiya=new char[SIZE];
familiya[0]='\0';
imya =new char[SIZE];
imya[0]='\0';
ot4estvo=new char[SIZE];
ot4estvo[0]='\0';
}
//-------------------------------------------------------
class sved: public base
{
protected:
char *otdel, *dolgnost, *data;
double stavka;
public:
sved();
sved(char *,char *,char *,double);
~sved() {
cout<<"Svedeniya uni4togeny"<<endl;}
void print() {
cout<<"Otdel="<<otdel<<endl;
cout<<"Dolgnost'="<<dolgnost<<endl;
cout<<"Data'="<<data<<endl;
cout<<"Stavka="<<stavka<<endl; }
};
sved::sved()
{
otdel=new char[SIZE];
otdel[0]='\0';
dolgnost=new char[SIZE];
dolgnost[0]='\0';
data=new char[SIZE];
data[0]='\0';
}
//-------------------------------------------------------
class anketa: public name, public sved
{
public:
char *a_fam, *a_imya, *a_ot4, *a_otdel, *a_dol, *a_data;
double a_stavka,a_stag;
anketa(char *familiya, char *imya, char *ot4estvo, char *otdel, char *dolgnost, char *data, double stavka)
{
a_fam=new char[SIZE];
a_fam=familiya;
a_imya=new char[SIZE];
a_imya=imya;
a_ot4=new char[SIZE];
a_ot4=ot4estvo;
a_otdel=new char[SIZE];
a_otdel=otdel;
a_dol=new char[SIZE];
a_dol=dolgnost;
a_data=new char[SIZE];
a_data=data;
a_stavka=stavka;
cout<<"Anketa gotova"<<endl<<"------------------------"<<endl;
}
~anketa()
{
cout<<" Anketa sterlas' "<<endl;
}
void print()
{
cout<<"Familiya="<<a_fam<<endl;
cout<<"Imya="<<a_imya<<endl;
cout<<"Ot4estvo="<<a_ot4<<endl;
cout<<"Otdel="<<a_otdel<<endl;
cout<<"Dolgnost'="<<a_dol<<endl;
cout<<"Data priema na rabotu="<<a_data<<endl;
cout<<"Stavka="<<a_stavka<<endl;
cout<<"Vnutrennij stag="<<a_stag<<endl;
}

void fileprint()
{
try
{
ofstream of;
of.open("anketa.txt", ios:ut | ios::app);
if(of==0) throw "Error open file";
of<<"---------------------------------------"<<endl;
of<<"Familiya="<<a_fam<<endl;
of<<"Imya="<<a_imya<<endl;
of<<"Ot4estvo="<<a_ot4<<endl;
of<<"Otdel="<<a_otdel<<endl;
of<<"Dolgnost'="<<a_dol<<endl;
of<<"Data priema na rabotu="<<a_data<<endl;
of<<"Stavka="<<a_stavka<<endl;
of<<"Vnutrennij stag="<<a_stag<<endl;
of<<"---------------------------------------"<<endl;
of.close();
}
catch(const char *report)
{
cout<<report<<endl;
}
}
friend void Run(anketa *);
};
void run (anketa *a)
{
a->a_stag=((a->a_stavka)*1.5);
}
//-------------------------------------------------------------
void main
{
char *familiya, *imya, *ot4estvo, *otdel, *dolgnost,*data, str[SIZE];
double stavka;
familiya=new char[SIZE];
imya =new char[SIZE];
ot4estvo=new char[SIZE];
otdel=new char[SIZE];
dolgnost=new char[SIZE];
data=new char[SIZE];
cout<<"Vvedite familiyu: ";
cin>>familiya;
cout<<"Vvedite imya: ";
cin>>imya;
cout<<"Vvedite ot4estvo: ";
cin>>ot4estvo;
cout<<"Otdel: ";
cin>>otdel;
cout<<"Dolgnost': ";
cin>>dolgnost;
cout<<"Data: ";
cin>>data;

try
{
cout<<"Stavka: ";

void *b = cin>>stavka;
if (b && stavka==0 && stavka<0)
{
throw 1;
}
else
{
cin.clear();
cin.ignore(cin.rdbuf()->in_avail());
}

}
catch (...)
{
cout<<"parameter will be corrected to 0"<<endl;
}

anketa class1;
class1.print();
class1.fileprint();

cout<<"soderzhimoe faila:"<<endl;
fstream stream;
stream.open("anketa.txt", ios::in);
while(stream.eof()==0)
{
stream.getline(str,256);
cout<<str<<endl;
}
stream.close();
cout<<endl;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.12.2011, 14:38
Ответы с готовыми решениями:

Наследование, базовые классы и производные классы
Добрый вечер.Задание: необходимо разработать поля и методы наследуемые из базового класса и...

Классы и наследование (Создать класс 3D фигура, и производные классы шар, конус, цилиндр и куб. Создать функцию вычисления объёма.)
Уважаевые, помогите написать прожку на экзамене: Создать класс 3D фигура, и производные классы...

Классы, наследование
Есть родительский класс Base, у него дочерний класс Child1, у Child1 дочерний Child2; Задача в том...

Clojure Классы и наследование
я с лиспом стараюсь дружить, но с большим трудом получается. Создать класс Фильм со свойствами:...

0
19.12.2011, 14:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.12.2011, 14:38
Помогаю со студенческими работами здесь

Классы(наследование)
На поверхности,которая наклонена к горизонтали лежит тело в виде прямоугольника с определенными...

Наследование. Классы. C++
Наверное мой вопрос будет смешным, но я действительно не могу придумать методы и свойства. Я совсем...

Классы и наследование
Помогите написать программу, в которой описана иерархия классов: геометрические фигуры(ромб,...

Классы, наследование
Собственно, задача поставлена так, в файле N логинов и паролей, которые считываются и проверяются с...

Классы и наследование
Реализовать класс−оболочку Number для числового типа double. Реализовать методы умножения и...

Классы.Наследование
Ребята,помогите пожалуйста,покажите программу наследования двух классов.То есть один класс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru