Программа "Словарь" (телефонный справочник)
Разработка программы на языке программирования C++ с функциями считывания словаря в начале работы программы из текстового файла и записи словаря в файл перед завершением работы. Основные элементы программного продукта: данные абонента телефонной сети.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 07.04.2015 |
Размер файла | 12,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Техническое задание на разработку программы
Словарь - это индексируемая структура данных, доступ к элементам которой выполняется только по индексу (ключу). Элемент словаря состоит из ключа и связанного с ключом значения. Пример словаря: русско-английский словарь, элементы которого содержат слово на русском языке (ключ) и перевод слова на английский язык, например, {[список], 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 <iostream>
#include <fstream>
#include <string>
using namespace std;
string rus(char s[]);
struct Contact {
string number, name, pass;
};
Contact contactList[10000];
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("Телефонный номер: ")<<contactList[i].number << 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<<rus("новые значения: ");
cin>>number>>pass;
return;}
int main(){
string name, number, pass;
string FileName;
char command;
FileName = "PhoneData.txt";
ReadFile ();
cout << rus("Используйте:")<<endl
<<rus("\"e\" - ввод данных,")<<endl
<<rus("\"f\" - поиск по ключу,")<<endl
<<rus("\"s\" - сортировка списка,")<<endl
<<rus("\"l\" - вывод всех контактов,")<<endl
<<rus("\"q\" - выход из программы,")<<endl
<<rus("\"d\" - удалить контакт,")<<endl
<<rus("\"r\" - изменить данные.")<<endl
<<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<<rus("введите номер телефона из тел. книги: ");
cin >> number; retrieve_number(number); break;
case 's': sortList(); break;
case 'l': listAllContacts(); break;
case 'd': cout<<rus("введите номер телефона из тел. книги: "); cin>> number;
del_number(number); break;
case 'r': cout<<rus("введите номер телефона из тел. книги: ");
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;
}
Размещено на Allbest.ru
Подобные документы
Создание программы "Телефонный справочник": загрузка телефонной книги; разработка алгоритмов добавления, редактирования, удаления записи; поиск по различным параметрам, вывод данных на печать. Интерфейс пользователя, системные требования и ограничения.
курсовая работа [1,5 M], добавлен 24.09.2012Характеристика работы Алтайского филиала телекоммуникаций "Сибирьтелеком". Разработка программы для автоматизации работы телефонного справочника. Основные функции программного продукта: хранение, обработка, ввод и редактирование информации об абонентах.
дипломная работа [6,0 M], добавлен 07.06.2012Разработка программного обеспечения для работы с информацией и ее обработкой на языке программирования Delphi. Описание алгоритмов процедуры работы со стеком - добавление, удаление элементов, редактирование записи. Инструкция по использованию программы.
курсовая работа [2,9 M], добавлен 06.02.2013Использование электронно-вычислительной техники для сбора, накопления, обработки и передачи информации. Разработка программы "Телефонный справочник" на Паскале: ввод и редактирование теста программы, трансляция и отладка. Блок-схема, листинг программы.
контрольная работа [61,2 K], добавлен 26.06.2010Теоретические основы разработки программного обеспечения. Рассмотрение языков и среды программирования. Разработка программного продукта "Справочник стран мира и городов"; описание интерфейса. Составление терминологического словаря, диаграммы модуля.
курсовая работа [1,5 M], добавлен 09.08.2015Разработка компьютерной программы - автоматического телефонного спавочника. Описание алгоритма программы. Описание последовательности действия при составлении и редактировании базы данных. Основные операторы и группы операторов. Анализ программы.
курсовая работа [21,7 K], добавлен 29.10.2008Основы проверки и расчета входных данных и вывода выходных данных программы, их блок-схемы. Реализация функции считывания числовых данных из файла, управление (создание, уничтожение и редактирование) визуальными компонентами во время выполнения программы.
контрольная работа [1,3 M], добавлен 12.06.2009Создание программного продукта на языке Pascal в визуальной среде программирования Borland Developer Studio в консольном приложении. Разработка типизированного файла для записи данных и их вывод на экран, добавление данных в конец файла, поиск информации.
курсовая работа [1,0 M], добавлен 04.12.2011Аналоги текстовых редакторов с русскоязычным интерфейсом. Разработка и тестирование программного продукта, позволяющего работать с текстом и файлами в редакторе на языке программирования, основанным на русском языке. Алгоритм функционала программы.
дипломная работа [2,8 M], добавлен 21.07.2013Разработка программы, выводящей на экран механизм с возможностью изменения масштаба, скорости вращения звена, сохранения и считывания входных данных из файла в среде разработки MS Visual C#. Блок-схема ее работы. Принцип работы движущихся элементов.
курсовая работа [860,6 K], добавлен 27.06.2013