.


:




:

































 

 

 

 





-, moy. moy N.

const N=3;

:

moy operator = (moy o1);

, - . , - . - , . moy. - set.

int operator == (moy o1);

. .. , strcmp. , 0 1.

moy operator + (moy o1);

operator+() moy , tr operator+() . , . tr .

+ , . , . , .

friend ostream & operator<< (ostream &stream, moy &o1);

ostream. , stream . . , stream, ostream. , << /.

friend istream & operator>> (istream &stream, moy &o1);

, istream, - . . - , .

, , -. , .

friend void shapka(void);

. <<

friend int isvalid (int a, int b);

, , . . .

 

#include <iostream.h>

#include <stdlib.h>

#include <conio.h>

#include <string.h>

#include <math.h>

#include <stdio.h>

#include <iomanip.h>

const N=3;

class moy {

char *veshestvo;

unsigned int nomer;

unsigned int temperatura;

float vyazkost;

friend ostream & operator<<(ostream &stream, moy &o1);

friend istream & operator>>(istream &stream, moy &o1);

friend void shapka(void);

friend void linebuild(void);

friend int isvalid(int a, int b);

public:

moy () { vyazkost =0; temperatura =0; nomer =0; *(veshestvo = new char[1])='\0';}

moy (char *a, unsigned int b, unsigned int c, float d);

void setall(char *a, unsigned int,unsigned int, float);

void getall(char *a, unsigned int b, unsigned int c, float d);

void showall(void);

moy operator = (moy o1);

int operator == (moy o1);

moy operator + (moy o1);

};

ostream & operator<<(ostream &stream, moy &o1) {

shapka();

stream<<"|"<<setw(15)<<o1.veshestvo<<" | ";

stream<<setw(9)<<o1. nomer <<"|";

stream<<setw(18)<<o1. temperatura <<" |";

stream<<setw(17)<<o1. vyazkost <<" |";

linebuild();

return stream;

}

istream & operator>>(istream &stream, moy &o1) {

cout<<"Veshestvo, Atomniyi nomer, Temperatura, Vyazkost: \n";

stream>>o1.veshestvo;

stream>>o1. nomer;

stream>>o1. temperatura;

stream>>o1. vyazkost;

return stream;

}

int isvalid(int a, int b){

if (((a>N-1) || (a<0)) || ((b>N-1) ||(b<0)))

{

cout<<" Oshibka! Ekzempliara s takim imenem ne syshestvyet.\n";

getch();

return -1;

}

else if (a==b)

{

cout<<" Oshibka! Ekzempliar ne mozet bit zapisan sam v sebya.\n";

getch();

return -2;

}

return 0;

}

moy moy::operator + (moy o1) {

moy tr;

int i,j;

delete[] tr.veshestvo;

tr.veshestvo =new char [strlen(veshestvo)+strlen(o1.veshestvo)+2];

strcpy(tr.veshestvo,veshestvo);

strcat(tr.veshestvo, o1.veshestvo);

tr. nomer = nomer +o1. nomer;

tr. temperatura = temperatura +o1. temperatura;

tr. vyazkost = vyazkost +o1. vyazkost;

return tr;

}

int moy::operator == (moy o1) {

if (temperatura!= o1. temperatura) {cout << " Dannie ekzempliari klassa ne ravni."; getch();}

else if (ceil(vyazkost)!=ceil(o1. vyazkost)) {cout << " Dannie ekzempliari klassa ne ravni."; getch();}

else if (strcmp(veshestvo,o1.veshestvo)!= 0) {cout << " Dannie ekzempliari klassa ne ravni."; getch();}

else if (nomer!= o1. nomer) {cout << " Dannie ekzempliari klassa ne ravni."; getch();}

else cout<<" Ekzemplyari klassa ravni."; getch();

return 0;

}

moy moy::operator = (moy o1) {

delete [] veshestvo;

 

veshestvo = new char [strlen(o1.veshestvo)+2];

if (!veshestvo) {

cout<<" Oshibka! Pamiat ne videlena.";

exit(1);

}

strcpy(veshestvo,o1.veshestvo);

nomer = o1. nomer;

temperatura = o1. temperatura;

vyazkost = o1. vyazkost;

return o1;

}

