Программа называется: «Контактная книга»




Скачать 97.7 Kb.
Название Программа называется: «Контактная книга»
Дата публикации 19.06.2014
Размер 97.7 Kb.
Тип Программа
literature-edu.ru > Информатика > Программа
МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ

ФГБОУВПО

БРЯНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра «Информатика и программное обеспечение»
ЗАДАНИЕ

На курсовую работу по дисциплине ПРОГРАММИРОВАНИЕ
Студенту гр. 11-ПрИ
Тема «Контактная книга»

Содержание работы

Программа должна загружать из файла список с контактами, и предоставлять пользователю возможность добавления новых контактов, их сортировки, сохранения в файл .csv.
Рекомендации ________________________________________________

Замечания ___________________________________________________

Дата получения ______________________

Дата сдачи ______________________

Студент ______________________

Руководитель ______________________

Брянск 2012

Оглавление

1Постановка задачи 3

2Этап анализа. Техническое задание 4

2.1Наименование и назначение программы 4

2.2Требования к программе 4

3Этап проектирования 4

4Этап программирования 5

5Описание интерфейса программы 6

6Написание кода программы 7

7Тестирование 12

8Пример работы программы 14

Список используемой литературы 15

1Постановка задачи


Задача состоит в том, чтобы написать программу которая будет отображать пользователю список с контактами. Пользователь так же должен иметь возможность сортировать контакты, добавлять новые, сохранять их и экспортировать список в файл CSV. Список загружается из текстового файла, который можно дополнять новыми контактами вручную. Программа должна быть написана на языке C++ и иметь графический интерфейс. Для выполнения задачи был использован компилятор QT Creator.

2Этап анализа. Техническое задание


На основе выданной темы для курсовой работы было составлено техническое задание. Основные пункты представлены ниже.

2.1Наименование и назначение программы


Программа называется: «Контактная книга». Программа предназначена для отображения, сортировки и добавления новых контактов. Список содержит следующие данные:

  1. Имя и фамилию контакта

  2. Город его проживания

  3. Его контактный номер

2.2Требования к программе


Программа должна работать под управлением операционной системы Windows и обеспечивать возможность выполнения перечисленных ниже функций:

1. Добавление контактов:

1.1. Имя и Фамилия

1.2. Номер контакта

1.3. Город, где проживает контакт

2. Выполнение сортировки по именам и фамилиям (как по возрастанию, так и по убыванию)

3. При нажатии кнопки 'Добавить контакт' должно появиться отдельное окно для ввода информмации

4. Изменение шрифта, цвета шрифта и фона в новом диалоге.

5. Импортирование в файл csv.

3Этап проектирования



В ходе этапа проектирования была определена внутренняя структура программы.

Основной задачей была реализация считывания списка контактов из файла, сортировка контактов пользователем, сохранения в файл и экспортирование его в csv.

Суть использования сортировки:

  1. Выбор интересующего вида сортировки.

  2. Программа сравнивает данные вектора методом qSort.

  3. Отобразить пользователю отсортированный список.



4Этап программирования



Для создания приложения открываем среду разработки QT Creator, перед нами появляется стартовая страница, выбираем вкладку Файл->Новый файл или проект->Проект QT widget->GUI приложение QT.

После этого, размещаем на форме нужные нам элементы, для решения задачи и создания приложения. В результате мы получили форму следующего вида (См. Рис.4.1 )



Рис.4.1. Форма приложения

Нам понадобится ещё два диалоговых окна для настройки цвета фона и добавления нового контакта. Для их добавления необходимо нажать правой клавишей мыши на корневую папку проекта, далее выбрать добавить новый->QT->Класс формы QT Designer. Выбираем нужный нам шаблон, имя формы и располагаем на нем нужные элементы, после чего, форма имеет вид (См. Рис.4.2 )



Рис.4.2. Форма настроек

Подробный разбор всех элементов формы описан в главе «Описание интерфейса программы».


5Описание интерфейса программы



Ниже представлен интерфейс работы написанной программы (См. рис.5.1)



Рис.5.1. Пример работы программы

Интерфейс программы состоит из следующих компонентов:

QComboBox - выпадающий список, который отвечает за сортировку контактов определенным методом.

QPushButton – 4 кнопки, выполняющая функцию открытия диалогового окна с настройкой интерфейса, добавления нового контакта, удаления контакта и заполнения главного окна контактами.

QLineEdit - 2 заголовка, поясняющие пользователю, где находятся нужные ему поля программы.

QListWidget – Элемент интерфейса, в котором выводятся все контакты с содержанием имени, города и номера.

QPlainTextEdit В нем отображается подробная информация о выбранном контакте.

Если пользователь захочет изменить тип шрифта или цвет фона, то должен будет нажать на кнопку настроек, и появится следующее диалоговое окно (См. Рис.5.2)



Рис.5.2. Интерфейс настроек программы

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

6Написание кода программы


В следующем фрагменте кода, описывается, каким способом загружается список контактов из файла, и как они отображаются на экран монитора.

void MainWindow::on_fill_clicked()

{
FILE *f = fopen ("Data.txt","rt");

if (f==NULL) return;

int ContCount;

fscanf (f, "%d", &ContCount);

char Buffer[100];

fgets(Buffer, 100, f);

for (int i=0; i

{

TCont Cont;

fgets(Buffer, 100, f);

Cont.Name = QString(Buffer).trimmed();

fgets(Buffer, 100, f);

Cont.City = QString(Buffer).trimmed();

fgets(Buffer, 100, f);

Cont.Number = QString(Buffer).trimmed();

ContVector.push_back(Cont);

}

fclose (f);

ShowList();

}

Листинг 1. Загрузка списка контактов из файла

Код вывода на экран списка блюд:

void MainWindow::ShowList()

{

ui->mylist->clear();

int Size = ContVector.size();

for(int i=0; i

{

ui->mylist->addItem(ContVector[i].Name + ContVector[i].City + ContVector[i].Number);

}
}

Листинг 2. Вывод на экран списка контактов
Код вывода информации о блюде, при его выборе:

void MainWindow::on_mylist_currentRowChanged(int currentRow)

{

ui->PList->clear();

if(currentRow==-1)

{

return;

}

ui->PList->appendPlainText("Имя контакта: " + ContVector[currentRow].Name + "Город: +ContVector[currentRow].City + "Номер телефона: " + ContVector[currentRow].Number);

}

Листинг 3. Вывод информации о контакте
Код экспортирования данных в файл csv:

void MainWindow::on_action_csv_activated(int arg1)

{

FILE *f = fopen ("Data.csv","wt");

if (f==NULL) return;

int ContCount=ContVector.size();

fprintf(f, "Количество контактов в списке: %d\n", ContCount);

fprintf(f, "Имя контакта;");

fprintf(f, "Город проживания;");

fprintf(f, "Номер телефона контакта;\n");

for (int i=0; i

{
fprintf(f, "%s" , ContVector[i].Name.toAscii().data());

fprintf(f, "%s" , ";");

fprintf(f, "%s" , ContVector[i].City.toAscii().data());

fprintf(f, "%s" , ";");

fprintf(f, "%s\n" , ContVector[i].Number.toAscii().data());

}

fclose (f);

}

Листинг 4. Экспортирование контактов в файл csv
Код осуществления сортировки данных:


bool SortByNameDown(const TCont &s1, const TCont &s2)

{

return s1.Name > s2.Name;

}
bool SortByNameUp(const TCont &s1, const TCont &s2)

{

return s1.Name < s2.Name;

}
bool SortByCityUp(const TCont &s1, const TCont &s2)

{

return s1.City > s2.City;

}
bool SortByCityDown(const TCont &s1, const TCont &s2)

{

return s1.City < s2.City;

}

bool SortByNumberUp(const TCont &s1, const TCont &s2)

{

return s1.Number > s2.Number;

}

bool SortByNumberDown(const TCont &s1, const TCont &s2)

{

return s1.Number < s2.Number;

}
void MainWindow::SortList()

{

int a=ui->SortBox->currentIndex();
if(a==0)

{

qSort(ContVector.begin(),ContVector.end(),SortByNameDown);

}

else if(a==1)

{

qSort(ContVector.begin(),ContVector.end(),SortByNameUp);

}

else if(a==2)

{

qSort(ContVector.begin(),ContVector.end(),SortByCityUp);

}

else if(a==3)

{

qSort(ContVector.begin(),ContVector.end(),SortByCityDown);

}

else if(a==4)

{

qSort(ContVector.begin(),ContVector.end(),SortByNumberUp);

}

else if(a==5)

{

qSort(ContVector.begin(),ContVector.end(),SortByNumberDown);

}

}

void MainWindow::on_SortBox_currentIndexChanged(int index)

{

SortList();

ShowList();

}

Листинг 5. Осуществление сортировок

Код сохранения изменений в списке контактов

void MainWindow::on_action_2_activated(int arg1)

{

FILE *f = fopen ("Data.txt","wt");

if (f==NULL) return;

int ContCount=ContVector.size();

fprintf(f, "%d\n", ContCount);

for (int i=0; i

{

fprintf(f, "%s\n" , ContVector[i].Name.toAscii().data());

fprintf(f, "%s\n" , ContVector[i].City.toAscii().data());

fprintf(f, "%s\n" , ContVector[i].Number.toAscii().data());

}

fclose (f);

}

Листинг 6. Сохранение в файл

7Тестирование



По окончанию написания программы, было проведено её тестирование на работоспособность, которое не выявило критических ошибок. Тестирование черного ящика показало следующие проблемы в программе.

Таблица 7.1

Тестирование черного ящика

Номер теста

Описание теста

Ожидаемый ответ

Полученный ответ

1

Ввод только имени или города при добавлении контакта

Контакт не добавится

Контакт не добавился

2

После выбора сортировки проверить корректное, соответствующее отображение информации о контакте

Информация корректна

Информация отображается в той последовательности, в которой была загружена

3

При открытии палитры для выбора фона нажать «закрыть», а потом еще раз «закрыть»

Ничего не произойдет

Изменился цвет фона на черный

4

При добавлении контакта, контакт должен добавляться, соответствуя выбранному типу сортировки

Верное добавление контакта

Верное добавление контакта

5

При экспортировании файла в формате csv, экспортируемые данные должны быть разделены ячейками

Корректное отображение экспортируемых данных

Корректное отображение экспортируемых данных

6

При удалении контакта информации в поле «Информация о контакте» пропадает

Информация перестает отображаться

Информация перестает отображаться

7

После загрузки информации, выбора сортировки и последующем сохранении, информация сохраняется, соответствуя типу сортировки

Корректное сохранение информации

Информация осталась неизменной

8

Ввод в поле «Номер контакта» символов, отличных от цифр

Обработка данных не происходит

Программа добавила данные в список

При условии, что пользователь корректно заполняет файл, из которого загружается список с контактами, все остальные недочеты были исправлены. Далее были проведены тесты белого ящика, той части кода, которая считывает контакты из файла. Критических ошибок, которые могут серьезно повлиять на работу программы выявлено не было.

8Пример работы программы


При запуске программы появляется незаполненное поле для контактов. При нажатии на кнопку «Отобразить контакты» программа считывает данные из файла и одновременно отображает их на экран. Пользователь может настроить в программе шрифт и цвет фона, в соответствующем меню настроек. При выборе какого-либо конкретного контакта по щелчку мыши, внизу выводится его подробная информация – имя контакта, город проживания и номер телефона. Далее, если это необходимо, можно выбрать необходимый тип сортировки, например, имя по возрастанию. При необходимости пользователь может экспортировать данные в файл csv, который потом можно открыть при помощи программы Excel. Для того чтобы выйти из программы, необходимо просто закрыть окно.

Список используемой литературы





  1. Саммерфилд Марк. Qt. Профессиональное программирование. Разработка кроссплатформенных приложений на С++ / Пер. с англ. - «Символ-Плюс», 2011. - 560с.

  2. Шлее Макс. Qt 4: Профессиональное программирование на C++. - СПб.: «БХВ-Петербург», 2007. - 880с.

  3. Бланшет Жасмин, Саммерфилд Марк. Qt 4: Программирование GUI на C++ / Пер. с англ. 2-е дополненное издание. - М.: «Кудиц-Пресс», 2008. - 736с.

  4. Сергей Бобровский. Технологии C++ Builder, 2007г – 560с.

Добавить документ в свой блог или на сайт

Похожие:

Программа называется: «Контактная книга» icon Лекция 1: 1-1: 3 Объяснение тех причин, по которым эта книга называется книга "Шмуэль"
Шмуэль. Однако ответ не так прост, во-первых потому, что книгу Шофтим тоже написал Шмуэль, а она не называется книгой Шмуэля. Правда,...
Программа называется: «Контактная книга» icon Литература: [1]. А. Н. Колмогоров, С. В. Фомин. Элементы теории функций...
Е называется замкнутым. Если E=E', то множество е называется совершенным. Множество [E]=E+E' называется замыканием E. Точка x0 называется...
Программа называется: «Контактная книга» icon Программа называется: «Меню»
Программа предназначена для поиска из списка с помощью фильтров. Список содержит следующие данные
Программа называется: «Контактная книга» icon Чудотворная
И это не магия, а научно обоснованный метод использования силы сознания. Он называется альфа-визуализацией, а представляет его знаменитый...
Программа называется: «Контактная книга» icon Статьи. "Администрация Обамы разрабатывает перспективы Русско-Иранской войны"
С большим удовольствием сегодня представлю скен редчайшей книги с интригующим названием, которую мне удалось достать. В самой России...
Программа называется: «Контактная книга» icon Книга предназначена для всех, кто работает с большими объемами информации,...
Тело и мозг человека не нагружаются, они атрофируются, становятся дряблыми и немощными. Искусство «накачки» мышц называется бодибилдинг...
Программа называется: «Контактная книга» icon Содержание
Выборнов К. Ю. Дорога, по которой я иду, называется – музыка (моё педагогическое кредо)
Программа называется: «Контактная книга» icon Контрольная работа по творчеству
Как называется привилегированное образовательное учреждение для дворянских детей, в котором в 1811-1817 гг учился А. С. Пушкин?
Программа называется: «Контактная книга» icon Контрольная работа по творчеству
Как называется привилегированное образовательное учреждение для дворянских детей, в котором в 1811-1817 гг учился А. С. Пушкин?
Программа называется: «Контактная книга» icon Контрольная работа по информатике за курс 7 класса
Закончите предложение: «Любая часть окружающей действительности, воспринимаемая человеком как единое целое, называется …»
Литература


При копировании материала укажите ссылку © 2015
контакты
literature-edu.ru
Поиск на сайте

Главная страница  Литература  Доклады  Рефераты  Курсовая работа  Лекции