⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 simpleinvoiceprinter.cpp

📁 《Big C++ 》Third Edition电子书和代码全集-Part1
💻 CPP
字号:
#include <iostream>
#include <iomanip>

using namespace std;

#include "simpleinvoiceprinter.h"

SimpleInvoicePrinter::SimpleInvoicePrinter(vector<int> widths)
{
   column_widths = widths;
   column = 0;
}

void SimpleInvoicePrinter::print_header(string s)
{   
   int width = 0;
   for (int i = 0; i < column_widths.size(); i++) 
      width = width + column_widths[i];
   for (int j = 0; j < (width - s.length()) / 2; j++)
      cout << " ";
   cout << s << "\n\n";
}

void SimpleInvoicePrinter::next_column()
{
   column++;
   if (column == column_widths.size())
   {
      cout << "\n";
      column = 0;      
   }
}

void SimpleInvoicePrinter::print_string(string value, bool pad_right)
{
   if (pad_right) cout << value;
   // print padding
   for (int i = value.length(); i < column_widths[column]; i++)
      cout << " ";
   if (!pad_right) cout << value;
   next_column();
}

void SimpleInvoicePrinter::print_number(double value, int precision)
{
   cout << setw(column_widths[column]) 
      << fixed << setprecision(precision) 
      << value;
   next_column();
}

void SimpleInvoicePrinter::print_footer(string s, double total)
{
   cout << "\n" << s << " " << total << "\n";
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -