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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
GavrilovRM
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 4
#1

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

31.05.2013, 00:10. Просмотров 1218. Ответов 10
Метки нет (Все метки)

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

Заранее благодарен за любое содействие в решении моего вопроса.

Собственно вот алгоритм:
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 минут
Тема все еще актуальна
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 00:10     Работа с блок - схемами (Класс)
Посмотрите здесь:

Программой, содержащая класс, структуры и функции работы с файлами. Синтаксических ошибок нет, но работа прерывается и ничего не выводится на экран. C++
C++ Оцените класс больших чисел класс big_int
C++ Работа с файлом через класс
C++ Работа с классами (описать класс)
C++ Класс (работа с текстовым файлом)
C++ Класс объявление с элементом типа класс Текст
Работа с классами. Разработать класс - космический корабль C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Miwa123
37 / 37 / 1
Регистрация: 16.04.2013
Сообщений: 317
Записей в блоге: 1
31.05.2013, 00:41     Работа с блок - схемами (Класс) #2
блох схему для класса не создают, ее создают для программ и подпрограмм.(нашел на форуме)
видимо функции члены должны быть представлены как подпрограммы!
Kuzia domovenok
1889 / 1744 / 117
Регистрация: 25.03.2012
Сообщений: 5,917
Записей в блоге: 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
Антикодер
631 / 532 / 27
Регистрация: 15.09.2012
Сообщений: 2,479
01.06.2013, 15:49     Работа с блок - схемами (Класс) #5
Так вы скажите, для начала, с чего начинается разработка программы?

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

Какое проектирование вы будете использовать при разработке программы нисходящее или восходящее?
alsav22
5415 / 4811 / 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
Антикодер
631 / 532 / 27
Регистрация: 15.09.2012
Сообщений: 2,479
01.06.2013, 20:52     Работа с блок - схемами (Класс) #8
Цитата Сообщение от alsav22 Посмотреть сообщение
Делаете для main() блок-схему, и на каждый метод класса - по блок-схеме.
блок-схему к методам set_name и get_group?
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.06.2013, 20:59     Работа с блок - схемами (Класс) #9
Цитата Сообщение от XRuZzz Посмотреть сообщение
блок-схему к методам set_name и get_group?
В чём проблема? Есть функция (хоть с путым телом), значит и блок-схему можно нарисовать.
XRuZzz
Антикодер
631 / 532 / 27
Регистрация: 15.09.2012
Сообщений: 2,479
01.06.2013, 21:18     Работа с блок - схемами (Класс) #10
Цитата Сообщение от alsav22 Посмотреть сообщение
В чём проблема? Есть функция (хоть с путым телом), значит и блок-схему можно нарисовать.
только кому она нужна
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2013, 21:22     Работа с блок - схемами (Класс)
Еще ссылки по теме:

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

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

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

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