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

Структуры... - C++

Восстановить пароль Регистрация
 
WriterMix
1 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 68
27.11.2011, 17:53     Структуры... #1
Описать структуру с именем ITINERARY, которая содержит следующие поля:
  • BEG - назва начального пункта маршрута;
  • END - назва конечного пункта маршрута;
  • NUM - номер маршрута;
  • DISTANCE - расстояние в километрах;
Написать програму, которая отдельными функциями выполняет следующие действия:
  • введение с клавиатуры данных в масив ROUT, который состоит с N переменных типа ITINERARY;
  • упорядочение записей за номерамы маршрутов;
  • вывод на экран информации о маршрутах, которые начинаются или заканчиваются в пункте, название которого введено с клавиатуры; если таких маршрутов нет - вывести соответствующее сообщение.
Вот часть того, что у меня получилось:
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
#include<iostream>
#include<conio.h>
#include<stdio.h>
#include<string.h>
using namespace std;
const int n = 2;  //4islo elementiv masuvy
struct ITINERARY { //Struktura
 char BEG [21]; //po4.marshrut
 char NUM [4]; //Nomer marshrutu
 char END [21]; //Kincevuy marshrut, Poshuk poizdu
 char DISTANCE [6]; //Vidstan' yaku prohodut'o marshrut
};
 
bool IsEqual(char arr[], char arr2[], int count)
{
     bool result = true;
     for (int i=0; i<count; i++)
     {
         if (arr2[i] != arr[i])
         {
            result = false;
            break;           
         }    
     }
     return result;     
}
int main(void)
{
 ITINERARY a[n];
 int i = 0;
 for (i=0; i<n; i++) { //Vvid danuh
  cout << "Vvedite po4atkovui punkt: ";
  cin >> a[i].BEG;
  cout << "Vvedite nomer marshrutu: ";
  cin >> a[i].NUM;
  cout << "Vvedite vidstan': ";
  cin >> a[i].DISTANCE;
  cout << "Vvedite punkt zavershennya: ";
  cin >> a[i].END; 
 }
 char destination[100];
 gets(destination);
 for (int i=0; i<n; i++)
{
    if (IsEqual(a[i].BEG, destination, 21) || IsEqual(a[i].END, destination, 21))
    {
       cout<<a[i].NUM<<'\n';                      
    }
}  
 getch();
 return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2011, 17:53     Структуры...
Посмотрите здесь:

Структуры Оо C++
C++ Структуры
Структуры C++
C++ структуры
C++ СТРУКТУРЫ
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
WriterMix
1 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 68
03.12.2011, 13:31  [ТС]     Структуры... #2
Помогите дописать лабу...
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
03.12.2011, 15:42     Структуры... #3
переменные пиши маленькими буквами
символьные массивы сравнивай через strncmp() из <cstring>
можно вообще использовать string, тогда можно сравнивать через ==
не используй gets(), вместо неё используй fgets() с stdin и стиранием перевода строки
со строками string можно использовать getline()

Цитата Сообщение от WriterMix Посмотреть сообщение
упорядочение записей за номерамы маршрутов;
можешь пузырьковую сортировку применить или типа того - это цикл со вложенным циклом
WriterMix
1 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 68
03.12.2011, 19:02  [ТС]     Структуры... #4
Сегодня решил по-новому написать прогу, но всеравно ничего не получаеться. В чем ошибка? Может кто-нибудь скинуть решение?
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<conio.h>
#include<stdio.h>
#include<string.h>
using namespace std;
//const int N = 2;  //4islo elementiv masuvy
struct ITINERARY { //Struktura
 char BEG [21]; //po4.marshrut
 char NUM [4]; //Nomer marshrutu
 char END [21]; //Kincevuy marshrut, Poshuk poizdu
 char DISTANCE [6]; //Vidstan' yaku prohodut'o marshrut
} ROUT[5];
int in(ITINERARY);
int sort(ITINERARY, char);
int out(ITINERARY, char);
 
int in(ITINERARY ROUT[5])
{
    for(int i=0;i<5;i++)
    {
            cout<<"Vvedit po4atkovuy marshrut:"<<'\n';
            gets(ROUT[i].BEG);
            cout<<"Vvedit nomer marshrutu:"<<'\n';
            gets(ROUT[i].NUM);
            cout<<"Vvedit kincevuy marshrut:"<<'\n';
            gets(ROUT[i].END);
            cout<<"Vvedit vidstan (v km.):"<<'\n';
            gets(ROUT[i].DISTANCE);
    }
    return 0;
}
int sort(ITINERARY ROUT[5], char sortNUM[5])
{
    char d;
    int is;
    ITINERARY a;
    for (int i=0;i<5;i++)
    {
        sortNUM[i]=(char)ROUT[i].NUM; //zdes' DEV C++ vudaet oshubku, hot'a Borland 3.1 molchit...
    }
    do
    {
     is=0;
          for (int i=1;i<5;i++)
          if(sortNUM[i-1]>sortNUM[i])
          {
                d=sortNUM[i];
                sortNUM[i]=sortNUM[i-1];
                sortNUM[i-1]=d;
                
                a=ROUT[i];
                ROUT[i]=ROUT[i-1];
                ROUT[i-1]=a;
            is=1;
          }          
     }
     while(is);
     
     cout<<"\n\nVidsortovanuy spusok:";
     for(i=0;i<5;i++)
         cout << ROUT[i].BEG << " " << ROUT[i].END << " " << ROUT[i].DISTANCE <<'\n';
               return 0;
}
char destination[100];
 gets(destination);
 for (int i=0; i<n; i++)
{
    if ((a[i].BEG, destination, 21) || IsEqual(a[i].END, destination, 21))
    {
       cout<<a[i].NUM<<'\n';                      
    }
}  
 getch();
 return 0;
}
int main();
{
float sortNUM;
in(ROUT);
sort(ROUT, sortNUM);
out(ROUT; sortNUM);
return 0;
}
Спасибо.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
04.12.2011, 01:09     Структуры... #5
сортировка должна в зависимости от сравниваемых номеров менять/не менять местами структуры
функция сортировки принимает массив структур и количество структур
WriterMix
1 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 68
05.12.2011, 00:29  [ТС]     Структуры... #6
Напишите пожалуйста код виполнения последнего пункта:
вывод на экран информации о маршрутах, которые начинаются или заканчиваются в пункте, название которого введено с клавиатуры; если таких маршрутов нет - вывести соответствующее сообщение.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
05.12.2011, 03:13     Структуры... #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
    bool was_found;
    
    was_found = false;
    for (int i = 0; i < n; i++)
        if (strcmp(a[i].BEG, destination) == 0
         || strcmp(a[i].END, destination) == 0) {
            if (!was_found)
                was_found = true;
            cout << a[i].NUM << endl;
        }
    if (!was_found)
        cout << "was not found" << endl;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.12.2011, 14:34     Структуры...
Еще ссылки по теме:

структуры C++
структуры с++ C++

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

Или воспользуйтесь поиском по форуму:
WriterMix
1 / 1 / 0
Регистрация: 06.11.2011
Сообщений: 68
05.12.2011, 14:34  [ТС]     Структуры... #8
accept, спасибо большое!!! Наконец-то лаба готова!
Yandex
Объявления
05.12.2011, 14:34     Структуры...
Ответ Создать тему
Опции темы

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