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

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

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

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

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

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

Составить две отдельных функции по частям А и Б:
Функция А должна создавать файл, содержащий данные.
Функция В должна обрабатывать созданный в программе А файл с предоставленным алгоритму, выводить файл, а также результаты его обработки.
Код:
#include <iostream>
#include <algorithm>
#include <conio.h>
#include <string>
#include <cstring>
using namespace std;
 
struct Note
{
    char m_Name[30];
    char m_PhoneNum[15];
    int m_BirthYear;
    int m_BirthMonth;
    int m_BirthDay;
};
 
Note ReadNote()
{
    Note ret_val;
    std::cout << "Name: ";
    std::cin.clear();
    std::cin.sync();
    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;
    std::cin.get();
    std::cin >> ret_val.m_BirthMonth;
    std::cin.get();
    std::cin >> 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;
}
 
bool operator< (Note const& note1, Note const& note2)
{
    return strncmp(note1.m_PhoneNum, note2.m_PhoneNum, 3);
}
 
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::sort(Notes, Notes + n_Notes);
        for(int i = 0; i < n_Notes; ++i)
        {
            std::cout << Notes[i] << "\n\n";
        }
        std::cout << "Person name: ";
        std::cin.clear();
        std::cin.sync();
        std::string name;
        std::getline(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 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа на Pascal в Lazarus и программа для одномерного массива целых чисел Yegorka Lazarus, Free Pascal, CodeTyphon 13 20.12.2012 18:02
Программа как программа. вопрос leonidsm Общие вопросы C/C++ 5 02.10.2012 21:30
Программа с применением записей и программа с применение множеств smert99 Помощь студентам 0 16.06.2011 23:14
Программа открыается если есть другая программа. bookkc Паскаль, Turbo Pascal, PascalABC.NET 12 14.10.2009 20:09