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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.04.2011, 12:49   #1
programmm
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 36
По умолчанию c++ класс

Задача следующая:Реализовать класс список для хранения целых чисел типа unsigned. Для класса
реализовать конструктор по умолчанию, конструктор копирования, деструктор, а также
метод помещения значения в конец списка, навигация по списку, получение значения
текущего элемента, удаления текущего элемента, определение длины списка.
На базе разработанного класса создать новый класс – упорядоченный список. Для класса
необходимо реализовать конструктор с параметром (направление сортировки), метод
помещения значения в список, метод удаления из списка серии одинаковых значений
максимальной длины (если таких последовательностей несколько, то первую из них).
Используя разработанные классы необходимо реализовать следующую программу:
пользователь с клавиатуры вводит целочисленные значения. Ввод осуществляется до
ввода слова «stop». Четные значения заносятся в один список, а нечетные значения – в
другой. Удалить из списков по две последовательности одинаковых значений
максимальной длины. Полученные списки вывести на экран.
programmm вне форума Ответить с цитированием
Старый 03.04.2011, 12:50   #2
programmm
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 36
По умолчанию

Щас всё что сделал скину

spisok.h




#pragma once

class spisok{

protected:
unsigned *list, size, ind;
public:
int Ins(unsigned val);
int Poluczna4(unsigned &val);
int Razmer();
int Dobavkonec(unsigned);
int Udalelement();
int Na4();
int Next();
int Prev();
int Kon();
spisok(void);
spisok(const spisok &);
~spisok(void);
};
programmm вне форума Ответить с цитированием
Старый 03.04.2011, 12:50   #3
programmm
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 36
По умолчанию

spisok.cpp



#include "spisok.h"
#include <iostream>
#include <stdlib.h>
using namespace std;



spisok::spisok(void)
{
list = NULL;
size = 0;
}

spisok::~spisok(void)
{
if(list)
delete(list);
}
int spisok::Poluczna4(unsigned &val)
{
if((ind<0)||(ind>=size))
return 0;
val = list[ind];
return 1;
}
int spisok::Razmer() {
return size;
}
int spisok::Next()
{
if(ind == size-1) return 1;
ind++;
return 0;
}

int spisok::Prev()
{
if(ind == 0) return 1;
ind--;
return 0;
}
int spisok::Na4()
{
return ind = 0;
}

int spisok::Kon()
{
return ind = size-1;
}
int spisok::Dobavkonec(unsigned value){
unsigned *tmp = new unsigned[size+1];
if(!tmp) return 1;
for(int i=0; i< size; i++){
tmp[i] = list[i];
}
tmp[size] = value;
delete [] list;
list = tmp;
ind = size;
size++;
return 0;
}
int spisok::Udalelement(){
if((ind<0)||(ind>=size))
return 1;
unsigned *tmp = new unsigned[size-1];
int j =0;
for(int i=0;i<size;i++){
if(i!=ind){
tmp[j] = list[i];
j++;
}
}
delete [] list;
list = tmp;
size--;
return 0;
}
programmm вне форума Ответить с цитированием
Старый 03.04.2011, 12:50   #4
programmm
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 36
По умолчанию

rezervspisok.h

#pragma once
#include "spisok.h"


class rezervspisok : protected spisok
{
protected:
int napravlenie;
public:
int Ins(unsigned val);
void Udalser();
int Poluczna4(int,int&);
rezervspisok(int);
~rezervspisok(void);

};
programmm вне форума Ответить с цитированием
Старый 03.04.2011, 12:51   #5
programmm
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 36
По умолчанию

rezervspisok.cpp

#include "rezervspisok.h"
#include "spisok.h"
#include <iostream>
#include <stdlib.h>
using namespace std;



int rezervspisok::Ins(unsigned val)
{
unsigned *tmp = new unsigned [size+1];
if(!tmp) return 0;
if(*tmp != size) list = tmp;
int ind = 0;
if(napravlenie == 0){
for(int i=0;i<size;i++) if(val>list[i]) ind++;
}
else if(napravlenie == 1 ) {
for(int i=0;i<size;i++) if(val<list[i]) ind++;
}
for(int i=size;i>ind;i--) list[i] = list[i-1];
list[ind] = val;
size++;
return 1;
}
void rezervspisok::Udalser(){
int maxpos = 0,pos = 0;
int maxlen = 1,len = 1;
for(int i=1;i<=size;i++){
if((i==size)||(i!=i-1)){
if(len>maxlen){
maxlen = len;
maxpos = pos;
}
pos = i;
//len = 1;
}else len++;
}
unsigned *tmp = new unsigned[size - len];
int j = 0;
for(int i=0; i<size; i++){
if((i <= maxpos-maxlen) || (i>maxpos)){
tmp[j] = list[i];
j++;
}
}
delete [] list;
list = tmp;
}
programmm вне форума Ответить с цитированием
Старый 03.04.2011, 12:51   #6
programmm
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 36
По умолчанию

main


#include <string.h>
#include <stdlib.h>
#include "spisok.h"
#include "rezervspisok.h"
#include <iostream>
using namespace std;


int main(int argc, char* argv[])
{
int napravlenie1, napravlenie2;
cout << "Vvedite napravlenie sortirovki 1: ";
cin >> napravlenie1;
spisok list2(napravlenie2);
cout << "Vvedite napravlenie sortirovki 2: ";
cin >> napravlenie2;
spisok list1(napravlenie1);
cout << "Vvedite sam spisok:";
while (1){
char str1[100];
fflush (stdin);
cin.getline(str1,100);
if(strcmp(str1,"")==0)
break;
int num = atoi(str1);
if(num%2==0) list1.Ins(num);
else list2.Ins(num);
}
}
programmm вне форума Ответить с цитированием
Старый 03.04.2011, 12:52   #7
programmm
Пользователь
 
Регистрация: 03.04.2011
Сообщений: 36
По умолчанию

Я всё сделал только майн не могу написать если кто может допишите main очень надо заранее спосибо большое!
programmm вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описать класс-родитель и класс-потомок. Delphi 7 Andrew_M Помощь студентам 0 15.01.2011 14:42
класс NARTZISS Общие вопросы .NET 10 28.05.2010 20:59
КЛАСС 4ika Общие вопросы C/C++ 1 16.03.2010 21:32
C++ . Класс Ануар56 Помощь студентам 8 23.04.2009 19:41
Класс Юлёк Фриланс 6 15.06.2008 15:00