Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2018, 21:27   #1
Solodkir
Новичок
Джуниор
 
Регистрация: 07.10.2018
Сообщений: 1
Вопрос Отсортировать людей по общему признаку || С++

Добрый день, не могу разобраться (один пункт задачи) с задачей.

Имеется задача:
В документации приемной комиссии по каждому из абитуриентов указаны следующие сведения:
- номер абитуриента,
- фамилия и инициалы,
- шифр специальности,
- наименование специальности,
- оценки на приемных экзаменах.
Если по одному из экзаменов абитуриент получил "2", то для следующих экзаменов указывается оценка "0".

Для заданной специальности определить и отпечатать общее количество абитуриентов, не сдавших вступительные экзамены.

Записи файла сгруппировать в алфавитном порядке фамилии.


У меня получилось сделать все пункты кроме:
" Для заданной специальности определить и отпечатать общее количество абитуриентов, не сдавших вступительные экзамены."


Прошу направить меня на путь истины.

Код:
 

#include <iostream>
#include <string>
#include <clocale>
#include <conio.h>
#include <fstream>

using namespace std;
//TextFile.txt
struct Tip 
{
	int PressName[10];		//Шифр студента
	string Name[10];		//И.Ф.О. студента
	int PressSpeс[10];		//Шифр специальности
	string Spec[10];		//Наименование специальности
	int Ex1[10];			//Оценка по первому экзамену
	int Ex2[10];			//Оценка по второму экзамену
	int Ex3[10];			//Оценка по третьему экзамену
};




int main()
{
	setlocale(LC_ALL, "Rus");


	const int N = 2;		//Оценка =>2
	const int A = 5;		//общее количество людей(не больше 10)
	
	Tip Tip1;
	{

		ifstream fout;
		fout.open("TextFile.txt", ios::in);

		if (fout.eof())
		{
			cout << "Невозможно открыть файл." << endl;
		}
		
		cout << "Файл открыт" << endl << endl;
		
		int p = 0;

			while (!fout.eof())
			{
				fout >> Tip1.PressName[p] >> Tip1.Name[p] >>
					Tip1.PressSpeс[p] >> Tip1.Spec[p] >>
					Tip1.Ex1[p] >>
					Tip1.Ex2[p] >>
					Tip1.Ex3[p];
				p++;

				/*for (int i = 0; i < A; i++)
				{
					cout << "Введите шифр абитуриента,\n" << "Ф.И.О. абитуриента,\n" <<
						"шифр специальности,\n" << "наименование специальности,\n" <<
						"оценку за первый, " <<
						"второй " <<
						"и третий экзамен." << endl << endl;

					cin >> Tip1.PressName[i] >> Tip1.Name[i] >>
						Tip1.PressSpeс[i] >> Tip1.Spec[i] >>
						Tip1.Ex1[i] >>
						Tip1.Ex2[i] >>
						Tip1.Ex3[i];
					cout << "\n";
				}*/
			}
		

		for (int i = 0; i < A; i++)
		{
			if (Tip1.Ex1[i] <= N)
			{
				Tip1.Ex2[i] = 0;
				Tip1.Ex3[i] = 0;
				//cout << Ex1 << " " << Ex2 << " " << Ex3 << endl << endl;
			}

			else if (Tip1.Ex2[i] <= N)
			{
				Tip1.Ex3[i] = 0;
				//cout << Ex1 << " " << Ex2 << " " << Ex3 << endl << endl;
			}

			else (Tip1.Ex3[i] <= N);
			{
		
				cout<< Tip1.PressName[i] <<" "<< Tip1.Name[i] << "\n" << Tip1.PressSpeс[i] <<" "<< Tip1.Spec[i] << endl;
				cout << "\nОценки по экзаменам: \n" << "1-й: " << Tip1.Ex1[i] << "\n2-й: " << Tip1.Ex2[i] << "\n3-й: " << Tip1.Ex3[i] << endl << endl;
			}
		}
		
		
		int k = 0;
	
		for (int i = 0; i < A; i++)
		{
			if (Tip1.Ex3[i] == 0)
			{
				k++;
			}
		}
		cout << "Общее количество не сдавших экзамен: " << k << endl << endl;


	}			//xxxxxxxxxxxxxxxxxxxxxxxxxxxxx


	cout << "Сортировка по фамилии: " << endl << endl;

	for (int i = A - 1; i >= 0; i--)		//сортировка от Z-A По другому не выходит
	{
		for (int j = 0; j < i; j++)
		{
			if (Tip1.Name[j] > Tip1.Name[j + 1])
			{
				string tmp = Tip1.Name[j];
				Tip1.Name[j] = Tip1.Name[j + 1];
				Tip1.Name[j + 1] = tmp;
			}
		}
		cout << Tip1.PressName[i] << " " << Tip1.Name[i]<< /* "\n" << Tip1.PressSpeс[i] << " " << Tip1.Spec[i] <<*/ endl;
	};
}
Вложения
Тип файла: txt TextFile.txt (144 байт, 140 просмотров)
Solodkir вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программу которая с большого списка людей посчитает количество рожденных людей для каждой области. Ivan{-} Паскаль, Turbo Pascal, PascalABC.NET 3 16.02.2013 20:20
Обработка матрицы. Первую и вторую строки отсортировать выбором по убыванию, пятый и шестой столбец отсортировать (С++) Sasha316 Помощь студентам 0 23.11.2012 00:48
Привести к общему знаменателю ParkWay Помощь студентам 0 07.06.2012 06:54