Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Указатель на класс сли первый класс определён и он должен использовать указатель на второй(который позже определён) как это сделать https://www.cyberforum.ru/ cpp-beginners/ thread399826.html C++ Вывести буквы латинского алфавита
Помогите составить код используя строки, чтобы при введения произвольного текста (цифры, русские буквы) выводило все буквы латинского алфавита присутствующие в этой строке. И поясните пожалуйста код,...
C++ Выделение памяти строке Есть код в следующем роде:int length=80; char *line = new char; ifstream fin("txt.txt"); if(!fin) {cout<<"Error not opened file "<<endl; return 1;} while (fin.getline(line,length))//на этом... https://www.cyberforum.ru/ cpp-beginners/ thread399820.html C++ Кольцевой односвязный список Реализовал класс для работы со списком студентов( использовал кольцевой односвязный список). Для навигации по классу используется итератор. Со временем данный класс будет сделан шаблонным. Код ... https://www.cyberforum.ru/ cpp-beginners/ thread399818.html
C++ подсчёт одинаковых символов в одномерном массиве.
не работает программа.Вместо подсчёта количества символов выводит число 0.008 //--------------------------------------------------------------------------- #include<conio.h> #include<stdio.h>...
C++ дана матрица прямоугольная нужно ее транспонировать дана матрица прямоугольная нужно ее транспонировать(желательно на языке си) https://www.cyberforum.ru/ cpp-beginners/ thread399810.html
C++ дробные числа https://www.cyberforum.ru/ cpp-beginners/ thread399807.html
нужно написать функцию считающую суму ряда с степенями и факториалами, так вот выбивает в строке 16 ошибку - invalid floating point operation , когда я убираю кусок кода из...
C++ Вызов неконстантной функции класса в mem_fun_ref
Привет. мне нужно вызвать функцию класса в mem_fun_ref, но ей, как известно требуется чтобы передаваемая функция класса была константной. Но в моем случае нельзя сделать метод константным. Что...
C++ Создание классов в С++ https://www.cyberforum.ru/ cpp-beginners/ thread399805.html
Помогите пожалуйста с задачей: Определить 2 класса – базовый и производный (деталь, механизм, изделие, узел), используя простое наследование. Описать конструктор по умолчанию, конструктор с...
C++ Помогите составить программу в текстовом файле подсчитать количество строк кот начинаются и заканчиваются на одну и ту же букву https://www.cyberforum.ru/ cpp-beginners/ thread399804.html
C++ из Паскаля в с++
помогите написать эту программу на с++ Program zzz; function nod(a,b:integer):integer; Begin While a<>b do If a>b Then a:=a-b Else b:=b-a; nod:=a; End;
C++ проверьте правильность пожалуйста!!! https://www.cyberforum.ru/ cpp-beginners/ thread399797.html
нужно найти наименьшее число у, которое делится на те же простые числа, что и х. это написано в общем виде, нам так надо)Предмет такой) Alg Od; arg x; min=x*x; y=x*x-1; c=2; while 2<y do...
Leska
0

Помогите,пожалуйста,разобрать код готовой программы. - C++ - Ответ 2251371

05.12.2011, 23:06. Показов 771. Ответов 0
Метки (Все метки)

Помогите,пожалуйста,разобрать код готовой и работающей программы.
необходимо узнать что выполняет каждая функция и почему мы используем именно ее....

Заголовочный файл header.h
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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
#ifndef AVIA_H
#define AVIAH
#include <iostream>
struct controller // авиадиспетчер
{
    struct watching_area* wa; // зона за окторой наблюдает диспетчер
    int skill; // умение от 0 до 100
    char* name; //имя диспетчера
};
struct watching_area // авиазона
{
    struct plane* pl; // инфо о грузе
    int count_plane;
    int area; //площадь зоны
    char* area_name;  // название зоны
    char* location_name; // анзвание местности
};
struct plane// самолет
{
    char* name; // марка самолета
    int speed;//скорость самолета
    int people_count; // кол-во челвоек, на которое рассчитан самолет
};
void Controller(struct controller* controller_, char* name_,int skill_); // инициализация структуры диспетчера
void Watching_area(struct watching_area* wa,  int count_plane_, int area_, char* area_name_, char* location_name_);// инициализация структуры авиа зона
void Plane(struct plane* plane_, char* name_, int people_count_, int speed_  ); // инициализации структуры "самолет"
void Print(struct controller* ctrl); //Печать 
 
