Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as C++ by Paul Bazanov ( 15 years ago )
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <conio.h>
#include <windows.h>

class klav //структура, описывающая клавиатуру
{
private :
 float ves ; //вес в килограммах
 float dlinna ;
 float shirina ; //размеры клавиатуры
 char inter[20] ; //интерфейс подключения клавиатуры
 char name[20] ; //название клавиатуры
 char color[20] ; //цвет клавиатуры
    struct hist
 { 
  klav *f2 ; //то с чем сравнивали
     bool rez ; //результат сравнения
     hist *next ; //указатель на следующее сравнение
 } 
 hist *first = NULL, *current, *last; //указатели на состояния списка
public :
 void printfKlav() ; //функция выводит на экран информацию о клавиатуре
 void setDlinna(float p) ;  //
 void setShirina(float p) ; //Функции назначающие размеры клавиатуры
    void setVes(float p) ; //функция назначает вес клавиатуры
 void setInter(char *p) ; //Функция назначает интерфейс подключения клавиатуры
 void setName(char *p) ; //функция назначает название клавиатуры
 void setColor(char *p) ; //функция назначает цвет клавиатуры
 void setAllParam(float p1, float p2, float p3, char *p4, char *p5, char *p6) ; //функция назначает все параметры клавиатуры
 void compareTo(klav F) ; //сравнивает текущую клавиатуру с другой клавиатурой 
    void input history() ; //выводит на экран историю сравнения
    //конструкторы
    klav() ;
 klav(float p1, float p2, float p3, char *p4, char *p5, char *p6) ;
} ;

//конструкторы
klav :: klav()
{
 dlinna = 0 ;
 shirina = 0 ;
 ves = 0 ;
 sprintf(inter,"интерфейс подключения не задан") ;
 sprintf(name,"название не задано") ;
 sprintf(color,"цвет не задан") ;
}

klav :: klav(float p1, float p2, float p3, char *p4, char *p5, char *p6)
{
 setDlinna(p1) ;
 setShirina(p2) ;
    setVes(p3) ;
 setInter(p4) ;
 setName(p5) ;
 setColor(p6) ;
}

void klav :: printfKlav()
{
 printf("nКлавиатура %s имеет %s цвет, интерфейс подключения %s,nразмеры %.2 на %.2 и вес равный %.2f кгn", name, color, inter, dlinna, shirina, ves) ;
}

void klav :: setDlinna(float p)
{
 dlinna = p ;
}

void klav :: setShirina(float p)
{
 shirina = p ;
}

void klav :: setVes(float p)
{
 ves = p ;
}

void klav :: setInter(char *p)
{
 sprintf(inter,"%s",p) ;
}

void klav :: setName(char *p)
{
 sprintf(name,"%s",p) ;
}

void klav :: setColor(char *p)
{
 sprintf(color,"%s",p) ;
}

void klav :: setAllParam(float p1, float p2, float p3, char *p4, char *p5, char *p6)
{
 setDlinna(p1) ;
 setShirina(p2) ;
    setVes(p3) ;
 setInter(p4) ;
 setName(p5) ;
 setColor(p6) ;
}

void klav :: compareTo(klav F, bool &rez;)
{
 float razn = fabs(ves-F.ves) ; //разница в весе
 float razn2 = fabs(dlinna-F.dlinna), razn3 = fabs(shirina-F.shirina) ; //разница в размере
 printf("n -= Сравнение двух фруктов =- ") ;
 //сравним размеры
 if (( razn2 ==0 ) && ( razn3 ==0 )) printf("nКлавиатуры одинакогого размера") ;
 else printf("nКлавиатуры разного размера") ;
 //сравним вес
 if ( razn ==0 ) printf("nКлавиатуры имеют одинаковый вес") ;
 else if ( razn < 0.1 ) printf("nКлавиатуры имеют незначительную разницу в весе") ;
 else printf("nКлавиатуры имеют различный вес") ;
 //сравним название
 if ( strcmpi(name, F.name)!=0 ) printf("nКлавиатуры принадлежат к разным производителям") ;
 else printf("nКлавиатуры принадлежат к одному производителю") ;
 //сравним окраску
 if ( strcmpi(color, F.color)!=0 ) printf("nКлавиатуры имеют разные цвета") ;
 else printf("nКлавиатуры имеют один цвет") ;
 //сравним интерфейс подключения
 if ( strcmpi(inter, F.inter)!=0 ) printf("nКлавиатуры имеют разные интерфейсы подключения") ;
 else printf("nКлавиатуры имеют одинаковые интерфейсы подключения") ;
 return true;
}

void klav :: input history()
{
 printf("История сравнения клавиатуры %s", name);// тут я думаю надо написать с какими клавиатурами уже сравнивали :) 
}

int main(int argc, char* argv[])
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    //явное определение данных
 klav f1, f2 ; //объявление двух клавиатур
 f1.setDlinna(46) ;
 f1.setShirina(20) ;
    f1.setVes(3.25) ; //определим данные первой клавиатуры
 f1.setInter("PS2") ;
    f1.setName("Genius") ;
 f1.setColor("черный") ;
 f1.printfKlav() ;  //вывод информации на экран
 f2.setAllParam(50, 18, 3.24, "USB", "Genius", "розовый") ; //задаем параметры для второй клавиатуры
 f2.printfKlav() ;
    f1.compareTo(f2) ; //сравним  клавиатуры
 if(rez)
 {
  current = new hist;
  current->inf = klav f2;
  current->next = NULL;
  if(!first)
  first = current;
  else 
  last->next = current;
  last=current;
 }
    //определение данных через конструкторы
 klav f3, f4(56, 17, 3.14, "USB", "multilight", "красный") ; //объявление двух клавиатур
 f3.printfKlav() ;
 f4.printfKlav() ;
 f1.compareTo(f4) ;
    if(rez)
 {
  current = new hist;
  current->inf = klav f2;
  current->next = NULL;
  if(!first)
  first = current;
  else 
  last->next = current;
  last=current;
 }

 system&#40;"pause"&#41;;
 return 0;
}

 

Revise this Paste

Children: 42292
Your Name: Code Language: