подскажите кто-нибудь, как можно реализовать вывод данных в виде такой таблицы? #include <iostream> #include <string> #include <algorithm> #include <iomanip> using namespace std; class Motorcycle { public: int oneSeat; int twoSeats; int threeSeats; int owners; string brand; Motorcycle() : oneSeat(0), twoSeats(0), threeSeats(0), owners(0), brand("") {} void input() { cout << "Enter the number of one-seat motorcycles: "; cin >> oneSeat; cout << "Enter the number of two-seat motorcycles: "; cin >> twoSeats; cout << "Enter the number of three-seat motorcycles: "; cin >> threeSeats; cout << "Enter the number of owners: "; cin >> owners; cout << "Enter the brand name: "; cin.ignore(); getline(cin, brand); } void display() { cout << setw(8) << oneSeat << setw(8) << twoSeats << setw(8) << threeSeats; if (owners > 0) cout << setw(8) << owners; else cout << setw(16) << ""; cout << setw(16) << brand << "\n"; } bool isDucati() { return brand == "Ducati"; } static bool compareByOwners(const Motorcycle& m1, const Motorcycle& m2) { return m1.owners > m2.owners; } }; class MotorcycleList { private: static const int SIZE = 5; Motorcycle motorcycles[SIZE]; public: void inputList() { cout << "Enter details for " << SIZE << " motorcycles:\n"; for (int i = 0; i < SIZE; i++) { cout << "Motorcycle #" << (i + 1) << ":\n"; motorcycles[i].input(); } } void displayList() { cout << "Motorcycle List:\n"; cout << setw(8) << "1-seat" << setw(8) << "2-seat" << setw(8) << "3-seat" << setw(8) << "Owners" << setw(16) << "Brand" << "\n"; for (int i = 0; i < SIZE; i++) { motorcycles[i].display(); } } void displayDucatiMotorcycles() { cout << "Ducati Motorcycles:\n"; cout << setw(8) << "1-seat" << setw(8) << "2-seat" << setw(8) << "3-seat" << setw(8) << "Owners" << setw(16) << "Brand" << "\n"; for (int i = 0; i < SIZE; i++) { if (motorcycles[i].isDucati()) { motorcycles[i].display(); } } } void sortByOwners() { sort(motorcycles, motorcycles + SIZE, Motorcycle::compareByOwners); } }; int main() { MotorcycleList list; list.inputList(); cout << "---- Motorcycles List ----\n"; list.displayList(); cout << "---- Ducati Motorcycles ----\n"; list.displayDucatiMotorcycles(); cout << "---- Sorted by Owners ----\n"; list.sortByOwners(); list.displayList(); system("pause"); } Code #include <iostream> #include <string> #include <algorithm> #include <iomanip> using namespace std; class Motorcycle { public: int oneSeat; int twoSeats; int threeSeats; int owners; string brand; Motorcycle() : oneSeat(0), twoSeats(0), threeSeats(0), owners(0), brand("") {} void input() { cout << "Enter the number of one-seat motorcycles: "; cin >> oneSeat; cout << "Enter the number of two-seat motorcycles: "; cin >> twoSeats; cout << "Enter the number of three-seat motorcycles: "; cin >> threeSeats; cout << "Enter the number of owners: "; cin >> owners; cout << "Enter the brand name: "; cin.ignore(); getline(cin, brand); } void display() { cout << setw(8) << oneSeat << setw(8) << twoSeats << setw(8) << threeSeats; if (owners > 0) cout << setw(8) << owners; else cout << setw(16) << ""; cout << setw(16) << brand << "\n"; } bool isDucati() { return brand == "Ducati"; } static bool compareByOwners(const Motorcycle& m1, const Motorcycle& m2) { return m1.owners > m2.owners; } }; class MotorcycleList { private: static const int SIZE = 5; Motorcycle motorcycles[SIZE]; public: void inputList() { cout << "Enter details for " << SIZE << " motorcycles:\n"; for (int i = 0; i < SIZE; i++) { cout << "Motorcycle #" << (i + 1) << ":\n"; motorcycles[i].input(); } } void displayList() { cout << "Motorcycle List:\n"; cout << setw(8) << "1-seat" << setw(8) << "2-seat" << setw(8) << "3-seat" << setw(8) << "Owners" << setw(16) << "Brand" << "\n"; for (int i = 0; i < SIZE; i++) { motorcycles[i].display(); } } void displayDucatiMotorcycles() { cout << "Ducati Motorcycles:\n"; cout << setw(8) << "1-seat" << setw(8) << "2-seat" << setw(8) << "3-seat" << setw(8) << "Owners" << setw(16) << "Brand" << "\n"; for (int i = 0; i < SIZE; i++) { if (motorcycles[i].isDucati()) { motorcycles[i].display(); } } } void sortByOwners() { sort(motorcycles, motorcycles + SIZE, Motorcycle::compareByOwners); } }; int main() { MotorcycleList list; list.inputList(); cout << "---- Motorcycles List ----\n"; list.displayList(); cout << "---- Ducati Motorcycles ----\n"; list.displayDucatiMotorcycles(); cout << "---- Sorted by Owners ----\n"; list.sortByOwners(); list.displayList(); system("pause"); } код выше выводит таблицу в 5 раздельных столбцов
xFlow, для вывода таблицы в таком формате можно использовать функцию setw() из библиотеки iomanip. Вот пример кода, который выводит таблицу в нужном формате: #include <iostream> #include <iomanip> using namespace std; int main() { cout << setw(10) << "Name" << setw(10) << "Age" << setw(10) << "Gender" << setw(10) << "City" << endl; cout << setw(10) << "John" << setw(10) << "25" << setw(10) << "Male" << setw(10) << "New York" << endl; cout << setw(10) << "Mary" << setw(10) << "30" << setw(10) << "Female" << setw(10) << "Los Angeles" << endl; cout << setw(10) << "Bob" << setw(10) << "40" << setw(10) << "Male" << setw(10) << "Chicago" << endl; return 0; } Code #include <iostream> #include <iomanip> using namespace std; int main() { cout << setw(10) << "Name" << setw(10) << "Age" << setw(10) << "Gender" << setw(10) << "City" << endl; cout << setw(10) << "John" << setw(10) << "25" << setw(10) << "Male" << setw(10) << "New York" << endl; cout << setw(10) << "Mary" << setw(10) << "30" << setw(10) << "Female" << setw(10) << "Los Angeles" << endl; cout << setw(10) << "Bob" << setw(10) << "40" << setw(10) << "Male" << setw(10) << "Chicago" << endl; return 0; } В этом примере мы используем функцию setw(10), чтобы задать ширину каждого столбца в 10 символов. Также мы используем endl, чтобы перевести курсор на новую строку после каждой записи. В твоём коде, чтобы вывести таблицу в нужном формате, ты можешь использовать функцию setw() в методе display() класса Motorcycle. Вот пример кода: void display() { cout << setw(8) << oneSeat << setw(8) << twoSeats << setw(8) << threeSeats << setw(8) << owners << setw(16) << brand << "\n"; } Code void display() { cout << setw(8) << oneSeat << setw(8) << twoSeats << setw(8) << threeSeats << setw(8) << owners << setw(16) << brand << "\n"; } В этом примере мы используем функцию setw() для каждого столбца таблицы. Также мы используем "\n", чтобы перевести курсор на новую строку после каждой записи. Надеюсь, это поможет тебе реализовать вывод таблицы в нужном формате. Если у тебя есть какие-либо вопросы, не стесняйся задавать их!
Ну где ячейки объединены, использовать двойной отступ, как например последний столбец с вашего скриншота.
берешь табличку символов, ищешь нужные тебе символы для создания таблицы и хуяришь функцию обработки значений в цикле