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

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

Восстановить пароль Регистрация
 
SlasHTimm
Сообщений: n/a
23.06.2010, 15:43     структура #1
Сформировать массив, содержащий сведения об отправлении поездов дальнего следования с Казанского вокзала. Комбинированный тип содержит поля: номер поезда, станция назначения, время отправления, время в пути, наличие билетов.
Написать программу, выдающую информацию:
- наличие билетов на поезд с номером ХХХ.

вот, никак она не получается
эта задача на структуры
заранее спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.06.2010, 15:43     структура
Посмотрите здесь:

Структура C++
C++ Структура
C++ структура :(
Структура. C++
C++ Структура
C++ структура
Структура C++
Структура C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NNN777
299 / 157 / 19
Регистрация: 27.02.2010
Сообщений: 317
23.06.2010, 17:57     структура #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
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
#include <iostream>
#include <string.h>
#include <locale.h>
#include <windows.h>
 
using namespace std;
 
const int size=80;      //длина информационной строки
const int MaxItems=10;  //max количество элементов в таблице
 
struct Item
{
    char *number;           
    char *stan; 
    double time;
    double time_put;
    int bil;
}; 
Item table[MaxItems];   // определение рабочего вектора
 
char *mes[]=
{
    "1. Занести в таблицу\n",
    "2. Просмотреть таблицу\n",
    "3. Наличие билетов\n",
    "4. Завершить работу\n"
};
int mes_count=sizeof(mes)/sizeof(mes[0]);
void Insert (void);
void Find (void);
void Show (void);
void Quit(void);
int proverka (char *b1, char *b2);
 
void (*Sunc[])()={NULL, Insert, Show, Find};
 
int n=0; //текущая длина массива
 
int menu ()
{
int ans;
    do
    {
        for (int j=0; j<mes_count; j++)
            cout<<mes[j];
        cout<<endl;
        cout<<"Выберете действие: ";
        cin>>ans;
    }
    while (ans<0||ans>mes_count);
    return ans%mes_count;
}
int main()
{
    //SetConsoleOutputCP(1251);
    setlocale(LC_ALL,"Russian");
    int answer;
    while (answer = menu())
        Sunc[answer]();
    Quit();
    cout << "\n******* Завершение *******" << endl;
 
}
void Insert()
{
    int i=0;
    char buf[size]={'\0'}, buf2[size]={'\0'};
    cout<<"Введите номер поезда: ";
    cin.ignore(size, '\n');
    cin.getline (buf2, size);
    table[n].number=new char [strlen (buf2)+1];
    strcpy (table[n].number, buf2);
    cout<<"Введите станцию: ";
    cin.getline (buf, size);
    table[n].stan=new char [strlen(buf)+1];
    strcpy (table[n].stan, buf);
    cout<<"Введите время отправления (час.мин): ";
    cin>>table[n].time;
    cout<<"Введите время в пути (час.мин): ";
    cin>>table[n].time_put;
    cout<<"Введите количество билетов: ";
    cin>>table[n].bil;
    n++;
}
void Find()
{
    int i=0, j=0;
    char k[size], *num=k, num1;
    
    cout<<"Введите номер поезда: ";
    cin.ignore(size, '\n');
    cin.getline(k, size);
    for (i=0; i<n; i++)
        //num1=table[i].number;
        if (proverka(table[i].number, k))
        {
            cout<<"Номер"<<'\t'<<"Станция"<<"\t"<<"Время отпр"<<"\t"<<"Время в пути"<<'\t'<<"Билетов"<<endl;
            cout<<table[i].number<<"\t"<<table[i].stan<<"\t"<<table[i].time<<"\t"<<table[i].time_put<<'\t'<<table[i].bil<<endl;
            return;
        }
    cout<<"Совпадений не найдено!\n";
}
int proverka (char *b1, char *b2)
{
    while (*b1&&*b1++==*b2++)
        ;
    if (*(b1-1)==*(b2-1))
        return 1;
    return 0;
}
void Show ()
{
    int j, i;
    cout<<"Номер"<<'\t'<<"Станция"<<"\t"<<"Время отпр"<<"\t"<<"Время в пути"<<'\t'<<"Билетов"<<endl;
    for (i=0; i<n; i++)
        cout<<table[i].number<<"\t"<<table[i].stan<<"\t"<<table[i].time<<"\t"<<table[i].time_put<<'\t'<<table[i].bil<<endl;
    cout<<endl;
}
void Quit ()
{
    for (int j=0; j<n; j++)
        delete [] table[j].stan;
    n=0;
}
Лучше хорошенько протестировать...
SlasHTimm
Сообщений: n/a
24.06.2010, 01:21     структура #3
спасибо большое)
Yandex
Объявления
24.06.2010, 01:21     структура
Ответ Создать тему
Опции темы

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