Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* вариант 12
- Описать структуру с именем NOTE,содержащую следующие поля:
- 1. фамилия и имя;
- 2. номер телефона;
- 3. дата рождения.
- Написать программу,выполняющую след.действия:
- 1. ввод с клавиатуры данных в массив, состоящий из 8-ми структур типа NOTE; записи должны быть упорядочены по датам рождения;
- 2. вывод на экран информацию о человеке, номер телефона которого введен с клавиатуры;
- 3. если такого нет, вывести сответтвующее сообщение.*/
- #include <conio.h>
- #include <iostream>
- #include <string>
- #include <clocale>
- #include <iomanip>
- using namespace std;
- struct NOTE {
- string NAME;
- string LASTNAME;
- int PHONE, YEAR, MONTH, DAY;
- };
- void input(NOTE *st, int N){
- for (int i = 0; i < N; ++i){
- cout << "Введите ФИО: ";
- cin >> st[i].LASTNAME;
- cin >> st[i].NAME;
- cout << "Введите номер телефона: ";
- cin >> st[i].PHONE;
- cout << "Введите дату рождения: ";
- cin >> st[i].DAY >> st[i].MONTH >> st[i].YEAR;
- }
- }
- void sort_birth(NOTE *st, int N){
- int temp = 0;
- for (int i = 0; i < N - 1; i++)
- {
- for (int j = i + 1; j<N; j++)
- {
- if (st[i].YEAR > st[j].YEAR)
- {
- temp = st[i].YEAR;
- st[i].YEAR = st[j].YEAR;
- st[j].YEAR = temp;
- continue;
- }
- if (st[i].YEAR == st[j].YEAR && st[i].MONTH > st[j].MONTH){
- temp = st[i].MONTH;
- st[i].MONTH = st[j].MONTH;
- st[j].MONTH = temp;
- continue;
- }
- if (st[i].YEAR == st[j].YEAR && st[i].MONTH == st[j].MONTH && st[i].DAY > st[j].DAY)
- {
- temp = st[i].DAY;
- st[i].DAY = st[j].DAY;
- st[j].DAY = temp;
- }
- }
- }
- }
- void find(NOTE *st, int N){
- int num;
- bool isFound = false;
- cout << "\nВедите номер, который хотите найти:";
- cin >> num;
- for (int i = 0; i<N; i++)
- {
- if (st[i].PHONE == num)
- {
- cout << "\n"<<st[i].NAME << " " << st[i].LASTNAME << " " << st[i].PHONE << " "; printf(" %02d", st[i].DAY); cout << "."; printf("%02d", st[i].MONTH); cout << "."; printf("%02d", st[i].YEAR);
- isFound = true;
- }
- }
- if (!isFound) printf("\nНомеров нет\n");
- }
- void output(NOTE *st, int N){
- cout << "-------------------------------------------------\n";
- cout << "| ФИ | Номер | ДР |\n";
- cout << "-------------------------------------------------\n";
- for (int i=0; i < N; ++i){
- cout << "|" << setw(8) << st[i].LASTNAME << " " << st[i].NAME << setw(5) << "|" << setw(9) << st[i].PHONE << setw(7) << "|";
- printf(" %02d", st[i].DAY);cout << ".";printf("%02d", st[i].MONTH);cout << ".";printf("%02d",st[i].YEAR);
- cout << " |\n";
- }
- cout << "-------------------------------------------------\n";
- }
- int main(){
- setlocale(LC_CTYPE, "rus");
- int N;
- cout << "Число клиентов: ";
- cin >> N;
- NOTE *st = new NOTE[N];
- input(st, N);
- sort_birth(st, N);
- output(st, N);
- find(st, N);
- _getch();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement