Форум программистов, компьютерный форум CyberForum.ru

Описать структуру AEROFLOT - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.68
Парапулька
 Аватар для Парапулька
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 25
06.12.2010, 16:01     Описать структуру AEROFLOT #1
1. Описать структуру с именем AEROFLOT, содержащую следующие поля:
- название пункта назначения рейса;
- номер рейса;
- тип самолета.
2. Написать программу, выполняющую следующие действия:
- ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; записи должны быть упорядочены по возрастанию номера рейса;
- вывод на экран номеров рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введенным с клавиатуры;
- если таких рейсов нет, выдать на дисплей соответствующее сообщение.

Добавлено через 19 минут
В C++ Builder)

Добавлено через 22 часа 55 минут
ну помогииите

Добавлено через 3 часа 15 минут
Pascal
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
program DKLaba8;
 uses crt;
 type polet=record
       bort:string[4];
       reys:string[6];
       Q:string[25];   {punkt nazna4eni9}
       end;
   var f:file of polet;
       elem1,elem2:polet;
       number:integer;
procedure createfile;
 begin
 seek(f,filesize(f));
 writeln('vvedite svedeni9 o polete');
 writeln('For exit-write *');
  while true do
   begin
   writeln('vvedite nomer punkta nazna4eni9 v alfavitnom por9dke');
   readln(elem1.Q);
   if elem1.q='*' then break;
   writeln('vvedite typ samoleta');
   readln(elem1.bort);
   writeln('vvedite nomer reysa');
   readln(elem1.reys);
   write(f,elem1)
   end
  end;
procedure print_file;
   begin
   seek(f,0);
    write('punkt':25,' typ samoleta':4,'reys':6);
     while not eof(f) do
       begin
        read(f,elem1);
        writeln(elem1.q:25, elem1.bort:4,elem1.reys:6);
       end;
     readln;
   end;
procedure search_reys;
 var found:boolean;
     s:string;
   begin
    writeln('vvedite typ samoleta');
    readln(s);
    found:=false;
    seek(f,0);
    while not eof(f) do
      begin
       read(f,elem1);
       if elem1.bort=s then
        begin
           if found=false then
             writeln('punkt nazna4eni9':25,'reys':6);
             found:=true;
             with elem1 do
               writeln(q:25,reys:6);
        end;
      end;
      if found=false then writeln('dl9 dannogo samoleta reysov net');
    end;
 
 
 
begin
assign(f,'polet.dat');
{$i-}
reset(f);
{$i+}
 if IOResult=0 then
  writeln('dobavlenie zapisey v fail')
   else
     begin
     rewrite(f);
     writeln('Zapisi v novuy fail');
     end;
   readln;
   while true do
   begin
   clrscr;
 writeln('1-sozdanie faila');
 writeln('2-4tenie dannux faila');
 writeln('3-Vuvod na ekran p.nazna4enia i nomerov reysov dl9 dannogo samoleta');
 writeln('4-exit');
 writeln('------------------------------------------------------------------');
 writeln('vvedite nomer menu');
  readln(number);
   case number of
        1:createfile;
        2:print_file;
        3:search_reys;
        4:exit;
end;
end;
end.
как из паскаля перевести это в с++????

 Комментарий модератора 
Используйте теги форматирования кода.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Парапулька
 Аватар для Парапулька
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 25
13.12.2010, 01:15  [ТС]     Описать структуру AEROFLOT #2
написала в билдере с++
но почему то
не компелирует строчку return ()
может быть кто нибудь увидит ошибку
иил я не знаю в чём причина(((
Код
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
int main() {
 
struct aeroflot {
char naz[15];
int number;
char tip[6];
};
 
aeroflot tr[4];
 
//Vvod elementov s klaviaturi
int kol=4;
int i;
cout<< "vvedite nazvanie punkta naznacheniya reisa(ne bolee 15 simvolov) "<<endl
<< "vvedite nomer reisa "<<endl
<< "vvedite tip samoleta (ne bolee 6 simvolov)"<<endl;
 
for (i=0; i<kol; i++) {
cout << i+1 <<"-i marshrut:" << endl;
cin>> tr[i].naz >> tr[i].number >> tr[i].tip;
// cout<< tr[i].naz << tr[i].number << tr[i].tip<<endl;
}
//sortirovka
long imin=0;
for (i=0; i<kol; i++) {
for (int j=i+1; j<=kol; j++)
if (tr[j].number<tr[imin].number) {imin = tr[j].number;
aeroflot a = tr[i];
tr[i] = tr[imin];
tr[imin] = a;}
cout << tr[i].naz <<" " << tr[i].number << " " << tr[i].tip<<endl;
}
//vivod
cout << endl << "Otsortirovanniy massiv: " << endl;
for (i=0; i<kol; i++) {
cout << tr[i].naz <<" " << tr[i].number << " " << tr[i].tip;
cout << endl;
}
 
//poisk po nazvaniu reisa
while (true) {
char vv [21]; //Поиск самолетв
cout << endl << "Vvedite nazvanie punkta naznacheniya reisa" << endl;
cin >> vv;
bool f = false; //Флаг (найден ли хоть один)
for (i=0; i<kol; i++)
if (strcmp (tr[i].naz, vv)==0) { //Вывод информации при совпадениях
cout << "Nomer reisa:" <<' '<< tr[i].number <<' '<< "Tip samoleta:" <<' '<< tr[i].tip << ' '<<endl;
f = true;
}
if (!f) cout << "Net takogo punkta naznzcheniya"; //Сообщение при отсутствии необходимых данных
}
return ();
}
Добавлено через 4 минуты
и ещё когда дохожу до набирания 4 данных
всё зависает
и вобщем
выделяет строку
tr[imin] = a;}
так же не пойму почему(
TheMachinist
 Аватар для TheMachinist
242 / 174 / 15
Регистрация: 14.06.2010
Сообщений: 422
13.12.2010, 06:48     Описать структуру AEROFLOT #3
Я переписал функцию сортировки, вроде все работает.
Так же я поместил структуру вне функции main()

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
#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
 
 
struct aeroflot {
char naz[15];
int number;
char tip[6];
} ;
 int main() {
aeroflot tr[4];
//Vvod elementov s klaviaturi
int kol=4;
int i;
cout<< "vvedite nazvanie punkta naznacheniya reisa(ne bolee 15 simvolov) "<<endl
<< "vvedite nomer reisa "<<endl
<< "vvedite tip samoleta (ne bolee 6 simvolov)"<<endl;
 
for (i=0; i<kol; i++) {
cout << i+1 <<"-i marshrut:" << endl;
cin>> tr[i].naz >> tr[i].number >> tr[i].tip;
// cout<< tr[i].naz << tr[i].number << tr[i].tip<<endl;
}
//sortirovka
int temp;
for(i = 0;i < kol-1; i++){
    if(tr[i].number > tr[i+i].number) { temp = tr[i].number; tr[i].number = tr[i+1].number; tr[i+1].number = temp;continue;}
}
 
//vivod
cout << endl << "Otsortirovanniy massiv: " << endl;
for (i=0; i<kol; i++) {
cout << tr[i].naz <<" " << tr[i].number << " " << tr[i].tip;
cout << endl;
}
 
//poisk po nazvaniu reisa
while (true) {
char vv [21]; //Поиск самолетв
cout << endl << "Vvedite nazvanie punkta naznacheniya reisa" << endl;
cin >> vv;
bool f = false; //Флаг (найден ли хоть один)
for (i=0; i<kol; i++)
if (strcmp (tr[i].naz, vv)==0) { //Вывод информации при совпадениях
cout << "Nomer reisa:" <<' '<< tr[i].number <<' '<< "Tip samoleta:" <<' '<< tr[i].tip << ' '<<endl;
f = true;
}
if (!f) cout << "Net takogo punkta naznzcheniya"; //Сообщение при отсутствии необходимых данных
}
return 0;
}
Парапулька
 Аватар для Парапулька
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 25
13.12.2010, 17:54  [ТС]     Описать структуру AEROFLOT #4
ой
спасибо)
сейчас буду пробовать)
Парапулька
 Аватар для Парапулька
0 / 0 / 0
Регистрация: 04.12.2010
Сообщений: 25
24.12.2010, 20:04  [ТС]     Описать структуру AEROFLOT #5
в выше программе выше
не происходит сортировка((
в чём причина?
валентин777
0 / 0 / 0
Регистрация: 01.06.2011
Сообщений: 45
09.03.2012, 19:30     Описать структуру AEROFLOT #6
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
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
 
main()
 
{
    int i,j;
int k;
int min=0;
struct aeroflot
{
char *punkt[20];
char *tip[20];
int *nomer[10];
}x[7];
for(i=0;i<3;i++)
{printf("Dannie o smalete %d \n",i+1);
 
*x[i].punkt=(char*)malloc(20*sizeof(char)); //выделение памяти
 
printf("Vvedite nazvanie punkta naznacheniya\n");
scanf("%s",&x[i].punkt);
*x[i].nomer=(int*)malloc(10*sizeof(int));
printf("Vvedite nomer reysa\n");
scanf("%d",&x[i].nomer);
*x[i].tip=(char*)malloc(20*sizeof(char));
printf("Vvedite tip samoleta\n");
scanf("%s",&x[i].tip);
 
}
for(i=0;i<3;i++);
{
k=i;
min=**x[i].nomer ;
for(j=i+1;j<3;j++)
{
    if (**x[j].nomer<min)
    {
        k=j;
        min=**x[j].nomer;
    }
**x[k].nomer=**x[i].nomer;
**x[i].nomer=min;}
}
 
 
for(i=0;i<3;i++)
{
printf("Punkt naznacheniya-%s\n",x[i].punkt);
printf("Nomer reysa-%d\n",*x[i].nomer);
printf("Tip samoleta-%s\n",x[i].tip);
}
 
 
 
 
return 0;
}

выдает ошибку только
Yandex
Объявления
09.03.2012, 19:30     Описать структуру AEROFLOT
Ответ Создать тему
Опции темы

Текущее время: 13:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru