Ask___
Advice
Главная
О сервисе
О нас
Правила пользования сайтом
Авторское право
Политика конфиденциальности
Ключ для indexNow
Скрипт от рекламы
Задать вопрос
Искать
Главная
Информатика
Ответы на вопрос
Vyacheslavovich1431
09.09.2022
?>
Пожайлуста перересуйте себе в терать в точку точно
Информатика
Ответить
Ответы
Doronin755
09.09.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*
Комментарий*
Согласен с
политикой конфиденциальности
Отправить вопрос
Популярные вопросы в разделе
Составить блок-схему алгоритма и программу на языке Object Pascal для расчета и печати 5 таблиц значений функций при указанных х и а = 1, 1; 1, 2; 1, 3; 1, 4; 1, 5. Организовать вывод графика функции ...
Автор: Станиславович1830
Сор по информатике. 8 класс
Автор: Александр Сергей
Создать wеb-сайт салона компьютерной техники. Обязательно использовать графические элементы и таблицу. Объем сайта - 4-5 страниц. Сайт нужно создать используя приложение KompoZer, либо HTML-разметку....
Автор: Zimin1111
12. Найдите значение логического выражения (Х< 3) & (Х< 2) для указанных значений числа X:1) 12) 23) 34) 413. Пусть А = «Первая буква имени гласная», B = «Четвёртаябуква имени согласная». Н...
Автор: femida69
Повідомлення складається з 8192 символів і займає в пам'яті 3, 5 Кбайт. Яка потужність алфавіту, який використовувався при кодуванні очень информатика
Автор: Каныбек698
Что такое вес позиции в системе счисления? имеется десятичное число 324512. какой вес имеет каждая позиция
Автор: Khlustikova_Borisovna
Составить программу, которая формирует символьную строку из n звездочек.
Автор: diana-kampoteks
Что не так в коде python( делал орел и решку) Мне надо защищать работу import random print("Орел и решка") print("Ты должен загадать орла или решку!") for i in range(5): pc = input('Выбери: орел или р...
Автор: itartdesignprof
Найдите значения выражений. 1) ((0&А)∨(B&1))V12) ((A∨1)&(B∨0)&(1∨0))
Автор: Владимир-Денисович1080
Где в этой программе фрагмент ввода массива с клавиатуры? program zz1; var i:integer; m:array[1900..1999] of integer; // описываем массив целого типа, каждый элемент которого будет являться каждым го...
Автор: saint158
1. вычислить объем растрового черно-белого изображения размером 640×350. 2. вычислить объем растрового изображения размером 800 х 600 и палитрой 256 цветов.
Автор: ksuhova
Опис структура книжки геометрія 8 клас інформатика
Автор: vodexshop2
1. Какое множество понятий однозначно определяет позиционную систему счисления: 1) {базис, алфавит, основание}; 2) {базис, алфавит}; 3) {базис}? 2. Какая последовательность чисел может быть использ...
Автор: gsktae7
Определите, что будет напечатано в результате выполнения следующего алгоритма: var m, k: integer; begin m: =0; for k: =1 to 10 do m: =m + k; write(m); end.
Автор: muziumednogorsk
подпишусь, отблагодарю и выберу ответ лучшим. Только правильно и быстро. Ввести числа с диапазона 5..9. Вывести их значения двумя языками.
Автор: admin8808
▲
#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