Карочи, дело к ночи. Учим програмач в универе первые полгода, и ускоренно дошли до ООП. Я в афиге, сокурсники тем более. Кроч, сам курсач пытался раза 3 начинать с нуля, ничего особо не получилось, а потом уже банально перепутал проекты и все пошло через одно место. Вот само задание :
Для дипломников составлена база данных со следующей информацией: факультет, группа, кол-во студентов, кол-во заключенных договоров, сумма заключенных договоров.
Отсортировать записи по убыванию процента заключенных договоров.
Распечатать сведения о факультете, на котором предполагается наименьшее кол-во свободных дипломов.
Всю эту дичь нужно реализовать с помощью структуры и класса (т.е. одна и та же задача, но двумя разными методами). Насколько я понял (не бейте палками, я сильно не шарю) - различие будет только в одном блоке, в котором задаются переменные. Собсна, сам класс или структура. По-идее, остальной код не должен меняться. Это чисто мои мысли, и не факт что это правильно.
Вот это один из тех вариантов, которые я переделывал последним дублем. Крч, помогите либо исправить мою дребедень, либо написать новую.
P.S. учимся только полгода, поэтому никаких заумных функций и реализаций быть не должно.
Для дипломников составлена база данных со следующей информацией: факультет, группа, кол-во студентов, кол-во заключенных договоров, сумма заключенных договоров.
Отсортировать записи по убыванию процента заключенных договоров.
Распечатать сведения о факультете, на котором предполагается наименьшее кол-во свободных дипломов.
Всю эту дичь нужно реализовать с помощью структуры и класса (т.е. одна и та же задача, но двумя разными методами). Насколько я понял (не бейте палками, я сильно не шарю) - различие будет только в одном блоке, в котором задаются переменные. Собсна, сам класс или структура. По-идее, остальной код не должен меняться. Это чисто мои мысли, и не факт что это правильно.
Вот это один из тех вариантов, которые я переделывал последним дублем. Крч, помогите либо исправить мою дребедень, либо написать новую.
P.S. учимся только полгода, поэтому никаких заумных функций и реализаций быть не должно.
C++:
#include<stdio.h>
#include<pch.h>
#include<math.h>
#include<conio.h>
#include<string.h>
#include<iostream>
#include<fstream>
#include<locale.h>
#include<math.h>
using std::cin;
using std::cout;
using namespace std;
struct Diplomniki
{
string fakult, group, kolvo, dogoru, summ, percent;
};
void read(Diplomniki *F, int n)
{
ifstream SP("C:\\Users\\Dkb\\Desktop\\Project\\Hyinyaeby4aya_ne_rabotaet.txt", ios_base::in);
for (int i = 0; i < n; i++)
{
SP >> F[i].fakult >> F[i].group >> F[i].kolvo >> F[i].dogoru >> F[i].summ;
F[i].percent = F[i].dogoru / F[i].kolvo;
cout << "\nФакультет => " << F[i].fakult << "Группа => " << F[i].group << "Количество студентов в группе = " << F[i].kolvo << "Заключённые договора =" << F[i].dogoru << "Сумма заключённых договоров =" << F[i].summ << "Процент заключённых договоров" << F[i].percent << "\n";
}
SP.close();
}
void Fixsort(ostream& fixxsort, Diplomniki *F, int n)
{
fixxsort << "\n Отсортированые данные\n";
cout << "\nОтсортированые данные\n";
string tmp = 0;
for (int i = 0; i < n; i++)
{
for (int j = (n - 1); j >= (i + 1); j--)
{
if (F[j].percent > F[j - 1].percent)
{
tmp = F[j];
F[j] = F[j - 1];
F[j - 1] = tmp;
}
}
}
for (int i = 0; i < n; i++)
{
fixxsort << "\n" << F[i].fakult << ' ' << F[i].group << ' ' << F[i].kolvo << ' ' << F[i].dogoru << ' ' << F[i].summ << ' ' << F[i].percent;
cout << "\n" << F[i].fakult << ' ' << F[i].group << ' ' << F[i].kolvo << ' ' << F[i].dogoru << ' ' << F[i].summ << ' ' << F[i].percent;
}
}
void Sort(ostream& fixxsort, Diplomniki *F, string specc, int n)
{
cout << "\nФакультет с наименьшим числом свободных дипломов\n";
fixxsort << "\nФакультет с наименьшим числом свободных дипломов\n";
for (int i = 0; i < n; i++)
{
if (fakult == F[i].fakult && (F[i].percent > F[i - 1].percent))
{
fixxsort << "\n" << F[i].fakult << ' ' << F[i].group << ' ' << F[i].kolvo << ' ' << F[i].dogoru << ' ' << F[i].summ << ' ' << F[i].percent;
cout << "\n" << F[i].fakult << ' ' << F[i].group << ' ' << F[i].kolvo << ' ' << F[i].dogoru << ' ' << F[i].summ << ' ' << F[i].percent;
}
}
}
int main()
{
string specc;
unsigned short int ch;
ifstream SP("D:/FAIL.txt");
ofstream fixxsort("D:/fixxsort.txt");
if (!SP || !fixxsort)
{
cout << "Файл не открылся!" << endl;
system("pause");
exit(1);
}
ch = 0;
while (!SP.eof())
{
string str;
getline(SP, str);
ch++;
}
SP.close();
Diplomniki *F = new Diplomniki[ch];
read(F, ch);
Fixsort(fixxsort, F, ch);
Sort(fixxsort, F, ch);
fixxsort.close();
delete[]F;
system("pause");
return 0;
}
Последнее редактирование: