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

Опишите структуру с именем ZNAK - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить сумму элементов массива, которые являются степенями пятерки и индексы которых есть нечетные числа http://www.cyberforum.ru/cpp-beginners/thread1057093.html
ОБРАБОТКА ОДНОМЕРНЫХ МАССИВОВ 1. Вычислить сумму элементов массива, которые являются степенями пятерки и индексы которых есть нечетные числа. 2. Из двух массивов разной длины сформировать общий...
C++ При разных значениях cin, выводить разные сообщения Сразу скажу, что я новичок. Как сделать, чтобы при разных значениях cin, выводились разные сообщения. Я думаю, что вы не поняли, вот поэтому код: #include "stdafx.h"; #include <iostream>... http://www.cyberforum.ru/cpp-beginners/thread1057090.html
C++ решение уравнения
:wall: :help:срочно помогите кто-нибудь пожалуйста написать код решения этой задачи: найти все целые корни уравнения A*x^3+B*x^2+C*x+D=0, где A,B,C,D - целые числа. (Замечание: целыми корнями могут...
C++ Бинарные файлы структур
Задание: Дан файл f, содержащий сведения о книгах. Сведения о каждой из книг: это фа-милия автора, название и год издания. Определить названия книг данного автора: изданных с 1960г. Полученную...
C++ Дан одномерный массив В, состоящий из 2n элементов. Переставить его элементы по следующему правилу: b[1], b[n+1], b[2], b[n+2],., b[n], b[2n] http://www.cyberforum.ru/cpp-beginners/thread1057078.html
17. Дан одномерный массив В, состоящий из 2n элементов. Переставить его элементы по следующему правилу: b, b, b, b,..., b, b. можете помочь какой метод сортировки массива применить? с++ начали учить...
C++ Шары #include <cstdlib> #include <iostream> #include <Math.h> using namespace std; int main(int argc, char *argv) { float x1, y1, z1, x2, y2, z2, l, r1, r2, rm, rb; cout<<"Vvedite... подробнее

Показать сообщение отдельно
Drusha
6 / 6 / 0
Регистрация: 16.07.2013
Сообщений: 74
26.12.2013, 03:12
Судя по тому что лаба по структурам, решил написать без использования STL. Получилось довольно криво, но вроде работает. Сортировка пузырьковым методом, только по первой буквы фамилии.

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
#include<iostream>
#include<cstring> 
using namespace std;
 
const int SIZE = 10; // Количество анкет
 
struct ZNAK
{
    char surname[50]; // Фамилия
    char name[50]; // Имя
    char sign[20]; // Знак зодиака
    int data[3]; // Дата рождения
} Z[SIZE];
 
int menu()
{
    int i;
    do {
    cout << "Press 1 to enter info" << endl;
    cout << "Press 2 to show info" << endl;
    cout << "Press 3 to find" << endl;
    cout << "Press 4 to exit" << endl;
    cout << "Enter your choice: ";
    cin >> i;
    } while (i < 1 || i > 3);
    cout << endl;
    return i;
}
 
int enter()
{
    int i,j;
    ZNAK temp;
    for(i=0; i<SIZE; i++)
    {
        cout << "Questionnaire " << i+1 << endl;
        cout << "Enter surname: ";
        cin >> Z[i].surname;
        cout << "Enter name: ";
        cin >> Z[i].name;
        cout << "Enter sign of the zodiac: ";
        cin >> Z[i].sign;
        cout << "Enter your date of birth" << endl;
        cout << "Day: ";
        cin >> Z[i].data[0];
        cout << "Months: ";
        cin >> Z[i].data[1];
        cout << "Years: ";
        cin >> Z[i].data[2];
        cout << endl << endl;
    }
    for(i=0; i<SIZE; i++) // Послее воода всех анкет, сортируем их по первой буквы фамилии пузрьковым методом
    {            
        for(j=SIZE-1; j > i; j--)
        {     
            if(Z[j-1].surname[0] > Z[j].surname[0])
            {
                temp = Z[j-1];
                Z[j-1] = Z[j];
                Z[j] = temp;
            }
        }
    } 
}
 
void show()
{
    int i;
    for(i=0; i<SIZE; i++)
    {   if(Z[i].data[0] != 0) // Проверка наличия информации 
            {
            cout << "Questionnaire " << i+1 << endl;
            cout << "Surname: " << Z[i].surname << endl;
            cout << "Name: " << Z[i].name << endl;
            cout << "Sign of the zodiac: " << Z[i].sign << endl;
            cout << "Date of birth " << Z[i].data[0] << '.' << Z[i].data[1] << '.' << Z[i].data[2];
            cout << endl << endl;
            }
        else 
        {
        cout << "List is empty" << endl << endl; // В случае отсутствия информации выводит эту надпись
        break;
        }
    }
}
 
void find()
{
    char fsign[20];
    int i,j=1;
    cout << "Enter your zodiac sign: ";
    cin >> fsign;
    for(i=0; i < SIZE; i++)
    {
        if(!strcmp(fsign, Z[i].sign))
        {
            j=0;
            cout << "Questionnaire " << i+1 << endl;
            cout << "Surname: " << Z[i].surname << endl;
            cout << "Name: " << Z[i].name << endl;
            cout << "Sign of the zodiac: " << Z[i].sign << endl;
            cout << "Date of birth " << Z[i].data[0] << '.' << Z[i].data[1] << '.' << Z[i].data[2];
            cout << endl << endl;
        }
    }
    if(j) cout << "No matches found" << endl << endl;
}
 
int main()
{
    int i,choice;
    for(i=0; i<SIZE; i++) Z[i].data[0] = 0; // Используется для проверки о наличии информации в структуре в функции show()
    for(;;)
    {
        choice = menu();
        switch(choice) {
            case 1 : enter();
                break;
            case 2 : show();
                break;
            case 3 : find();
                break;
            case 4 : return 0;
        }
    
    }
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru