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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.12.2012, 14:44   #1
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию Библиотека фильмов

Всем доброго времени суток. В связи с большим количеством фильмов и непостоянным доступом в интернет (чтобы увидеть описание) решил сделать библиотеку фильмов. В принципе у меня все работает, но хотелось бы, чтобы вы помогли мне решить один нюанс, а именно:
при просмотре фильмов определенного жанра как можно вернуться к списку жанров? (например, если я просматриваю ужасы, как можно вернуться в начало программы и посмотреть триллеры)
P.S goto не работает, так как если поставить его в функции main, в других функциях его уже не видно.

Код:
#include <iostream>
#include <conio.h>
#include <clocale>

using namespace std;

void PRINT_TYPE();
void PRINT_HORROR();
void PRINT_THRILLER();

int answer_type = 0;
int answer_horror = 0;
int answer_thriller = 0;

int main()
{
	setlocale (LC_ALL,"Russian");
	PRINT_TYPE();
	for (;;)
	{
		cin >> answer_type;
		if (answer_type >= 0 && answer_type <= 7)
		{
			break;
		}
		cout << "Неправильный ввод" << endl;
	}
	switch(answer_type)
	{
	case 1:
		system("cls");
		PRINT_THRILLER();
		break;
	case 2:
		system("cls");
		PRINT_HORROR();
		break;
        }

       _getch();
       return 0;
}

void PRINT_TYPE()
{
	cout << "Какой жанр будем смотреть: " << endl;
	cout << "1. Триллер" << endl;
	cout << "2. ужасы" << endl
}

void PRINT_HORROR()
{
	cout << "1. Фильм" << endl << endl;
	cout << "2. Фильм" << endl << endl;
       switch(answer_horror)
      {
        case 0:
        //Вот от сюда хотелось бы вернуться к выбору жанров фильма
	case 1:
		system("cls");
		cout << "Описание" << endl;
		cout << endl << endl << endl;
		cout << "Нажмите любую кнопку, чтобы вернуться к списку фильмов" << endl;
		_getch();
		system("cls");
		PRINT_HORROR();     
	case 2:
		system("cls");
		cout << "Описание" << endl;
		cout << endl << endl << endl;
		cout << "Нажмите любую кнопку, чтобы вернуться к списку фильмов" << endl;
		_getch();
		system("cls");
		PRINT_HORROR();   
}
Dima-War вне форума Ответить с цитированием
Старый 08.12.2012, 20:53   #2
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Сделать кнопку возврата при нажатии которой будет вызываться функция PRINT_TYPE
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Старый 08.12.2012, 23:44   #3
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

У меня не получилось сделать такую кнопку. При нажатии вызове функции PRINT_TYPE одновременно пишутся фильмы данного жанра (т.е. мы не вышли из этой функции и сразу же переходим в другую, я это так понимаю).
Dima-War вне форума Ответить с цитированием
Старый 09.12.2012, 16:41   #4
OstyN
Пользователь
 
Аватар для OstyN
 
Регистрация: 31.12.2011
Сообщений: 12
По умолчанию

закинуть switch в бесконечный цикл while(true) - как вариант
Asm, C/C++
OstyN вне форума Ответить с цитированием
Старый 09.12.2012, 18:49   #5
Dima-War
Форумчанин
 
Регистрация: 17.03.2012
Сообщений: 105
По умолчанию

Немного не понял, что это даст. Можешь привести пример?
У меня в программе и так задействован бесконечный цикл for, мне бы как нибудь осуществить выход из текущей функции и вернуться в функцию main...

Последний раз редактировалось Dima-War; 09.12.2012 в 18:56.
Dima-War вне форума Ответить с цитированием
Старый 12.12.2012, 22:40   #6
OstyN
Пользователь
 
Аватар для OstyN
 
Регистрация: 31.12.2011
Сообщений: 12
По умолчанию

Код:
do {
system("cls");
std::cout << "1. Что-то" << std::endl;
std::cout << "2. Что-то иное" << std::endl;
...
std::cout << "Esc - выход" << std::endl;      // как вариант
std::cin >> choise;

switch(choise) {
case '1':
...
case '2':
...
case 27:
break;
}
if(choise == 27)
return 0;
} while(true);
Asm, C/C++
OstyN вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись DVD-фильмов ada73 Компьютерное железо 14 06.12.2011 17:50
Вместо фильмов слайд-шоу )= Лайка Свободное общение 10 17.05.2008 15:19