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

Описать структуру с именем TRAIN - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Комментарии и разбор кода http://www.cyberforum.ru/cpp-beginners/thread768834.html
#include "stdafx.h" #include "tchar.h" #include "iostream" #include "string" #include "math.h" #include "conio.h" using namespace std; class par { private:
C++ Одномерный массив, поставить 0 перед четными членами массива! Есть задание: 1)Сформировать одномерный массив целых чисел, используя датчик случайных чисел. 2)Распечатать полученный массив. 3)Удалить элемент с номером К. 4)Добавить после каждого четного элемента массива элемент со значением 0. 5)Распечатать полученный массив. Первые 3 выполнил, не могу добавить 0, подскажите как это сделать, пожалуйста http://www.cyberforum.ru/cpp-beginners/thread768828.html
C++ MinGW. При запуске откомпилированной программы вылетает ошибка, что библиотека libgcc_s_dw2-1.dll отсутствует.
Решил освоить этот компилятор, поставил под windows. Пишу банальный хелло ворлд. Пробую скомпилировать g++ test.cpp - o test При запуске вылетает что библиотека libgcc_s_dw2-1.dll отсутствует. Походу проблема с компоновкой, кто сталкивался? Благодарен. Добавлено через 5 минут Если запускать в корне С:\MinGw\bin, то норм всё.
C++ Алгоритм Евклида. НОД. Тройка чисел
Всем привет. Задание следующее: Найти НОД двух чисел по Алгоритму Евклида. Найти НОД трех чисел по этому же алгоритму. Подсчитать кол-во делений с остатком и определить наихудшую тройку чисел (с точки зрения вычислительных затрат), не превосходящих N. Вот что сделал я: #include <iostream> using namespace std; int Nod(int a, int b, int &count); //прототип функции, высчитывающей НОД int...
C++ Вывести на экран все четные делители числа N http://www.cyberforum.ru/cpp-beginners/thread768795.html
Вывести на экран все четные делитесь числа N. Помогите написать программу))
C++ Игра Доброе время суток! Хочу написать свою первую, простую игру на С++. Посоветуйте с чего начать. подробнее

Показать сообщение отдельно
Illuha
Сообщений: n/a
22.01.2013, 14:37     Описать структуру с именем TRAIN
Вот задание
Описать структуру с именем TRAIN, содержащий следующие поля:
• Номер поезда;
• Название пункта назначения;
• Время отправления.
Программа должна выполнять следующие действия:
• Ввод данных в массив элементов типа TRAIN;
• Благоустройство элементов под названием пункта назначения;
• Вывод на экран информации о поездах, чье время отправления больше того, что вводится с клавиатуры; если таких поездов нет, вывести соответствующее сообщение.

Вот программа:

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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define n 3
 
struct TRAIN
{
char punkt[15];
int r_num;
int ch;
int min;
} train[n];
 
void Read(TRAIN *);
void Sort();
void Output(int);
 
int main(void)
{
int ch1,min1;
    Read(train);
    printf("Punkt pryznachennia\tNomer potiagu\tChas\t\n");
for(int i=0;i<n;i++)
   Output(i);
   Sort();
   printf("Sortirovka\n");
   printf("Punkt pryznachennia\tNomer potiagu\tChas\t\n");
for(int i=0;i<n;i++)
   Output(i);
   printf("\nVvedit Chas: \n");
   printf("Hour:\n");
   scanf("%d",&ch1);
   printf("Minutes: \n");
   scanf("%d",&min1);
 
int s=0;
for(int i=0;i<n;i++)
if(train[i].ch>=ch1 && train[i].min>=min1){
    printf("Punkt pryznachennia\tNomer potiagu\tChas\t\n");
    Output(i);
    s=1;
}
if(!s) printf("Takogo chasu nema!\n");
system("pause");
return 0;
}
 
void Read(TRAIN t[n])
{
int i;
for(i = 0;i<n;i++)
{
    printf("Punkt pryznachennia:\n");
    scanf("%s",&t[i].punkt);
    printf("Nomer potiagu: \n");
    scanf("%d",&t[i].r_num);
    printf("Hour: \n");
    scanf("%d",&t[i].ch);
    printf("Minutes: \n");
    scanf("%d",&t[i].min);
    
}
}
 
void Sort() //sortuvannia po punkty pryznachennia
{
 
int swap=1;
while(swap!=0)
{
   swap=0;
for(int i=0;i<n-1;i++)
if(strcmp(train[i].punkt,train[i+1].punkt)>=0)
{
   swap=1;
   TRAIN temp=train[i];
   train[i]=train[i+1];
   train[i+1]=temp;
}
}
 
}
void Output(int i)
  {
       printf("%s\t\t       %d\t\t%d.%d\t \n",
     train[i].punkt,train[i].r_num,train[i].ch,train[i].min);
 
}


Надо эту же программу сделать чтобы массив структур создавался путем ввода данных из текстового файла.
Вот что я сделал, но выдает кучу ошибок, помогите отредактировать

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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
 
int main()
{
  FILE *f;                  // вказівник типу FILE
  if((f =fopen("d:\file.txt", "r"))==NULL){
      cout << "Opening error"; return 1; }  // помилка відкриття файлу для читання
  int n_file;                   // кількість записів файлу
 
const int len_name = 5;         // розмір поля для назви пункту маршруту  
const int len_nomber = 3;           // розмір поля для номера маршруту
const int len_ch = 2;
const int len_min = 2;
 
struct TRAIN
{
char punkt[15];
int r_num;
int ch;
int min;
} train[n];
 
const int n = 3;                // розмір масиву структур
  TRAIN dbase[n];               // масив структур
  int len =(len_name + len_nomber + len_ch + len_min);  // розмір одного запису   
  char buffer[30];              // область для зберігання одного запису   
  int i = 0;                    // для підрахунку записів
  int k=0;
 
/* послідовне читання записів файлу в buffer за допомогою функції fgets  з наступним їх перенесенням у масив структур dbase */
  while(fgets(buffer, 14, f)){ 
      strncpy_s(dbase[i].punkt, buffer, len_name);  //початковий пункт маршруту
      dbase[i].punkt[len_name] ='\0';   //додаємо термінальний нуль наприкінці
      dbase[i].r_num= atoi(&buffer[len_name + len_nomber]);
      dbase[i].r_ch= atoi(&buffer[len_name + len_nomber + len_ch]);
      dbase[i].r_min= atoi(&buffer[len_name + len_nomber + len_ch + len_min]);
      cout << dbase[i].punkt <<"  "<<  dbase[i].r_num <<"  "<<dbase[i].ch<<"."<<dbase[i].min;   // номер маршруту
      cout << endl;
      i++;
  }
 
if(!s) printf("Takogo chasu nema!\n");
system("pause");
return 0;
}
 
void Read(TRAIN t[n])
{
int i;
for(i = 0;i<n;i++)
{
    printf("Punkt pryznachennia:\n");
    scanf("%s",&t[i].punkt);
    printf("Nomer potiagu: \n");
    scanf("%d",&t[i].r_num);
    printf("Hour: \n");
    scanf("%d",&t[i].ch);
    printf("Minutes: \n");
    scanf("%d",&t[i].min);
    
}
}
 
void Sort() //sortuvannia po punkty pryznachennia
{
 
int swap=1;
while(swap!=0)
{
   swap=0;
for(int i=0;i<n-1;i++)
if(strcmp(train[i].punkt,train[i+1].punkt)>=0)
{
   swap=1;
   TRAIN temp=train[i];
   train[i]=train[i+1];
   train[i+1]=temp;
}
}
 
}
void Output(int i)
  {
       printf("%s\t\t       %d\t\t%d.%d\t \n",
     train[i].punkt,train[i].r_num,train[i].ch,train[i].min);
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:43. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru