Программа "Словарь" (телефонный справочник)
Техническое задание на разработку программы
Словарь - это индексируемая структура данных, доступ к элементам которой выполняется только по индексу (ключу). Элемент словаря состоит из ключа и связанного с ключом значения. Пример словаря: русско-английский словарь, элементы которого содержат слово на русском языке (ключ) и перевод слова на английский язык, например, {[список], list}. Для хранения словаря в оперативной памяти использовать динамический массив.
Операции словаря:
создание пустого словаря;
добавление элемента в словарь;
исключение элемента из словаря;
поиск элемента словаря по ключу;
изменение значения элемента;
вывод словаря в порядке возрастания ключей.
Описание работы программы
.Общие сведения
Программа «Словарь» (телефонный справочник)
Для запуска необходима программа C++ Builder 6 или более новая.
.1 Язык программирования C++.
. Функциональное назначение программы
В программе предусмотрено считывание словаря в начале работы программы из текстового файла и запись словаря в файл перед завершением работы программы. Элементом словаря является абонент телефонной сети (номер телефона, ФИО, паспортные данные). Поле «номер телефона» является ключом. ФИО и паспортные данные являются значением элемента словаря.
. Описание логической структуры программы
Структура Contact включает в себя строки, содержащие данные пользователей.
.Технические средства, которые используются при работе программы
Для запуска программы требуется ЭВМ с процессором архитектуры x86 в стандартном окружении.
. Вызов программы
Программа запускается с помощью C++ Builder.
.Входные данные
При запуске программы пользователю будет предложено ввести число, соответствующее нужной операции. Список операций и соответствующих им чисел выводится при запуске.
.Выходные данные
Выходные данные зависят от выбора операции. Если вывод в файл выведет всё содержимое словаря в файл, поиск вернёт все данные по ключу или сообщение об ошибке, а добавление в словарь сообщит об успешности операции.
Литература
1) Страуструп Бьерн. «Программирование: принципы и практика использования C++, исправленное издание». Москва, Издательство: «Бином», 2011. -1136 с.
) Андреева Л.П. «Программирование для ЭВМ. Указания для выполнения лабораторных работ»,Москва, МИРЭА, 2012 - 16 с.
) Савич У., «Программирование на С++ во всей полноте»,Санкт-Петербург, издательство «Питер», 2005, - 784 с.
) Дейтл Х.М., Дейтл П.Дж. Как программировать на С. - Москва, «Бином», 2004, - 799 с.
программа словарь файл абонент
Приложения
Текст программы
Демонстрационная работа к программе "Словарь".
Задача: В демонстрационной программе предусмотреть считывание словаря в начале работы программы из текстового файла и запись словаря в файл перед завершением работы программы. Элементом словаря является абонент телефонной сети (номер телефона, ФИО, паспортные данные). Поле «номер телефона» является ключом. ФИО и паспортные данные являются значением элемента словаря.
*/
#include <iostream>
#include <fstream>
#include <string>namespace std;rus(char s[]);Contact {number, name, pass;
};contactList[10000];rec_num = 0;num_entries;ReadFile () {input("PhoneData.txt");(!input.eof() && !input.fail()){>> contactList[rec_num].number
>> contactList[rec_num].name;[rec_num].pass;_num++;
}<< rus("Книга прочтена.") << endl;_entries = rec_num;.close();;
}StoreFile () {F("PhoneData.txt");_num = 0;(rec_num < num_entries){<< contactList[rec_num].number << " "
<< contactList[rec_num].name << " "
<< contactList[rec_num].pass << " " << endl;
rec_num++;
}<< rus("Телефонная книга сохранена") << endl;
return;
}add_name(string number, string name, string pass){[num_entries].number = number;[num_entries].name = name;[num_entries].pass = pass;_entries++;;
}retrieve_number(string number){(int i = 0; i < num_entries; i++) {<< rus("Телефонный номер: ")<<contactList[i].number << endl<<("Имя: ") << contactList[i].name << endl
<< rus("Паспорт: ") << contactList[i].pass << endl;; }<< rus("Номер не найден") << endl;;
}sortList() {i;temp;(int j=0; j < num_entries; j++) {(i = j+1; i < num_entries; i++) {
//Поменять номера местами, если не в порядке возрастания
temp = contactList[j];[j] = contactList[i];[i] = temp;
} }<< rus("Список отсортирован. Нажмите l для промотра всех контактов.");
}listAllContacts() {i = 0;(i < num_entries) {<< "-- " << contactList[i].name << " "
<< contactList[i].number << endl
<< "-- " << contactList[i].pass << endl << endl;++;
} }del_number(string number, int rec_num = 0){i=0;[rec_num] = contactList[rec_num+1];;}remake (string number, string name, string pass){i=0;<<rus("новые значения: ");>>number>>pass;;}main(){name, number, pass;FileName;command;= "PhoneData.txt";();<< rus("Используйте:")<<endl
<<rus("e - ввод данных,")<<endl
<<rus("f - поиск по ключу,")<<endl
<<rus("s - сортировка списка,")<<endl
<<rus("l - вывод всех контактов,")<<endl
<<rus("q - выход из программы,")<<endl
<<rus("d - удалить контакт,")<<endl
<<rus("r - изменить данные.")<<endl
<<rus("Команда: ");>> command;(command != 'q'){(command){'e': cout << rus("Введите телефонный номер: "); cin >> number;<< rus("Введите ФИО: "); cin.ignore(); getline(cin, name);
cout << rus("Введите номер паспорта: ");
cin>>pass;_name(number, name, pass); break;
case 'f': cout<<rus("введите номер телефона из тел. книги: ");
cin >> number; retrieve_number(number); break;'s': sortList(); break;'l': listAllContacts(); break;
case 'd': cout<<rus("введите номер телефона из тел. книги: "); cin>> number;
del_number(number); break;'r': cout<<rus("введите номер телефона из тел. книги: ");>> number; remake(number, name, pass); break;
}<< rus("Команда: "); cin >> command;
}();<< rus("Готово!");0;
}
// перевод кодировки Windows в Dosrus(char s[])
{t;=s;i=0;(s[i]!=0)
{(s[i]>='А'&& s[i]<='п' ) t[i]-=64;(s[i]>='р'&& s[i]<='я' ) t[i]-=16;(s[i]=='Ё' ) t[i]=240;(s[i]=='ё' ) t[i]=241;++;
}t;
}
Больше работ по теме:
Предмет: Информационное обеспечение, программирование
Тип работы: Контрольная работа
Новости образования
КОНТАКТНЫЙ EMAIL: [email protected]
Скачать реферат © 2017 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