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

классы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Блокировка приложений. http://www.cyberforum.ru/cpp-beginners/thread268460.html
Доброго времени суток. необходим совет. Коротко о задаче .. программа должна просматривать запускаемые процессы и в случаи если они обращаются к определенным библиотекам прекращать их работу. поясню для чего - надо что бы на компьютере не запускались игры, но при этом без проблем работали офисные программы и приложения. Нужен совет по поводу WinAPI ф-ций, какие лучше использовать для сей...
C++ Потоки В процессе выполнения задачи возникла проблема чтения объектов из потока и сохранения их в массив: cout << "Rasstojanie = " << xx <<endl; еще была попытка сделать так: infile>>dist но читает только последние введенные значения и нужно делать все равно через массив, также интересует вопрос добавления, удаления и замены объектов в потоке. Всем большое спасибо за участие=) #include... http://www.cyberforum.ru/cpp-beginners/thread268445.html
Шаблон и выделение памяти C++
#include <iostream> template<class T> T CreateArray(T a, int n) { a = new T ; // ошибка: double* = double** return a; } int main() {
C++ размеры файлов данного подкаталога
Подстажите пожалуйста, как мне найти размеры файлов данного подкаталога, какими функциями и если возможно то код
C++ Посчитать выражение, введенное в строку http://www.cyberforum.ru/cpp-beginners/thread268381.html
Что-то запутался, помогите пожалуйста добрым кодом на следующую задачу: Пользователь вводит с клавиатуры арифметическое выражение (используемые операции только сложение и вычитание). Посчитать его значение. Если в выражении встречаются другие символы, выдать сообщение, что выражение введено не корректно.
C++ среднее арифметическое на Pascal ABC Помогите найти среднее арифметическое первых 50-ти нечётных натуральных чисел, на паскале абс подробнее

Показать сообщение отдельно
Vladimir.
155 / 155 / 10
Регистрация: 24.11.2009
Сообщений: 375
02.04.2011, 11:15     классы
Общий принцип:
костяк
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
#include<assert.h>
#include<iostream>
#include<string>
static const int N = 3;             //количество "карточек" в массиве
static const int char_size = 256;   
 
class note{
    public:
        char family_name[char_size];
        int phone;
        // и остальное.
    private:
        //nothing.
};
 
void add(note* const a, const int i);   //заполняет i-тую "карточку"
void search(const char* const person, 
            const note* const a);       //Поиск карточки по фамилии
void gsort(note* const a);              //очевидно сортировка.          
 
int main(void){
    note a[N];
    //заполняем:
    for(int i = 0; i<N; i++) add(a,i);
    
    //сортируем:
    std::cout<<"==================================="<<std::endl;
    for(int i = 0;i<N; i++)
        std::cout<<a[i].family_name<<'\t'<<a[i].phone<<std::endl;
    
    gsort(a);
    
    std::cout<<"==================================="<<std::endl;
    for(int i = 0;i<N; i++)
        std::cout<<a[i].family_name<<'\t'<<a[i].phone<<std::endl;
        
        
    //Ищем человека:
    std::cout<<"кого ищем? : ";
    char person[char_size];
    std::cin>>person;
    
    search(person,a);
    
return 0;
}
 
void add(note* const a, const int i){
    assert((a!=NULL)&&(i>=0)&&(i<N));
    
    //тут красивые запросы с проверкой вводимых данных.
    //у нас - фамилия и телефон через пробел.
    std::cin>>a[i].family_name>>a[i].phone;
}
 
void search(const char* const person, const note* const a){
    assert( (a!=NULL)&&(person!=NULL)&&(N>0) );
    //ниже должно быть красивое оформление и вывод всех данных
    // по найденой карточке.
    for(int i = 0;i<N; i++){
        if(!strcmp(a[i].family_name, person)){
            std::cout<<"найдено :";
            std::cout<<a[i].family_name<<'\t'<<a[i].phone<<std::endl;
            return;
        }
    }
    std::cout<<"не найдено.";
}
 
 
void gsort(note* const a){
    assert((a!=NULL)&&(N>0));
    //гномья, разнообразия для:
    int iterator = 1;
    while(iterator<N){
        if (a[iterator-1].phone > a[iterator].phone)
        {
            iterator++;}
        else{
            //обмен значениями (лучше написать функцию swap(a,b))
            char str[char_size];
            std::strcpy(str,a[iterator].family_name);
            std::strcpy(a[iterator].family_name,
                                a[iterator-1].family_name);
            std::strcpy(a[iterator-1].family_name,str);
            
            int tmp = a[iterator].phone;
            a[iterator].phone = a[iterator-1].phone;
            a[iterator-1].phone = tmp;
            //продолжаем:
            
            iterator--;
            if (iterator == 0) iterator = 1;
        }
    }
    //отсортировано по убыванию.
}

Осталось расширить класс именами, должностями,праздниками. Привести ввод/вывод в нормальное состояние менюшки по желанию и прочие "красивости".
зы: код рабочий.
 
Текущее время: 14:49. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru