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

структуру AEROFLOT - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.79
mr_aleks
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 116
09.04.2012, 18:59     структуру AEROFLOT #1
Сформировать структуру AEROFLOT для хранения следующей информации:

· номер рейса;

· название пункта назначения рейса;

· тип самолета;

· цена билета.



Ввести с клавиатуры информацию для нескольких рейсов (к-во заранее не определено) и сохранить ее в бинарном файле "5.dat".

Подготовьте файл, в котором будет не менее 20 корректных записей.
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
#include <iostream>
#include <stdio.h>
#include <iomanip>
using namespace std;
void main(void)
{
    struct AEROFLOT
    {
        int reis; char punkt[100];
        char tip[100]; int cena;
    }*px;
    int size;
    char punkt[100];
    cout << "Vvedite kolichestvo struktur: ";
    cin >> size; cout << "--------------------" << endl;
    AEROFLOT *pxas=new AEROFLOT[size]; px=&pxas[0];
    int i; FILE *f1;
    f1=fopen("5.dat","wb");
    for ( i=0; i<size; i++)
    {
        cin.ignore();
        cout << "Vvedite dannye: " << i+1 << endl;
        cout << "Nazvanie punkta naznachenija rejsa: "; gets(px[i].punkt); 
        cout << "Tip samoleta: "; gets(px[i].tip); 
        cout << "Nomer rejsa: "; cin >> px[i].reis;
        cout << "Cena bileta: ";  cin >> px[i].cena;
        cout << "--------------------" << endl;
        fwrite(&px[i],sizeof(AEROFLOT),1,f1);
    } fclose(f1);
    system("PAUSE");
}
Но она не правильно по мойму... т.к. не правильно выводит записи из файла в след. проге
Толи что то в обьявлении типов или еще где (
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
p_r_a_g_m_a
 Аватар для p_r_a_g_m_a
108 / 60 / 17
Регистрация: 08.03.2012
Сообщений: 208
Завершенные тесты: 1
12.04.2012, 01:12     структуру AEROFLOT #61
Все работает. В архиве все есть что нужно.
Вложения
Тип файла: rar Win.rar (5.2 Кб, 14 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mr_aleks
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 116
12.04.2012, 01:38  [ТС]     структуру AEROFLOT #62
да, все спасибо всем, все работает)
я проверил на своем примере)
mr_aleks
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 116
16.04.2012, 16:48  [ТС]     структуру AEROFLOT #63
Извиняюсь, но почему когда я создаю дат файл в этом коде с записью переменной size в файл то во второй проге не вывод нормально уже структуры по пункту назначения ?? а если без то вывод нормально!!

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
#include <iostream>
#include <stdio.h>
#include <iomanip>
#define STRLEN 20
 
using namespace std;
 
#pragma pack (1)
typedef struct
{
    char punkt[STRLEN];
    int reis;
    char tip[STRLEN];
    int cena;
} AEROFLOT, *LPAEROFLOT;
#pragma pack()
 
int main(int argc, char** argv)
{
    setlocale(LC_ALL, "Russian");
 
    int size;
    cout << "Vvedite kolichestvo struktur: ";
    cin >> size;
    cout << "--------------------" << endl;
    
    LPAEROFLOT pxas = new AEROFLOT[size];
    int index;
    FILE* file;
    
    if((file = fopen("D:\\5.dat", "wb")) == NULL) { printf("Oshibka pri otkrytii fajla.\n"); exit(1); }
    fwrite(&size, 4, 1, file);
    for (index = 0; index < size; index++)
    {
        cin.ignore();
        cout << "Vvedite dannye: " << index + 1 << endl;
        cout << "Nazvanie punkta naznachenija rejsa: "; gets(pxas[index].punkt); 
        cout << "Tip samoleta: "; gets(pxas[index].tip); 
        cout << "Nomer rejsa: "; cin >> pxas[index].reis;
        cout << "Cena bileta: ";  cin >> pxas[index].cena;
        cout << "--------------------" << endl;
        fwrite(&pxas[index], sizeof(AEROFLOT), 1, file);
        
    }
    fclose(file);
    delete[] pxas;
    system("PAUSE");
    
    return EXIT_SUCCESS;
}
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
#include <iostream>
#include <stdio.h>
#include <iomanip>
#define STRLEN 20
using namespace std;
#pragma pack (1)
typedef struct
{
    char punkt[STRLEN];
    int reis;
    char tip[STRLEN];
    int cena;
} AEROFLOT, *LPAEROFLOT;
#pragma pack()
int main(int argc, char** argv)
{
    setlocale(LC_ALL, "Russian");
    LPAEROFLOT pxas = new AEROFLOT[10];
    int index, cena = 0;
    FILE* file;
    char punk[STRLEN];
    if((file = fopen("D:\\5.dat", "rb+")) == NULL) { printf("Oshibka pri otkrytii fajla.\n"); exit(1); }
    cout << "Vvedite punkt naznachenija: ";
    cin >> punk;
    for (index = 0; index < 10; index++)
    {
        fread(&pxas[index], sizeof(AEROFLOT), 1, file); 
        {
            if (!strcmp(pxas[index].punkt, punk))
            {
                    cout << "Dannye: " << index + 1 << endl;
                    cout << "Nazvanie punkta naznachenija rejsa: " << pxas[index].punkt << endl;
                    cout << "Tip samoleta: " << pxas[index].tip << endl;
                    cout << "Nomer rejsa: " << pxas[index].reis << endl;
                    cout << "Cena bileta: " << pxas[index].cena << endl;
                    cout << "--------------------" << endl;
            }
        }
    }
    cena = pxas[0].cena;
    for(index = 0; index < 2; index++)
    {
      if (cena > pxas[index].cena)
      {
        cena = pxas[index].cena;
      }
    }
    fclose(file);
    cout << "Minimal'naja cena na bilet: " << cena << endl;
    delete []pxas;
    system("PAUSE");
    return EXIT_SUCCESS;
}
как уже писалось переменна size Надо для нормальной работы последней проги...
Миниатюры
структуру AEROFLOT  
Вложения
Тип файла: rar 5.rar (180 байт, 6 просмотров)
p_r_a_g_m_a
 Аватар для p_r_a_g_m_a
108 / 60 / 17
Регистрация: 08.03.2012
Сообщений: 208
Завершенные тесты: 1
16.04.2012, 22:10     структуру AEROFLOT #64
Почему не считываем size из файла????

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
#include <iostream>
#include <stdio.h>
#include <iomanip>
#define STRLEN 20
using namespace std;
#pragma pack (1)
typedef struct
{
    char punkt[STRLEN];
    int reis;
    char tip[STRLEN];
    int cena;
} AEROFLOT, *LPAEROFLOT;
#pragma pack()
int main(int argc, char** argv)
{
    setlocale(LC_ALL, "Russian");
    int size, index, cena = 0;
    FILE* file;
    char punk[STRLEN];
    if((file = fopen("D:\\5.dat", "rb+")) == NULL) { printf("Oshibka pri otkrytii fajla.\n"); exit(1); }
 
    fread(&size, 4, 1, file);
    LPAEROFLOT pxas = new AEROFLOT[size];
 
    cout << "Vvedite punkt naznachenija: ";
    cin >> punk;
    for (index = 0; index < size; index++)
    {
        fread(&pxas[index], sizeof(AEROFLOT), 1, file); 
        {
            if (!strcmp(pxas[index].punkt, punk))
            {
                    cout << "Dannye: " << index + 1 << endl;
                    cout << "Nazvanie punkta naznachenija rejsa: " << pxas[index].punkt << endl;
                    cout << "Tip samoleta: " << pxas[index].tip << endl;
                    cout << "Nomer rejsa: " << pxas[index].reis << endl;
                    cout << "Cena bileta: " << pxas[index].cena << endl;
                    cout << "--------------------" << endl;
            }
        }
    }
    cena = pxas[0].cena;
    for(index = 0; index < size; index++)
    {
      if (cena > pxas[index].cena)
      {
        cena = pxas[index].cena;
      }
    }
    fclose(file);
    cout << "Minimal'naja cena na bilet: " << cena << endl;
    delete []pxas;
    system("PAUSE");
    return EXIT_SUCCESS;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.04.2012, 22:39     структуру AEROFLOT
Еще ссылки по теме:

C++ Описать структуру с именем AEROFLOT
C++ Описать структуру с именем AEROFLOT
Описать структуру Aeroflot C++

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

Или воспользуйтесь поиском по форуму:
mr_aleks
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 116
16.04.2012, 22:39  [ТС]     структуру AEROFLOT #65
все большое спасибо, мб в спешке не увидел что не считывается а стоит <10

еще раз спасибо!
Yandex
Объявления
16.04.2012, 22:39     структуру AEROFLOT
Ответ Создать тему
Опции темы

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