B
bzr
В задаче необходимо создать два объекта одного класса, который должен содержать строку. Обменять в строках первые слова. И вывести результат на экран.
Вот что у меня родилось:
Вот что у меня родилось:
C++:
#include <iostream>
#include <iomanip>
using namespace std;
#include <string.h>
class PL
{
char *Naz;
int Code;
int Sum;
public:
PL();
PL(char *N, int C, int S);
~PL();
PL(const PL& obj);
void vvod();
void show();
void recogFirst(char *first, char *last);
// int max(MAS obj);
friend void exchng(PL ob1, PL ob2);
};
PL::PL()
{
Naz = new char[100];
// Code = new (int);
// Sum = new (int);
}
PL::PL(char *N, int C, int S)
{
Code=C;
Sum=S;
Naz=new char[strlen(N)+1];
strcpy(Naz,N);
}
PL::~PL()
{
delete[]Naz;
//delete Code;
//delete Sum;
}
void PL::vvod()
{
cout <<endl<< "Vvedite naaznachenie platega "<<endl;
cin >> Naz;
cout <<endl<< "Vvedite cod poluchatelya"<<endl;
cin >> Code;
cout <<endl<< "Vvedite summu platega"<<endl;
cin >> Sum;
}
void PL::show()
{
cout << endl <<Naz<<endl<<Code<<endl<<Sum;
}
void PL::recogFirst(char *first, char *last)
{
first=new char[strlen(Naz)+1];
last=new char[strlen(Naz)+1];
while (*(Naz)!='\0')
{
while (*(Naz)!=' ')
{
*first = *(Naz);
++Naz;
}
*last = *(Naz);
++Naz;
}
}
void exchng(PL ob1, PL ob2)
{
char *F1,*F2,*L1,*L2;
ob1.recogFirst(F1, L1);
ob2.recogFirst(F2, L2);
ob1.Naz = strcat(F2, L1);
ob2.Naz = strcat(F1, L2);
}
PL::PL(const PL& obj)
{
Naz=new char [strlen(obj.Naz)+1];
strcpy(Naz,obj.Naz);
Code=obj.Code;
Sum=obj.Sum;
}
/*
int MAS::max(MAS obj)
{
int rez=obj.mm[0][0];
for (int i=0;i<n;i++)
for (int j=0;j<m;j++)
if (obj.mm[i][j]>rez)
rez=obj.mm[i][j];
return rez;
}
*/
void main()
{
PL p1;
p1.vvod();
PL p2("Za uslugi svyazi", 287654, 35000);
cout << "Do izmemeniya \n Plateg #1: ";
p1.show();
cout<<"\n Plateg #2: ";
p2.show();
cout<<endl;
cout << "Posle izmemeniya \n Plateg #1: ";
exchng(p1,p2);
p1.show();
cout<< " \nPlateg #2: ";
p2.show();
cout<<endl;
}