Ask___
Advice
Главная
О сервисе
О нас
Правила пользования сайтом
Авторское право
Политика конфиденциальности
Ключ для indexNow
Скрипт от рекламы
Задать вопрос
Искать
Главная
Информатика
Ответы на вопрос
ivanda
22.11.2022
?>
Решите задачи по информатике, задание прикреплено,
Информатика
Ответить
Ответы
Vitalevich
22.11.2022
У меня есть какие-то наработки, они под линукс, но на винде должно работать все, кроме управления цветом, его выкинешь.
#include <cstdlib>#include <string>#include <iostream>#include "field.h"using namespace std;
int main(int argc, char** argv, char** env){ srand(time(0)); vector< vector< string > > S; S.resize(2); S[0].push_back("Vremena_goda"); S[1].push_back("Zima"); S[1].push_back("Vesna"); S[1].push_back("Leto"); S[1].push_back("Osen");
Field A(S, Field().clGreen, Field().clLightblue); cout << A << std::endl; return 0;}
#ifndef FIELD_H_INCLUDED#define FIELD_H_INCLUDED
#include <vector>#include <iterator>#include <algorithm>#include <string>#include <sstream>class Field{public: enum ConsoleColor { clBlack, clRed, clGreen, clYellow, clBlue, clPurple, clLightblue, clWhite };private: size_t field_width, field_height; std::vector< std::vector< std::string > > Data; std::vector< size_t > column_width; ConsoleColor color_border, color_font; std::string get_format_color_string(std::string S, ConsoleColor color) { std::stringstream result; result << "\x1b[1;" << color + 30 << "m" << S << "\x1b[0m"; return result.str(); } std::string str_mul(std::string s, size_t num) { std::string result = ""; for(size_t i = 0; i < num; i++) result += s; return result; }public: Field() {}; Field(std::vector< std::vector< std::string > > D, ConsoleColor color_border, ConsoleColor color_font) : Data(D), color_border(color_border), color_font(color_font) { field_height = Data.size(); field_width = 0; for(size_t i = 0; i < field_height; i++) field_width = std::max(field_width, Data[i].size()); for(size_t i = 0; i < field_height; i++) while(Data[i].size() < field_width) Data[i].push_back(""); column_width.assign(field_width, 0); for(size_t i = 0; i < field_height; i++) for(size_t j = 0; j < field_width; j++) column_width[j] = std::max(column_width[j], Data[i][j].length()); } void logs() { std::cout << "field_height: " << field_height << std::endl; std::cout << "field_widht: " << field_width << std::endl; } friend std::ostream& operator <<(std::ostream& output_stream, Field & field) { /* std::cout << field.field_width << " " << field.field_height << std::endl; for(size_t i = 0; i < field.Data.size(); i++) { for(size_t j = 0; j < field.Data[i].size(); j++) std::cout << field.Data[i][j] << " "; std::cout << std::endl; } */
output_stream << field.get_format_color_string(" ┌", field.color_border); for(size_t i = 0; i < field.field_width - 1; i++) { output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[i] + 2), field.color_border); output_stream << field.get_format_color_string("┬", field.color_border); } output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[field.field_width - 1] + 2), field.color_border); output_stream << field.get_format_color_string("┐\n ", field.color_border);
for(size_t i = 0; i < field.field_height; i++) { output_stream << field.get_format_color_string("│", field.color_border); for(size_t j = 0; j < field.field_width; j++) { std::stringstream ss; ss << field.str_mul(" ", field.column_width[j] - field.Data[i][j].size() + 1) << (field.Data[i][j] != "" ? field.Data[i][j] : ""); output_stream << field.get_format_color_string(ss.str(), field.color_font); output_stream << field.get_format_color_string(" │", field.color_border); } output_stream << "\n "; if(i != field.field_height - 1) { output_stream << field.get_format_color_string("├", field.color_border); for(size_t j = 0; j < field.field_width - 1; j++) { output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[j] + 2), field.color_border); output_stream << field.get_format_color_string("┼", field.color_border); } output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[field.field_width - 1] + 2), field.color_border); output_stream << field.get_format_color_string("┤", field.color_border); } else { output_stream << field.get_format_color_string("└", field.color_border); for(size_t j = 0; j < field.field_width - 1; j++) { output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[j] + 2), field.color_border); output_stream << field.get_format_color_string("┴", field.color_border); } output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[field.field_width - 1] + 2), field.color_border); output_stream << field.get_format_color_string("┘\n", field.color_border); } output_stream << "\n "; } return output_stream;
}};
#endif // FIELD_H_INCLUDED
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Решите задачи по информатике, задание прикреплено,
Ваше имя (никнейм)*
Email*
Комментарий*
Согласен с
политикой конфиденциальности
Отправить вопрос
Популярные вопросы в разделе
Gбиология. зная, что учебник 8и изучать не будет, ирина юрьевна сообщила, что согласно теории, для хорошего роста молодых растений их необходимо поливать по одному литру воды на каждый лист. листь...
Автор: ОвсепянСергей88
информатика сор на казахском. От
Автор: alenih13
Вычислите значение выражения 205 8 − 22 4 + 1 A 16 . Результат запишите в десятичной системе счисления.
Автор: bas7572513
Складить блок -схему фрагмента алгоритму , у якому в цикл з личильником вкладено неповне розгалуження. Пояснить виконання складеного фрагмента,
Автор: kostmax1971
Запишите конечное значение переменной C в результате выполнения действий: А:=2; B:=10; C:=A+B; B:=B-3; C:=(B-2*A)*3+C/4;
Автор: ИринаАлександровна
Користувачу необхідно додати до парних і непарних сторінок документу різні колонтитули. дайте розгорнуті відповіді
Автор: D-posilochka
1) Используется оператор for i:= 5 to 36 do… При первом выполнении тела цикла i = ... ответ: 2) Определите, какое значение будет выведено на экран в результате выполнения приведенной ниже последоват...
Автор: Soliyabronzoni
Набор букв языка или система знаков для передачи устной речи
Автор: Tatarnikova1507
Расшифровать моноалфавитный подстановочный шифр. Расшифруйте следующее сообщение, составленное с моноалфавитного подстановочного шифра. Открытый текст, состоящий только из букв, представляет собой ...
Автор: denisrogachv
Как предоставлена информация на компьютере? Что такое двоичное кодирование? Какие методы кодирования существуют? Сколько символов содержит компьютерный алфавит? Какие единицы измерения информации ты з...
Автор: maltes
Напишите программу, которая считывает пять чисел (каж¬дое между 1 и 30 для каждого считанного числа ваша программа должна вывести строку из равного этому числу количества смежных звездочек. например,...
Автор: vallzh8328
Що буде результатом виконання даної програми?
Автор: bandurinei
Составить блок-схему: 1)y=x^3+1, 3x^2 2)y система 0, если x< 0 -1, если x> 0
Автор: Ekaterina1654
Информационное сообщение объёмом 350 битов содержит 700 символов. Какова мощность алфавита?
Автор: МАМОНОВА-андрей
▲
#include <cstdlib>#include <string>#include <iostream>#include "field.h"using namespace std;
int main(int argc, char** argv, char** env){ srand(time(0)); vector< vector< string > > S; S.resize(2); S[0].push_back("Vremena_goda"); S[1].push_back("Zima"); S[1].push_back("Vesna"); S[1].push_back("Leto"); S[1].push_back("Osen");
Field A(S, Field().clGreen, Field().clLightblue); cout << A << std::endl; return 0;}
#ifndef FIELD_H_INCLUDED#define FIELD_H_INCLUDED
#include <vector>#include <iterator>#include <algorithm>#include <string>#include <sstream>class Field{public: enum ConsoleColor { clBlack, clRed, clGreen, clYellow, clBlue, clPurple, clLightblue, clWhite };private: size_t field_width, field_height; std::vector< std::vector< std::string > > Data; std::vector< size_t > column_width; ConsoleColor color_border, color_font; std::string get_format_color_string(std::string S, ConsoleColor color) { std::stringstream result; result << "\x1b[1;" << color + 30 << "m" << S << "\x1b[0m"; return result.str(); } std::string str_mul(std::string s, size_t num) { std::string result = ""; for(size_t i = 0; i < num; i++) result += s; return result; }public: Field() {}; Field(std::vector< std::vector< std::string > > D, ConsoleColor color_border, ConsoleColor color_font) : Data(D), color_border(color_border), color_font(color_font) { field_height = Data.size(); field_width = 0; for(size_t i = 0; i < field_height; i++) field_width = std::max(field_width, Data[i].size()); for(size_t i = 0; i < field_height; i++) while(Data[i].size() < field_width) Data[i].push_back(""); column_width.assign(field_width, 0); for(size_t i = 0; i < field_height; i++) for(size_t j = 0; j < field_width; j++) column_width[j] = std::max(column_width[j], Data[i][j].length()); } void logs() { std::cout << "field_height: " << field_height << std::endl; std::cout << "field_widht: " << field_width << std::endl; } friend std::ostream& operator <<(std::ostream& output_stream, Field & field) { /* std::cout << field.field_width << " " << field.field_height << std::endl; for(size_t i = 0; i < field.Data.size(); i++) { for(size_t j = 0; j < field.Data[i].size(); j++) std::cout << field.Data[i][j] << " "; std::cout << std::endl; } */
output_stream << field.get_format_color_string(" ┌", field.color_border); for(size_t i = 0; i < field.field_width - 1; i++) { output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[i] + 2), field.color_border); output_stream << field.get_format_color_string("┬", field.color_border); } output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[field.field_width - 1] + 2), field.color_border); output_stream << field.get_format_color_string("┐\n ", field.color_border);
for(size_t i = 0; i < field.field_height; i++) { output_stream << field.get_format_color_string("│", field.color_border); for(size_t j = 0; j < field.field_width; j++) { std::stringstream ss; ss << field.str_mul(" ", field.column_width[j] - field.Data[i][j].size() + 1) << (field.Data[i][j] != "" ? field.Data[i][j] : ""); output_stream << field.get_format_color_string(ss.str(), field.color_font); output_stream << field.get_format_color_string(" │", field.color_border); } output_stream << "\n "; if(i != field.field_height - 1) { output_stream << field.get_format_color_string("├", field.color_border); for(size_t j = 0; j < field.field_width - 1; j++) { output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[j] + 2), field.color_border); output_stream << field.get_format_color_string("┼", field.color_border); } output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[field.field_width - 1] + 2), field.color_border); output_stream << field.get_format_color_string("┤", field.color_border); } else { output_stream << field.get_format_color_string("└", field.color_border); for(size_t j = 0; j < field.field_width - 1; j++) { output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[j] + 2), field.color_border); output_stream << field.get_format_color_string("┴", field.color_border); } output_stream << field.get_format_color_string(field.str_mul("─", field.column_width[field.field_width - 1] + 2), field.color_border); output_stream << field.get_format_color_string("┘\n", field.color_border); } output_stream << "\n "; } return output_stream;
}};
#endif // FIELD_H_INCLUDED