Здравствуйте, люди добрые, помогите кто может.
Нужно написать структуру Абитуриентов, вывод тех кто подключились более x лет назад, и сортировку по алфавиту.
В общем, саму структуру я сделал и вывод, но вот беда, не могу никак отсортировать по алфавитному порядку.
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
| // Laba3_var29.cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include <cstdio>
using namespace std;
struct ABONENT{
char fio[20];
int nomer;
int date[3];
};
void enter(ABONENT *ABON, int n);
void print(ABONENT *ABON, int n);
void filtr(ABONENT *ABON, int n, int x);
void sort(ABONENT *ABON, int n);
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int n, x;
cout << "Сколько будет моделей: ";
cin >> n;
ABONENT *ABON = new ABONENT[n];
enter(ABON, n);
print(ABON, n);
cout << "Введите x: "; cin >> x;
cout << endl;
filtr(ABON, n, x);
cout << endl;
cout << "Таблица после сортировки";
sort(ABON, n);
print(ABON, n);
system("pause");
return 0;
}
void enter(ABONENT *ABON, int n)
{
for (int i = 0; i < n; i++)
{
cout << "Введите ФИО " << i + 1 << "-го абонента : ";
cin >> ABON[i].fio;
cout << "Введите номер телефона ( без +) " << i + 1 << "-го абонента : ";
cin >> ABON[i].nomer;
cout << "Введите дату подключения " << i + 1 << "-го абонента : ";
cin >> ABON[i].date[0];
cin >> ABON[i].date[1];
cin >> ABON[i].date[2];
}
}
void print(ABONENT *ABON, int n)
{
for (int i = 0; i < n; i++)
{
cout << "-------------------------------------------------------------------";
cout << "\n№" << i + 1 << "|" << "ФИО " << ABON[i].fio << " | " << "Номер телефона: " << ABON[i].nomer << "|" << "Дата подключения: " << ABON[i].date[0] << "." << ABON[i].date[1] << "." << ABON[i].date[2] << "|";
cout << endl;
}
cout << "-------------------------------------------------------------------";
cout << endl;
}
void filtr(ABONENT *ABON, int n, int x)
{
int kol = 0;
for (int i = 0; i < n; i++)
{
if ((2016 - ABON[i].date[2])>x)
{
cout << "-------------------------------------------------------------------";
cout << "\n№" << i + 1 << "|" << "ФИО " << ABON[i].fio << " | " << "Номер телефона: " << ABON[i].nomer << "|" << "Дата подключения: " << ABON[i].date[0] << "." << ABON[i].date[1] << "." << ABON[i].date[2] << "|";
cout << endl;
kol++;
}
}
if (kol == 0)
cout << "Таких абонентов нету";
cout << endl;
}
void sort(ABONENT *ABON, int n)
{
ABONENT p;
for (int i = 0; i<n; i++)
{
for (int j = 0; j<n; j++)
{
if (strcmp(ABON[i].fio, ABON[j].fio)<0)
{
p = ABON[j];
ABON[i] = ABON[j];
ABON[j] = p;
}
}
}
} |
|