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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.05.2011, 16:56   #1
Руслан92
 
Регистрация: 08.04.2011
Сообщений: 5
По умолчанию Народ, где ошибка?

#include <iostream.h>
#include <iomanip.h>
#include <conio.h>
#include <stdlib.h>
#include <Windows.h>

class Massiv
{
int *a,*d,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()
{SetConsoleCP(1251);
SetConsoleOutputCP(1251);
Massiv a,b;
int number,punkt,rec,field,kol,n1,n2,n, n3,n4;
clrscr();
cout<<"1 - Создание массива ";cout<<endl;
cout<<"2 - Вывод всех строк";cout<<endl;
cout<<"3 - Вывод строки по индексу";cout<<endl;
cout<<"4 - Сцепление двух массивов";cout<<endl;
cout<<"5 - Слияние двух масивов";cout<<endl;
cout<<"6 - Вывод конкретного элемента конкретной строки";cout<<endl;
cout<<"7 - Выход";cout<<endl;
cout<<"Выберете пункт в меню: "; cin>> punkt;
while (punkt!=7)
{
switch(punkt)
{
case 1: {randomize();
a.Vvod_Sl();
cout<<endl;
a.Print();
cout<<endl;
cout<<"1 - Создание массива";cout<<endl;
cout<<"2 - Вывод всех строк";cout<<endl;
cout<<"3 - Вывод строки по индексу";cout<<endl;
cout<<"4 - Сцепление двух массивов";cout<<endl;
cout<<"5 - Слияние двух масивов";cout<<endl;
cout<<"6 - Вывод конкретного элемента конкретной строкиi";cout<<endl;
cout<<"7 - Выход";cout<<endl;
cout<<"Выберете пункт в меню: "; cin>> punkt;
}
break;
case 2: {a.Print();
cout<<endl;
cout<<"1 - Создание массива";cout<<endl;
cout<<"2 - Вывод всех строк";cout<<endl;
cout<<"3 - Вывод строки по индексу";cout<<endl;
cout<<"4 - Сцепление двух массивов";cout<<endl;
cout<<"5 - Слияние двух масивов";cout<<endl;
cout<<"6 - Вывод конкретного элемента конкретной строкиi";cout<<endl;
cout<<"7 - Выход";cout<<endl;
cout<<"Выберете пункт в меню: "; cin>> punkt; }
break;
case 3: {
cout<<"Введите номер массива (нумерация начинаеться с 0!): ";cin>>number;
cout<<endl;
a.Print_2(number);
cout<<"1 - Создание массива";cout<<endl;
cout<<"2 - Вывод всех строк";cout<<endl;
cout<<"3 - Вывод строки по индексу";cout<<endl;
cout<<"4 - Сцепление двух массивов";cout<<endl;
cout<<"5 - Слияние двух масивов";cout<<endl;
cout<<"6 - Вывод конкретного элемента конкретной строкиi";cout<<endl;
cout<<"7 - Выход";cout<<endl;
cout<<"Выберете пункт в меню: "; cin>> punkt;
}
break;
case 4: {
cout<<"Введите номер 1-го массива (нумерация начинаеться с 0!!!): ";cin>>n1;cout<<endl;
cout<<"Введите номер 2-го массива (нумерация начинаеться с 0!!!): ";cin>>n2;cout<<endl;
a.Form(n1,n2);
cout<<endl;
cout<<"1 - Создание массива";cout<<endl;
cout<<"2 - Вывод всех строк";cout<<endl;
cout<<"3 - Вывод строки по индексу";cout<<endl;
cout<<"4 - Сцепление двух массивов";cout<<endl;
cout<<"5 - Слияние двух масивов";cout<<endl;
cout<<"6 - Вывод конкретного элемента конкретной строкиi";cout<<endl;
cout<<"7 - Выход";cout<<endl;
cout<<"Выберете пункт в меню: "; cin>> punkt;}
break;
case 5: {
cout<<"Введите номер 1-го массива (нумерация начинаеться с 0!!!): ";cin>>n3;cout<<endl;
cout<<"Введите номер 1-го массива (нумерация начинаеться с 0!!!): ";cin>>n4;cout<<endl;
a.Form_2(n3,n4);
cout<<endl;
cout<<"1 - Создание массива";cout<<endl;
cout<<"2 - Вывод всех строк";cout<<endl;
cout<<"3 - Вывод строки по индексу";cout<<endl;
cout<<"4 - Сцепление двух массивов";cout<<endl;
cout<<"5 - Слияние двух масивов";cout<<endl;
cout<<"6 - Вывод конкретного элемента конкретной строкиi";cout<<endl;
cout<<"7 - Выход";cout<<endl;
cout<<"Выберете пункт в меню: "; cin>> punkt;}
break;

case 6: {
cout<<"Введите номер строки массива(нумерацыия начинаеться с 0!): ";cin>>rec;
cout<<endl;
cout<<"Введите номер столбца: ";cin>>field;
cout<<endl;
a.Print_3(rec,field);
cout<<"1 - Создание массива";cout<<endl;
cout<<"2 - Вывод всех строк";cout<<endl;
cout<<"3 - Вывод строки по индексу";cout<<endl;
cout<<"4 - Сцепление двух массивов";cout<<endl;
cout<<"5 - Слияние двух масивов";cout<<endl;
cout<<"6 - Вывод конкретного элемента конкретной строкиi";cout<<endl;
cout<<"7 - Выход";cout<<endl;
cout<<"Выберете пункт в меню: "; cin>> punkt;}
break;
case 7:
break;
}
}
Руслан92 вне форума Ответить с цитированием
Старый 13.05.2011, 16:57   #2
Руслан92
 
Регистрация: 08.04.2011
Сообщений: 5
По умолчанию

продолжение:
}
void Massiv :: Sozd()
{
int m;
cout<<"Количество строк? ";cin>>n;
int min=0;
for (int i=0;i<n;i++)
{
cout<<"Количество элементов "<< i+1 <<" в строке? ";
cin>>m;
*(d+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<*(d+i); j++)
{
*(a+i+j)=-20+random(41);
}
}
void Massiv :: Print()
{
for(int i=0;i<n;i++)
{
for (int j=0; j<*(d+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<*(d+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<*(d+i);j++)
{
if ((i==rec)&&(j==field)) cout<<"Даный элемент= "<<setw(6)<<*(a+i+j);
else "Массив с такими даннымы не найден!";
}
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=*(d+n1);
m2=*(d+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=*(d+n3);
m2=*(d+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];
}
}
Руслан92 вне форума Ответить с цитированием
Старый 13.05.2011, 16:57   #3
Руслан92
 
Регистрация: 08.04.2011
Сообщений: 5
По умолчанию

Условие задачи

Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность

обращения к отдельным строкам массива по индексам, контроль выхода за пределы массива,
выполнения операций поэлементного сцепления двух массивов с образованием нового массива,
сцепление двух массивов с исключением повторяющихся элементов,
вывод на экран элемента массива по заданному индексу и всего массива.

Написать программу, демонстрирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
Руслан92 вне форума Ответить с цитированием
Старый 13.05.2011, 17:47   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вы правда думаете, что кто-то будет бесплатно разбираться в этой не читаемой простыне? Хоть тег [CODE] (значок #) бы использовали для сохранения форматирования\подсветки и указали бы в чем проблема.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написал программу, где то ошибка, не пойму где... Kelevra91 Общие вопросы C/C++ 5 17.01.2011 16:38
Где ошибка? dimorik Win Api 7 12.03.2010 06:52
Где ошибка??? beygul Помощь студентам 5 06.11.2009 21:00
Народ где найти описание процедур lesha_firs Общие вопросы Delphi 4 21.05.2009 13:59
Народ помогите!!! где взять шрифт 8x16.fnt ? Askip Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.12.2007 11:34