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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2011, 02:08   #1
Ангел без крыльев
Пользователь
 
Регистрация: 30.04.2011
Сообщений: 10
Вопрос Поиск ошибки....

Создать программу с абстрактным базовым классом и множественным наследованием,реализовать в нем:
- конструктор,деструктор, виртуальную функцию просмотра текущего состояния объекта 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::out | 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; 
}

Последний раз редактировалось Ангел без крыльев; 19.12.2011 в 14:55.
Ангел без крыльев вне форума Ответить с цитированием
Старый 19.12.2011, 14:27   #2
Ангел без крыльев
Пользователь
 
Регистрация: 30.04.2011
Сообщений: 10
По умолчанию

пишет error C2512: anketa: нет подходящего конструктора по умолчанию

Последний раз редактировалось Ангел без крыльев; 20.12.2011 в 02:52.
Ангел без крыльев вне форума Ответить с цитированием
Старый 21.12.2011, 11:00   #3
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

вам же все написали...

Вы описали конструктор с кучей параметров, а вызываете:
Код:
anketa class1;
вообще без
p51x вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ , поиск ошибки Sokolik1 Помощь студентам 11 09.06.2011 17:33
Массивы и указатели. Поиск ошибки. smartt Помощь студентам 1 17.01.2011 23:54
Поиск в коде ошибки. Повторяется бесконечно! Человек_Борща Общие вопросы Delphi 9 16.01.2011 01:27
Есть код.Поиск ошибки.указатель this -ushёl- Общие вопросы C/C++ 3 11.07.2010 19:39