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

Помощь по задаче(структура, двойная сортировка) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Много раз ввожу данные http://www.cyberforum.ru/cpp-beginners/thread815934.html
Есть такой кусок кода: void input_arr(int* arr,int size) { system("cls"); cout<<"Введiть число у двiйковiй системi числення:"<<endl; int tmp; int j = 0; for(int i = 0;i < size ; i++){ tmp = _getch() - '0'; cout<<tmp;
C++ из с++ builder в с++ Здравствуйте. У меня написан класс и программа в С++ builder, нужно переписать в С++ (по стандарту С++). Если переписать класс, то саму программу тоже нужно будет переписать? Помогите. Кто готов переписать за денежное вознаграждение пишите в личку или аську(409911316) желательно сразу укажите стоимость. вот код класса #pragma package(smart_init) #pragma resource "*.dfm" class Ttime { ... http://www.cyberforum.ru/cpp-beginners/thread815923.html
Пояснить конструктор C++
Вот такая вешчь в конструкторе, а что она означает и как работает? TClass::TClass(float x) { TClass::x=x; }
Массив: сформировать массивы T и S соответственно из элементов матриц W и Z, больших заданного числа Р и M. C++
Задать значения целочисленным элементам матриц W = {wij} и Z = {zij}, где i = 0, 1, 2; j = 0, 1, 2,…, 7 и сформировать массивы T и S соответственно из элементов матриц W и Z, больших заданного числа Р и M. #include <iostream> #include <clocale> using namespace std; void viborka(int&,int); int main() { int mas,max1,max2,i,j; setlocale (LC_ALL, "russian");
C++ Составить программу расчета значений полинома http://www.cyberforum.ru/cpp-beginners/thread815876.html
Составить программу расчета значений полинома P(x)=a0+a1x+a2x^2+...+anx^n где n – порядок полинома, коэффициенты ai и значение x задаются вводом с клавиатуры.
C++ Запуск .ехе файлов Изучаю C++ полгода.Программирую на Visual Studio 2010. Windows XP,7.Недавно познакомился с потоковым вводом/выводом, и задался вопросом, можно ли запустить удаленный файл .ехе (путь я знаю),при помощи программы на С++?Если можно, то пожалуйста приведите пример кода. подробнее

Показать сообщение отдельно
roman_stuffy
2 / 2 / 0
Регистрация: 18.12.2012
Сообщений: 36
22.03.2013, 22:30     Помощь по задаче(структура, двойная сортировка)
В общем, парни, совсем запутался и запарился) нужна помощь по этой задаче:
11. Сформировать массив структур, каждый элемент которого содержит следующие поля:
• шифр подразделения, содержащий не более трёх символов (вво-дим);
• фамилия, имя, отчество (вводим);
• год рождения (вводим);
• образование, например, 0 – неоконченное базовое, 1 – базовое, 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
//worker.h
#ifndef WORKER_H
#define WORKER_H
 
const int MAX_MEN=5; // MAX_MEN   - количество сотрудников
int NEEDSHIFR=0,     // NEEDSHIFR - интересуемый вводимый шифр
    k=0;             // k - для кол-ва записей с интересующим шифром
 
struct MYDATE // MYDATE - структура даты 
{
    char day;
    char month;
    int  year;
};
 
struct WORKER // WORKER - структура сотрудников
{
    int  shifr;
    char name[20];
    int  birth;
    int  aduc;
 
};
 
class CLASS_WORKERS
{
private:
    WORKER x[MAX_MEN]; // x[MAX_MEN] - массив записей
    bool  SH[c];       // SH[c]      - массив для "правда" или "ложь"
public:
    void Input();
    void Sort (int,int);
    void Print();
 
}
#endif
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
//worker.cpp
#include <iostream>
#include <windows.h>
#include "worker.h"
;
using namespace std;
 
HANDLE hOUTPUT = GetStdHandle(STD_OUTPUT_HANDLE);
 
void CLASS_WORKERS::Input()
{
    cout<<"Введите данные сотрудников :"<<endl;
    for(int i=0;i<MAX_MEN; ++i)  //i - счётчик цикла
    {
        cout<<"Сотрудник №"<<(i+1)<<endl;
 
        cout<<"Шифр: ";
        cin>>x[i].shifr;
        cout<<endl;
 
        cout<<"ФИО: ";
        cin>>x[i].name;
        cout<<endl;
 
 
        cout<<"Дата рождения: ";
        cin>>x[i].birth;
        cout<<endl;
 
        cout<<"Образование: ";
        cin>>x[i].aduc;
        cout<<endl;
        
        cout<<"Введите интересуемый вас шифр:"<<endl;       
        cin>>NEEDSHIFR;
 
        int const  ;      
        for(int p=0;p<MAX_MEN;++p)  //p - счётчик цикла
        {
            if(x[p].shifr == NEEDSHIFR ) 
            {
                k=k++;
                SH[p]=1;
            }   
            else
            {
                SH[p]=0;
            }
        }
    }
 
 
 
}
 
void CLASS_WORKERS::Print()
{
    for(int i=0;i<MAX_MEN; ++i)
    {
        SetConsoleTextAttribute(hOUTPUT,FOREGROUND_GREEN);
        cout<<"Сотрудник №"<<(i+1)<<endl;
        SetConsoleTextAttribute(hOUTPUT,FOREGROUND_RED | FOREGROUND_BLUE | FOREGROUND_GREEN );
        
    }
 
    
}
 
void Sort(int size)
{
    int tmp, i, j;
 
    for(i = 0; i < size - 1; ++i) // i - номер прохода
    {            
        for(j = 0; j < size - 1; ++j) // внутренний цикл прохода
        {     
            if (x[j+1].aduc < x[j].aduc) 
            {
                tmp = x[j+1].aduc; 
                x[j+1].aduc = x[j].aduc; 
                x[j].aduc = tmp;
            }
        }
    }
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//main.cpp
#include <iostream>
#include "worker.h"
;
using namespace std;
 
int main()
{
    setlocale(LC_CTYPE,".1251"); // для вывода текста на русском языке
    
    CLASS_WORKERS b;
    
    b.Input();
    //b.Sort();
    b.Print();
    
 
return 0;
}
перед "using namespace std" стоят ";", потому что без них выскакивает ошибка.

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