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

Блок схемы для программ С++ - C++

Восстановить пароль Регистрация
 
dimartm
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 23
16.06.2014, 14:27     Блок схемы для программ С++ #1
Народ, кто может нарисовать блок схемы к программам построенных на C++ Builder 6, кто силен, нарисуйте.
1)
Кликните здесь для просмотра всего текста
С помощью текстового редактора создать файл на внешнем носителе, содержащий следующую информацию, название пункта назначения рейса, номер рейса, тип самолета, Написать программу выполняющую следующие действия:
- прочитать информацию из файла в ОП в массив структур
- упорядочить массив структур по возрастанию номера рейса
- снова записать упорядоченный файл в массив
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
211
212
213
214
215
216
217
218
219
220
221
222
223
//---------------------------------------------------------------------------
 
#include <clx.h>
#include <string.h>
#include <iostream.h>
#include <stdio.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
struct races
{
        string n_race;
        string plane;
        string track;
        string out_place;
        string in_place;
 
};
races new_race ();
void view_race(races []);
void add_race(races []);
bool write_file(races[], string);
void in_write (races[]);
void read_race (races[], string);
void in_read (races[]);
void qsort_on_race (races []);
int main(int argc, char* argv[])
{
        string path;
        races task[10];
        bool flag_exit = false;
        int operation;
        while (flag_exit == false)
        {
                cout<<" 1.- read races\n 2.- save races\n 3.- add races\n 4.- sort races\n 5.- view races\n 0.- exit\n insert operation - ";
                cin>>operation;
                switch (operation)
                {
                        case 0: flag_exit = true; break;
                        case 1: in_read(task); break;
                        case 2: in_write(task); break;
                        case 3: add_race(task); break;
                        case 4: qsort_on_race(task); break;
                        case 5: view_race(task); break;
                }
        }
 
        return 0;
}
//---------------------------------------------------------------------------
races new_race  ()
{
        races temp_race;
        cout<<"Nomber reace = ";
        cin>>temp_race.n_race;
        cout<<"Plane race = ";
        cin>>temp_race.plane;
        cout<<"Track race = ";
        cin>>temp_race.track;
        cout<<"Out place = ";
        cin>>temp_race.out_place;
        cout<<"In place = ";
        cin>>temp_race.in_place;
        return temp_race;
 
}
 
void add_race (races race[])
{
        system("cls");
        int i,count=0 ;
        for (i=0; i<10;i++)
        {
                if (race[i].n_race != "")
                        count += 1;
 
        }
        if (count != 10)
                {
                race[count] = new_race();
                system("cls");
                cout<<"add succsefuly\n";
                }
        else
                cout<<"sorry, list races is full\n";
 
}
 
void view_race (races race[])
{
        int i, count = 0;
        system("cls");
        for(i=0; i<10; i++)
        {
                if (race[i].n_race != "")
                        count +=1;
        }
        cout<<"\n--------------------------------------------------------\n";
        cout<<"\n|    N Race|     Plane |   Track |Out plase |  In plase|\n";
        cout<<"\n--------------------------------------------------------\n";
        for (i=0; i<count; i++)
        {
                cout<<"|";
                cout.width(10);
                cout<<race[i].n_race<<"|";
                cout.width(10);
                cout<<race[i].plane<<"|";
                cout.width(10);
                cout<<race[i].track<<"|";
                cout.width(10);
                cout<<race[i].out_place<<"|";
                cout.width(10);
                cout<<race[i].in_place<<"|";
                cout<<"\n--------------------------------------------------------\n";
        }
 
}
 
bool write_file (races race[],string file_path)
{       int i,count=0;
        string temp;
        for (i=0; i<10; i++)
        {
                if (race[i].n_race != "")
                        count += 1;
        }
 
 
        FILE *file;
        file = fopen (file_path.c_str(), "w");
        if (file != 0 & count !=0)
        {
                for (i=0; i<count; i++)
                {
                        temp = race[i].n_race + " " + race[i].plane + " " + race[i].track + " " + race[i].out_place + " " + race[i].in_place +"\n";
                        fputs(temp.c_str(), file);
                }
                fclose(file);
                return true;
        }
        else
        {
        cout<<"fail read";
        return false;
        }
}
void in_write (races race[])
{
        system("cls");
        bool temp_flag = false;
        string path;
        cout<<"path file = ";
        cin>>path;
        temp_flag = write_file(race, path);
        cout<<temp_flag;
}
 
void read_race (races race[], string path)
{
  int i, count = 0;
  char temp_char1[20];
  char temp_char2[20];
  char temp_char3[20];
  char temp_char4[20];
  char temp_char5[20];
  for (i=0; i<10; i++)
  {
        if (race[i].n_race != "")
                count += 1;
  }
  i=0;
  FILE * file = fopen(path.c_str(), "r");
  if (file !=0)
 
  {
        while (fscanf (file,"%s%s%s%s%s", temp_char1, &(temp_char2), &(temp_char3), &(temp_char4), &(temp_char5)) != EOF)
 
        {
              race[i].n_race = temp_char1;
              race[i].plane = temp_char2;
              race[i].track = temp_char3;
              race[i].out_place = temp_char4;
              race[i].in_place = temp_char5;
              i++;
        }
  }
}
 
void in_read (races race[])
{
        system("cls");
        string temp_path;
        cout<<"inter path = ";
        cin>>temp_path;
        read_race(race, temp_path);
}
 
void qsort_on_race (races temp_races[])
{
        system("cls");
        int count = 0, i,j;
        races temper;
        string temp;
        for (i=0; i<10;i++)
        {
                if (temp_races[i].n_race != "")
                        count += 1;
        }
        for (i=0; i<count-1;i++)
                for (j=i;j<count;j++)
                {
                        if(strcmp(temp_races[i].n_race.c_str(),temp_races[j].n_race.c_str())>0)
                        {
                                temper = temp_races[j];
                                temp_races[j] = temp_races[i];
                                temp_races[i] = temper;
                        }
                }
 
 
}

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
//---------------------------------------------------------------------------
 
#include <clx.h>
#include <iostream.h>
#include <string.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
 
float min (float, float);
float pl (float, float);
float del (float, float);
float um (float, float);
int main(int argc, char* argv[])
{
        char oper;
        float arg1,arg2;
        cout<<"vvedite peremennie 1,2\n";
        cin>>arg1>>arg2;
        cout<<"operation = ";
        cin>>oper;
        switch (oper)
        {
                case '-' : cout<<min(arg1,arg2)<<"\n"; break;
                case '+' : cout<<pl(arg1,arg2)<<"\n"; break;
                case '*' : cout<<um(arg1,arg2)<<"\n"; break;
                case '/' : cout<<del(arg1,arg2)<<"\n"; break;
                default : cout<<"error operation"; break;
        }
        system("pause");
        return 0;
}
 
float min (float arg1, float arg2)
{
        return arg1 - arg2;
}
float pl (float arg1, float arg2)
{
        return arg1 + arg2;
}
float del (float arg1, float arg2)
{
        if (arg2 == 0)
        {
                cout<<"na 0 delit' nelzya\n";
                return 0;
        }
        return arg1 / arg2;
}
float um (float arg1, float arg2)
{
        return arg1 * arg2;
}
//---------------------------------------------------------------------------

3)
Кликните здесь для просмотра всего текста
Описать структуру с именем "STUDENT" содержащий следующие поля: Фамилия и инициалы, номер группы, успеваемость (массив из 5 элементов (5 оценок))
Написать программу в следующим виде:
- ввод с клавиатуры данных в массив состоящих из 10 структур типа STUDENT затем упорядочить по возрастанию номера группы.
- вывод на дисплей фамилий и номера группы для всех студентов включенных в массив, если средний бал студента больше "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
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
//---------------------------------------------------------------------------
 
#include <clx.h>
#include <iostream.h>
#include <string.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
struct student
{
        string FIO;
        string Group;
        int progress[5];
        bool menium_result()
        {
                int i,temp;
                for (i=0; i<5;i++)
                {
                        temp = temp + progress[i];
                }
 
                if (temp / 5 >=4)
                {
                        return true;
                }
                else
                        return false;
 
        }
 
};
 
student add (student);
void student_add(student []);
void view_students(student []);
void view_students_mid_progress(student []);
void qsort_on_group(student[]);
 
 
int main(int argc, char* argv[])
{       bool flag_exit = false; // флаг выхода
        int j,i, operation;
        student students[10];
        while (flag_exit == false)
        {
                cout<<"manu student operation\n 1.-add new student\n 2.-view all student\n 3.-sort on group\n 4.-view list students on a medium progress 4\n 0. - exit\n operation - ";
                cin>>operation;
                system("cls");
                switch (operation)
                {
                        case 1:
                                student_add(students);
                        break;
                        case 2:
                             view_students(students);
                        break;
 
                        case 3:
                                qsort_on_group(students);
                        break;
 
                        case 4:
                             view_students_mid_progress(students);
                        break;
 
                        case 0: flag_exit = true; break;
                        default: cout<<"error operation\n"; break;
                }
 
        }
 
        return 0;
}
 
student add (student new_student)
{
        int i;
        cout<<"FIO = ";
        cin>>new_student.FIO;
        cout<<"Group = ";
        cin>>new_student.Group;
        for (i=0; i<5; i++)
        {
                cout<<"progress student N"<<i+1<<" = ";
                cin>>new_student.progress[i];
        }
        return new_student;
}
 
void student_add(student temp_students[])
{
student temp_student;
int i;
for (i=0; i<10; i++)
{
        if (temp_students[i].FIO == "")
        {
                temp_students[i] = add(temp_student);
                system("cls");
                break;
        }
}
 
}
 
void view_students (student temp_students[])
{
int i,j;
cout<<"--------------------------------------------------\n";
cout<<"|          FIO            | GROUP |R1|R2|R3|R4|R5|\n";
for(i=0; i<10;i++)
{
        if (temp_students[i].FIO == "")
                break;
        cout<<"|";
        cout.width(25);
        cout<<temp_students[i].FIO;
        cout<<"|";
        cout.width(7);
        cout<<temp_students[i].Group;
        cout<<"|";
        for (j=0;j<5;j++)
        {
                cout.width(2);
                cout<<temp_students[i].progress[j]<<"|";
        }
        cout<<"\n--------------------------------------------------\n";
}
}
 
void view_students_mid_progress(student temp_students[])
{
int i,j;
cout<<"--------------------------------------------------\n";
cout<<"|          FIO            | GROUP |R1|R2|R3|R4|R5|\n";
for(i=0; i<10;i++)
{
if (temp_students[i].FIO == "")
        break;
if(temp_students[i].menium_result() == true)
{
        cout<<"|";
        cout.width(25);
        cout<<temp_students[i].FIO;
        cout<<"|";
        cout.width(7);
        cout<<temp_students[i].Group;
        cout<<"|";
        for (j=0;j<5;j++)
        {
                cout.width(2);
                cout<<temp_students[i].progress[j]<<"|";
        }
        cout<<"\n--------------------------------------------------\n";
}
}
 
}
 
 
void qsort_on_group (student temp_students[])
{
        int count = 0, i,j;
        student temper;
        string temp;
        for (i=0; i<10;i++)
        {
                if (temp_students[i].Group != "")
                        count += 1;
        }
        for (i=0; i<count-1;i++)
                for (j=i;j<count;j++)
                {
                        if(strcmp(temp_students[i].Group.c_str(),temp_students[j].Group.c_str())>0)
                        {
                                temper = temp_students[j];
                                temp_students[j] = temp_students[i];
                                temp_students[i] = temper;
                        }
                }
 
 
}
 
//---------------------------------------------------------------------------

4)
Кликните здесь для просмотра всего текста
Имеются 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
//---------------------------------------------------------------------------
 
#include <clx.h>
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int proizv_diag(int **,int);
void view_mass (int **, int);
int main(int argc, char* argv[])
{
        int m,n,i,j;
        cout<<"insert borders for matrix 1,2\n";
        cin>>n>>m;
        system("cls");
        int **array1 = new int *[n];
        int **array2 = new int *[m];
        cout<<"elements matrix 1\n";
        for (i=0; i<n; i++)
        {
                array1[i] = new int[n];
                for (j=0; j<n; j++)
                {
                        cin>>array1[i][j];
                }
        }
        system("cls");
        cout<<"elements matrix 2\n";
        for (i=0; i<m; i++)
        {
                array2[i] = new int[m];
                for (j=0; j<m; j++)
                {
                        cin>>array2[i][j];
                }
        }
        if (proizv_diag(array1,n) > proizv_diag(array2,m))
                {
                cout<<"array1="<<proizv_diag(array1,n)<<"\n";
                view_mass(array1,n);
                }
        else
                {
                cout<<"array2="<<proizv_diag(array2,m)<<"\n";
                view_mass(array2,m);
                }
        system ("pause");
        return 0;
}
int proizv_diag (int **array,int size)
{
        int i,result;
        result = array[0][0];
        for (i=1; i<size; i++)
        {
                result = result * array[i][i];
        }
        return result;
}
void view_mass (int **array, int size)
{
        int i,j;
        for (i=0; i<size; i++)
        {
                for (j=0; j<size; j++)
                {
                        cout<<array[i][j]<<" ";
                }
                cout<<"\n";
        }
}
//---------------------------------------------------------------------------

5)
Кликните здесь для просмотра всего текста
Имеются два одномерных массива разной длины. Требуется подсчитать для каждого массива сумму его положительных элементов, причем вычисленные суммы оформить в виде функции и найти среднее арифметическое этих сумм.
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
//---------------------------------------------------------------------------
 
#include <clx.h>
#include <iostream.h>
#pragma hdrstop
 
//---------------------------------------------------------------------------
int summ_array (int[],int);
#pragma argsused
int main(int argc, char* argv[])
{
        int n,m,i;
        cout<<"n,m - borders massiv's\n";
        cin>>n>>m;
        int *array1 = new int[n];
        int *array2 = new int[m];
        cout<<"insert array1 elements\n";
        for (i=0; i<n; i++)
        {
                cin>>array1[i];
        }
        system("cls");
        cout<<"insert array2 elements\n";
        for (i=0; i<m; i++)
        {
                cin>>array2[i];
        }
        cout<<"mid_arr1_arr2 = "<<(summ_array(array1,n)+summ_array(array2,m))/2<<"\n";
        system("pause");
        return 0;
}
 
int summ_array(int temp_array[], int size)
{
        int i,temp_result=0;
        for (i=0; i<size; i++)
        {
                if (temp_array[i]>0)
                        temp_result+=temp_array[i];
        }
        return temp_result;
}
//---------------------------------------------------------------------------

Заранее спасибо!!!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kulgar
 Аватар для Kulgar
506 / 191 / 8
Регистрация: 07.08.2013
Сообщений: 814
16.06.2014, 15:06     Блок схемы для программ С++ #2
Во-первых, приведён код консольных приложений - не та ветка форума.
Во-вторых, если Вы сами написали эти программы, то составить блоксхемы не составит никакого труда. А если не сами.... "футакимбыть.жпег"
В-третьих, задания явно обучающего формата - так и учитесь пока есть возможность.
Всем добра.
dimartm
0 / 0 / 0
Регистрация: 04.02.2014
Сообщений: 23
16.06.2014, 15:29  [ТС]     Блок схемы для программ С++ #3
Эти программы писал не я, у меня завтра экзамен, а у меня ни фига не сделано, если тебе не сложно - сделай, буду благодарен, а если не можешь...
Kulgar
 Аватар для Kulgar
506 / 191 / 8
Регистрация: 07.08.2013
Сообщений: 814
16.06.2014, 15:42     Блок схемы для программ С++ #4
dimartm, эээээ..... я вот одного не могу понять: с каких пор стало модным просить помощи в учебных вопросах в интернете у совершенно не знакомых людей? А как же педагоги? однокурсники? просто друзья?
Ваше положение (многие его формации) мне знакомо. Однако, спешу заметить, что Вы делаете что угодно, но только не самостоятельно решаете вопрос.
Я глубоко убеждён, что каждый человек должен заниматься своим делом. А равно как и в том, что не совим делом не один человек не должен заниматься. Никому от этого хорошо не будет.
Нет, помочь не сложно. ПомочьСделать за Вас не правильно.
Yandex
Объявления
16.06.2014, 15:42     Блок схемы для программ С++
Ответ Создать тему
Опции темы

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