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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2012, 00:57   #1
sergey_victor
Новичок
Джуниор
 
Регистрация: 08.08.2012
Сообщений: 1
По умолчанию Прата С++ упр.4 гл.6

Кто изучает или изучал программирование по Прата подскажите пожалуйста
, можна ли проще как то написать исходник к даному упражнению.

Когда вы вступите в Благотворительный Орден Программистов ( БОП ) , к вам
могуг обращаться на заседаниях БОП по вашему настоящему имени, по должности
либо секретному имени БОП. Напишите программу, которая может выво*
дить списки членов по настоящим именам, должностям, секретным именам либо
по предпочтению самого члена. В основу положите следующую структуру:
1 1 С труктура имен Благотворительного Ордена Программистов
srruct Ьор

{
char fullname [ s t r s i z e ] ;// настояще е имя
char title [ s t r s i z e ] ;// должность
char bopname [ s t r s i z e ] ;//секретное имя БОП
int preference ;// О = полное имя , 1 = титул , 2 = имя БОП
} ;

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


а . отображать по именам
с . отображать по именам БОП
q . выйти
Ь . Отjбражать по должностям
d . отображать по предпочтениям


Обратите внимание , что "отображать по предпочтениям" - не значит, что нужно
отобразить предпочтение члена; это значит, что нужно отобразить значение
того поля структуры , которое соответствует предпочтению. Например , если
preference равно 1 , то выбор d должен вызвать отображение должности для
данного программиста. Пример запуска этой программы может выглядеть при-
мерно так:

Отчет о Благотворитель на Ордене Программистов
а . отображать по именам Ь . От ображать по должностям
с . от ображать по именам БОП d . отобража т ь по предпочтениям
q . выйти

Ваш выбор : а
Wimp Macho
Raki Rhodes
Норру Hipman
Pat Hand

Следующий выбор : d
Wimp Macho
Junior Programm r
MIPS
LOOPY

Следующий выбор : q
Пока !

Вот мой исходник
Код:
include <iostream>
const int Strsize = 10;
const int Size = 3;

int main()
{
	using namespace std;
	struct bop
	{
		char fullname[Strsize];
		char title[Strsize];
		char bopname[Strsize];
		int preference;
	};
	bop chlen[Size] = 
	{
		{"Irina", "Prsedent", "Yudzik", 2},
		{"Sergey", "Tsar", "o VELICIY", 1},
		{"Oleksiy", "Volotsyga", "Lexa", 0}
	};
	cout <<"Benevolent Order of programmers report\n"
		<<"a) display by name			b) display by title\n"
		<<"c) display by bopname			d) display by preference\n"
		<<"q) quit\n";
	char choice;
	cout <<"Enter your choice: ";
	cin >>choice;
	while (choice !='q')
	{

		switch(choice)
	{
		case 'a': for(int i = 0; Size > i; ++i)
					  cout <<chlen[i].fullname <<endl;
			break;
		case 'b':for(int i = 0; Size > i; ++i)
					  cout <<chlen[i].title <<endl;
			break;
		case 'c':for(int i = 0; Size > i; ++i)
					  cout <<chlen[i].bopname <<endl;
			break;
		case 'd':for(int i = 0; Size > i; ++i)
					   cout <<(chlen[i].preference != 0 ? chlen[i].preference == 1 ? chlen[i].bopname : chlen[i].title : chlen[i].fullname) <<endl;
			break;
	}
		cout <<"Next choice: ";
		cin >>choice;
	}
	cout <<"Bay";
	cin.get();
	cin.get();
	return 0;
}
Особо интересно на счет case 'd' - это лучший вариант или как то по проще можно все зделать?
sergey_victor вне форума Ответить с цитированием
Старый 14.08.2012, 21:32   #2
kineziz
Форумчанин
 
Регистрация: 22.12.2011
Сообщений: 378
По умолчанию

Ну для меня понятнее если сделать case 'd' конструкцией if else if
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
kineziz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Стивен Прата. Третья Глава Pirandello_Kruger Общие вопросы C/C++ 0 07.03.2012 22:50
Как зайти в панель упр. с гл. стр. сайта pa12345 Помощь студентам 2 05.11.2011 18:00
Задача на упр.стр-ру For Each-In Кнопка77 Помощь студентам 2 06.06.2011 09:50
работа с упр. эл. my_sappho_story Помощь студентам 1 20.10.2010 23:54
Вопрос из учебника С. Прата sunplant Общие вопросы C/C++ 3 07.04.2010 11:10