Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Progi / lesson 1 / Практика / Laba 1b

.txt
Скачиваний:
27
Добавлен:
28.03.2015
Размер:
3.16 Кб
Скачать
#include "StdAfx.h"
#include <iostream>
#include <windows.h>
#include <string.h>

using namespace std;

class Record
 {
   public:
   float Stoi();  // количество секунд
   int GetVes();
   float GetStoi();
   void Init(int m,float s); // задание начальных значений полей
   private:
   int    ves;
   float  sto;
 };

int Record::GetVes(){
return ves;
}

float Record::GetStoi(){
return sto;
}

void Record::Init(int v,float s)
{
 ves=v;
 sto=s;
}


 float Record::Stoi()
 {
  return (ves*sto);
}

 class Mebel
{
public:
	char* GetName();           // возвращает строку-фамилию
	void PutName(char *s);   // задание фамилии
	Record Best();              // выбрать из двух результатов лучший и вернуть
	void Init( char *f,int v1,float s1,int v2,float s2,int v3,float s3); // задание фамилии и значений min,sec обеим результатам
 
private:
	char Name[30];              // фамилия
	Record FirstRezult;    // первый результат спортсмена
	Record SecondRezult; // второй результат спортсмена
	Record FreeRezult;
};

char* Mebel::GetName()
{
 return Name;
}

void Mebel::PutName(char *s)
{
  strcpy_s(Name,s);
}

void Mebel::Init( char *f,int v1,float s1,int v2,float s2,int v3,float s3)
{
  strcpy_s(Name,f);
 FirstRezult.Init(v1,s1);       // FirstRezult.min=m1  FirstRezult.sec=s1
 SecondRezult.Init(v2,s2);   // SecondRezult.min=m2  SecondRezult.sec=s2
 FreeRezult.Init(v3,s3);
}

Record Mebel::Best()
{
  float sto1,sto2,sto3;    // секунды первого и второго результатов
 sto1=FirstRezult.Stoi();      // вычисление числа секунд 1 результата
 sto2=SecondRezult.Stoi(); // вычисление числа секунд 2 результата
 sto3=FreeRezult.Stoi(); // вычисление числа секунд 2 результата
 if (sto1>sto2 || sto1>sto3)
  return FirstRezult;
 else if (sto2>sto1 || sto2>sto3)
 return SecondRezult;
 else 
	 return FreeRezult;
}



int _tmain(int argc, _TCHAR* argv[])
{
  setlocale(LC_ALL, "Russian"); /*setlocale( LC_CTYPE, ".1251" ); */

  Record a,b;
  Mebel F,S;          // два спортсмена
  char c[30];
  float P,L;

  a.Init(250,4);   
  b.Init(250,2);

  P=a.Stoi();
  L=b.Stoi();

 //   тест для задания и получения фамилий спортсменов
  F.PutName("First");  // фамилия у P ->First
  strcpy_s(c,F.GetName());
  printf("%s - %f",c,P);           // вывод извлеченной фамилии Pu
  printf("\n");
  S.PutName("Second");     //  фамилия у Z ->Me
  strcpy_s(c,S.GetName());
  printf("%s - %f",c,L);             // вывод извлеченной фамилии Me
  printf("\n");
// кто из спортсменов лучше
  Mebel K,N,T;
  Record sb,nb,tb;   
  float ssto,nsto,tsto;    
  K.Init("So",1,15,2,5,4,4);   
  N.Init("Na",3,5,1,40,1,2);
  T.Init("Ta",5,4,30,2,5,7);
  sb=S.Best();             
  nb=N.Best();
  tb=T.Best();
  ssto=sb.Stoi();  // число секунд во  времени pb (75)
  nsto=nb.Stoi();  // число секунд во времени zb
  tsto=tb.Stoi();
  if(ssto>nsto || ssto>tsto)               // кто из спортсменов лучше
   printf("S лучше\n");
  else if (nsto>ssto || nsto>tsto)
   printf("N лучше\n");	
  else
	printf("T лучше\n");


     system("pause");
	  return 0;
}
Соседние файлы в папке Практика