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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2008, 21:00   #1
Fogg
 
Регистрация: 14.12.2008
Сообщений: 3
Печаль где тут ошибка?

приветствую Вас... как говорится, нид хелп... завтра сдавать программу в универе , да и много чего, мозг выжат... всё, что сумел написать, но она не работает...
вот задание:
D18. Сделать класс "Skaitlu masivs" ( в проге - skmasivs), в который хранится массив (double) длиною 5.
В класе сделать такие методы:
(1) конструктор, который заполняет массив нулём
(2) деструктор, который сообщает о ликвидировании
(3) Метод "менять", который меняет один элемент массива новым элементом
(4) Метод "менять местами", который меняет местами элементы в массиве
(6) метод "Вывод", который выводит массив
(7) метод "Вывод с конца", который выводит массив с конца до начала

Это хедер.
Код:
#include <iostream>
using namespace std;

class skmasivs {
      private:
              double sm[5];
      public:
skmasivs(double a){ //Конструктор
                for (int i=0; i<5; i++) sm[i]=a; 
                };

void ch(int c, double b){sm[c]=b;}; // metode "Менять"
void chp(double sm2[4]){ // metode "Менять местами"
            for (int i=0; i<4; i++) sm2[i]=sm[i];
            for (int i=0; i<4; i++) {
                sm[i]=sm[i+1];
                sm[i+1]=sm2[i]; };
void print(){ // metode "Вывод"
            for (int i=0; i<5; i++) cout<<sm[i]<<endl;
            };
void printb(){ // metode "Вывод с конца"
            for (int i=5; i>0; i--) cout<<sm[i]<<endl;
            };
                }
cpp.
Код:
#include "d18.h"
int main(){
    double lm[4],y;
    int x;
    skmasivs n(0);
     skmasivs *des;
    des= new skmasivs(0);
    des->cout<<"Likvidets!"<<endl; // Деструктор
    delete des; 
    
            while((x<0)&&(x>4)){
            cout<<"Ievadiet elementu skaitu (0...4)"<<endl; // Введите элемент
            cin>>x;
            };
            cout<<"Ievadiet Jauno vertibu"<<endl; // Введите новое значение
            cin>>y;
    n.ch(x,y);
    n.chp(lm[4]);
    n.print();
    n.printb();
    system("pause");
    return 0; 
}
Fogg вне форума Ответить с цитированием
Старый 16.12.2008, 00:39   #2
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

А что именно не получается?
MaTBeu вне форума Ответить с цитированием
Старый 16.12.2008, 01:14   #3
Fogg
 
Регистрация: 14.12.2008
Сообщений: 3
По умолчанию

вот новый вариант мой... всё запихнул в проект... разделён сам на 3 части... по существу... ничего не получается ))))))
d18.h
Код:
#include <iostream>
using namespace std;

class skmasivs {
      private:
              double sm[5];
      public:
skmasivs(double);
~skamasivs();
void ch(int, double);
void chp(double);
void print();
void printb();
} ;
smm.cpp
Код:
#include "d18.h"
skmasivs::skmasivs(double a){ 
                for (int i=0; i<5; i++) sm[i]=a; 
                }
skmasivs::~skamasivs(){
                       cout<<"Objekts ir iznicinats!"<<endl;
                       }

void skmasivs::ch(int c, double b){sm[c]=b;}; 
void skmasivs::chp(double sm2[4]){ 
            for (int i=0; i<4; i++) sm2[i]=sm[i];
            for (int i=0; i<4; i++) {
                sm[i]=sm[i+1];
                sm[i+1]=sm2[i]; }
void skmasivs::print(){ 
            for (int i=0; i<5; i++) cout<<sm[i]<<endl;
            }
void skmasivs::printb(){ 
            for (int i=5; i>0; i--) cout<<sm[i]<<endl;
            }
main.cpp
Код:
#include "smm.cpp"
int main(){
    double lm[4],y;
    int x;
    skmasivs n(0);
            while((x<0)&&(x>4)){
            cout<<"Ievadiet elementu skaitu (0...4)"<<endl;
            cin>>x;
            };
            cout<<"Ievadiet Jauno vertibu"<<endl;
            cin>>y;
    n.ch(x,y);
    n.chp(lm[4]);
    n.print();
    n.printb();
    system("pause");
    return 0; 
}

вот список выдаваемых ошибок:
Код:
1 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp:1,               from main.cpp In file included from smm.cpp:1,               from main.cpp 
1 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\main.cpp                  from main.cpp 
25 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\d18.h expected class-name before '(' token 
1 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\main.cpp In file included from main.cpp 
5 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp expected class-name before '(' token 
5 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp no `skmasivs::~skmasivs()' member function declared in class `skmasivs' 
10 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp prototype for `void skmasivs::chp(double*)' does not match any in class `skmasivs' 
27 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\d18.h void skmasivs::chp(double) 
 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp In member function `void skmasivs::chp(double*)': 
15 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp expected primary-expression before "void" 
15 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp expected `;' before "void" 
18 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp expected primary-expression before "void" 
18 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\smm.cpp expected `;' before "void" 
2 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\main.cpp expected primary-expression before "int" 
2 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\main.cpp expected `;' before "int" 
19 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\main.cpp expected `}' at end of input 
 C:\Users\Willy Fogg\Documents\LU\Programmesana\Progs\LAB4(jr_d18)\Makefile.win [Build Error]  [main.o] Error 1
Fogg вне форума Ответить с цитированием
Старый 16.12.2008, 02:00   #4
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,604
По умолчанию

А что вам мешает запихнуть весь код из файлов d18.h и smm.cpp в один файл (в тот же d18.h). И просто подключить его в main?
MaTBeu вне форума Ответить с цитированием
Старый 17.12.2008, 03:16   #5
Fogg
 
Регистрация: 14.12.2008
Сообщений: 3
По умолчанию

ошибок особо меньше не становится.... у меня проблема не в оформлении... да и какая разница, будут они в одном хедере или же отдельно класс и методы... меняется лишь обложка... а так хотя бы удобнее разобраться... откуда косяк растёт. проблема в самой проге, а именно в классе.
например это:
\smm.cpp no `skmasivs::~skmasivs()' member function declared in class `skmasivs'
Fogg вне форума Ответить с цитированием
Старый 18.12.2008, 09:34   #6
Ламер_001
Ну и что? :)
Форумчанин
 
Регистрация: 20.10.2008
Сообщений: 129
По умолчанию

Код:
 class skmasivs
  {
   private:
    long mas[5];

   public:
   // конструктор
    skmasvis()
     {
      int i;
      for(i=0; i<5; i++)
       mas[i] = 0;
     };
   // деструктор
    ~skmasivs()
    {
     printf("End!!!\n");
    };
    // поменять mas[num]
    int Change(int num, long x)
     {
      if (num < 0 || num > 4)
       return -1;
      mas[num] = x;
      return 0;
     };
    // поменять местами num1 и num2
    int ChangeEl(int num1, int num2)
    {
     if (num1 < 0 || num1 > 4 || num2 < 0 || num2 > 4)
      return -1;
     long tmp = mas[num1];
     mas[num1] = mas[num2];
     mas[num2] = tmp;
     return 0;
    };
    // print
    void PrintMas()
    {
     int i;
     for(i=0; i<5; i++)
      printf("%ld ", mas[i]);
     return;
    };
    // printf form end
    void PrintMasE()
    {
     int i;
     for(i=4; i>0; i--)
      printf("%ld ", mas[i]);
     return;
    };
  };
Учиться, учиться и еще раз учиться
Ламер_001 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Где ошибка в моем коде? artemavd БД в Delphi 12 22.09.2008 14:28
Где ошибка? [Smarik] Общие вопросы Delphi 5 01.04.2008 09:56
Подскажите, где в программе ошибка gamer123 Паскаль, Turbo Pascal, PascalABC.NET 3 25.02.2008 03:09
Где ошибка в коде? Македонский Общие вопросы Delphi 16 10.09.2007 15:45
Где ошибка? jarded Общие вопросы C/C++ 2 01.06.2007 15:10