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

Работа с блок - схемами (Класс) - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
GavrilovRM
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 4
31.05.2013, 00:10     Работа с блок - схемами (Класс) #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
// Itog.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
using namespace std;
 
class Student{
private:
    char name[50];            // Поле имени студента
    int group;                // Поле группы студента
    int marks[5];             // Поле оценок студента
 
public:
    
    friend void init_students(Student *a);
 
    void set_group()                        // Функция для установки группы
    {
        cin>>group;
    }
 
    void set_marks()                       // Функция для установки оценок
    {
        for(int i = 0; i < 5; i++)
        {
            cin>>marks[i];
        }
    }
 
    void set_name()                     // Функция для установки имени
    {
        gets(name);
    }
 
    double get_average()               // Функция для получения среднего значения
    {
        double average = 0;
 
        for(int i = 0; i < 5; i++)
        {
            average += marks[i];
        }
 
        average /= 5;
 
        return average;
    }
 
    bool good_marks()               //Функция, возвращающая true если найдены оценки 4 и 5 и false в противном случае
    {
        for(int i = 0; i < 5; i++)
        {
            if(marks[i] == 4 && marks[i] == 5)
            {
                return true;
            }
        }
 
        return false;
    }
 
    char *get_name()             //Функция для возврата имени
    {
        return name;
    }
 
    int get_group()            //Функция, для возврата номера группы
    {
        return group;
    }
 
};
 
void init_students(Student *a)
{
    cout<<"Enter students names"<<endl;                       // Инициализация имен студентов
    for(int i = 0; i < 10; i++)
    {
        cout<<i+1<<") ";
        a[i].set_name();                                    // Функция set_name() устанавливает имя студента
    }
 
    
    for(int i = 0; i < 10; i++)
    {
        cout<<"Enter "<<a[i].get_name()<<"`s group"<<endl;   // Инициализация групп студентов
        a[i].set_group();                                    // Функция set_group() устанавливает группу студента
    }
 
    for(int i = 0; i < 10; i++)
    {
        cout<<"Enter "<<a[i].get_name()<<"`s marks"<<endl;  // Инициализация оценок студентов
        a[i].set_marks();                                  // Функция set_marks() устанавливает оценки студентов
    }
}
 
void regularize(Student *a)
{
    for(int i = 1; i < 10; i++)                         //Алгоритм сортировки
    {
        if(i == 0)
        {
            i = 1;                     
        }
 
        if(a[i-1].get_average() > a[i].get_average())  // функция get.average() возвращает средний балл студента
        {
            
            Student r;
 
            r = a[i];
            a[i] = a[i-1];                           // При помощи переменной r типа Student можно легко менять местами студентов
            a[i-1] = r;
 
            i-=2;
        }
    }
}
 
void show_students(Student *a)
{
    bool fl = false;                                              //Переменная, которая будет отслеживать есть ли ученики с баллом 4 и 5
 
    for(int i = 0; i < 10; i++)
    {
        if(a[i].good_marks())                                      //Функция good_marks() возвращает значение true, если есть баллы 4 и 5
        {
            cout<<"\nGroup: "<<a[i].get_group()<<" Student: ";   //Вывод имени группы студента
            puts(a[i].get_name());                                 // и его имени
            
            fl = true;                                            //Изменение булевой переменной при обнаружении подходящих студентов
        }
    }
 
    if(fl == false)
    {
        cout<<"There aren`t students with makrs 4 or 5"<<endl;  // вывод сообщение об ошибке, если не удалось найти студентов
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    Student students[10];                 //Объявление массива объектов типа Student
 
    init_students(students);             //Инизиализация каждого студента
 
    regularize(students);               //Сортировка массива по возрастанию среднего балла
 
    show_students(students);          //Вывод студентов имеющих 4 и 5 баллов
 
    system("pause");
    return 0;
}
Добавлено через 2 часа 36 минут
Тема все еще актуальна
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
31.05.2013, 00:41     Работа с блок - схемами (Класс) #2
блох схему для класса не создают, ее создают для программ и подпрограмм.(нашел на форуме)
видимо функции члены должны быть представлены как подпрограммы!
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
31.05.2013, 02:07     Работа с блок - схемами (Класс) #3
Цитата Сообщение от Miwa123 Посмотреть сообщение
блох схему для класса не создают, ее создают для программ и подпрограмм.(нашел на форуме)
видимо функции члены должны быть представлены как подпрограммы!
Нет, блок-схему создают для престарелых учителей, которые отстали от жизни лет на 15-20.
Блок-схемы не нужны. И не только для классов.
Блок-схемы это пережиток времён, когда программировали на всяких фортранах, а то и даже на чистых ассемблерах. Времён, когда использовать десятки, сотни "goto" в коде было нормой.
Вот тогда, чтобы хоть как-то улучшить читаемость монструозных неструктурированных программ с изобилием goto, и использовали блок-схемы.
Они тогда действительно облегчали жизнь программистам тем, что вместо каши из меток и goto, программист видел своими глазами структуру программы.
Сейчас же для хорошо отформатированного кода на современном высокоуровневом языке блок-схемы не требуются. Т.к. никакой новой более понятной информации о программе они не дадут.
GavrilovRM
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 4
01.06.2013, 15:24  [ТС]     Работа с блок - схемами (Класс) #4
Может кто-то привести пример?
А то я реально не понимаю как составить такую схему =(
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
01.06.2013, 15:49     Работа с блок - схемами (Класс) #5
Так вы скажите, для начала, с чего начинается разработка программы?

Добавлено через 6 минут
Цитата Сообщение от GavrilovRM Посмотреть сообщение
что классы не представляются в блок схемах
представляются, только они никому не нужны, при хорошо оформленном классе(класс в котором каждый метод имеет не более 100 строк логики и название метода четко описывает его функцию)

Какое проектирование вы будете использовать при разработке программы нисходящее или восходящее?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.06.2013, 15:50     Работа с блок - схемами (Класс) #6
Делаете для main() блок-схему, и на каждый метод класса - по блок-схеме.
GavrilovRM
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 4
01.06.2013, 20:12  [ТС]     Работа с блок - схемами (Класс) #7
Спасибо, тему можно закрывать
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
01.06.2013, 20:52     Работа с блок - схемами (Класс) #8
Цитата Сообщение от alsav22 Посмотреть сообщение
Делаете для main() блок-схему, и на каждый метод класса - по блок-схеме.
блок-схему к методам set_name и get_group?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.06.2013, 20:59     Работа с блок - схемами (Класс) #9
Цитата Сообщение от XRuZzz Посмотреть сообщение
блок-схему к методам set_name и get_group?
В чём проблема? Есть функция (хоть с путым телом), значит и блок-схему можно нарисовать.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
01.06.2013, 21:18     Работа с блок - схемами (Класс) #10
Цитата Сообщение от alsav22 Посмотреть сообщение
В чём проблема? Есть функция (хоть с путым телом), значит и блок-схему можно нарисовать.
только кому она нужна
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2013, 21:22     Работа с блок - схемами (Класс)
Еще ссылки по теме:

C++ Класс матрицы работа с файлом
Работает ли указатель на базовый класс исключения, когда попадает в блок catch C++
Класс стек (работа с файлами) C++

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

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.06.2013, 21:22     Работа с блок - схемами (Класс) #11
Цитата Сообщение от XRuZzz Посмотреть сообщение
только кому она нужна
Им.
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
блок-схему создают для престарелых учителей, которые отстали от жизни лет на 15-20.
Блок-схемы не нужны. И не только для классов.
Yandex
Объявления
01.06.2013, 21:22     Работа с блок - схемами (Класс)
Ответ Создать тему
Опции темы

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