[C++] zmienne dynamiczne w klasie

Matej91
Użytkownik
Użytkownik
Posty: 178
Rejestracja: 6 sty 2012, o 00:37
Płeć: Mężczyzna
Lokalizacja: Zielona Góra
Podziękował: 24 razy

[C++] zmienne dynamiczne w klasie

Post autor: Matej91 »

Mam do wykonania zadanie w którym należy wykonać dodawanie, mnożenie i odejmowanie macierzy na zmiennych dynamicznych z wykorzystaniem klasy.

Do tej pory mam coś takiego ale nie mam pojęcia jak zamienić zmienne na dynamiczne, tak aby podawać tylko rozmiar macierzy i aby macierz sama wypełniała się losowymi liczbami. Proszę o pomoc.

Kod: Zaznacz cały

#include "stdafx.h"
#include <cstdlib>
#include <iostream>
#include <conio.h>

using namespace std;

class macierz
{
      private:
int pier[2];
int dru[2];
	  public:
	int i;
     
         friend ostream & operator<< (ostream &, macierz &);
         friend istream & operator>>(istream &, macierz &);
                  
         macierz operator+(macierz a)//przeładowanie +
         {
         macierz suma;
              for(i=0;i<2;i++)
                 {
                  suma.pier[i] = pier[i] + a.pier[i];
                  suma.dru[i] = dru[i] + a.dru[i];
                 }
              return suma;
         }
         
		 macierz operator-(macierz a)//przeładowanie -
         {
         macierz suma;
              for(i=0;i<2;i++)
                 {
                  suma.pier[i] = pier[i] - a.pier[i];
                  suma.dru[i] = dru[i] - a.dru[i];
                 }
              return suma;
         }
         
		 macierz operator*(macierz a)//przeładowanie *
         {
         macierz suma;                        
                 suma.pier[0] = pier[0] * a.pier[0] + pier[1] * a.dru[0];
                 suma.dru[0] = dru[0] * a.pier[0] + dru[1] * a.dru[0];
                 suma.pier[1] = pier[0] * a.pier[1] + pier[1] * a.dru[1];
                 suma.dru[1] = dru[0] * a.pier[1] + dru[1] * a.dru[1];
         return suma;
         }
                                                                                
};
         ostream & operator<< (ostream &z, macierz & pokaz)   //przeciążony operator strumienia wyjscia
              {           
               z << " " << pokaz.pier[0] << " " << pokaz.pier[1]<< " ";
               z <<endl<< " " << pokaz.dru[0] << " " << pokaz.dru[1]<< " ";
               return z; 	
              }

		 istream & operator>>( istream &y ,macierz & pokaz)//przeciążony operator strumienia wejścia
              {
               cout<<" pierwsza kolumna: "<<endl ;
               y>>pokaz.pier[0] >>pokaz.dru[0] ; 
               cout<<" druga kolumna : "<<endl ;
               y>>pokaz.pier[1]>>pokaz.dru[1] ;
               return y;           
               } 

int main()
{
   int b=0;
   int q=0,w=1;
    macierz pierwsza,druga,wynik;
    do
    {
    system("cls");
    cout<<"Wybierz co chcesz wykonac na macierzach

";
    cout<<"1 Dodawanie
2 Odejmowanie
3 Mnozenie
"<<endl;
    cout<<"4 Koniec
";
    cin>>b;
     switch (b)
    {
         case 1:
		 system("cls");
         cout<<"KAZDY ELEMENT MACIERZY PROSZE ZATWIERDZIC KLAWISZEM

";
         cout<<"                    E N T E R                          ";
         cout<<"


";
         cout<<"
podaj parametry pierwszej macierzy
";
         cin>>pierwsza;
         cout<<"
podaj parametry drugiej liczby
";
         cin>>druga;
         
         cout<<"

twoja operacja to : 

"<<pierwsza<<"

 + 

"<<druga<<endl;
         wynik = pierwsza * druga;
         cout<<"wynik twojej operacji : 

"<<wynik<<endl;
         getch();   break;
         
         case 2:
		 system("cls");
         cout<<"KAZDY ELEMENT MACIERZY PROSZE ZATWIERDZIC KLAWISZEM

";
         cout<<"                    E N T E R                          ";
         cout<<"


";
         cout<<"
podaj parametry pierwszej macierzy
";
         cin>>pierwsza;
         cout<<"
podaj parametry drugiej liczby
";
         cin>>druga;
         
         cout<<"

twoja operacja to : 

"<<pierwsza<<"

 - 

"<<druga<<endl;
         wynik = pierwsza - druga;
         cout<<"wynik twojej operacji : 

"<<wynik<<endl;
         getch();   break;
         
         case 3:
		 system("cls");
         cout<<"KAZDY ELEMENT MACIERZY PROSZE ZATWIERDZIC KLAWISZEM

";
         cout<<"                    E N T E R                          ";
         cout<<"


";
         cout<<"
podaj parametry pierwszej macierzy
";
         cin>>pierwsza;
         cout<<"
podaj parametry drugiej liczby
";
         cin>>druga;
         
         cout<<"

twoja operacja to : 

"<<pierwsza<<"

 * 

"<<druga<<endl;
         wynik = pierwsza * druga;
         cout<<"wynik twojej operacji : 

"<<wynik<<endl;
         getch();   break;
                 
         case 4:
             w=0;break;
                 
         default:
           cout<<"Bledny wybor!"<<endl;
           getch();   break;
         }
}
	while (q!=w);
    cin.get();
	return 0;
}
Ostatnio zmieniony 19 cze 2012, o 23:46 przez Anonymous, łącznie zmieniany 1 raz.
Powód: Kod w [code][\code]!
wawek91
Użytkownik
Użytkownik
Posty: 795
Rejestracja: 2 cze 2010, o 08:56
Płeć: Mężczyzna
Lokalizacja: Tarnów
Podziękował: 14 razy
Pomógł: 66 razy

[C++] zmienne dynamiczne w klasie

Post autor: wawek91 »

Żartujesz tak? Potrafiłeś napisać klasę, potrafiłeś przeciążyć operatory, a nie potrafisz użyć operatora new i funkcji rand() do losowania liczb?
ODPOWIEDZ