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

Найти телефон сотрудника по фамилии и инициалах (работа с файлами С++) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти наибольшее положительное целое число n, для которого выполняется условие: http://www.cyberforum.ru/cpp-beginners/thread821577.html
условие: Плиз очень надо=) Запрещено размещать тему в нескольких разделах одновременно (кросспостинг), а также дублировать тему в одном разделе. Правила форума
C++ Создание англо-русского словаря Другу задали курсовой создать англо-русский словарь, реализовал начало через std::set, но есть один нюанс в задании написано "обеспечить возможность хранения нескольких вариантов". Если кто делал похожее, или знает как можно записать хэш функцию, поясните, будьте так добры... http://www.cyberforum.ru/cpp-beginners/thread821574.html
C++ bad_alloc - проверка нехватки памяти
Добрый вечер. У меня такая проблема - написал конструктор копирования массива деков символов, и решил посмотреть что произойдет, если не хватит памяти. В результате программа радостно падает и появляется вот такое окошко. вот код DA::DA(const DA & D1) { D = 0; try { std::cout << D1.N; N = D1.N; D = new deq;
Вычислить периметр треугольника C++
Вычислить периметр произвольного треугольника, если известны две его стороны и угол между ними.
C++ Найти стороны треугольника http://www.cyberforum.ru/cpp-beginners/thread821564.html
Треугольник задан величинами своих углов и радиусом описанной окружности. Найти стороны треугольника.
C++ endl #include <iostream> int main() { using std::cout; using std::endl; unsigned short int Width = 5, Length; Length = 10; подробнее

Показать сообщение отдельно
gazlan
2861 / 1809 / 272
Регистрация: 27.08.2010
Сообщений: 4,896
Записей в блоге: 1
28.03.2013, 23:12     Найти телефон сотрудника по фамилии и инициалах (работа с файлами С++)
Я предполагаю, что формат файла: одна строка - одна запись.

Кроме того, фамилия и инициалы не должны содержать цифр, а номер телефона - букв. Считаем однобуквенные и небуквенные фамилии недопустимыми. Вероятно, дополнительно, следует договориться о порядке следования инициалов: первый - имя, второй - отчество, остальное несущественно.

Тогда так: считываете файл построчно, разбираете строку на слова. Если слово содержит только цифры - это номер телефона, если только одну букву - это инициал, если две и больше букв - фамилия.

Заполняете массив структур вида:

C++
1
2
3
4
5
6
7
struct PHONE_BOOK_RECORD
{
   char        pszPhone  [MAX_PHONE_NUM_LEN + 1];
   char        pszSurname[MAX_SURNAME_LEN   + 1];
   char        cName;
   char        cPatronymic;
}
Сортируете массив по фамилии, первому и второму инициалу (Multikey sort). Ищете бинарным поиском. Учтите, возможны полные тезки!
 
Текущее время: 22:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru