Ali8b
16.03.2020 21:39

Составить таблицу в эксель Составить таблицу, позволяющую автоматизировано рассчитывать квартплату квартиросьемщиков. Расчет квартплаты Р осуществляется по формуле: Р=k*B*S, Где: S - жилая или общая площадь, В- базовая стоимость одного квадратного метра, k -повышающий коэффициент за качество жилья. Квартплата начисляется за каждый квадратный метр общей площади, если квартира отдельная, и за каждый квадратный метр (1м2) жилой площади, если квартира коммунальная. Повышающий коэффициент - k равен: • 5 - для домов дореволюционной постройки после капитального ремонта, • 3,5 - для домов “сталинской” постройки, • 2,8 - для кирпичных домов современной постройки, • 2 - для домов дореволюционной постройки, не ремонтировавшихся, • для современных блочных домов. Базовая стоимость одного квадратного метра в общей площади в отдельной квартире равна 240 р., а жилой площади в коммунальной квартире 320 р. Базовая стоимость 1м и коэффициенты могут меняться. Требования к решению: 1- Каждая строка должна содержать следующую информацию: • ФИО жильца; • адрес; • категорию Дома (которая определяет величину повышающего коэффициента k), • тип квартиры (коммунальная или отдельная); • начисленную квартплату, • возможно какую-либо дополнительную информацию. 2- Для расчетов в таблице данные задать самостоятельно. 3- Предусмотреть в списке данных все категории Домов и типы квартир. 4- Вычислить: • общую сумму квартплаты в данном списке, • сумму квартплаты по категориям домов, • общую сумму квартплаты в данном списке. 5- Построить круговую диаграмму, показывающую распределение квартплаты по категориям. Рекомендации: • базовые стоимости 1м2 в хранить в отдельных ячейках, • величину повышающего коэффициента k для домов разных категорий задать в таблице- справочнике.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
мила905
05.12.2021 23:11

// Pascal ABC.NET

type

 Train = class

 

 private

 

   ПунктНазначения: string;

   НомерПоезда: string;

   ВремяOтправления: string;

   Информация: string;

   

   static function ЧастьНомера(s: string) := s.MatchValue('\d*').ToInteger;

 

 public

 

 constructor (ПН, НП, ВО: string; И: string := '');

 begin

   ПунктНазначения := ПН;

   НомерПоезда := НП;

   ВремяOтправления := ВО;

   Информация := И

 end;

 

 static procedure УпорядочитьПункты(var a: array of Train) :=

   a := a.OrderBy(p -> p.ПунктНазначения)

       .ThenBy(p -> p.ВремяOтправления).ToArray;

   

 static procedure УпорядочитьНомера(var a: array of Train) :=

   a := a.OrderBy(p -> ЧастьНомера(p.НомерПоезда)).ToArray;  

 

 function ToString: string; override :=

     $'{ПунктНазначения,-20} {НомерПоезда,-5} {ВремяOтправления,7}' +

         $'  {Информация}';

     

end;

function ДобавитьИнформацию(Self: array of Train;

     НомерПоезда, Информация: string): boolean; extensionmethod;

begin

 Result := True;

 var i := Self.FindIndex(p -> p.НомерПоезда = НомерПоезда);

 if i >= 0 then

   Self[i].Информация := Информация

 else

   Result := False

end;

begin

 var a := new Train[5];

 a[0] := new Train('Адлер','4c','15:40');

 a[1] := new Train('Санкт-Петербург','132п','07:19');

 a[2] := new Train('Казань','8ф','12:35');

 a[3] := new Train('Новосибирск','217п','18:05');

 a[4] := new Train('Адлер','18c','08:32');

 Train.УпорядочитьНомера(a);

 a.PrintLines;

 var np := ReadlnString('Номер поезда:');

 var info := ReadlnString('Добавочная информация:');

 if not a.ДобавитьИнформацию(np, info) then

   Println('Не найден номер поезда');

 Train.УпорядочитьПункты(a);

 a.PrintLines

end.


решить эту задачу, не скидывайте похожую которую найдете в инете Создать класс Train, содержащий по
0,0(0 оценок)
Ответ:
Olga2907
05.12.2021 23:11

Исходник прикреплю в закреп, в двух форматах на всякий!!

Объяснение:

#include <iostream>

#include <string>

#include <ctime>

using namespace std;

class Time {

public:

Time()

 : m_hours(0), m_minutes(0) {

 //TODO

}

Time(short hours, short minutes)

 : m_hours(hours), m_minutes(minutes) {

 //TODO

}

Time operator-(const Time& time) {

 Time tempTime;

 tempTime.m_minutes = this->m_minutes - time.m_minutes;

 if (tempTime.m_minutes < 0) {

  tempTime.m_minutes += 60;

 }

 tempTime.m_hours = this->m_hours - time.m_hours;

 if (tempTime.m_hours < 0) {

  tempTime.m_hours += 23;

 }

 return tempTime;

}

friend std::ostream& operator<<(std::ostream& os, const Time& time);

friend std::istream& operator>>(std::istream& is, Time& time);

short m_hours;

short m_minutes;

};

std::ostream& operator<<(std::ostream& os, const Time& time) {

if (time.m_hours < 10) {

 os<< "0";

}

os<< time.m_hours << ":";

if (time.m_minutes < 10) {

 os<< "0";

}

os << time.m_minutes;

return os;

}

std::istream& operator>>(std::istream& is, Time& time) {

char delim{ ':' };

is >> time.m_hours >> delim >> time.m_minutes;

if (time.m_hours > 23) {

 time.m_hours %= 24;

}

if (time.m_minutes > 59) {

 time.m_minutes %= 60;

}

return is;

}

class train

{

public:

string punkt;

int trainNumber;

Time startTime;

train(string punkt1, int trainNumber1, Time startTime1)

{

 punkt = punkt1;

 trainNumber = trainNumber1;

 startTime = startTime1;

}

};

int main()

{

train* arrayOfTrain[5];

for (int i = 0; i < 5; i++)

{

 string punkt;

 int trainNumber;

 Time startTime;

 cin >> punkt;

 cin >> trainNumber;

 cin >> startTime;

 arrayOfTrain[i] = new train(punkt, trainNumber, startTime);

}

//Сортировка

for (int i = 0; i < 5 - 1; i++)

 for (int j = i + 1; j < 5; j++) {

  if (strcmp(arrayOfTrain[i]->punkt.c_str(), arrayOfTrain[j]->punkt.c_str()) > 0)

  {

   swap(arrayOfTrain[i], arrayOfTrain[j]);

  }

 }

for (int i = 0; i < 5 - 1; i++)

 for (int j = i + 1; j < 5; j++) {

  if (strcmp(arrayOfTrain[i]->punkt.c_str(), arrayOfTrain[j]->punkt.c_str()) == 0)

  {

   if (arrayOfTrain[i]->startTime.m_hours > arrayOfTrain[j] -> startTime.m_hours)

    swap(arrayOfTrain[i], arrayOfTrain[j]);

   if (arrayOfTrain[i]->startTime.m_hours == arrayOfTrain[j] -> startTime.m_hours)

    if (arrayOfTrain[i] -> startTime.m_minutes > arrayOfTrain[j] -> startTime.m_minutes)

     swap(arrayOfTrain[i], arrayOfTrain[j]);

  }

 }

for (int i = 0; i < 5; i++)

{

 cout << arrayOfTrain[i]->punkt << " " << arrayOfTrain[i]->trainNumber << " " << arrayOfTrain[i]->startTime << endl;

}

system("pause");

return 0;

}

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота