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("pause");
return 0;
}
Revise this Paste
Children: 42292