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 gr
- {
- char name[4];
- char number[4];
- };
- struct stud
- {
- gr group;
- char starosta[20];
- int contract;
- int budget;
- }x;
- stud mas[100]=
- {
- {"KИ-","141","Гриц Настя",7,20},
- {"EM-","132","Ковтун Михаил",4,15},
- {"BT-","101","Дрозд Марина",1,20},
- {"КИ-","143","Косовец Вика",3,17},
- {"ПИ-","121","Васнецова Саша",3,18}
- };
- 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 sort_budget ();
- 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();
- sort_budget();
- show_mas(); break;
- case 5: sort_group;
- 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.name<<mas[i].group.number
- <<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.name);
- gets(mas[size-1].group.name);
- cout<<"Введите номер группы: ";
- gets(mas[size-1].group.number);
- 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.name,s2.group.name)!=0)
- return strcmp(s1.group.name,s2.group.name);
- return (strcmp(s1.group.number,s2.group.number));
- }
- void sort_group ()
- {
- int last=size;
- bool ok;
- do {
- last=last-1;
- ok=true;
- for (int i=0; i<last; i++)
- {
- if (cmp1(mas[i],mas[i+1])>0)
- {
- x=mas[i];
- mas[i]=mas[i+1];
- mas[i+1]=x;
- ok=false;
- }
- }
- } while (!ok);
- system("pause");
- }
- void sort_stud()
- {
- int suma1=0, suma2=0;
- for (int i=0; i<size-1; i++)
- {
- for(int j=i+1; j<size;j++)
- {
- suma1=mas[i].budget+mas[i].contract;
- suma2=mas[j].budget+mas[j].contract;
- if (cmp(suma1,suma2))
- {
- x=mas[i];
- mas[i]=mas[j];
- mas[j]=x;
- }
- }
- }
- system("pause");
- }
- void sort_budget ()
- {
- int suma1=0, suma2=0;
- for (int i=0; i<size-1; i++)
- {
- for (int j=i+1; j<size; j++)
- {
- suma1=mas[i].budget+mas[i].contract;
- suma2=mas[j].budget+mas[j].contract;
- if (mas[i].budget<mas[j].budget && suma1==suma2)
- {
- x=mas[i];
- mas[i]=mas[j];
- mas[j]=x;
- }
- }
- }
- }
- 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.name<<mas[i].group.number<<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