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

Описать структуру с именем PRIMER - C++

Восстановить пароль Регистрация
 
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
24.03.2013, 12:36     Описать структуру с именем PRIMER #1
Добрый день всем. Очень долго пытался написать программу по шаблонам и тд и тп, но ничего толкового не выходило. Здесь тоже с именем PRIMER ничего нет. вот задачка.

Описать стракт с именем PRIMER cо следующими полями:
номер примера;
название темы, отраженной в примере;
свойство примера (УСТНЫЙ=10; ПРОСТОЙ=20; СЛОЖНЫЙ=40)

Написать программу, которая выполняет : ввод с клавиатуры данных в массив из 8 элементов типа PRIMER; записи должны быть размещены в алф. порядке по названиям тем. ; вывод на экран примеров темы названия которой введено с клавиатуры( написано коряво, решил сюда также написать, ибо не понимаю чего от меня хотят.) ; если такой темы нет, выдать на экран соответствующее сообщение.

Вообще, у меня загвоздка в том, что я не понимаю нафига здесь указана сложность. То есть, когда я ввожу тему, то в скобках должна быть указана сложность примера? Или как? объясните, добрые люди) конечно, было бы отлично если бы вы написали код, для многих это полчаса, при распитии чая)

Добавлено через 57 минут
Ребят, кто полностью код напишет, тому карма большая и теплая =)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 12:36     Описать структуру с именем PRIMER
Посмотрите здесь:

C++ Описать структуру с именем ZNAK
Описать структуру с именем Znak C++
Описать структуру с именем TRAIN C++
C++ Описать структуру с именем MARSH
Описать структуру с именем PRICE C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
buy
4 / 4 / 0
Регистрация: 12.03.2013
Сообщений: 24
24.03.2013, 13:37     Описать структуру с именем PRIMER #2
C++
1
2
3
4
5
6
7
8
9
10
struct Primer{
int nomer;
char nazvanieTemu[20];
int slojnost;
}
 
//.....
Primer ob[8];
for(int i=0;i<8;i++)
cin>>ob[i].nomer>>ob[i].nazvanieTemu>>ob[i].slojnost;
сложность - может это количество балов за его решение!?..
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
24.03.2013, 20:47  [ТС]     Описать структуру с именем PRIMER #3
хм, даже если так, какой в них смысл? не проще ли запилить массивом с 3 эл-ами?

Добавлено через 2 часа 14 минут
Ребят, никому кармы разве не надо ?)

Добавлено через 4 часа 12 минут
ну же. почему вам так сложно помочь =(
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
25.03.2013, 00:28     Описать структуру с именем PRIMER #4
bednyaga, вот смотри

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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <locale>               //для работы с юникод 
#include <string>
using namespace std;
 
#define SIZE 2                  
 
struct Primer{
    int nomer;
    string Tema;
    enum difficulty{oral = 10, simple = 20, hard = 40};
    difficulty flag;
 
    difficulty choice(int value)
    {
        difficulty mode;
        switch(value){
            case 10:
                mode = Primer::oral;
                break;
            case 20:
                mode = Primer::simple;
                break;
            case 40:
                mode = Primer::hard;
                break;
        }
 
        return mode;
    }
 
    string print_choice(difficulty value)
    {
        string str;
        switch(value){
            case Primer::oral:
                str = "oral";
                break;
            case Primer::simple:
                str = "simple";
                break;
            case Primer::hard:
                str = "hard";
                break;
        }
 
        return str;
    }
 
    void input()
    {
        wcout << L"\nВведите номер примера: ";
            cin >> nomer;
 
        wcout << L"Введите название темы: ";
            cin.ignore();
            getline(cin, Tema, '\n');
 
        wcout << L"Введите свойство примера (10, 20, 40): ";
            int value;
            cin >> value;
            flag = choice(value);
    }
 
    void output()
    {
        wcout << L"\nНомер примера: " << nomer;
        wcout << L"\nНазвание темы: ";
        cout << Tema;
        wcout << L"\nСвойство примера: ";
        cout << print_choice(flag) << "\n";
    }
 
    bool find_Tema(string value)
    {
        if(Tema == value)
            return true;
        else
            return false;
    }
}; 
 
void find(Primer *_mas)
{
    int choice;
    string them;
    bool flag = false;
 
    do{
        wcout << L"\nВведите название темы: ";
            cin.ignore();
            getline(cin, them, '\n');
 
        for(int i = 0; i < SIZE; ++i)
        {
            if(_mas[i].find_Tema(them))
            {
                flag = true;
                wcout << L"\nТема найдена:";
                _mas[i].output();
                cout << "\n";
            }
        }
 
        if(!flag)
            wcout << L"Тема не найдена!\n";
 
        wcout << L"Продолжить поиск (1 - да, 2 - нет)? ";
            cin >> choice;
 
    }while(choice != 2);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));            //для вывода юникод строк
 
    Primer *mas = new Primer[SIZE];
 
    /*вводим данные*/
    wcout << L"Введите данные о примерах: ";
    for(int i = 0; i < SIZE; ++i)
        mas[i].input();
 
    /*сортировка по алфавиту*/
    for(int i = 0; i < SIZE - 1; ++i)
        for(int j = i + 1; j < SIZE; ++j){
            if(mas[i].Tema > mas[j].Tema)
            {
                Primer tmp = mas[i];
                mas[i] = mas[j];
                mas[j] = tmp;
            }
        }
 
    /*выводим данные*/
    wcout << L"\nВывод данных о примерах:";
    for(int i = 0; i < SIZE; ++i)
        mas[i].output();
 
    /*ищем тему*/
    find(mas);
 
    delete []mas;                       //освобождаем память
    cout << "\n\n";
    return 0;
}
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
25.03.2013, 04:47  [ТС]     Описать структуру с именем PRIMER #5
ух ты, спасибо тебе доброчеловеческое ^_^ как хорошо, что еще остались программеры хорошие))

Добавлено через 12 минут
Цитата Сообщение от yoghurt92 Посмотреть сообщение
bednyaga, вот смотри

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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <locale>               //для работы с юникод 
#include <string>
using namespace std;
 
#define SIZE 2                  
 
struct Primer{
    int nomer;
    string Tema;
    enum difficulty{oral = 10, simple = 20, hard = 40};
    difficulty flag;
 
    difficulty choice(int value)
    {
        difficulty mode;
        switch(value){
            case 10:
                mode = Primer::oral;
                break;
            case 20:
                mode = Primer::simple;
                break;
            case 40:
                mode = Primer::hard;
                break;
        }
 
        return mode;
    }
 
    string print_choice(difficulty value)
    {
        string str;
        switch(value){
            case Primer::oral:
                str = "oral";
                break;
            case Primer::simple:
                str = "simple";
                break;
            case Primer::hard:
                str = "hard";
                break;
        }
 
        return str;
    }
 
    void input()
    {
        wcout << L"\nВведите номер примера: ";
            cin >> nomer;
 
        wcout << L"Введите название темы: ";
            cin.ignore();
            getline(cin, Tema, '\n');
 
        wcout << L"Введите свойство примера (10, 20, 40): ";
            int value;
            cin >> value;
            flag = choice(value);
    }
 
    void output()
    {
        wcout << L"\nНомер примера: " << nomer;
        wcout << L"\nНазвание темы: ";
        cout << Tema;
        wcout << L"\nСвойство примера: ";
        cout << print_choice(flag) << "\n";
    }
 
    bool find_Tema(string value)
    {
        if(Tema == value)
            return true;
        else
            return false;
    }
}; 
 
void find(Primer *_mas)
{
    int choice;
    string them;
    bool flag = false;
 
    do{
        wcout << L"\nВведите название темы: ";
            cin.ignore();
            getline(cin, them, '\n');
 
        for(int i = 0; i < SIZE; ++i)
        {
            if(_mas[i].find_Tema(them))
            {
                flag = true;
                wcout << L"\nТема найдена:";
                _mas[i].output();
                cout << "\n";
            }
        }
 
        if(!flag)
            wcout << L"Тема не найдена!\n";
 
        wcout << L"Продолжить поиск (1 - да, 2 - нет)? ";
            cin >> choice;
 
    }while(choice != 2);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));            //для вывода юникод строк
 
    Primer *mas = new Primer[SIZE];
 
    /*вводим данные*/
    wcout << L"Введите данные о примерах: ";
    for(int i = 0; i < SIZE; ++i)
        mas[i].input();
 
    /*сортировка по алфавиту*/
    for(int i = 0; i < SIZE - 1; ++i)
        for(int j = i + 1; j < SIZE; ++j){
            if(mas[i].Tema > mas[j].Tema)
            {
                Primer tmp = mas[i];
                mas[i] = mas[j];
                mas[j] = tmp;
            }
        }
 
    /*выводим данные*/
    wcout << L"\nВывод данных о примерах:";
    for(int i = 0; i < SIZE; ++i)
        mas[i].output();
 
    /*ищем тему*/
    find(mas);
 
    delete []mas;                       //освобождаем память
    cout << "\n\n";
    return 0;
}

спасибо тебе большое, но зачем ты используешь L"" и wcout? wcout насколько знаю нужен для юникода.а если я в линуксе прогаю? это нужно? щас просто не смогу компильнуть задачу, вечером отпишу, если ошибки будет выдавать.
а так, вроде бы все понятно. только вот в wcout и L"Введите данные о примерах: " все такие фразы не понятны
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
25.03.2013, 09:12     Описать структуру с именем PRIMER #6
bednyaga, если линукс, то можешь убрать.

Добавлено через 7 минут
Цитата Сообщение от bednyaga Посмотреть сообщение
"Введите данные о примерах: " все такие фразы не понятны
а что тут не понятного? сначала вводятся данные о примерах, затем они сортируются по алфавиту, после выводятся на экран, затем пользователю предлагается найти тему по названию, если темя не найдена, выводится соответствующее сообщение и идет вопрос, продолжать поиск или нет. А wcout да, для юникода, просто убери тогда

C++
1
wcout.imbue(locale(".866"));            //для вывода юникод строк
и сделай так для каждого вывода

C++
1
cout << "...."
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
26.03.2013, 18:57  [ТС]     Описать структуру с именем PRIMER #7
yoghurt92, слушай, просто огромное спасибо за прогу, но не мог бы ты чуток добавить комментов? для тебя это дело 5-10 минут думаю) а то не каждый перваш пишет такими кодами программы)
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
26.03.2013, 19:07     Описать структуру с именем PRIMER #8
bednyaga, ну как тебе сказать, я сам не далеко ушел, тоже учусь, тут азы) подожди

Добавлено через 8 минут
bednyaga, так думаю все будет понятно

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
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <locale>               //для работы с юникод 
#include <string>
using namespace std;
 
#define SIZE 2                  //размер массива         
 
struct Primer{
    int nomer;                                                  //номер примера
    string Tema;                                                //название темы
    enum difficulty{oral = 10, simple = 20, hard = 40};         //перечисления(отображает сложность)
    difficulty flag;                                            //переменная для хранения заданной сложности
 
    //процедура инициализации сложности по введенному значению
    difficulty choice(int value)
    {
        difficulty mode;
        switch(value){
            case 10:
                mode = Primer::oral;
                break;
            case 20:
                mode = Primer::simple;
                break;
            case 40:
                mode = Primer::hard;
                break;
        }
 
        return mode;
    }
 
    //вывод сложности примера
    string print_choice(difficulty value)
    {
        string str;
        switch(value){
            case Primer::oral:
                str = "oral";
                break;
            case Primer::simple:
                str = "simple";
                break;
            case Primer::hard:
                str = "hard";
                break;
        }
 
        return str;         //возвращаем выбранную сложность
    }
 
    //считваем данные о примере с клавиатуры 
    void input()
    {
        wcout << L"\nВведите номер примера: ";
            cin >> nomer;
 
        wcout << L"Введите название темы: ";
            cin.ignore();
            getline(cin, Tema, '\n');
 
        wcout << L"Введите свойство примера (10, 20, 40): ";
            int value;
            cin >> value;
            flag = choice(value);
    }
 
    //выводим на консоль данные о примере
    void output()
    {
        wcout << L"\nНомер примера: " << nomer;
        wcout << L"\nНазвание темы: ";
        cout << Tema;
        wcout << L"\nСвойство примера: ";
        cout << print_choice(flag) << "\n";
    }
 
    //булевая функция(предикат) для поиска соответствия среди всех тем
    bool find_Tema(string value)
    {
        if(Tema == value)
            return true;
        else
            return false;
    }
}; 
 
//процедура поиска темы примера(название вводим с клавиатуры)
void find(Primer *_mas)
{
    int choice;
    string them;
    bool flag = false;              //булевая переменная
 
    //цикл с постусловием(завершается пользователем)
    do{
        wcout << L"\nВведите название темы: ";
            cin.ignore();
            getline(cin, them, '\n');
 
        //осуществляем поиск по всему массиву примеров
        for(int i = 0; i < SIZE; ++i)
        {
            //если темы найдена выводим данный
            if(_mas[i].find_Tema(them))
            {
                flag = true;
                wcout << L"\nТема найдена:";
                _mas[i].output();
                cout << "\n";
            }
        }
 
        //если тема не найдена
        if(!flag)
            wcout << L"Тема не найдена!\n";
 
        wcout << L"Продолжить поиск (1 - да, 2 - нет)? ";
            cin >> choice;
 
    }while(choice != 2);
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    wcout.imbue(locale(".866"));            //для вывода юникод строк
 
    //массив примеров
    Primer *mas = new Primer[SIZE];
 
    /*вводим данные*/
    wcout << L"Введите данные о примерах: ";
    for(int i = 0; i < SIZE; ++i)
        mas[i].input();
 
    /*сортировка по алфавиту*/
    for(int i = 0; i < SIZE - 1; ++i)
        for(int j = i + 1; j < SIZE; ++j){
            if(mas[i].Tema > mas[j].Tema)
            {
                Primer tmp = mas[i];
                mas[i] = mas[j];
                mas[j] = tmp;
            }
        }
 
    /*выводим данные*/
    wcout << L"\nВывод данных о примерах:";
    for(int i = 0; i < SIZE; ++i)
        mas[i].output();
 
    /*ищем тему*/
    find(mas);
 
    delete []mas;                       //освобождаем память
    cout << "\n\n";
    return 0;
}
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
26.03.2013, 19:35  [ТС]     Описать структуру с именем PRIMER #9
yoghurt92, спасибо тебе большое) под линух завтра перепишу) да я поступил блин , так вышло, что у меня голова не особо заточена на проганье, хоть я код и читаю нормально, с англом в порядке. у меня трабла в том, что я не могу алгоритм действий своих составить, ибо ваще толком не писал задачки ) такие дела =( у меня в голове заточено на купи-продай )
yoghurt92
373 / 344 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
26.03.2013, 19:38     Описать структуру с именем PRIMER #10
bednyaga, ну так зачем тогда пошел учиться на программиста? а я вот сейчас жалею что не пошел учиться... теперь сам учусь...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 19:46     Описать структуру с именем PRIMER
Еще ссылки по теме:

C++ Описать структуру с именем AEROFLOT
C++ Описать структуру с именем STUDENT
C++ Описать структуру с именем Order

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

Или воспользуйтесь поиском по форуму:
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
26.03.2013, 19:46  [ТС]     Описать структуру с именем PRIMER #11
yoghurt92, да так вышло, что не прошел на эконом фак) нас толком не учат прогать. а сам себя не могу заставить по правде.
Yandex
Объявления
26.03.2013, 19:46     Описать структуру с именем PRIMER
Ответ Создать тему
Опции темы

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