Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 09.09.2010
Сообщений: 53

Из Дейтела (4.20)

04.07.2011, 23:15. Показов 2228. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!!!! Ребята, есть задачка из Дейтела (4.20) для зачета, но совсем в проге не смыслем, послезавтра сдают, кто поможет а? И если нетрудно с комментариями!

(Система резервирования билетов авиакомпании). Небольшая авиакомпания купила компютеры для своей новой автоматизированной системы резервирования. Вас попросили запрограммировать нову- систему. Вы должны написать программу выделения мест на каждый полет вдинственного самолета (вместимость 10 мест).
Ваша программа должна отображать следующее меню альтернатив:
Введите, пожалуйста, 1 для "курящих"
Введите, пожалуйста, 2 для "некурящих"
Если клиент ввел 1, ваша программа должна выдлять место в салоне для курящих (места 1-5). Если клиент ввел 1, ваша программа должна выделять место в салоне для некурящий (места 6-10). Ваша программа должна также напичатать посадочный талон, указывающий номер места клиента и тип салона в самолете- для курящих или не курящих.
Используйте одномерный массив для представления схемы расположения мест в самолете. Присвойте всем элементам массива нулевые начальные значения, чтобы показать, что все места свободны. Как только место выделено пассажиру, устанавливайте соответствующие элементы массива в состояние 1, чтобы показать, что месро уже занято.
Ваша программа, конечно, никогда не должна выделять уже занятые места. Если салон для курящих заполнен, ваша программа должна спросить у клиента, приемлем ли для него салон для некурящих. Если, да то сделайте выделение соответсвующего места. Если нет, то напечатайте сообщение "Следующий полет состоится через три часа".

Заранее очень благодарны.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.07.2011, 23:15
Ответы с готовыми решениями:

Пример из Дейтела
Помоготе разобрать пример из Дейтела, #include<iostream> #include<string> using namespce std; MyBook{ public: void...

Классы из Дейтела
Сейчас читаю книгу Дейтела (Как программировать на С++ (5-е издание, 2008) ), читаю главу про классы, там предоставлен такой код: ...

Задача на catch из Дейтела
Попробовал решить такую задачу: Напишите условное выражение, которое возвращает или тип double, или int. Напишите catch-обработчики для...

8
 Аватар для R136a1
143 / 112 / 36
Регистрация: 14.04.2011
Сообщений: 261
05.07.2011, 03:45
код получился громоздким, потому как я только учусь но всё работает
Если клиент ввел 1, ваша программа должна выделять место в салоне для некурящий (места 6-10)
я так понял что вы отпечатались и имели в виду 2

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>
using namespace std;
 
int main()
{
    int location[10] = {0};
    char choise;
    bool nl = false;
    static int b = 5;
    static int a = 0;
    
    while(!nl) {
    
     do {
          cout << "\n1. для курящих\n"
               << "2. для некурящих\n";
    
          cin >> choise;
    
     } while(choise < '1' || choise > '2');
    
    cout << "\n";
    
    switch(choise) {
        case '1':
           if(a < 5) {
              location[a] = 1;
              cout << "Место: " << a+1 << "\n";
              a++; }
           else { 
             char ch;
             cout << "мест больше нет, приемлем ли для вас салон для некурящих?(y/n)\n";
             cin >> ch;
             if(ch == 'y' || ch == 'Y') {
                if(b < 10) {
                   location[b] = 1;
                               cout << "Место: " << b+1 << "\n";
                               b++; }
                else {
               cout << "мест больше нет, следующий полет состоится через три часа\n";
               nl = true; }
                }  
             }     
        break;
        case '2':
           if(b < 10) {
              location[b] = 1;
                      cout << "Место: " << b+1 << "\n";
                      b++; }
                   else {
                      cout << "мест больше нет, следующий полет состоится через три часа\n";
                  nl = true; }
        break;
       }
   }
    return 0;
}
2
1 / 1 / 0
Регистрация: 09.09.2010
Сообщений: 53
05.07.2011, 07:55  [ТС]
ОГРОМНОЕ спосибо!!!!!!
0
1 / 1 / 0
Регистрация: 09.09.2010
Сообщений: 53
09.07.2011, 22:37  [ТС]
А такую задачку кто поможет решить?
(Восемь Ферзей) Шахматной головоломкой является задача о Восьми Ферзях: можно ли поставить на пустой шахматной доске восемь фрезей так, чтобы ни один из них не "атаковал" другого, т.е. никакие два ферзя не стояли бы на одном и том же столбце или на одной и той же строке или на одной и той же диагонали?
Совет: Присвоить значение каждой клетке шахматной доски, указывая сколько клеток пустой шахматной доски "исключается", если ферзя поместить на эту клетку. Каждому углу должно быть присвоено значение 22. Как только эти числа исключений будут присвоены всем 64 клеткам, можно предложить эвристику: ставить каждого следующего ферзя на клетку с наименьшим числом исключений.

И еще такую!
Для каждого класса укажите некоторые общие атрибуты у финкции, определяющие иерархию. Добавьте некоторые другие классы, такие, как UndergraduateStudent, GraduateStudent, Freshmen, Sophomore, Junior, Senior и т.д., чтобы обоготить иерархию.

Огромное спосибо за внимание и помощь!!!!!
0
Freelance
Эксперт С++
 Аватар для asics
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
09.07.2011, 22:41
Цитата Сообщение от Chekhov Посмотреть сообщение
(Восемь Ферзей) Шахматной головоломкой является задача о Восьми Ферзях:
0
3 / 3 / 5
Регистрация: 18.01.2011
Сообщений: 131
09.07.2011, 23:07
какой выпуск книги у вас ? так как у меня эти все задачи в главе 7
0
1 / 1 / 0
Регистрация: 09.09.2010
Сообщений: 53
09.07.2011, 23:16  [ТС]
Незнаю, у меня электронная версия! В чем разница то?
0
3 / 3 / 5
Регистрация: 18.01.2011
Сообщений: 131
09.07.2011, 23:18
да и у меня электронная версия, сколько у вас страниц в книге ? а точнее какое издание ?
0
 Аватар для Daemon025
382 / 330 / 159
Регистрация: 06.12.2010
Сообщений: 894
09.07.2011, 23:27
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <stdio.h>
#include <stdlib.h>
#include <time.h>  
#define SIZE 8
//ôóíêöèÿ äëÿ çàïèñè èçìåíÿåìûõ ýâðèñòè÷. çíà÷.
void evristic( int e_dos[][ SIZE ], int dos[][ SIZE ], 
const int hor[ SIZE ], const int vert[ SIZE ]);
 
int main()
{
   int strk, stlb, hod = 0, x,y,z,i,c,v=0,n=0,m, vr_s, vr_st;
   
   int doska[ SIZE ][ SIZE ] = { 0 }; //ìàññèâ äëÿ çàïèñè "îïàñíûõ êëåòîê"
   int evr_doska[ SIZE ][ SIZE ] = { 0 }; //ìàññèâ äëÿ çàïèñè èçìåíÿåìûõ ýâðèñòè÷. çíà÷.
   
   const int horizont[ SIZE ]= {0, 1,1,1,0,-1,-1,-1 }; //ìàññèâû êîîðäèíàò õîäîâ
   const int vertical[ SIZE ]= {-1, -1,0,1,1,1,0,-1 }; 
   
   srand( time( NULL ) ); 
   
   for ( c = 1; c <= 8; ++c ) { //çàïóñêàåì 8 ôåðçåé ñ óñëîâèåì äëÿ òóïèêà ñì.i
      
      evristic( evr_doska, doska, horizont, vertical );//è ìåíÿåì ýâð. çíà÷.
      z = 28;//äëÿ âûáîðà íàèìåíø. ýâð. çíà÷.
      
      m = 1 +  rand() % 3;
      
     //çàïóñêàåì 64 öèêë äëÿ ïîèñêà ñâîá. è íàèì. ýâð. çíà÷. êëåòêè
      for ( x = 0; x <=7; ++x ) { 
      
         for ( y = 0; y <=7; ++y) { 
         
            if ( doska[ x ][ y ] == 0 ){
         
               if ( (evr_doska[ x ][ y ]<= z) && (n <= m) ){
                    
                  ++n;
                  z = evr_doska[ x ][ y ];  
                  strk = x;
                  stlb = y;
                  v = 1;
               }
            }
         }    
      } 
      n = 0;
      if  ( v == 1 ){ 
          
         doska[ strk ][ stlb ] = c;
         vr_s = strk;// ñîõð. äëÿ âîçì. âîçâð. íà èñõ. ïîç.
         vr_st = stlb;// äëÿ âîçâð. íà èñõ. ïîç.
         //çàïóñêàåì  öèêë äëÿ çàïèñè âñåõ âåðò., ãîð., äèàã., ïðîïóñêàÿ çàíÿòûå 
         for ( hod = 0; hod < SIZE; ++hod ) {
         
            for ( i = 1; i < SIZE; ++i ) {
            
               strk += vertical[ hod ]*i;// ïîëó÷àåì íîâóþ ïîç.
               stlb += horizont[ hod ]*i;// ïîëó÷àåì íîâóþ ïîç.
               // ïðîâåðÿåì ãðàíèöû è íàëè÷èå ñâîá. õîäîâ
               if ( strk >= 0 && stlb >= 0 && strk <= 7 && stlb <= 7 
               && doska[ strk ][ stlb ] == 0 ){
                    
                  doska[ strk ][ stlb ] = -1;
               }
               strk = vr_s;// âîçâð. íà èñõ. ïîç.
               stlb = vr_st;      
            }
         }  
      }
      v = 0;
   }
   printf( "\n\n" );
    for ( x = 0; x < SIZE; ++x ) {
      
       printf( "\n\n" ); 
      
       for ( y = 0; y < SIZE; ++y ) {
           
           if (doska[ x ][ y ]==-1)
              printf( "*  ", doska[ x ][ y ] );
          else
             printf( "%d  ", doska[ x ][ y ] );
       } 
   }
 
 
   printf( "\n\n" );
   system("PAUSE"); 
   return 0;  
 
} 
 
void evristic( int e_dos[][ SIZE ], int dos[][ SIZE ], 
const int hor[ SIZE ], const int vert[ SIZE ]){
 
  int strk, stlb, hod, x,y,z=0,b,i;
  
   for ( x = 0; x < SIZE; ++x ) { 
      
      for ( y = 0; y < SIZE; ++y) { 
         
         z = 0;// åñëè êëåòêà íå ïóñòàÿ, òî çàïèñ. 0
         if ( dos[ x ][ y ] == 0 ){
         
            strk = x;
            stlb = y; 
            ++z;
            
            for ( hod = 0; hod < SIZE; ++hod ) {
                
               for ( i = 1; i < SIZE; ++i ) {
                  strk += vert[ hod ]*i;// ïîëó÷àåì íîâóþ ïîç.
                  stlb += hor[ hod ]*i;// ïîëó÷àåì íîâóþ ïîç.
                  // ïðîâåðÿåì ãðàíèöû è íàëè÷èå ñâîá. õîäîâ
                  if ( strk >= 0 && stlb >= 0 && strk <= 7 && stlb <= 7 
                  && dos[ strk ][ stlb ] == 0 ){
                     ++z; // óâåëè÷. êîë. âîçì. õîäîâ
                     
                  }
                  strk = x;// âîçâð. íà èñõ. ïîç.
                  stlb = y;       
               }
            }
         }
         e_dos[ x ][ y ] = z; // çàïèñ. êîë. âîçì. õîäîâ
      }  
   }
   printf( "\n\n" ); 
   for ( x = 0; x < SIZE; ++x ) {
      
      printf( "\n\n" ); 
      
      for ( y = 0; y < SIZE; ++y ) {
          
         if ( y < 10 )
            printf( "%2d  ", e_dos[ x ][ y ] );
         else 
            printf( "%d  ", e_dos[ x ][ y ] );
      } 
   } 
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.07.2011, 23:27
Помогаю со студенческими работами здесь

Самоучитель от Дейтела врет?
Почему в самоучителе по С++ от Дейтела Х, программа, выводящая текст записана так: #include &lt;iostream&gt; int main() {...

ответы на книгу Дейтела
Здравствуйте! Подскажите,где можно скачать ответы на задачи из учебника Дейтела &quot;Как программировать на С++&quot; 5 издание?

Не запускаются приложения Дейтела
Почему не запускаются приложения из книги Дейтела &quot;Android для программистов. Создаем приложения&quot; ? Т.е. если взять готовый apk...

Разбить по файлам пример из Дейтела
Хочу разбить по файлам пример из книги Дейтела. Что куда сохранять!? Пожалуйсто подскажите, тяжело самому... Определение класса GradeBook...

Задача из Дейтела char и string
Подскажите пожалуйста, начал делать задачу из Дейтела: «Предположите, что определена структура, содержащая закрытые элементы данных: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru