Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.04.2013, 14:08   #1
DeCIIoT
Пользователь
 
Регистрация: 20.10.2012
Сообщений: 21
По умолчанию Обработка строк

Помогите с программой пожалуйста.
А. Описать структуру с именем NOTE, содержащую следущие поля:
Фамилия, имя;
Номер телефона;
День рождения(массив из трех чисел).
Ввести с клавиатуры данные о 10 абонентах, записи упорядочить по трем первым цыфрам номера телефона;
Б. Написать программу, выполняющую следующие действия:
Вывод на экран информации о человеке, чья фамилия введенна с клавиатуры;
Если такого нет, выдать на дисплей соотвествующее сообщение.

помогите с сортировкой по первым трем числам номера телефона.
Код:
#include <iostream>
#include <algorithm>
#include <conio.h>
using namespace std; 
struct NOTE
{
    char m_Name[30];
    int m_PhoneNum;
    int m_BirthYear;
    int m_BirthMonth;
    int m_BirthDay;
};
 
NOTE ReadNote()
{
    NOTE ret_val;
    std::cout << "Name: ";
    gets(ret_val.m_Name);
    std::cout << "Phone number: ";
    std::cin >> ret_val.m_PhoneNum;
    std::cout << "Birthday (DD.MM.YYYY): ";
    std::cin >> ret_val.m_BirthDay >> ret_val.m_BirthMonth >> ret_val.m_BirthYear;
    std::cout << std::endl;
    std::cin.get();
 
    return ret_val;
}
 
bool operator == (const NOTE& note, const std::string& name)
{
    return note.m_Name == name;
}
 
std::ostream& operator << (std::ostream& os, const NOTE& note)
{
    std::cout << "Name: " << note.m_Name << std::endl;
    std::cout << "Phone number: " << note.m_PhoneNum << std::endl;
    std::cout << "Birthday: " << note.m_BirthDay << "." << note.m_BirthMonth << "." << note.m_BirthYear << std::endl;
 
    return os;
}

int main(int, char**)
{char otv;
do 
{ 
    NOTE notes[2];
    int n_notes = sizeof(notes) / sizeof(notes[0]);
    
    std::generate(notes, notes + n_notes, ReadNote);
 
    std::cout << "Person name: ";
    std::string name;
    std::cin >> name;
    NOTE* p = std::find(notes, notes + n_notes, name);
    if (p == notes + n_notes)
        std::cout << "There is no person '" << name << "'" << std::endl;
    else
        std::cout << *p;
        std::cout<<"Hotite prodoljit?(y/n): ";
   std::cin>>(otv);
}while(otv=='y');
std::cout<<"the end.";
    getch();    
    return 0;
}
DeCIIoT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
обработка строк kamila_q Помощь студентам 0 15.12.2011 23:29
Обработка строк Сергей33 Паскаль, Turbo Pascal, PascalABC.NET 0 04.05.2010 10:18
обработка строк Xunter Помощь студентам 4 27.06.2008 21:48