diff --git a/main.cpp b/main.cpp index cbfe033..46aa3c0 100644 --- a/main.cpp +++ b/main.cpp @@ -12,26 +12,24 @@ struct Input size_t bin_count{}; }; -Input -input_data() -{ + +Input input_data(istream& stream) { + Input in; size_t number_count; cerr << "Enter number count: "; - cin >> number_count; - Input in; + stream >> number_count; in.numbers.resize(number_count); - for (size_t i = 0; i < number_count; i++) - { - cin >> in.numbers[i]; + for (size_t i = 0; i < number_count; i++) { + stream >> in.numbers[i]; } cerr << "Enter bin count: "; - cin >> in.bin_count; + stream >> in.bin_count; return in; } int main() { - Input in = input_data(); + Input in = input_data(cin); vector bins = make_histogram(in.numbers, in.bin_count); show_histogram_svg(bins); } diff --git a/svg.cpp b/svg.cpp index a0b4e38..818d5be 100644 --- a/svg.cpp +++ b/svg.cpp @@ -14,8 +14,8 @@ const auto BLOCK_WIDTH = 10; const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH; void -svg_text(double left, double baseline, int font_size, string text) { - cout << "" << text << ""; +svg_text(double left, double baseline, string text) { + cout << "" << text << ""; } void @@ -38,28 +38,9 @@ svg_end() { cout << "\n"; } -void -proverka(bool& flag, int font_size){ - if (font_size < 8) { - cerr << "Font size is too small. Please enter a value between 8 and 32." << endl; - flag = true; - } else if (font_size > 32) { - cerr << "Font size is too large. Please enter a value between 8 and 32." << endl; - flag = true; - } else { - flag = false; - } -} void show_histogram_svg(const vector& bins) { - int font_size = 12; - bool flag = true; - while(flag) { - cerr << "Enter font size (8-32): "; - cin >> font_size; - proverka(flag, font_size); - } const auto MAX_WIDTH = IMAGE_WIDTH - TEXT_WIDTH; size_t max_count = 0; for (size_t x : bins) { @@ -78,7 +59,7 @@ show_histogram_svg(const vector& bins) { double top = 0; for (size_t bin : bins) { double bin_width = BLOCK_WIDTH * bin * scale_factor; - svg_text(TEXT_LEFT, top + TEXT_BASELINE, font_size, to_string(bin)); + svg_text(TEXT_LEFT, top + TEXT_BASELINE, to_string(bin)); svg_rect(TEXT_WIDTH, top, bin_width, BIN_HEIGHT); top += BIN_HEIGHT; }