Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <Windows.h>
- using namespace std;
- struct Student {
- string name{};
- string surname{};
- string patronymic{};
- int number_group{};
- int birthYear{};
- int physics{};
- int math{};
- int informatics{};
- int chemistry{};
- double gap = (physics + math + informatics + chemistry) / 4.;
- };
- int strCounter()
- {
- ifstream fin("File.txt", ios::in | ios::app);
- char * str = new char[256];
- int ans = 0;
- while (!fin.eof())
- {
- fin.getline(str, 256, '\n');
- ans++;
- }
- fin.close();
- delete[] str;
- return ans-1;
- }
- bool isGood(Student &s)
- {
- if (s.informatics > 4 && s.math > 4)
- return true;
- return false;
- }
- void menu();
- void push_back(Student *&students, Student &s, int &quantity)
- {
- quantity++;
- Student *arr = new Student[quantity];
- for (int i = 0; i < quantity-1; i++)
- {
- arr[i] = students[i];
- }
- arr[quantity - 1] = s;
- students = arr;
- }
- void add(Student *&students, int &quantity) {
- ofstream fout("File.txt", ios::app);
- Student student;
- string temp;
- int temp_int = 0;
- int middle = 0;
- cout << "Enter name : ";
- cin >> temp;
- student.name = temp;
- fout << temp << " ";
- cout << "Enter surname : ";
- cin >> temp;
- student.surname = temp;
- fout << temp << " ";
- cout << "Enter patronymic : ";
- cin >> temp;
- student.patronymic = temp;
- fout << temp << " ";
- cout << "Enter number of group : ";
- cin >> temp_int;
- student.number_group = temp_int;
- fout << temp_int << " ";
- cout << "Enter year of birth : ";
- cin >> temp_int;
- student.birthYear = temp_int;
- fout << temp_int << " ";
- cout << "Enter mark of physics : ";
- cin >> temp_int;
- student.physics = temp_int;
- middle += temp_int;
- fout << temp_int << " ";
- cout << "Enter mark of math : ";
- cin >> temp_int;
- student.math = temp_int;
- middle += temp_int;
- fout << temp_int << " ";
- cout << "Enter mark of informatics : ";
- cin >> temp_int;
- student.informatics = temp_int;
- middle += temp_int;
- fout << temp_int << " ";
- cout << "Enter mark of chemistry : ";
- cin >> temp_int;
- student.chemistry = temp_int;
- middle += temp_int;
- fout << temp_int << " ";
- fout << middle / 4.;
- student.gap = temp_int;
- fout << endl;
- fout.close();
- push_back(students, student, quantity);
- }
- void show(const Student *students, int quantity)
- {
- for (int i = 0; i < quantity; i++)
- {
- cout << "Name : " << students[i].name << endl;
- cout << "Surname : " << students[i].surname << endl;
- cout << "Patronymic : " << students[i].patronymic << endl;
- cout << "Group : " << students[i].number_group << endl;
- cout << "Year of birth : " << students[i].birthYear << endl;
- cout << "Physics : " << students[i].physics << endl;
- cout << "Math : " << students[i].math << endl;
- cout << "Informatics : " << students[i].informatics << endl;
- cout << "Chemistry : " << students[i].chemistry << endl;
- cout << "Middle mark : " << students[i].gap << endl;
- }
- }
- void individual(Student *students, int quantity)
- {
- for (int i = 0; i < quantity; i++)
- {
- if (!isGood(students[i])) continue;
- cout << "Name : " << students[i].name << endl;
- cout << "Surname : " << students[i].surname << endl;
- cout << "Patronymic : " << students[i].patronymic << endl;
- cout << "Group : " << students[i].number_group << endl;
- cout << "Year of birth : " << students[i].birthYear << endl;
- cout << "Physics : " << students[i].physics << endl;
- cout << "Math : " << students[i].math << endl;
- cout << "Informatics : " << students[i].informatics << endl;
- cout << "Chemistry : " << students[i].chemistry << endl;
- cout << "Middle mark : " << students[i].gap << endl;
- }
- }
- void edit(Student *&students, int quantity) {
- system("cls");
- cout << "Vvedite nomer studenta korogo nuzhno izmenit: ";
- int number;
- cin >> number;
- cout << "Viberite chto vam nyzhno izmenit: " << endl;
- cout << "1 - Name" << endl;
- cout << "2 - Surname" << endl;
- cout << "3 - patronymic" << endl;
- cout << "4 - nember_group" << endl;
- cout << "5 - birthYear" << endl;
- cout << "6 - physics" << endl;
- cout << "7 - math" << endl;
- cout << "8 - informatics" << endl;
- cout << "9 - chemistry" << endl;
- int choice;
- cin >> choice;
- switch (choice)
- {
- case 1:
- {
- cout << "Vvedite imya: ";
- string nam;
- cin >> nam;
- students[number].name = nam;
- }
- break;
- case 2:
- {
- cout << "Vvedite famil: ";
- string nam;
- cin >> nam;
- students[number].surname = nam;
- }
- break;
- case 3:
- {
- cout << "Vvedite otchestv: ";
- string nam;
- cin >> nam;
- students[number].patronymic = nam;
- }
- break;
- case 4:
- {
- cout << "Vvedite nomer_group: ";
- int nam;
- cin >> nam;
- students[number].number_group = nam;
- }
- break;
- case 5:
- {
- cout << "Vvedite data rozhdeniya: ";
- int nam;
- cin >> nam;
- students[number].birthYear = nam;
- }
- break;
- case 6:
- {
- cout << "Vvedite ocenky po fizike: ";
- int nam;
- cin >> nam;
- students[number].physics = nam;
- }
- break;
- case 7:
- {
- cout << "Vvedite ocenky po mat: ";
- int nam;
- cin >> nam;
- students[number].math = nam;
- }
- break;
- case 8:
- {
- cout << "Vvedite ocenky po informat: ";
- int nam;
- cin >> nam;
- students[number].informatics = nam;
- }
- break;
- case 9:
- {
- cout << "Vvedite ocenky po himii: ";
- int nam;
- cin >> nam;
- students[number].chemistry = nam;
- }
- break;
- default:
- cout << "ERROR" << endl;
- break;
- }
- ofstream fout("File.txt", ios::out);
- for (int i = 0; i < quantity; i++) {
- fout << students[i].name << " ";
- fout << students[i].surname << " ";
- fout << students[i].patronymic << " ";
- fout << students[i].number_group << " ";
- fout << students[i].birthYear << " ";
- fout << students[i].physics << " ";
- fout << students[i].math << " ";
- fout << students[i].informatics << " ";
- fout << students[i].chemistry << " ";
- fout << students[i].gap << endl;
- }
- system("cls");
- cout << "Izmenino!!!" << endl;
- }
- int initiaize(Student *&students)
- {
- int n = strCounter();
- students = new Student[n];
- ifstream fin("File.txt");
- string temp;
- int t;
- double tt;
- for (int i = 0; i < n; i++)
- {
- fin >> temp;
- students[i].name = temp;
- fin >> temp;
- students[i].surname = temp;
- fin >> temp;
- students[i].patronymic = temp;
- fin >> t;
- students[i].number_group = t;
- fin >> t;
- students[i].birthYear = t;
- fin >> t;
- students[i].physics = t;
- fin >> t;
- students[i].math = t;
- fin >> t;
- students[i].informatics = t;
- fin >> t;
- students[i].chemistry = t;
- fin >> tt;
- students[i].gap = t;
- temp = "";
- t = 0;
- tt = 0;
- }
- return n;
- }
- int main()
- {
- Student *students;
- int quantity = initiaize(students);
- while (true)
- {
- system("cls");
- int choise = 0;
- menu();
- cin >> choise;
- switch (choise)
- {
- case 1: show(students, quantity); break;
- case 2: edit(students, quantity); break;
- case 3: add(students, quantity); break;
- case 4: individual(students, quantity); break;
- case 0: return 0;
- default:"ERROR!";
- }
- system("pause");
- }
- }
- void menu()
- {
- cout << "Enter , what do you want :" << endl;
- cout << "1 - Show all data " << endl;
- cout << "2 - Edit " << endl;
- cout << "3 - Add " << endl;
- cout << "4 - Individual task " << endl;
- cout << "0 - Exit" << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement