Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

C++, классы.Дороботать программу

9.8K
12 января 2007 года
FISH.ka
35 / / 07.01.2007
Написать программу, в которой создаются и разрушаются объекты, определенного пользовате-лем класса. Выполнить исследование вызовов конструкторов и деструкторов. Вот пример опираясь на который, надо сделать программу
Код:
1. Пример определения класса.
const int LNAME=25;
class STUDENT{
char name[LNAME];                  // имя
int age;                                         // возраст
float grade;                                   // рейтинг
public:
STUDENT();                               // конструктор без параметров
STUDENT(char*,int,float);         // конструктор с параметрами
STUDENT(const STUDENT&); // конструктор копирования
~STUDENT();
char * GetName() ;
int GetAge() const;
float GetGrade() const;
void SetName(char*);
void SetAge(int);
void SetGrade(float);
void Set(char*,int,float);
void Show(); };

Написала код по полям
АДРЕС
имя – char*
улица – char*
номер дома – int
Код:
#include <iostream.h>
#include <conio.h>

class adress
{
  char *name;
  char *ulitca;
  int number;
  public:
 adress()
 {name=NULL;
  ulitca=NULL;
  number=1;}
adress(char *zn_n, char * zn_u, int zn_num)
//number(zn_num)
{ name=new char[strlen(zn_n)+1];
  strcpy(name,zn_n); }
{ ulitca=new char[strlen(zn_u)+1];   //???
   strcpy(ulitca,zn_u);}
adress(const adress &)
{number=A.number;
 name=new char[strlen(A.name)+1];
  strcpy(name,A.name);
 ulitca=new char[strlen(A.ulitca)+1];
  strcpy(ulitca,A.ulitca);}
~adress()
{
 if (name) delete []name;}
void reset_name(char *zn_n)
{ if(strlen(name)<strlen(zn_n))
{ delete[]  name;
  name=new char[strlen(zn_n)+1];
  strcpy(name,zn_n);}}
  void reset_ulitca(char *zn_u)
{ if (strlen(ulitca)<strlen(zn_u))
 { delete [] ulitca;
 ulitca=new char[strlen(zn_u)+1];
  strcpy(ulitca, zn_u);}}
  void add_number()
  {number+1}
  //void print()Как тут сделать вывод

  void main()
  {adress a,a1("Lena","lenina",2),
   a2(a1),a3("Sasha","Pobeda",number);
   cout<<"\nVvedite name";
   char *buf=new char[40];
   char *buf1=new char[40];
   cin.getline(buf,40);
   cin.getline(buf1,40);
   a.reset_name(buf);
   a.reset_ulitca(buf1);
   a2.reset_name("Ne ne Lena");
   a2.reset_ulitca("Ne Pobeda");
   a2.add_number();
   a.print();
   a1.print();
   a2.print();
   a3.print();

но в тут есть ошибки а каких устранить, не знаю.
1.9K
12 января 2007 года
[*]Frosty
278 / / 17.06.2006
Код:
//---------------------------------------------------------------------------

[COLOR="SeaGreen"]#pragma hdrstop[/COLOR]

//---------------------------------------------------------------------------

[COLOR="SeaGreen"]#include <iostream.h>
#include <conio.h>[/COLOR]

class adress
{
        char *name;
        char *ulitca;
        int number;
public:
        adress()
        {
                name = NULL;
                ulitca = NULL;
                number = 1;
        }

        adress(char *zn_n, char * zn_u, int zn_num)
        {
                number = zn_num;
               
                name = new char[strlen(zn_n) + 1];
                strcpy(name, zn_n);

                ulitca = new char[strlen(zn_u) + 1];
                strcpy(ulitca, zn_u);
        }

        adress(const adress & A)
        {
                number = A.number;

                name = new char[strlen(A.name) + 1];
                strcpy(name, A.name);

                ulitca = new char[strlen(A.ulitca) + 1];
                strcpy(ulitca, A.ulitca);
        }

        ~adress()
        {
                if(name)
                        delete[] name;

                if(ulitca)
                        delete[] ulitca;
        }

        void reset_name(char *zn_n)
        {
                delete[] name;
                name = new char[strlen(zn_n) + 1];
                strcpy(name, zn_n);
        }

        void reset_ulitca(char *zn_u)
        {
                delete[] ulitca;
                ulitca = new char[strlen(zn_u) + 1];
                strcpy(ulitca, zn_u);
        }

        void add_number()
        {
                number + 1;
        }

        void print()
        {
                cout << endl << "name: " << name << endl;
                cout << "ulitca: " << ulitca << endl;
                cout << "number: " << number << endl << endl;
        }
};

[COLOR="SeaGreen"]#pragma argsused[/COLOR]
int main(int argc, char* argv[])
{
        adress a,
               a1("Lena", "lenina", 2),
               a2(a1),
               a3("Sasha", "Pobeda", 3);

        cout<<"\nVvedite name: ";
        char *buf = new char[40];
        cin.getline(buf, 40);

        cout<<"\nVvedite ulitca: ";
        char *buf1 = new char[40];
        cin.getline(buf1, 40);

        a.reset_name(buf);
        a.reset_ulitca(buf1);

        a2.reset_name("Ne ne Lena");
        a2.reset_ulitca("Ne Pobeda");
        a2.add_number();

        a.print();
        a1.print();
        a2.print();
        a3.print();

        char ch;
        cin >> ch;

        return 0;
}
//---------------------------------------------------------------------------

Вот поправил немного)

З.Ы. Учись оформлять исходники)))
9.8K
13 января 2007 года
FISH.ka
35 / / 07.01.2007
Спасибо, с оформлением только учусь, извени:)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог