Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <string.h>
- #include <stdlib.h>
- #include <iomanip>
- using namespace std;
- struct Sportsmen
- {
- char NameLast[20];
- int Number;
- int try_1;
- int try_2;
- int try_3;
- Sportsmen* Next;
- };
- class List
- {
- Sportsmen* Head;
- public:
- List() :Head(NULL) {};
- //(Head = NULL)
- ~List();
- void ReadFromFile();
- void Add();
- void Show();
- void LoadToFile();
- void Sort();
- void Search();
- };
- List::~List()
- {
- while (Head != NULL)
- {
- Sportsmen* temp = Head->Next;
- delete Head;
- Head = temp;
- }
- }
- void List::ReadFromFile()//прочитать файл
- {
- ifstream fin("student.txt");
- Sportsmen* temp;
- if (fin.is_open())
- {
- cout << "File is open" << endl;
- while (!fin.eof())
- {
- temp = new Sportsmen;
- fin >> temp->NameLast >> temp->Number >> temp->try_1 >> temp->try_2 >> temp->try_3;
- temp->Next = Head;
- Head = temp;
- }
- cout << "Data is received" << endl;
- fin.close();
- }
- else cout << "File is not found";
- }
- void List::Show()//показать что в файлы (вывод)
- {
- Sportsmen* temp = Head;
- system("cls");
- cout << setw(20) << "Name" << setw(20) << "Number" << setw(10) << "Try 1" << setw(10) << "Try 2" << setw(10) << "Try 3" << endl;
- cout << "______________________________________________________________________________________________" << endl << endl;
- while (temp != NULL)
- {
- cout << setw(20) << temp->NameLast;
- cout << setw(20) << temp->Number;
- cout << setw(10) << temp->try_1;
- cout << setw(10) << temp->try_2;
- cout << setw(10) << temp->try_3 << endl;
- temp = temp->Next;
- }
- cout << "_______________________________________________________________________________________________" << endl << endl;
- }
- void List::Add()
- {
- Sportsmen st;
- Sportsmen* temp = new Sportsmen;
- temp->Next = Head;
- system("cls");
- cin.ignore();
- cout << "NameLast: "; cin.getline(st.NameLast, 20);
- cout << "Number: "; cin >> st.Number;
- cin.ignore();
- cout << "Try 1: "; cin >> st.try_1;
- cin.ignore();
- cout << "Try 2: "; cin >> st.try_2;
- cin.ignore();
- cout << "Try 3: "; cin >> st.try_3;
- cin.ignore();
- strcpy(temp->NameLast, st.NameLast);
- temp->Number = st.Number;
- temp->try_1 = st.try_1;
- temp->try_2 = st.try_2;
- temp->try_3 = st.try_3;
- Head = temp;
- }
- void List::Sort() {
- Sportsmen* left = Head;
- Sportsmen* right = Head->Next;
- Sportsmen* temp = new Sportsmen;
- while (left->Next) {
- while (right) {
- if ((left->try_1) < (right->try_1)) {
- temp->try_1 = left->try_1;
- left->try_1 = right->try_1;
- right->try_1 = temp->try_1;
- }
- right = right->Next;
- }
- left = left->Next;
- right = left->Next;
- }
- }
- void List::Search() {
- Sportsmen* temp;
- char e[20];
- cout << "Input elment: " << "\n";
- cin >> e;
- temp = Head;
- while (temp->Next)//пока есть значения
- {
- //strcmp тобишь если совпадает (temp->NameLast-наш элемент из списка) с нашим (e) то выдает 0
- if (strcmp(temp->NameLast, e) == 0) // если el - строка, то нужно объявить как char el[20], если символ, то сравнивать можно без strcmp
- {
- cout << "Finded :) " << "\n";
- break; // чтобы выйти из цикла при нахождении первого элемента
- }
- else
- temp = temp->Next;
- }
- }
- int main() {
- cout.setf(ios::left);
- bool flag = true;
- int choice;
- Sportsmen Sportsmen;
- List spisok;
- while (flag)
- {
- system("cls");
- cout << " MENU" << endl;
- cout << "_____________________________" << endl;
- cout << "1: Read from the file" << endl;
- cout << "2: Show list" << endl;
- cout << "3: Add Sportsmen" << endl;
- cout << "4: Save to the file" << endl;
- cout << "5: Zadanie" << endl;
- cout << "6: Search" << endl;
- cout << "7: Sort" << endl;
- cout << "8: Exit" << endl;
- cout << "_____________________________" << endl << endl;
- cout << "Make your choice (1-8): ";
- cin >> choice;
- switch (choice)
- {
- case 1: spisok.ReadFromFile();
- system("PAUSE");
- break;
- case 2: spisok.Show();
- system("PAUSE");
- break;
- case 3: spisok.Add();
- break;
- case 5: spisok.Search();
- system("PAUSE");
- break;
- case 6: spisok.Search();
- system("PAUSE");
- break;
- case 7: spisok.Sort();
- system("PAUSE");
- break;
- case 8: flag = false;
- break;
- default: cout << "You are wrong. ";
- }
- }
- system("PAUSE");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement