Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Чулов.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
829.35 Кб
Скачать
  1. Технологический раздел

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

Задача – создание удобной и понятной базы данных для добавления, хранения и сортировки информации. База данных будет иметь несколько таблиц с данными. Для этого нужно будет создать доступ к редактированию данных в базе данных. База данных будет содержать курс валют разных стран. Созданная база данных будет сохраняться в формате .mdb. Программа должна иметь возможность отрывать файлы для редактирования базы данных.

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

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

    1. Проектирование

Для разработки программы выбрана среда программирования – QT.

Qt предоставляет программисту не только удобный набор библиотек классов, но и определённую модель разработки приложений, определённый каркас их структуры. Следование принципам и правилам «хорошего стиля программирования на C++/Qt» существенно снижает частоту таких трудно отлавливаемых ошибок в приложениях, как утечки памяти (memory leaks), необработанные исключения, незакрытые файлы или неосвобождённые дескрипторы ресурсных объектов, чем нередко страдают программы, написанные «на голом C++» без использования библиотеки Qt.

Важным преимуществом Qt является хорошо продуманный, логичный и стройный набор классов, предоставляющий программисту очень высокий уровень абстракции. Благодаря этому программистам, использующим Qt, приходится писать значительно меньше кода, чем это имеет место при использовании, например, библиотеки классов MFC. Сам же код выглядит стройнее и проще, логичнее и понятнее, чем аналогичный по функциональности код MFC или код, написанный с использованием «родного» для X11 тулкита Xt. Его легче поддерживать и развивать.

Также,

Разработка программы разбивается на два больших этапа

  1. Разработка интерфейса

  2. Разработка кода для создания таблиц базы данных

    1. Разработка интерфейса

Интерфейс будет состоять из пары окон. Первое окно, оно же основное будет называться Staff Manager(рис.1)

Рис.1

Окно будет состоять из пары таблиц и нескольких окон.

Первая таблица будет называться Name valuts (рис.2). Здесь будут находиться данные о наших валютах, и каким странам они принадлежат.

Рис.2

Вторая таблица будет называться Kurs valut (рис.3), где будут показаны данные при нажатии на валюту по отношению к другим валютам.

Рис.3

В нашей базе данных создадим несколько кнопок для работы с программой. Первая кнопка будет Add country (рис.4).

Рис.4

С помощью этой кнопки мы сможем добавлять страны в наши таблицы

Дальше, добавляем вторую кнопку – Delete country (рис.5).

Рис.5

Этой кнопкой мы сможем удалять ненужные нам страны.

Третья кнопка будет Edit kurs (рис.6).

Рис.6

Этой кнопкой можно будет добавить курс в таблицу Kurs valut.

И последняя кнопка будет Quit (рис.7).

Рис.7

Стандартная кнопка для выхода из программы.

Основные свойства класса QMenu можно посмотреть через справку F1.

Как создано FileMenu

*fileMenu

fileMenu = menuBar()->addMenu(tr("&File")); -Эта строка добавляет на форму меню File

fileMenu->addAction(saveAsAction); = Эта строка добавляет Save As.

При нажатии на Save as мы попадаем в функцию saveAs()

bool MainWindow::saveAs()

{

QString fileName = QFileDialog::getSaveFileName(this,

tr("Save Spreadsheet"), ".",

tr("Spreadsheet files (*.sp)")); - Эта строка добавляет текстовую строку Save Spreadsheet и Spreadsheet files (*.sp)

if (fileName.isEmpty()) – если имя файла пустое возвращаем false

return false;

return saveFile(fileName); возвращаем имя файла

}

Рис 5.

В программе есть панель инструментов, она позволяет быстро открыть, сохранить, скопировать, перейти на ячейку. Рис 6

Рис 6. Панель инструментов

Панель инструментов реализована через класс QAction.

Рассмотрим подробнее создание нового файла через панель инструментов.

В главной функции MainWindow::MainWindow() переходим в подфункцию createActions().

newAction = new QAction(tr("&New"), this); - объявление нового действия

newAction->setIcon(QIcon(":/images/new.png")); - задание картинки

newAction->setShortcut(QKeySequence::New); -делаем ярлык

newAction->setStatusTip(tr("Create a new spreadsheet file")); - делаем подсказку для пользователя

connect(newAction, SIGNAL(triggered()), this, SLOT(newFile())); - связываем сигнал нажатия со слотом создания нового файла.

Как в Qt организуются сигналы и слоты