Форум программистов, компьютерный форум CyberForum.ru

Как сделать методы доступа????? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Арифметическое выражение http://www.cyberforum.ru/cpp-beginners/thread14693.html
Записать арифметическое выражение на языке C++ Можете написать пожалуйста Завтра последний день чтобы сдать комплексные
C++ HexToBin Подскажите как работать с этой функцией, где на форуме найти все что связано с двоичным кодом, исчислением? %) http://www.cyberforum.ru/cpp-beginners/thread14680.html
Массивы. Сортировка,максимум. C++
Я в этом году поступил в ЮФУ и сразу начелось программирование! Я в него пока не могу вдуплить , кроме самого элементарного,типа решить уравнение с одним неизвестным. У меня скоро рейтинг, а завтра зачет и я немогу разобраться! :wall: Я приведу ниже вопросы, кто может ответте пжл :help: :help: :help:: 1) Как упорядочить числа в массиве в порядке возрастания? 2) Как найти наибольший элемент...
Помогите разобраться в готовом листинге... C++
Вот листинг(из книжки) он разбивает файл на части по 1000 строк...проблема в том что нет коментариев(а очень нужны)....помогите разобраться.... #include<iostream> #include<stdio> const int LENGTH = 80; void get_filename(char *str,int number) int main() { FILE *fp,*pt; const char *filename = "linux.words";
C++ Функция pow. Преобразование типов http://www.cyberforum.ru/cpp-beginners/thread14668.html
Есть два вопроса: 1) в докуметации нашёл описание, что pow(x,y) возводит x в степень y и притом входные параметры должны быть или double или float. Как поступить если x && y = int? а также интересует может ли в этой ф-ции y принимать дробные значения и x отрицательные? 2) есть код float pogresh(float kStd, float sumK) { int n = 3; float pogr =(float)( kStd * pow(sumK,0.5)) /...
C++ В упорядоченный массив включить новый элемент так, чтобы не нарушилась упорядоченность Ребята, есть задача, условие такое: в упорядоченный массив включить новый элемент так, чтобы не нарушилась упорядоченность. Вот с этим алгоритмом даже если число подходит в первое условие, то оно игнорируется и выполняется условие e>a, если же это условие убрать то работает первое условие, но не выполняется случай, когда число больше последнего элемента. Пробовал переписывать первое условие,... подробнее

Показать сообщение отдельно
freeez
0 / 0 / 0
Регистрация: 25.10.2008
Сообщений: 70

Как сделать методы доступа????? - C++

26.10.2008, 20:56. Просмотров 641. Ответов 0
Метки (Все метки)

Добрый день.Есть исходный код.Нужно сделать методы доступа к полям класса с использованием односвязного списка. Помогите плиз кто знает как это делается.
Вот исходный код:
Код
#include <iostream.h>
#include <iomanip.h>
#include <fstream.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
int nn=0;
class spisok
{
struct avto
{
int nomer;
int  god;
char fio[20];
char iniz[5];
char punkt_nazn[15];
char strana[15];
};
class node1
  {
    public:
    int i;
    avto s;
    node1*next;
   };
public:
     node1*beg1,*end1;int nn;
     friend class spisok2;
     spisok():nn(0),beg1(NULL),end1(NULL){}
     ~spisok();
     void prosmotr();
     void vvod();
     void sohranenie();
     void dobavlenie();
     void udalenie();
     void sortfio();
     void sortgod();
     void sortpunkt_nazn();
     void sortstrana();
     void perechen();
     void saveperechen();
     void openperechen();
     void sortperechengod();
     void sortperechenkol();
     node1*findname (avto t);
     }info;
class spisok2:public spisok
{
struct list
{
int nomer;
int kol;
int god;
};
class node2
  {
    public:
    list l;
    node2*next;
    int h;
};
public:
node2*beg2,*end2;int k;
spisok2():k(0),beg2(NULL),end2(NULL){}
~spisok2();
void perechen();
void saveperechen();
void openperechen();
void sortperechengod();
void sortperechenkol();
void prosmotrperech();
friend class spisok;
}info2;
void main()
  {
  spisok a;
while(1)
{
  clrscr();
  cout<<"\n1  -  Vvod dannih iz faila";
  cout<<"\n2  -  Prosmotr";
  cout<<"\n3  -  Sohranenie faila";
  cout<<"\n4  -  Dobavlenie zapisi";
  cout<<"\n5  -  Udalenie zapisi";
  cout<<"\n6  -  Sortirovka po fio";
  cout<<"\n7  -  Sortirovka po godu";
  cout<<"\n8  -  Sortirovka po marke";
  cout<<"\n9  -  Sortirovka po strane";
  cout<<"\n10 -  Formirovanie perechna";
  cout<<"\n11 -  Prosmotr perechna";
  cout<<"\n12 -  Sortirovka perechna po fio";
  cout<<"\n13 -  Sortirovka perechna po kolichestvu avto";
  cout<<"\n14 -  Sohranenie perechna v binarni fail";
  cout<<"\n15 -  Vvod perechna iz binarnogo faila";
  cout<<"\n16 -  Vihod";
  cout<<"\n \n Viberite punkt (1-16): ";
  int a;
    cin>>a;
    switch(a)
    {
     case 1: info.vvod();break;
     case 2: info.prosmotr();break;
     case 3: info.sohranenie();break;
     case 4: info.dobavlenie();break;
     case 5: info.udalenie();break;
     case 6: info.sortfio();break;
     case 7: info.sortgod();break;
     case 8: info.sortpunkt_nazn();break;
     case 9: info.sortstrana();break;
     case 10: info2.perechen();break;
     case 11: info2.prosmotrperech();break;
     case 12: info2.sortperechengod();break;
     case 13: info2.sortperechenkol();break;
     case 14: info2.saveperechen();break;
     case 15: info2.openperechen();break;
     case 16: exit(1);
     default:cout<<"\n Osibka vvoda! Povtorite popitku\n";break;
     }
     }
}
istream&operator>>(istream&is,spisok::node1&z)
{
cout<<"Vvedite fio: ";is>>z.s.fio>>z.s.iniz;
cout<<"Vvedite marku: ";is>>z.s.punkt_nazn;
cout<<"Vvedite god: ";is>>z.s.god;
cout<<"Vvedite stranu: ";is>>z.s.strana;
return is;}
ostream&operator<<(ostream&iss,spisok::node1&z)
{
iss<<setw(7)<<z.s.nomer<<setw(17)<<z.s.fio<<setw(17)<<z.s.punkt_nazn<<setw(7)<<z.s.god<<setw(17)<<z.s.strana<<endl;
return iss;}
ostream &operator<<(ostream&iss,spisok2::node2&z)
{iss<<setw(7)<<z.l.nomer<<setw(20)<<z.l.god<<setw(15)<<z.l.kol<<endl;return iss;
};

void spisok::prosmotr()
{
  clrscr();
  node1*p;
  cout.setf(ios::left);
  cout<<"\nNomer  FIO              punkt_nazn            God    Strana\n";
  p=beg1;
  while(p!=NULL)
    {
            cout<<(*p);
            p=p->next;
    }
  getch();
}

void spisok::vvod()
{
clrscr();
     char filename[20];
     node1*p1,*p;
     spisok2::node2*p2;
     cout<<"Vvedite ima faila: ";
     cin>>filename;
     ifstream fin(filename);
     if(!fin){cout<<"Nevozmogno otkrit' fail dla chteniya";getch();return;}
     if (beg1!=NULL)
      {
         while (beg1!=NULL)
        {
        p1=beg1;
        beg1=beg1->next;
        delete p1;
        }
         end1=NULL;
         nn=0;
      }
     p =new node1;
     if (p==NULL) {cout<<"Net dinamicheskoy pamyati\n";getch();return;}
     fin>>p->s.nomer>>p->s.fio>>p->s.iniz>>p->s.punkt_nazn>>p->s.god>>p->s.strana;
     strcat(p->s.fio," ");
     strcat(p->s.fio,p->s.iniz);
     p->next=NULL;
     while(fin.good())
        {
        if(beg1==NULL) {beg1=p;} else end1->next=p;
        end1=p;
        nn++;
        p =new node1;
        if (p==NULL) {cout<<"Net dinamicheskoy pamyati\n";getch();return;}
        fin>>p->s.nomer>>p->s.fio>>p->s.iniz>>p->s.punkt_nazn>>p->s.god>>p->s.strana;
        strcat(p->s.fio," ");            //dobavlenie inicialov
        strcat(p->s.fio,p->s.iniz);  //k familii
        p->next=NULL;
        }
    delete p;
    fin.close();
clrscr();
}

void spisok::sohranenie()
{
}

void spisok::dobavlenie()
{
}

void spisok::udalenie()
{
}

void spisok::sortfio()
{
}
void spisok::sortgod()
{
  }

void spisok::sortpunkt_nazn()
{
}
void spisok::sortstrana()
{
}

void spisok2::perechen()
{
    int fl=0;
    node1*p1; int h=0;
    node2*p,*p2;
        if (beg2!=NULL)
      {
         while (beg2!=NULL)
        {
        p2=beg2;
        beg2=beg2->next;
        delete p2;
        }
         end2=NULL;
         k=0;
      }
     for(p1=beg1;p1!=NULL;p1=p1->next)
     {
       fl=1;
       for(p2=beg2;p2!=NULL;p2=p2->next)
       {
        if(p1->s.god==p2->l.god)
        {fl=0;p2->l.kol++;break;}
       }
        if(fl==1)
        {
         h++;
         p=new node2;
         p->next=NULL;
         p->l.god=p1->s.god;
         p->l.kol=1;
         p->l.nomer=h;
         if(beg2==NULL) {beg2=p;}else end2->next=p;end2=p;
       }

    }
    h=0;
}

void spisok2::saveperechen()
{
}

void spisok2::openperechen()
{
}

spisok::~spisok()
{
    node1*p1;
    if (beg1!=NULL)
      {
         while (beg1!=NULL)
        {
        p1=beg1;
        beg1=beg1->next;
        delete p1;
        }
         end1=NULL;
         nn=0;
      }
}
spisok2::~spisok2()
{
     node2*p2;
       if (beg2!=NULL)
      {
         while (beg2!=NULL)
        {
        p2=beg2;
        beg2=beg2->next;
        delete p2;
        }
         end2=NULL;
         k=0;
      }
}

node1*spisok::findname(avto t)
{
}

void spisok2::sortperechengod()
{
}
void spisok2::sortperechenkol()
{
}
void spisok2::prosmotrperech()
{
  clrscr();
  node2*p;
  cout.setf(ios::left);
  cout<<"\nNomer  fio                 kolichestvo\n";
  p=beg2;
  while(p!=NULL)
    {
            cout<<(*p);
            p=p->next;
    }
  if (beg2==NULL){cout<<"Pusto";}
  getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru