Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 11
1

Структура

29.04.2013, 04:50. Просмотров 526. Ответов 5
Метки нет (Все метки)

Структура. Помогите найти ошибку


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
#include <iostream>
#include <algorithm>
#include <string.h>
 
using namespace std;
 
const int size = 3;
    AEROFLOT aer[size];
    unsigned int i, j;  
    int count = 0;
    char t[30];
 
struct AEROFLOT 
{ 
    char destination[30]; 
    unsigned int type; 
    unsigned int number;
}; 
 
void vvod()
{
    FILE *fo=fopen("5.out","a");
    const int size = 3;
    AEROFLOT; aer[size];
    unsigned int i, j;  
    int count = 0;
 
    char t[30];
 
    for ( i = 0; i < size; i++) 
    { 
        cout<<"Punkt_naznachenia: "<<endl; 
        cin>>aer[i].destination; 
        cout<<"Vvedite tip samoleta "<<endl; 
        cin>>aer[i].type; 
        cout<<"Vvedite nomer "<<endl; 
        cin>>aer[i].number; 
    }  
        
}
 
void korr()
{
     for ( i = 0; i < size - 1; i++) 
     for ( j = 0; j < size - 1; j++) 
        if(strcmp(aer[j].destination, aer[j+1].destination) > 0) 
        swap(aer[j], aer[j+1]); 
        cout<<endl; 
 
    for ( i = 0; i < size; i++)  
        cout << aer[i].destination << " "<< aer[i].number << " "<< aer[i].type <<endl;
        cout <<endl; 
}
 
void obr()
{
    FILE *fo=fopen("5.out","r+");
          cout<<"Vvedite tip samoleta"<<endl; 
          cin>>t; 
 
    for ( i = 0; i < size; i++) 
    { 
        if(strcmp(t, aer[i].type) == 0) 
            cout << aer[i].destination << " "<< aer[i].number <<endl;  
        else 
            count++; 
    } 
 
    if(count == size) 
        cout << "Error!" <<endl; 
    } 
 
;}
 
int main();
{
    
        vvod();
        obr(); 
        korr(); 
        exit(0);
        return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.04.2013, 04:50
Ответы с готовыми решениями:

В текстовом файле структура – информация о компьютерах. Структура с полями: название, стоимость.
Ребят, помогите пожалуйста, 29 июня экзамен по &quot;Основы программирования&quot;,кто сколько сможет сделать...

Структура «База», сущности «Универсам» и «Продукты», структура «Товар»
1. Создать структуру «База», включающую не менее 3 полей. 2. Создать сущности «Универсам» и...

структура array предназначена для хранения строки типа char. Структура имеет функцию, которая позволяет изменить символ
структура array предназначена для хранения строки типа char. Структура имеет функцию, которая...

Структура DateTime, битовая структура
Условие: Структура содержит информацию о дате и времени некоторого события: struct datetime...

5
4293 / 1415 / 463
Регистрация: 16.12.2010
Сообщений: 2,938
Записей в блоге: 3
29.04.2013, 11:19 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <algorithm>
#include <string.h>
 
using namespace std;
 
const int size = 3;
    struct AEROFLOT;    
    unsigned int i, j;  
    int count = 0;
    char t[30];
 
struct AEROFLOT 
{ 
    char destination[30]; 
    unsigned int type; 
    unsigned int number;
}; 
 
void vvod(AEROFLOT *aer)
{
    FILE *fo=fopen("5.out","a");
    unsigned int i, j;  
  //  int count = 0;
 
    char t[30];
 
    for ( i = 0; i < size; i++) 
    { 
        cout<<"Punkt_naznachenia: "<<endl; 
        cin>>aer[i].destination; 
        cout<<"Vvedite tip samoleta "<<endl; 
        cin>>aer[i].type; 
        cout<<"Vvedite nomer "<<endl; 
        cin>>aer[i].number; 
    }  
        
}
 
void korr(AEROFLOT *aer)
{
     for ( i = 0; i < size - 1; i++) 
     for ( j = 0; j < size - 1; j++) 
        if(strcmp(aer[j].destination, aer[j+1].destination) > 0) 
        swap(aer[j], aer[j+1]); 
        cout<<endl; 
 
    for ( i = 0; i < size; i++)  
        cout << aer[i].destination << " "<< aer[i].number << " "<< aer[i].type <<endl;
        cout <<endl; 
}
 
void obr(AEROFLOT *aer)
{
    FILE *fo=fopen("5.out","r+");
          cout<<"Vvedite tip samoleta"<<endl; 
          cin>>t; 
 
    for ( i = 0; i < size; i++) 
    { 
        if(strcmp(t, aer[i].destination) == 0) 
            cout << aer[i].destination << " "<< aer[i].number <<endl;  
        else 
            ::count++; 
    } 
 
    if(::count == size) 
        cout << "Error!" <<endl; 
}
 
int main()
{
        AEROFLOT aer[size];
        vvod(aer);
        obr(aer); 
        korr(aer); 
        exit(0);
        return 0;
}
ошибок море, но, как известно, без задания не всегда ясно, что нужно получить в итоге. Вы, видимо, только начинаете знакомство с функциями.
0
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 11
01.05.2013, 16:36  [ТС] 3
Сформировать файл, имеющий следующую структуру с именем AEROFLOT, с полями:
 название пункта назначения рейса;
 номер рейса;
 тип самолета;
Написать программу (создать меню), выполняющую следующие действия:
 ввод с клавиатуры данных в массив, состоящий из семи элементов типа AEROFLOT; записи должны быть размещены в алфавитном порядке по названиям пунктов назначения;
 вывод на дисплей номеров и типов самолетов, обслуживаемых самолетом, тип которого введен с клавиатуры;
 если таких рейсов нет, вывести соответствующее сообщение.
0
150 / 137 / 35
Регистрация: 29.07.2012
Сообщений: 709
01.05.2013, 16:54 4
Думаю с структурой сами разберетесь.
Вот некоторые ваши функции.
Цитата Сообщение от ErinI Посмотреть сообщение
вывод на дисплей номеров и типов самолетов, обслуживаемых самолетом, тип которого введен с клавиатуры
C++
1
2
3
4
5
6
7
8
cin >> tip;
for(int i = 0;i > size;i++)
{
if(massiv[i].tip_samoleta == tip)
{
cout << massiv[i].number << " " << massiv[i].peic<< " " << massiv[i].tip_samoleta; 
}
}

Цитата Сообщение от ErinI Посмотреть сообщение
если таких рейсов нет, вывести соответствующее сообщение.
C++
1
2
3
4
5
cin >> peic; //ввод рейса
for(int i = 0; i < size; i++)
{
if(massiv[i].peic == peic) cout << massiv[i].number << " " << massiv[i].peic<< " " << massiv[i].tip_samoleta; 
}
Думаю дальше сами разберетесь.
0
0 / 0 / 0
Регистрация: 24.04.2013
Сообщений: 11
01.05.2013, 18:47  [ТС] 5
BumerangSP,


Вот, я доработала. Но все равно чего-то не хватает. Не могу понять, помогите ПОЖАЛУЙСТА!

Добавлено через 19 минут
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
#include "stdio.h"
#include "iostream"
using namespace std;
 
 
struct{
    char destination[30]; 
    char type[30]; 
     int number;
}n,aer[20],n1,q;
 
void vvod(){
    FILE *f=fopen("1.out","ab");
    cout << "Punkt_naznachenia: " <<endl; 
    cin >> n.destination; 
    cout << "Inter a type " <<endl;
    cin >> n.type; 
    cout << "Inter a number " <<endl; 
    cin >> n.number; 
    fwrite (&n,sizeof(n),1,f);
    fclose(f);
}
void vivod(){
    FILE *f1=fopen("1.out","rb");
    fread(&n1,sizeof(n1),1,f1);
    while(!feof(f1))
    { 
        cout.width(10);cout<<n1.destination<<" "; 
        cout.width(5);cout<<n1.type<<"  "; 
        cout.width(5);cout<<n1.number<<endl;
        fread(&n1,sizeof(n1),1,f1);
    }
    fclose(f1);
}
void sortirovka()
{
    int i=0,k=1,j;
    FILE *f2=fopen("1.out","rb");
    while(!feof(f2))
    {
        fread(&aer[i++],sizeof(n),1,f2);
    }
    while(k!=0)
    {
    k=0;
    for(j=0;j<i-2;j++)
    if(aer[j].number > aer[j+1].number ) 
    {
            q=aer[j];
            aer[j]=aer[j+1];
            aer[j+1]=q;
                k++; 
    }
    
    }
    FILE *f3=fopen("1.out","wb");
    for(j=0;j<i-1;j++)
        fwrite(&aer[j],sizeof(n),1,f3);
    cout<<"O'k"<<endl;
    fclose(f3);
    fclose(f2);
}
void search()
{
    int i=0,k=0,j,x;
    cout<<"Vvedite tip"<<endl;
    cin>>x;
    FILE *f4=fopen("1.out","rb");
    while(!feof(f4))
    {
        fread(&aer[i++],sizeof(n),1,f4);
    }
    for(j=0;j<i;j++)
    { 
        if(aer[j].type[1] == x) 
        {
        cout.width(10);cout<<aer[j].destination<<" "; 
        cout.width(5);cout<<aer[j].type[1]<<"  "; 
        cout.width(5);cout<<aer[j].number<<endl;   
            k++; 
        }
    } 
 
    if(k == 0) 
        cout << "Error!"<<endl; 
    fclose(f4);
}
void menu()
{
    int n;
    cout<<"1. Vvod dannix\n";
    cout<<"2. Vvivod dannix\n";
    cout<<"3. Zapros po tipu samoleta\n";
    cout<<"4. Sortirovka\n";
    cout<<"5. Vixod\n";
    cin>>n;
    switch(n){
        case 1: vvod(); break;
        case 2: vivod(); break;
        case 3: search(); break;
        case 4: sortirovka(); break;
        case 5: exit(0);
        
    }
}
 
int  main()
{
    while(1)
    {
        menu();cout<<"\n";}
    return 0;
}
Добавлено через 1 час 32 минуты
Фугкция search() не выполяет свою роль...
0
4293 / 1415 / 463
Регистрация: 16.12.2010
Сообщений: 2,938
Записей в блоге: 3
01.05.2013, 19:40 6
У Вас type типа char, а сравниваете Вы его с x типа int, причем второй его символ (индексация с нуля).
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
void search()
{
    int i=0,k=0,j;
    char x[30];
    cout<<"Vvedite tip"<<endl;
    cin>>x;
    FILE *f4=fopen("1.out","rb");
    while(!feof(f4))
    {
        fread(&aer[i++],sizeof(n),1,f4);
    }
    for(j=0;j<i;j++)
    { 
        if(!strcmp(aer[j].type, x)) 
        {
        cout.width(10);cout<<aer[j].destination<<" "; 
        cout.width(5);cout<<aer[j].type<<"  "; 
        cout.width(5);cout<<aer[j].number<<endl;   
            k++; 
        }
    } 
 
    if(k == 0) 
        cout << "Error!"<<endl; 
    fclose(f4);
}
Если будет выдавать ошибки, подключите библиотеку cstring.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.05.2013, 19:40

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Структура, доступная из всех файлов проекта ("глобальная" структура)
Есть четыре структуры (body, gun, enemy, st), описанные в main.cpp. К main.cpp подключен хедер...

Структура и вложенная структура
Подскажите как сделать задание, такого рода Иванов Математика 80 История 60...

Тип структура. Описать, используя тип структура
Описать, используя тип структура, данные на учеников (фамилия, улица, дом, квартира). Составить...

Структура
Информация о хранящихся на складе товарах состоит из: 1) инвентаризационного номера; 2)...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.