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

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

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

Структуры в С++ - C++

19.06.2011, 02:37. Просмотров 1140. Ответов 15
Метки нет (Все метки)

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

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

Помещение структуры в вектор, удаление структуры, изменение элементов структуры - C++
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в векторе зная уникальный элемент структуры. 2 - удалять...

Динамические структуры данных. Программа ввода в структуры и вывода информации из неё. - C++
Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для...

Функция внутри структуры использует указатель, как поле этой структуры - C++
Коротко, есть класс A, описан в файле A_class.h ну и реализованы функции в A_class.cpp, есть файл GlobalItems.h, где хранятся глобальные...

Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры) - C++
Есть у меня вот такая структура, например struct Subject { int cost; int Volume; }; Потом создаю экземпляр, Subject G; ...

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

Исследование структуры FILE или: что вообще можно выудить из этой структуры, указатель на которую мы получаем при открытии файла? - C++
Ничего нельзя. Итак, новичкам напомню, что после выполнения кода FILE* f= fopen ("file.txt", "w"); в переменной f содержится...

15
Vergil111
31 / 31 / 6
Регистрация: 30.11.2010
Сообщений: 81
19.06.2011, 22:58 #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
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
#include <iostream>
 
using namespace std;
 
const int MAX_NAME = 10;
const int MAX_SIGN = 8;
const int MAX_DATE = 3;
 
struct sign{
    char *last_name;
    char *first_name;
    char *sign_of_zodiac;
    int *date_of_birth;
};
 
void bubble_sort(sign*);
 
int main(){
    sign* s1 = new sign[MAX_SIGN];
    int month;
    for (int i=0; i<MAX_SIGN; i++){
        cout << "\nEnter last name: ";
        (s1+i)->last_name = new char[MAX_NAME];
        cin >> (s1+i)->last_name;
        (s1+i)->first_name = new char[MAX_NAME];
        cout << "Enter first name: ";
        cin >> (s1+i)->first_name;
        cout << "Enter sign of zodiac: ";
        (s1+i)->sign_of_zodiac = new char[MAX_NAME];
        cin >> (s1+i)->sign_of_zodiac;
        cout << "Enter date of birth: ";
        (s1+i)->date_of_birth = new int[MAX_DATE];
        for (int j=0; j<MAX_DATE; j++){
            cin >> *(((s1+i)->date_of_birth)+j);
        }
    }
    
    bubble_sort(s1);
    
    for (int i=0; i<MAX_SIGN; i++){
        cout << "\nLast name is: ";
        cout << (s1+i)->last_name << endl;
        cout << "First name is: ";
        cout << (s1+i)->first_name << endl;
        cout << "Sign of zodiac is: ";
        cout << (s1+i)->sign_of_zodiac << endl;
        cout << "Date of birth is: ";
        for (int j=0; j<MAX_DATE; j++){
            cout << *(((s1+i)->date_of_birth)+j) << ".";
        }
    }
 
    cout << "Enter month: ";
    cin >> month;
 
    for (int i=0; i<MAX_SIGN; i++){
        if(month==*((s1+i)->date_of_birth+1)){
            cout << "\nLast name is: ";
            cout << (s1+i)->last_name << endl;
            cout << "First name is: ";
            cout << (s1+i)->first_name << endl;
            cout << "Sign of zodiac is: ";
            cout << (s1+i)->sign_of_zodiac << endl;
            cout << "Date of birth is: ";
            for (int j=0; j<MAX_DATE; j++){
                cout << *(((s1+i)->date_of_birth)+j) << ".";
            }
        }
        else{
            cout << "Find no matches.";
            exit(1);
        }
    }
    
    return 1;
} 
 
void bubble_sort(sign* s){
    for (int i=0; i<MAX_SIGN-1; i++){
        for (int j=i+1; j<MAX_SIGN; j++){
            if (stricmp(((s+i)->sign_of_zodiac),((s+j)->sign_of_zodiac))>0){
                swap(((s+i)->sign_of_zodiac),((s+j)->sign_of_zodiac));
            }
        }
    }
}
0
nuri
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
20.06.2011, 00:18  [ТС] #3
Vergil111, спасибо ,но у меня выходит 2 ошибки, по поводу переменных i,j
error C2065: 'i' : undeclared identifier
Я убрала int везде перед данными переменными и объявила их вначале( т.к в прошлой программе ошибка была в этом ) , но сейчас мне все равно выдает ошибку, в чем дело не подскажите?
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.06.2011, 00:22 #4
Цитата Сообщение от nuri Посмотреть сообщение
Я убрала int везде перед данными переменными и объявила их вначале
зачем вы это сделали? верните все как было!
0
nuri
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
20.06.2011, 00:25  [ТС] #5
Maxwe11, хорошо, я вернула и выходят следующие ошибки:
error C2374: 'i' : redefinition; multiple initialization
see declaration of 'i'
'i' : redefinition; multiple initialization
see declaration of 'i'
Error executing cl.exe.
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.06.2011, 00:27 #6
какая у вас версия студии?
0
nuri
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
20.06.2011, 00:28  [ТС] #7
может не получается из за того что у меня программа Microsoft Visual C++
может к ней код чуть чуть другой

Добавлено через 1 минуту
Maxwe11, Microsoft Visual C++ 6.0
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.06.2011, 00:29 #8
deleted
0
nuri
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
20.06.2011, 00:32  [ТС] #9
Maxwe11, ошибки такие: D:\книги\l4\lab_6_17\6_17.cpp(41) : error C2374: 'i' : redefinition; multiple initialization
D:\книги\l4\lab_6_17\6_17.cpp(22) : see declaration of 'i'
D:\книги\l4\lab_6_17\6_17.cpp(57) : error C2374: 'i' : redefinition; multiple initialization
D:\книги\l4\lab_6_17\6_17.cpp(22) : see declaration of 'i'
Error executing cl.exe.

lab_6_17.exe - 2 error(s), 0 warning(s)
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.06.2011, 00:33 #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
#include <iostream>
 
using namespace std;
 
const int MAX_NAME = 10;
const int MAX_SIGN = 8;
const int MAX_DATE = 3;
 
struct sign{
        char *last_name;
        char *first_name;
        char *sign_of_zodiac;
        int *date_of_birth;
};
 
void bubble_sort(sign*);
 
int main(){
        sign* s1 = new sign[MAX_SIGN];
        int month, i;
        for (i=0; i<MAX_SIGN; i++){
                cout << "\nEnter last name: ";
                (s1+i)->last_name = new char[MAX_NAME];
                cin >> (s1+i)->last_name;
                (s1+i)->first_name = new char[MAX_NAME];
                cout << "Enter first name: ";
                cin >> (s1+i)->first_name;
                cout << "Enter sign of zodiac: ";
                (s1+i)->sign_of_zodiac = new char[MAX_NAME];
                cin >> (s1+i)->sign_of_zodiac;
                cout << "Enter date of birth: ";
                (s1+i)->date_of_birth = new int[MAX_DATE];
                for (int j=0; j<MAX_DATE; j++){
                        cin >> *(((s1+i)->date_of_birth)+j);
                }
        }
        
        bubble_sort(s1);
        
        for (i=0; i<MAX_SIGN; i++){
                cout << "\nLast name is: ";
                cout << (s1+i)->last_name << endl;
                cout << "First name is: ";
                cout << (s1+i)->first_name << endl;
                cout << "Sign of zodiac is: ";
                cout << (s1+i)->sign_of_zodiac << endl;
                cout << "Date of birth is: ";
                for (int j=0; j<MAX_DATE; j++){
                        cout << *(((s1+i)->date_of_birth)+j) << ".";
                }
        }
 
        cout << "Enter month: ";
        cin >> month;
 
        for (i=0; i<MAX_SIGN; i++){
                if(month==*((s1+i)->date_of_birth+1)){
                        cout << "\nLast name is: ";
                        cout << (s1+i)->last_name << endl;
                        cout << "First name is: ";
                        cout << (s1+i)->first_name << endl;
                        cout << "Sign of zodiac is: ";
                        cout << (s1+i)->sign_of_zodiac << endl;
                        cout << "Date of birth is: ";
                        for (int j=0; j<MAX_DATE; j++){
                                cout << *(((s1+i)->date_of_birth)+j) << ".";
                        }
                }
                else{
                        cout << "Find no matches.";
                        exit(1);
                }
        }
        
        return 1;
} 
 
void bubble_sort(sign* s){
        for (int i=0; i<MAX_SIGN-1; i++){
                for (int j=i+1; j<MAX_SIGN; j++){
                        if (stricmp(((s+i)->sign_of_zodiac),((s+j)->sign_of_zodiac))>0){
                                swap(((s+i)->sign_of_zodiac),((s+j)->sign_of_zodiac));
                        }
                }
        }
}
0
nuri
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
20.06.2011, 00:41  [ТС] #11
Maxwe11, огромное спасибо !!! так работает, а что вы изменили? и если не трудно не могли бы вы скинуть результат который у вас получается?
0
Vergil111
31 / 31 / 6
Регистрация: 30.11.2010
Сообщений: 81
20.06.2011, 00:46 #12
Более чем странно. У меня Microsoft visual studio 2010 - все прекрасно работает. Попробовал также запустить в Codeblocks, пришлось подключить заголовочные файлы
C++
1
2
#include <stdlib.h>
#include <string.h>
и все заработало. Укажите пожалуйста конкретно строчки, в которых компилятор выдает ошибку.

Добавлено через 1 минуту
а все, уже не нужно=)
0
nuri
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
20.06.2011, 00:51  [ТС] #13
Vergil111, у меня версия чуть другая и уже все работает) спасибо)

Добавлено через 5 минут
не могли бы вы мне скинуть результат который у вас получается
0
Jupiter
Каратель
Эксперт С++
6561 / 3982 / 227
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.06.2011, 00:55 #14
Цитата Сообщение от nuri Посмотреть сообщение
не могли бы вы мне скинуть результат который у вас получается
влом вводить)
0
nuri
0 / 0 / 0
Регистрация: 01.05.2011
Сообщений: 63
20.06.2011, 01:35  [ТС] #15
Maxwe11,
не могли бы вы объяснить что означает
C++
1
2
3
4
5
6
7
8
9
void bubble_sort(sign* s){
        for (int i=0; i<MAX_SIGN-1; i++){
                for (int j=i+1; j<MAX_SIGN; j++){
                        if (stricmp(((s+i)->sign_of_zodiac),((s+j)->sign_of_zodiac))>0){
                                swap(((s+i)->sign_of_zodiac),((s+j)->sign_of_zodiac));
                        }
                }
        }
}
почему перед этим мы ставим return 1, а не return 0,как обычно?
0
20.06.2011, 01:35
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2011, 01:35
Привет! Вот еще темы с ответами:

Оператор if и структуры. Возвращение структуры из функции - C++
Здравствуйте, имеется такая вот функция. void InputStructEmployee (int StructSize) { StructEmployee UsrStruct; string...

Структуры. Вызов данных структуры по указателю. с++ - C++
Условие задачи: Помогите, пожалуйста, с как реализовать печать вообще не представляю.

Структуры. Работа с файлами, содержащими структуры - C++
2) Дана совокупность сведений, каждое из которых состоит из следующих рекви-зитов: фамилия и инициалы автора – 25 знаков; название книги –...

Понятие структуры данных. Элементарные структуры данных. Простые структуры данных - C++
Понятие структуры данных. Элементарные структуры данных. Простые структуры данных: методы реализации, особенности в различных языках...


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

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

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