Witam wszytskich serdecznie, mam mały problem z napisaniem programu. Treść zadania:
Zdefiniować klasę wektorów zawierającą następujące dane:
class Vec{
char Naz[4];
int n;
double *A;
static int p;
. . .
gdzie:
Naz jest maksymalnie 3 znakową nazwą wektora,
n jest rozmiarem wektora (liczbą elementów tablicy wskazywanej przez A,
A wskazuje na początkowy element n elementowej tablicy skojarzonej z obiektem,
p jest precyzją wydruku wartości elementów tablicy A,
Oprogramować tę klasę. Przyjąć zasadę, że jeśli operatory wymagają zgodności rozmiarów swoich argumentów (wektorów),
brakujące elementy wektora o mniejszym rozmiarze są zerowe. Między innymi zdefiniować operatory dodawania, odejmowania
i mnożenia wektorów, operator indeksacji. Zdefiniować odpowiedni zestaw konstruktorów, destruktor i operator przypisania.
Niech w celach testowych konstruktory i destruktor informują o swoim działaniu
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <iomanip>
using namespace std;
class Vec {
public:
char Naz[4];
int tablica[10];
double *Vec_dl;
int dlugosc_wektora;
int wczytaj();
void dodaj();
};
void menu(){
cout << "1. Wyswietl aktualny stan" << endl;
cout << "2. Skasuj tablice "<< endl;
cout << "3. Koniec "<< endl;
}
int Vec:: wczytaj(){
cout << "Podaje nazwe wektora:";
cin >> Naz;
cout << "Podaj dlugosc wektora: ";
cin >> dlugosc_wektora;
//wspolrzedne wektora
Vec_dl=new double[dlugosc_wektora];
cout << "Podaj wspolrzedne:" << endl;
for (int i=0; i<dlugosc_wektora; i++){
cout<< i+1<<" wspolrzedna: ";
cin>> Vec_dl[i];
}
return dlugosc_wektora;
}
void dodaj(){
/*for ( int i = 0; i<10; ++i )
{
tablica[i] = Vec_dl[i].Vec + Vec_dl[i].Vec;
cout<<setw(3)<<tablica[i];
}*/
}
int main()
{
int K,wybor;
cout<<"Podaj liczbe wektorow: ";
cin >> K;
Vec *tab;
tab = new Vec[K];
for (int i=0; i<K; i++){
system("cls");
cout << "Wprowadz dane wektora nr : " << i+1 << endl;
tab[i].wczytaj();
}
do{
system("cls");
menu();
cin >> wybor;
switch(wybor){
case 1:
system("cls");
for (int i=0; i<K; i++){
cout<<"Dane wektora " << i+1 << endl;
cout<<"Nazwa: "<< tab[i].Naz<<endl;
cout<<"Wspolrzedne: "<<endl;
for (int j=0; j<tab[i].dlugosc_wektora; j++){
cout<<tab[i].Vec_dl[j]<<", ";
}
cout<<endl;
}
system("pause");
break;
case 2:
delete []tab;
break;
default:
cout << "nie ma takiej opcji";
break;
}
}while (wybor!=3);
return 0;
}
No i w sumie to tyle, jest to mój pierwszy program obiektowy i za Chiny nie mogę się połapać. Przewertowałem masę artykułów, ale najwidoczniej nie jest to moja mocna strona (programowanie). Proszę o pomoc. Klasa inaczej zadeklarowana niż w treści zadania, ale to nie ma znaczenia. Po prostu bardziej pasują mi pewne nazwy (bardziej intuicyjne). Prosiłbym też o w miarę najprostsze rozwiązanie mojego problemu.