|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.03.2010, 00:28 | #1 |
Пользователь
Регистрация: 07.12.2009
Сообщений: 11
|
описание класса для определения одномерных массивов строк фиксированной длины
Написана программа:
Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным строкам массива по индексам, контроль выхода за пределы массива, выполнения операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, вывод на экран элемента массива по заданному индексу и всего массива. Необходимо переделать ее с помощью перегрузок стандартных операций. Подскажите пожалуйста как. Код HTML:
#include <iostream> #include <iomanip> #include <conio.h> #include <stdlib.h> #include <math.h> using namespace std; class Massiv { int *a,*b,n,min; public: void Sozd(); void Vvod_Sl(); void Form(int n1, int n2); void Form_2(int n3, int n4); void Print(); void Print_2(int number); void Print_3(int rec, int field); }; void main() { Massiv a,b; int number,punkt,rec,field,kol,n1,n2,n,n3,n4; cout<<"1 - sozdanie massiva";cout<<endl; cout<<"2 - pechat vseh strok";cout<<endl; cout<<"3 - pechat stroki po indeksu";cout<<endl; cout<<"4 - sceplenie dvuh massivov";cout<<endl; cout<<"5 - sliyanie dvuh massivov";cout<<endl; cout<<"6 - pechat konkretnogo elementa konkretnoi stroki";cout<<endl; cout<<"7 - vihod";cout<<endl; cout<<"Vvedite punkt menu "; cin>> punkt; while (punkt!=7) { switch(punkt) { case 1: {//randomize(); //sozdanie massiva a.Vvod_Sl(); cout<<endl; a.Print(); cout<<endl; и так далее до пункта 7 : case 7: break; } } } void Massiv :: Sozd() { int m; cout<<"kolvo strok?";cin>>n; int min=0; for (int i=0;i<n;i++) { cout<<"kolvo elementov v "<< i+1 <<" stroke?";cin>>m; *(b+i)=m; if (min<m) min=m; } a=(int*)malloc(sizeof(int)*n*min); } void Massiv::Vvod_Sl() { Sozd(); for(int i=0;i<n;i++) for (int j=0; j<*(b+i); j++) { *(a+i+j)=-20+41;//+random(41); } } void Massiv :: Print() { for(int i=0;i<n;i++) { for (int j=0; j<*(b+i);j++) { cout<<setw(6)<<*(a+i+j); } cout<<endl; } } void Massiv :: Print_2(int number) { for(int i=0;i<n;i++) { for (int j=0; j<*(b+i);j++) { if (i==number) cout<<setw(6)<<*(a+i+j); } cout<<endl; } } void Massiv :: Print_3(int rec, int field) { for(int i=0;i<n;i++) { for (int j=0; j<*(b+i);j++) { if ((i==rec)&&(j==field)) cout<<"Danii element= "<<setw(6)<<*(a+i+j); else "Massiv s takimi dannimi ne naiden!"; } cout<<endl; } } void Massiv :: Form(int n1,int n2) { int m1,m2,k,j,l,p; int c[20]; //zapominaem kolvo elementov v strokah m1=*(b+n1); m2=*(b+n2); // *(b+n1)=m1+m2; int m3=m1+m2; k=0; for (l=0;l<m3;l++) if(l<m1) {c[l]=*(a+n1+l); cout<<setw(6)<<c[l]; } else if((l>=m1)&&(l<m3)) { c[l]=*(a+n2+k); cout<<setw(6)<<c[l]; k++; } } void Massiv :: Form_2(int n3,int n4) { int m1,m2,k,j,l,p,l1; int c[20],f[20]; //zapominaem kolvo elementov v strokah m1=*(b+n3); m2=*(b+n4); int m3=m1+m2; k=0; for (l=0;l<m3;l++) { if(l<m1) {c[l]=*(a+n3+l); } else if((l>=m1)&&(l<m3)) { c[l]=*(a+n4+k); k++; } } l1=0; f[l1]=c[l1]; cout<<setw(6)<<f[l1]; //sliyanie for(p=1;p<m3;p++) if(f[l1]!=c[p]) { l++; f[l1]=c[p]; cout<<setw(6)<<f[l1]; } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка одномерных массивов на Си/Си++ | aka_Kiss | Помощь студентам | 1 | 23.11.2009 21:51 |
обработка одномерных массивов | felmor | Помощь студентам | 16 | 05.02.2009 19:22 |
Файл из одномерных массивов. | OTuser | Помощь студентам | 11 | 28.12.2008 19:24 |