Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <QtCore/QCoreApplication>
- #include <iostream>
- #include <iomanip>
- #include <windows.h>
- #include <cstdio>
- using namespace std;
- struct group
- {
- char bukva[3];
- int number;
- };
- struct stud
- {
- char group[7];
- char starosta[20];
- int contract;
- int budget;
- } s1,s2;
- stud mas[100]=
- {
- {"KИ-141","Гриц Настя",7,20},
- {"EM-132","Ковтун Михаил",4,15},
- {"BT-101","Дрозд Марина",1,20},
- {"КИ-143","Косовец Вика",3,17},
- {"ПИ-121","Васнецова Саша",3, 21}
- };
- int size=5;
- void variant (int);
- void show_mas ();
- void add_new ();
- bool cmp(int, int);
- int cmp1(stud s1, stud s2);
- void sort_group();
- void sort_stud ();
- void student_group();
- void suma_students();
- int main(int argc, char *argv[])
- {
- QCoreApplication a(argc, argv);
- system ("Color F0");
- int var;
- while (true)
- {
- system ("cls");
- SetConsoleTitleA("МЕНЮ");
- cout<<"Варианты работы программы:"<<endl;
- cout<<"1. Показать массив структур."<<endl
- <<"2. Добавить запись в массив структур."<<endl
- <<"3. Сортировать массив по группам."<<endl
- <<"4. Сортировать массив по количеству студентов"
- <<" + количество бюджетников."<<endl
- <<"5. Список групп с подсчетом количества студентов"<<endl
- <<"6. Подсчет общего количества бюджетноков и контрактников."<<endl<<endl
- <<"Ваш выбор: ";
- cin>>var;
- variant(var);
- };
- return a.exec();
- }
- void variant (int var)
- {
- switch (var)
- {
- case 1: show_mas(); break;
- case 2: add_new();
- show_mas(); break;
- case 3: sort_group();
- show_mas(); break;
- case 4: sort_stud();
- show_mas(); break;
- case 5: student_group(); break;
- case 6: suma_students(); break;
- }
- }
- void show_mas ()
- {
- system ("cls");
- SetConsoleTitleA ("Структура данных");
- cout<<"Наш массив: "<<endl<<endl;
- for (int i=0; i<size; i++)
- {
- cout<<setw(14)<<mas[i].group
- <<setw(20)<<mas[i].starosta
- <<setw(10)<<mas[i].budget
- <<setw(10)<<mas[i].contract<<endl;
- }
- cout<<endl<<endl;
- system("pause");
- }
- void add_new ()
- {
- system ("cls");
- SetConsoleTitleA ("Добавление в структуру данных");
- size++;
- cout<<"Введите группу: ";
- gets(mas[size-1].group);
- gets(mas[size-1].group);
- cout<<"Введите фамилию и имя старосты группы: ";
- gets(mas[size-1].starosta);
- cout<<"Введите количество бюджетников: ";
- cin>>mas[size-1].budget;
- cout<<"Введите количество контрактников: ";
- cin>>mas[size-1].contract;
- system("pause");
- }
- bool cmp ( int s1, int s2)
- {
- if(s1<s2 || s1==s2) return true;
- return false;
- }
- int cmp1(stud s1, stud s2)
- {
- if(strcmp(s1.group,s2.group)!=0)
- return strcmp(s1.group,s2.group);
- }
- void sort_group ()
- {
- int last=size;
- bool ok;
- do {
- last=last-1;
- ok=true;
- stud x;
- for (int i=0; i<last; i++)
- {
- if (cmp1(mas[i].group,mas[i+1].group)<0)
- {
- x=mas[i];
- mas[i]=mas[i+1];
- mas[i+1]=x;
- ok=false;
- }
- }
- } while (!ok);
- system("pause");
- }
- void sort_stud()
- {
- system ("cls");
- SetConsoleTitleA ("Сортировка за количеством студентов");
- int suma1, suma2;
- for (int i=0; i<size; i++)
- {
- suma1=mas[i].budget+mas[i].contract;
- suma2=mas[i+1].budget+mas[i+1].contract;
- if (cmp(suma1,suma2))
- swap(mas[i],mas[i+1]);
- if (cmp(mas[i].budget,mas[i+1].budget))
- swap(mas[i].budget,mas[i+1].budget);
- }
- system("pause");
- }
- void student_group ()
- {
- system ("cls");
- SetConsoleTitleA ("Группа + количество студентов");
- int suma;
- for (int i=0; i<size; i++)
- {
- suma=mas[i].budget+mas[i].contract;
- cout<<mas[i].group<<setw(15)<<suma<<endl;
- }
- system("pause");
- }
- void suma_students ()
- {
- system ("cls");
- SetConsoleTitleA ("Общее количество студентов");
- int suma_b=0, suma_c=0;
- for (int i=0; i<size; i++)
- {
- suma_b+=mas[i].budget;
- suma_c+=mas[i].contract;
- }
- cout<<"Всего бюджетников: "<<suma_b<<endl;
- cout<<"Всего контрактников: "<<suma_c<<endl;
- system("pause");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement