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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.07.2016, 20:53   #21
horosho15
Пользователь
 
Регистрация: 22.12.2015
Сообщений: 15
По умолчанию

Второй пункт, по-моему, говорит о том, что надо сделать обычную проверку (в номере рейса 4 цифры не больше не меньше и т. д.). Я работал уже с файлами, так что что-то знаю об этом, а здесь я не могу представить алгоритм. Как и через что исполнить задание.
horosho15 вне форума Ответить с цитированием
Старый 02.07.2016, 22:19   #22
ura_111
Участник клуба
 
Регистрация: 14.05.2016
Сообщений: 1,793
По умолчанию

Так.



Сложно говорить если не видно, то что ты уже написал. Дело в том, что это можно решить несколькими способами.
Ну ты понимаешь меня - сведи все проверки в одну функцию. Данная Ф-ЦИЯ возвращает true (если были какие то ошибки в конкретном самолете) или false (если все ОК). А дальше, в основной программы: если есть ошибки в данных конкретного самолета, то можно его проигнорировать или предложить пользователю поправить ошибочные значения.
Вот я начал писать...
Поиграйся с программой. Подсунь ей разные ошибки, но помни Номер БОРТА я не делал, сделай его по аналогии с МАРКОЙ


Код:
#include<iostream>
using namespace std;

bool PROVERKA(int T_h, int T_min, char* MARKA, char* NOMER, int N_Aeroport);

int main()
{

	// считать из файла 1-й самолет 
	if (PROVERKA(12, 20, "ТУ-154М", "Б-3726", 1) == false)
	{
		;  // здесь записать в массив 1-го аэропорта, 
		;  // если все в порядке с данными
	}
	
	if (PROVERKA(112, 20, "ТУ-254М", "Б-3726", 1) == false)
	{
		;  // здесь записать в массив 1-го аэропорта, 
		;  // если все в порядке с данными
	}

	// считать из файла 3-й самолет 
	if (PROVERKA(11, 200, "ТУ-164М", "Б-3726", 1) == false)
	{
		;  // здесь записать в массив 1-го аэропорта, 
		;  // если все в порядке с данными
	}

	// считать из файла 3-й самолет 
	if (PROVERKA(11, 20, "ТУ-200М1", "Б-3726", 1) == false)
	{
		;  // здесь записать в массив 1-го аэропорта, 
		;  // если все в порядке с данными
	}

	// считать из файла 3-й самолет 
	if (PROVERKA(11, 20, "Q-О-154М", "Б-3726", 2) == false)
	{
		;  // здесь записать в массив 1-го аэропорта, 
		;  // если все в порядке с данными
	}

	// считать из файла 3-й самолет 
	if (PROVERKA(11, 20, "ТУ154М", "Б-3726", 1) == false)
	{
		;  // здесь записать в массив 1-го аэропорта, 
		;  // если все в порядке с данными
	}

	// считать из файла 3-й самолет 
	if (PROVERKA(11, 20, "ТУ-154М", "Б-3726", 0) == false)
	{
		;  // здесь записать в массив 1-го аэропорта, 
		;  // если все в порядке с данными
	}
	

	system("pause");
	return 0;
}




bool PROVERKA(int T_h, int T_min, char* MARKA, char* NOMER, int N_Aeroport)
{
	// Проверка корректность часов///////////////////////////////////////////
	if ((0 > T_h) || (T_h > 24))
	{
		cout << "\nOSCIBKA. chas dolshniu but ot 00 do 24 \n\n";
		return true;
	}

	// Проверка корректность минут////////////////////////////////////////////
	if ((0 > T_min) || (T_min > 60))
	{
		cout << "\nOSCIBKA. min dolshni but ot 00 do 60 min \n\n";
		return true;
	}
	
	// Проверка корректность марки/////////////////////////////////////////////
	int k = 0; // счетчик символов в строке, должно быть 7 (например ТУ-154М)  
	while (*MARKA != '\0')
	{
		if ((k == 0) || (k == 1) || (k == 6))    // 1,2,7-й символ MARKA должен быть рус. буквой
		{
			if (('А' <= *MARKA) && ('Я' >= *MARKA))
				;
			else
			{
				cout << "\nOSCIBKA. Ntpravelnoe MARKA \n\n";
				return true;
			}
		}		
		if (k == 2)      // 3-й символ должен быть "-"
		{
			if ('-' == *MARKA) // 3-й символ должен быть "-"
				;
			else
			{
				cout << "\nOSCIBKA. Ntpravelnoe MARKA \n\n";
				return true;
			}
		}
		if ((k == 3) || (k == 4) || (k == 5))  // 4,5,6-й символ MARKA должен быть цифрой
		{
			if (('0' <= *MARKA) && ('9' >= *MARKA))
				;  
			else
			{
				cout << "\nOSCIBKA. Ntpravelnoe MARKA \n\n";
				return true;
			}
		}
		if (k > 7)   // 8-й символ MARKA должен символ конца 
		{
			cout << "\nOSCIBKA. Ntpravelnoe MARKA \n\n";
			return true;
		}		
		k++;
		MARKA++;  // переход на новый символ
	}

// Проверка корректность аэропорта
	if ((1 > N_Aeroport) || (N_Aeroport > 4))
	{
		cout << "\nOSCIBKA. N_Aeroport dolshni but ili 1 ili 2 ili 3 \n\n";
		return true;
	}
	return false;
}

Последний раз редактировалось ura_111; 03.07.2016 в 13:00.
ura_111 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с курсовой imbaTapac Помощь студентам 0 26.05.2015 21:58
помогите с курсовой nikita2014 Помощь студентам 10 26.03.2014 19:29
Помогите с Курсовой !!! TRAITOR Фриланс 3 10.05.2008 14:29
Помогите с курсовой inret Фриланс 2 09.05.2008 19:03