#include <string>
#include <Windows.h>
#include <iostream>
#include <clocale>
using namespace std;
struct Jojo
{
wstring name, genus;
int height, age;
};
struct JojoList
{
Jojo item;
JojoList* nextptr = nullptr;
};
Jojo get_input_jojo()
{
Jojo tmp;
wstring name;
wcout << L"Введите имя: " << '\n';
wcin.ignore(255, '\n');
getline(wcin, tmp.name);
wcout << L"Введите цвет: " << '\n';
getline(wcin, tmp.genus);
wcout << L"Введите размер: " << '\n';
wcin >> tmp.height;
wcout << L"Введите возраст: " << '\n';
wcin >> tmp.age;
return tmp;
}
JojoList* init_list()
{
JojoList* head = new JojoList;
head->item = get_input_jojo();
head->nextptr = head;
return head;
}
void Push_back(JojoList* head, Jojo item, int &x)
{
JojoList* start = head;
if (head == nullptr) return;
while (head->nextptr != start)
{
head = head->nextptr;
}
head->nextptr = new JojoList;
head->nextptr->item=item;
head->nextptr->nextptr=start;
x++;
}
void output_list(JojoList* head)
{
setlocale(LC_ALL, "rus");
JojoList* start = head;
if (head == nullptr) return;
do
{
wcout <<"--------------------"<<endl;
wcout <<L"Имя: "<< head->item.name<<endl;
wcout <<L"Цвет: "<< head->item.genus<<endl;
wcout <<L"Возраст: "<< head->item.age<<endl;
wcout <<L"Высота: "<<head->item.height<<endl;
wcout <<"--------------------"<<endl;
head = head->nextptr;
}
while (head != start);
}
JojoList InitList() {
JojoList list;
return list;
}
void PrintListByIndex()
{
}
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_ALL, "rus");
int var,x, index;
JojoList* head = nullptr;
JojoList list = InitList();
x=1;
index=0;
while (true)
{
wcout << L"1.Добавить новый элемент в список" << '\n';
wcout << L"2.Вывести список" << '\n';
wcout << L"3.Кол-во" << '\n';
cin >> var;
switch (var)
{
case 1:
if (head == nullptr)
{
head = init_list();
}
else Push_back(head, get_input_jojo(), x);
break;
case 2:
output_list(head);
break;
case 3:
break;
default:
wcout << L"Простите вы ввели какое-то говно."<<endl;
break;
}
}
}