moy:: moy (char *a, unsigned int b, unsigned int c, float d) {

veshestvo=new char [strlen(a)+1];

strcpy(veshestvo,a);

nomer =b;

temperatura =c;

vyazkost =d;

}

void moy::setall(char *a, unsigned int b, unsigned int c, float d) {

strcpy(veshestvo,a);

nomer =b;

temperatura =c;

vyazkost =d;

}

 

void moy::showall(void) {

cout<< veshestvo <<" ";

cout<< nomer <<" ";

cout<< temperatura <<" ";

cout<< vyazkost <<" ";

}

void moy::getall(char * a, unsigned int b, unsigned int c, float d)

{

delete[] a;

a=new char [strlen(veshestvo)+1];

strcpy(a, veshestvo);

b= nomer;

c= temperatura;

d= vyazkost;

cout<<a<<" ";

cout<<b<<" ";

cout<<c<<" ";

cout<<d<<" ";

cout<<"\n";

}

void shapka(void)

{

cout<<"_____________________________________________\n";

cout<<"| Vyazkost metallov v ghidkom sostoyanii |\n";

cout<<"|---------------------------------------------------------------------------|\n";

cout<<"| Veshestvo | Atomniyi nomer | Temperatura | Vyazkost |\n";

cout<<"|---------------------------------------------------------------------------|\n";

}

void linebuild(void) {

cout<<"\n|--------------------------------------------------------------------------|\n";

}

int main(void) {

char *n;

unsigned int t;

unsigned int s;

float h;

short i,k;

unsigned int s1;

short q,q1;

moy obj[N]={ moy ("Alyuminiyi", 13,700,2.90),

moy ("Vismut", 83,304,1.65),

moy ("Svinec", 82,441,2.11)};

clrscr();

cout.precision(2);

cout<<" Veshestvo, Atomniyi nomer, Temperatura, Vyazkost: \n";

for (i=0; i<N; i++) {

obj[i].showall();

cout<<"\n";

}

cout<<"\nPeregryzka operatora prisvaivania '='.\n";

cout<<" Vvedite nomera ekzemplyarov klassa: zameniaimi b zameniashi >\n";

cin>>q;

cin>>q1;

if (isvalid(q, q1)!=0) exit(-1);

obj[q] = obj[q1];

 

cout<<" Veshestvo, Atomniyi nomer, Temperatura, Vyazkost: \n";

for(i=0; i<N; i++) {

obj[i].showall();

cout<<"\n";

}

 

cout<<"\nPeregryzka operatorov sootvetstviya '=='.\n";

cout<<" Vvedite nomera ekzemplyarov klassa, kotorie nyzhno sravnit >\n";

cin>>q;

cin>>q1;

if (isvalid(q, q1)!=0) exit(-1);

obj[q] == obj[q1];

 

cout<<"\nPeregryzka operatorov symmi '+'.\n";

cout<<" Vvedite nomera ekzemplyarov klassa, kotorie nyzhno slozhit >\n";

cin>>q;

cin>>q1;

moy temp;

if (isvalid(q, q1)!=0) exit(-1);

temp=obj[q]+obj[q1];

cout<<" Veshestvo, Atomniyi nomer, Temperatura, Vyazkost: ";

temp.getall(n,t,s,h);

 

cout<<"\nPeregryzka operatorov potovogo vvoda '>>'.";

cout<<"\nVvedite nomer ekzemplyara klassa: ";

cin>>q;

if ((q>N-1)||(q<0)) {cout<<" Oshibka! Ekzempliara s takim indeksom ne syshestvyet."; getch(); exit(-1);}

cin>>obj[q];

 

cout<<"\n Peregryzka operatorov potovogo vivoda '<<'.";

cout<<"\n Vvedite nomer ekzemplyara klassa: ";

cin>>q;

if ((q>N-1)||(q<0)) {cout<<" Oshibka! Ekzempliara s takim indeksom ne syshestvyet."; getch(); exit(-1);}

cout<<obj[q];

 

getch();

return 0;

}

 





:


: 2016-12-05; !; : 242 |


:

:

! . .
==> ...

1913 - | 1701 -


© 2015-2024 lektsii.org - -

: 0.037 .