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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
overlest
0 / 0 / 0
Регистрация: 09.09.2011
Сообщений: 3
#1

Нужно разобраться с программой - C++

03.06.2012, 01:52. Просмотров 468. Ответов 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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define n 2
 
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 naznacheniya|\tNomer reisa|\tVremi|\t\n");
for(int i=0;i<n;i++)
Output(i);
Sort();
printf("Sortirovka\n");
printf("|Punkt naznacheniya|\tNomer reisa|\tVremi|\t\n");
for(int i=0;i<n;i++)
Output(i);
printf("\nVvedite Vremi: \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 naznacheniya|\tNomer reisa|\tVremi|\t\n");
Output(i);
s=1;
}
if(!s) printf("Takoe vremi net!\n");
 
return 0;
}
 
void Read(TRAIN t[n])
{
int i;
for(i = 0;i<n;i++)
{
printf("Punkt naznacheniya:\n");
scanf("%s",&t[i].punkt);
printf("Nomer reisa: \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() //sortirovka po punkty naznacenia
{
 
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);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2012, 01:52     Нужно разобраться с программой
Посмотрите здесь:

Не могу разобраться с программой - C++
Я поступил в Колледж Вычислительной Техники и у нас началось программированиею Сказали поставить Visual C++ 2010, я поставил и теперь не...

Не могу разобраться с программой в С++ - C++
Написала программку на С++, он ее запускает и как я понимаю выполняет, но вот результатов я не вижу( И вот что мне выдает сама программа: ...

Помочь разобраться с программой. Написать функцию вставки элемента в массив - C++
Здравствуйте. Можете помочь разобраться в программе? Ну хоть комментарии какие поставить.. Заранее спасибо. Написать функцию вставки...

Нужно ли копировать весь исходный код библиотеки в папку со своей программой? - C++
Итак, я скомпилировал библиотеку Box2d, получил файл libBox2D.a, и есть отдельная папка с исходниками библиотеки которую я компилил. Теперь...

Что нужно еще сделать для комфортной работы пользователей с моей программой? - C++
Спасибо тем кто откликнулся;)))) Я на скорую руку написал программку вычисляющая определитель матрицы (3X3) я начинающий скажите что еще...

Нужно разобраться - C++
Прошу помощи. Расскажите пожалуйста по пунктам где и что делает программа, что за функция.Заранее благодарен. #include &lt;stdio.h&gt; int...

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

Нужно разобраться в коде - C++
Откомментируйте пожалуйста по строчке ,кто ,что может,а то не могу разобраться,это программа обход бинарного дерева в глубину справа налево...

Нужно разобраться с указателями - C++
#include &lt;iostream&gt; #include &lt;stdio.h&gt; using namespace std; //подсчет кол-ва согласных в слове int cntsogl(char *s) { int n=0;...

Нужно разобраться с кодом - C++
что делается в 6 строке и с 44-60? #include &lt;iostream&gt;; #include &lt;string.h&gt;; using namespace std; 6 char **AddPtr (char...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thirteen
32 / 32 / 4
Регистрация: 04.07.2012
Сообщений: 50
07.07.2012, 01:12     Нужно разобраться с программой #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
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define n 2
 
struct TRAIN //Создание структуры 
{
char punkt[15]; //Поле строка из 15 символов "Пункт"
int r_num;      //Поле "Номер рейса"
int ch;         //Поле "Часы"
int min;        //Поле "Минуты"
} train[n];     //Создание массива из n объектов типа "Train".
 
void Read(TRAIN *); //Инициализирует массив. На входе этот самый массив.
void Sort();     //Сортирует массив по пункту назначения.
void Output(int);//Форматный вывод данных структуры. 
                 //Принимает один аргумент - номер элемента в массиве train.
 
int main(void)
{
int ch1,min1;
Read(train); //Инициализируем массив.
printf("|Punkt naznacheniya|\tNomer reisa|\tVremi|\t\n");//Выводим шапку таблицы.
for(int i=0;i<n;i++)//Цикл вывода строк таблицы
Output(i); //Форматный вывод каждого объекта массива train.
Sort(); //Сортирует массив по пункту назначения
printf("Sortirovka\n");
printf("|Punkt naznacheniya|\tNomer reisa|\tVremi|\t\n");//Шапка таблицы
for(int i=0;i<n;i++) //Снова вывод массива, но теперь после сортировки.
Output(i);
printf("\nVvedite Vremi: \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 naznacheniya|\tNomer reisa|\tVremi|\t\n") //то выводим их.
Output(i);
s=1; //И ставим "Булеву" переменную в "истину"
}
if(!s) printf("Takoe vremi net!\n"); //Если "ложь", то говорит, что нет таких.
 
return 0;
}
 
void Read(TRAIN t[n]) //Инициализирует массив t.
{
int i;
for(i = 0;i<n;i++) //Цикл перебирает все элементы массива
{
printf("Punkt naznacheniya:\n");
scanf("%s",&t[i].punkt); //Вводим пункт назначения
printf("Nomer reisa: \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() //sortirovka po punkty naznacenia
{
 
int swap=1; //Тоже типа "Булева" переменная.
while(swap!=0) //Пока не ноль выполняем следующее:
{
swap=0; //Ставим swap в ноль
for(int i=0;i<n-1;i++) //Цикл сравнения пунктов назначения друг с другом.
                       //На 1 меньше размера массива чтобы не вылететь за пределы
if(strcmp(train[i].punkt,train[i+1].punkt)>=0) //Если результат сравнения
//пунктов назначения двух элементов больше либо равен нуля, то...
{
swap=1; //Ставим swap в 1
//Меняем два элемента местами:
TRAIN temp=train[i]; //Создаём временную переменную типа train
train[i]=train[i+1]; //Присваиваем i-му элементу значение следующего
train[i+1]=temp; //А следующему - значение i-го.
}
}
 
}
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);
}
Так пойдёт?
overlest
0 / 0 / 0
Регистрация: 09.09.2011
Сообщений: 3
09.07.2012, 13:14  [ТС]     Нужно разобраться с программой #3
Спасибо огромное!!!!


Тему можно закрывать.
Yandex
Объявления
09.07.2012, 13:14     Нужно разобраться с программой
Ответ Создать тему
Опции темы

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