Помощь в учёбе, очень быстро...
Работаем вместе до победы

Программа «Словарь» (телефонный справочник)

КонтрольнаяПомощь в написанииУзнать стоимостьмоей работы

Дейтл Х. М., Дейтл П.Дж. Как программировать на С. — Москва, «Бином», 2004, — 799 с. Cout << rus («Список отсортирован. Нажмите „l“ для промотра всех контактов.»); Поменять номера местами, если не в порядке возрастания. Вызов программы Программа запускается с помощью C++ Builder. Case 'e': cout <> number; Вывод словаря в порядке возрастания ключей. Cout… Читать ещё >

Программа «Словарь» (телефонный справочник) (реферат, курсовая, диплом, контрольная)

Техническое задание на разработку программы Словарь — это индексируемая структура данных, доступ к элементам которой выполняется только по индексу (ключу). Элемент словаря состоит из ключа и связанного с ключом значения. Пример словаря: русско-английский словарь, элементы которого содержат слово на русском языке (ключ) и перевод слова на английский язык, например, {[список], list}. Для хранения словаря в оперативной памяти использовать динамический массив.

Операции словаря:

• создание пустого словаря;

• добавление элемента в словарь;

• исключение элемента из словаря;

• поиск элемента словаря по ключу;

• изменение значения элемента;

• вывод словаря в порядке возрастания ключей.

Описание работы программы

1.Общие сведения Программа «Словарь» (телефонный справочник) Для запуска необходима программа C++ Builder 6 или более новая.

1.1 Язык программирования C++.

2. Функциональное назначение программы В программе предусмотрено считывание словаря в начале работы программы из текстового файла и запись словаря в файл перед завершением работы программы. Элементом словаря является абонент телефонной сети (номер телефона, ФИО, паспортные данные). Поле «номер телефона» является ключом. ФИО и паспортные данные являются значением элемента словаря.

3. Описание логической структуры программы Структура Contact включает в себя строки, содержащие данные пользователей.

4.Технические средства, которые используются при работе программы Для запуска программы требуется ЭВМ с процессором архитектуры x86 в стандартном окружении.

5. Вызов программы Программа запускается с помощью C++ Builder.

6.Входные данные При запуске программы пользователю будет предложено ввести число, соответствующее нужной операции. Список операций и соответствующих им чисел выводится при запуске.

7.Выходные данные Выходные данные зависят от выбора операции. Если вывод в файл выведет всё содержимое словаря в файл, поиск вернёт все данные по ключу или сообщение об ошибке, а добавление в словарь сообщит об успешности операции.

1) Страуструп Бьерн. «Программирование: принципы и практика использования C++, исправленное издание». Москва, Издательство: «Бином», 2011. -1136 с.

2) Андреева Л. П. «Программирование для ЭВМ. Указания для выполнения лабораторных работ», Москва, МИРЭА, 2012 — 16 с.

3) Савич У., «Программирование на С++ во всей полноте», Санкт-Петербург, издательство «Питер», 2005, — 784 с.

4) Дейтл Х. М., Дейтл П.Дж. Как программировать на С. — Москва, «Бином», 2004, — 799 с.

программа словарь файл абонент

Приложения Текст программы Демонстрационная работа к программе «Словарь» .

Задача: В демонстрационной программе предусмотреть считывание словаря в начале работы программы из текстового файла и запись словаря в файл перед завершением работы программы. Элементом словаря является абонент телефонной сети (номер телефона, ФИО, паспортные данные). Поле «номер телефона» является ключом. ФИО и паспортные данные являются значением элемента словаря.

*/

#include

#include

#include

using namespace std;

string rus (char s[]);

struct Contact {

string number, name, pass;

};

Contact contactList[10 000];

int rec_num = 0;

int num_entries;

void ReadFile () {

fstream input («PhoneData.txt»);

while (!input.eof () && !input.fail ()){

input >> contactList[rec_num]. number

>> contactList[rec_num]. name;

contactList[rec_num].pass;

rec_num++;

}

cout << rus («Книга прочтена.») << endl;

num_entries = rec_num;

input.close ();

return;

}

void StoreFile () {

ofstream F («PhoneData.txt»);

rec_num = 0;

while (rec_num < num_entries){

F << contactList[rec_num]. number << ««

<< contactList[rec_num]. name << ««

<< contactList[rec_num]. pass << «» << endl;

rec_num++;

}

cout << rus («Телефонная книга сохранена») << endl;

return;

}

void add_name (string number, string name, string pass){

contactList[num_entries]. number = number;

contactList[num_entries]. name = name;

contactList[num_entries]. pass = pass;

num_entries++;

return;

}

void retrieve_number (string number){

for (int i = 0; i < num_entries; i++) {

cout << rus («Телефонный номер: «)<<< endl<<

rus («Имя: «) << contactList[i]. name << endl

<< rus («Паспорт: «) << contactList[i]. pass << endl;

return; }

cout << rus («Номер не найден») << endl;

return;

}

void sortList () {

int i;

Contact temp;

for (int j=0; j < num_entries; j++) {

for (i = j+1; i < num_entries; i++) {

//Поменять номера местами, если не в порядке возрастания

temp = contactList[j];

contactList[j] = contactList[i];

contactList[i] = temp;

} }

cout << rus («Список отсортирован. Нажмите „l“ для промотра всех контактов.»);

}

void listAllContacts () {

int i = 0;

while (i < num_entries) {

cout << «— «<< contactList[i]. name << ««

<< contactList[i]. number << endl

<< «— «<< contactList[i]. pass << endl << endl;

i++;

} }

void del_number (string number, int rec_num = 0){

int i=0;

contactList[rec_num] = contactList[rec_num+1];

return;}

void remake (string number, string name, string pass){

int i=0;

cout<

cin>>number>>pass;

return;}

int main (){

string name, number, pass;

string FileName;

char command;

FileName = «PhoneData.txt» ;

ReadFile ();

cout << rus («Используйте:»)<

<<

<<

<<

<<

<<

<<

<<

<

cin >> command;

while (command ≠ 'q'){

switch (command){

case 'e': cout << rus («Введите телефонный номер: «); cin >> number;

cout << rus («Введите ФИО: «); cin. ignore (); getline (cin, name);

cout << rus («Введите номер паспорта: «);

cin>>pass;

add_name (number, name, pass); break;

case 'f': cout<

cin >> number; retrieve_number (number); break;

case 's': sortList (); break;

case 'l': listAllContacts (); break;

case 'd': cout<> number;

del_number (number); break;

case 'r': cout<

cin>> number; remake (number, name, pass); break;

}

cout << rus («Команда: «); cin >> command;

}

StoreFile ();

cout << rus («Готово!»);

return 0;

}

// перевод кодировки Windows в Dos

string rus (char s[])

{

string t;

t=s;

int i=0;

while (s[i]≠0)

{

if (s[i]>='А'&& s[i]<='п') t[i]-=64;

if (s[i]>='р'&& s[i]<='я') t[i]-=16;

if (s[i]=='Ё') t[i]=240;

if (s[i]=='ё') t[i]=241;

i++;

}

return t;

}

Показать весь текст
Заполнить форму текущей работой