void set_component(struct controller* ctrl, char* name_, int speed_, int people_count_ , int count_controller); // Ставим инфу о самоелете ,по его названию.
void write_file(struct controller* ctrl, int count, char** arg); // Пишем в файл изменения
bool equivalent(char* name1, char* name2); // Если равны возвращает 1, если нет - 0.
 
#endif
 
Файл avia.cpp
 
#include "header.h"
#include <iostream>
#include <string.h>
#include <fstream>
using namespace std;
bool equivalent(char* name1, char* name2)
{
    if(strlen(name1)!=strlen(name2))
        return 0;
    else
    {
        for(int i=0; i<strlen(name1)+1;i++)
        {
            if(name1[i]!=name2[i])
                return 0;
        }
    }
    return 1;
}
void Controller(struct controller* controller_, char* name_,int skill_)
{
    if(skill_<0 || skill_>100)
    {
        cout<<"Bad skill. Set to zero"<<endl;
        controller_->skill=0;
    }
    else
        controller_->skill=skill_;
    controller_->name=new char [strlen(name_)+1];
    strcpy(controller_->name, name_);
    controller_->wa=new struct watching_area;
    controller_->wa->area=0;
    controller_->wa->area_name=0;
    controller_->wa->count_plane=0;
    controller_->wa->location_name=0;
    controller_->wa->pl=0;
}
void Watching_area(struct watching_area* wa,  int count_plane_, int area_, char* area_name_, char* location_name_)
{
    wa->area=area_;
    wa->area_name= new char [strlen(area_name_)+1];
    strcpy(wa->area_name, area_name_);
    wa->location_name= new char [strlen(location_name_)+1];
    strcpy(wa->location_name, location_name_);
    wa->count_plane=count_plane_;
    wa->pl= new plane [wa->count_plane];
    for(int i=0; i<wa->count_plane; i++) 
    {
        wa->pl[i].name=0;
        wa->pl[i].people_count=0;
        wa->pl[i].speed=0;
    }
}
void Plane(struct plane* plane_, char* name_, int people_count_, int speed_  )
{
    plane_->name=new char [strlen(name_)+1];
    strcpy(plane_->name, name_);
    plane_->people_count=people_count_;
    plane_->speed=speed_;
}
void set_component(struct controller* ctrl, char* name_, int speed_, int people_count_ , int count_controller )
{
    for(int i=0; i<count_controller; i++)
    {
        if(equivalent(ctrl->wa->pl[i].name, name_)==1)//поиск
        {
            ctrl->wa->pl[i].people_count=people_count_;
            ctrl->wa->pl[i].speed=speed_;
        }
    }
}
void Print(struct controller* ctrl)
{
    cout<<"Имя авиадиспетчера:         "<<ctrl->name<<endl;
    cout<<"Скилл авиадиспетчера (0-100):         "<<ctrl->skill<<endl;
    cout<<"Наименвоание наблюдаемой зоны:         "<<ctrl->wa->area_name<<endl;
    cout<<"Наименвоание наблюдаемой локации(местности):         "<<ctrl->wa->location_name<<"м"<<endl;
    cout<<"Площадь наблюдаемой зоны:         "<<ctrl->wa->area<<"м2"<<endl;
    cout<<"Количество самолетов в зоне наблюдения:         "<<ctrl->wa->count_plane<<endl;
    for(int i=0; i<ctrl->wa->count_plane; i++)
    {
        cout<<"Самолет: "<<i+1<<endl;
        cout<<" Модель самолета:  "<<ctrl->wa->pl[i].name<<"кг"<<endl;
        cout<<" Колличество пассажиров на борту самолета:  "<<ctrl->wa->pl[i].people_count<<endl;
        cout<<" Скорость самолета:  "<<ctrl->wa->pl[i].speed<<"км/ч"<<endl;
        cout<<endl;
    }
}
void write_file(struct controller* ctrl, int count,char** arg)
{
    ofstream out(arg[1]);
    for(int i=0; i<2; i++)
    {
        out<<ctrl[i].name<<endl;
        out<<ctrl[i].skill<<endl<<endl;
        out<<ctrl[i].wa->location_name<<endl;
        out<<ctrl[i].wa->area_name<<endl;
        out<<ctrl[i].wa->area<<endl;
        out<<ctrl[i].wa->count_plane<<endl<<endl;
        for(int k=0; k<ctrl[i].wa->count_plane; k++)
        {
            out<<ctrl[i].wa->pl[k].name<<endl;
            out<<ctrl[i].wa->pl[k].speed<<endl;
            out<<ctrl[i].wa->pl[k].people_count<<endl<<endl;
        }
    }
    out.close();
}
 
Файл main.cpp
#include "header.h"
#include <iostream>
#include <fstream>
using namespace std;
#define N 100
int main(int argc, char** argv)
{ 
    /*
    Henry       -----> Имя диспетчера
    80          -----> Его умение)
 
    Arizona     -----> Местность где находится
    Distric_center_controller   ----->  Специфика авиадиспетчера, см [url]http://ru.wikipedia.org/wiki/%D0%90%D0%B2%D0%B8%D0%B0%D0%B4%D0%B8%D1%81%D0%BF%D0%B5%D1%82%D1%87%D0%B5%D1%80[/url]
    20          -----> площадь зоны
    5           -----> кол-во самолетов
 
    il-52       -----> Название самолета
    2500        -----> Скорость самолета
    25          -----> Кол-во пассажиров на борту
    */
    if(argc<2)
        return 1;          
    ifstream in(argv[1]);
    setlocale (LC_ALL, "Rus");
    char name[N];
    char loc_name[N];
    char area_name[N];
    int area;
    int skill;
    int plane_count;
 
 
    char plane_name[N];
    int speed;
    int people_count;
 
    struct controller ctrl[2];
    for(int i=0; i<2; i++)
    {
        in>>name;
        in>>skill;
        in>>loc_name;
        in>>area_name;
        in>>area;
        in>>plane_count;
        Controller(&ctrl[i], name, skill);
        Watching_area(ctrl[i].wa, plane_count, area, area_name, loc_name);
        for(int k=0; k<ctrl[i].wa->count_plane; k++)
        {
            in>>plane_name;
            in>>speed;
            in>>people_count;
            Plane(&ctrl[i].wa->pl[k], plane_name, people_count, speed);
        }
        Print(&ctrl[i]);
    }
    in.close();
    //Изменение поля стурктуры, и запись в файл
    set_component(&ctrl[0], "il-52", 3000, 30,2);
    write_file( ctrl, 2, argv);
    Print(&ctrl[0]);
 
    return 0;
}


Вернуться к обсуждению:
Помогите,пожалуйста,разобрать код готовой программы. C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2011, 23:06
Готовые ответы и решения:

Помогите разобрать чужой код
нам дали задание понять, что собственно написано в коде. Может кто подскажет как легче читать...

Не могу до конца разобрать код программы
Задание выглядит следующим образом дан код программы его надо прочитать и разобрать, т.е. объяснить...

Как приведенный код выводит ближайшую степень двойки? Разобрать работу программы
unsigned k ; cin&gt;&gt;k; for (--k;k&amp;(k+1);k|=k+1); cout&lt;&lt;++k; вот есть программа?что она делает - я...

помогите пожалуйста подправить код
C++.Нужно удалить элемент из массива.Выдает ошибку - : error C2105: '--' needs l-value...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2011, 23:06
Помогаю со студенческими работами здесь

Помогите закончить код, пожалуйста!
почти закончил программу! ну не знаю, что дальше делать! помогите пожалуйста! Расчет зарплаты....

c++ пожалуйста помогите подправить код
Нужно переставить местами два указаных столбца(q,w).Написал этод код,а он переставляет только 1-3 и...

Помогите пожалуйста записать на С++ фрагмент программы
помогите пожалуйста записать на С++ фрагмент программы) const s:string='0123456789ABCDEF'; ...

Прокомментируйте, пожалуйста, код программы.
Доброго дня всем! Перед Вами - 2 программы - 1 шифрует текст методом гаммирования, вторая -...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru