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

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

Войти
Регистрация
Восстановить пароль
 
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
#1

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

24.03.2013, 12:36. Просмотров 562. Ответов 10
Метки нет (Все метки)

Добрый день всем. Очень долго пытался написать программу по шаблонам и тд и тп, но ничего толкового не выходило. Здесь тоже с именем PRIMER ничего нет. вот задачка.

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

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

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

Добавлено через 57 минут
Ребят, кто полностью код напишет, тому карма большая и теплая =)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2013, 12:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Описать структуру с именем PRIMER (C++):

Описать структуру с именем TRAIN - C++
Описать структуру с именем TRAIN, содержащую следующие поля: • название пункта назначения; • номер поезда; • время отправления. ...

Описать структуру с именем TRAIN - C++
Пожалуйста помогите написать программу на языке "СИ" Описать структуру с именем TRAIN, содержащую следующие поля: - название пункта...

Описать структуру с именем Student - C++
Условие программы: Описать структуру с именем Student, содержащую следующие поля: фамилия и инициалы, группа, успеваемость (массив из пяти...

Описать структуру с именем WORKER - C++
описать структуру с именем WORKER содержащую следующие поля: Фамилия инициалы роботника; названия занемаемой должности; год...

Описать структуру с именем TRAIN - C++
Описать структуру с именем TRAIN, содержащую следующие поля: - название пункта назначения - номер поезда - время отправления ...

Описать структуру с именем ZNAK - C++
Здравствуйте! Поставлена такая задача: Описать структуру с именем ZNAK, содержащую следующие поля: • фамилия, имя; • знак Зодиака; ...

10
buy
4 / 4 / 0
Регистрация: 12.03.2013
Сообщений: 24
24.03.2013, 13:37 #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;
сложность - может это количество балов за его решение!?..
0
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
24.03.2013, 20:47  [ТС] #3
хм, даже если так, какой в них смысл? не проще ли запилить массивом с 3 эл-ами?

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

Добавлено через 4 часа 12 минут
ну же. почему вам так сложно помочь =(
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
25.03.2013, 00:28 #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;
}
1
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
25.03.2013, 04:47  [ТС] #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"Введите данные о примерах: " все такие фразы не понятны
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
25.03.2013, 09:12 #6
bednyaga, если линукс, то можешь убрать.

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

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

C++
1
cout << "...."
1
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
26.03.2013, 18:57  [ТС] #7
yoghurt92, слушай, просто огромное спасибо за прогу, но не мог бы ты чуток добавить комментов? для тебя это дело 5-10 минут думаю) а то не каждый перваш пишет такими кодами программы)
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
26.03.2013, 19:07 #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;
}
0
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
26.03.2013, 19:35  [ТС] #9
yoghurt92, спасибо тебе большое) под линух завтра перепишу) да я поступил блин , так вышло, что у меня голова не особо заточена на проганье, хоть я код и читаю нормально, с англом в порядке. у меня трабла в том, что я не могу алгоритм действий своих составить, ибо ваще толком не писал задачки ) такие дела =( у меня в голове заточено на купи-продай )
0
yoghurt92
374 / 345 / 22
Регистрация: 17.05.2012
Сообщений: 1,049
26.03.2013, 19:38 #10
bednyaga, ну так зачем тогда пошел учиться на программиста? а я вот сейчас жалею что не пошел учиться... теперь сам учусь...
0
bednyaga
0 / 0 / 0
Регистрация: 24.03.2013
Сообщений: 17
26.03.2013, 19:46  [ТС] #11
yoghurt92, да так вышло, что не прошел на эконом фак) нас толком не учат прогать. а сам себя не могу заставить по правде.
0
26.03.2013, 19:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.03.2013, 19:46
Привет! Вот еще темы с ответами:

Описать структуру с именем STUDENT - C++
Описать структуру с именем STUDENT, содержащую следующие поля:-фамилия и инициалы;-номер группы;-успеваемость (массив из пяти...

Описать структуру с именем Note - C++
Описать структуру с именем Note, содержащую следующие поля: name-фамилия и имя, tele- номер телефона, bday-день рождения (массив из 3...

Описать структуру с именем DATE - C++
Описать структуру с именем DATE, состоящую из: Фамилия, имя, номер телефона, дата рождения (массив из трех чисел). В программе использовать...

Описать структуру с именем ZNAK - C++
1. Описать структуру с именем ZNAK, содержащую следующие поля: • NAME — фамилия, имя; • ZODIAC — знак Зодиака; • BDAY — день...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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