Разработка Windows приложения определения гороскопа по дате рождения

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    300,84 Кб
  • Опубликовано:
    2015-05-31
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка Windows приложения определения гороскопа по дате рождения

САРОВСКИЙ ГОСУДАРСТВЕННЫЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ

ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ЭЛЕКТРОНИКИ

КАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ И ИНФОРМАЦИОННОЙ ТЕХНИКИ



ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

К КУРСОВОМУ ПРОЕКТУ

На тему:

«Разработка Windows приложения определения гороскопа по дате рождения»



СТУДЕНТ:

Терехиной Златы Александровной

ГРУППА: ИТ-32Д

РУКОВОДИТЕЛЬ РАБОТЫ:

Декан ФПК, к.э.н, доцент Федоренко Г.А.

ЗАВЕДУЮЩИЙ КАФЕДРОЙ ВИТ:

к.ф.-м.н. Холушкин В.С.


САРОВ 2015

Аннотация

Данная курсовая работа состоит из двух частей: программы, выполненной в среде Qt Creator 2.7.1 и пояснительной записки.

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

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

Содержание

Введение

1. Анализ задания, выбор технологии, языка и среды разработки

2. Разработка ПС

2.1 Описание задачи

2.2 Определение структуры ПС

2.3 Определение спецификации

2.4 Описание работы ПС

2.5 Организация данных

2.6 Разработка пользовательского интерфейса

2.7 Кодирование классов ПС

3. Выбор стратегии тестирования и отладка ПС

4. Системные требования, возможности ПС

Заключение

Список литературы

Приложение 1. Результат работы программы

Приложение 2. Листинг программы

Введение

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

Дать однозначное определение гороскопу нельзя. Это собрание характеристик, привязанных к определенным данным о человеке: его году, сезону или дню рождения. Что это - совокупность характеристик, которые могут подходить всем и каждому или какие-то конкретные вековые мудрости - подобный спор ведется уже не один десяток лет. Собственно, это и есть вечный вопрос: верить или не верить в гороскопы.

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

1. Анализ задания, выбор технологии, языка и среды разработки

Для создания приложения использовался язык программирования С++ и кроссплатформенный инструментарий Qt 4.8 для Windows 7 и выше. Qt позволяет запускать написанное с его помощью ПО в большинстве современных операционных систем путём простой компиляции программы для каждой ОС без изменения исходного кода. Включает в себя все основные классы, которые могут потребоваться при разработке прикладного программного обеспечения, начиная от элементов графического интерфейса и заканчивая классами для работы с сетью, базами данных и XML. Qt является полностью объектно-ориентированным, легко расширяемым и поддерживающим технику компонентного программирования.

Программа реализована с помощью технологии объектно-ориентированного программирования. В центре ООП находится понятие объекта. Объект - это сущность, которой можно посылать сообщения, и которая может на них реагировать, используя свои данные. Объект - это экземпляр класса. Данные объекта скрыты от остальной программы. ООП имеет следующие преимущества:

·        Основным достоинством объектно-ориентированного программирования по сравнению с модульным программированием является «более естественная» декомпозиция программного обеспечения, которая существенно облегчает его разработку;

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

·        Эти механизмы позволяют конструировать сложные объекты из сравнительно простых. В результате существенно увеличивается показатель повторного использования кодов и появляется возможность создания библиотек классов для различных применений.

2. Разработка ПС

.1 Описание задачи

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

2.2 Определение структуры ПС

Проанализировав проблемную область поставленной задачи, структура создаваемого ПС будет такова:



Рис. 1. Структурная схема получения гороскопа по дате рождения

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

Дата рождения

Знак Зодиака

21 марта - 20 апреля

Овен

21 апреля - 20 мая

Телец

21 мая - 21 июня

Близнецы

22 июня - 22 июля

Рак

23 июля - 23 августа

Лев

24 августа - 23 сентября

Дева

24 сентября - 23 октября

Весы

24 октября - 22 ноября

23 ноября - 21 декабря

Стрелец

22 декабря - 20 января

Козерог

21 января - 20 февраля

Водолей

21 февраля - 20 марта

Рыбы


Данная программа позволяет определить по дате рождения человека его гороскоп. Она состоит из следующего:

·        Ввод первичных данных (дата рождения)

·        Вывод информации в диалоговом окне (гороскоп)

·        Редактирование текстовых файлов (изменение гороскопа)

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

Анализируя принцип работы программы, определяем спецификации, т.е. формулируем, что нужно сделать:

1.      определить по дате рождения гороскоп;

.        разработать алгоритм получения данных;

.        отобразить информацию в графическом окне.

2.4 Описание работы ПС

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

Для редактирования прогноза нужно выбрать в «Меню» программы пункт «Редактировать гороскоп». После чего нужно выбрать файл, отредактировать его и сохранить.

2.5 Организация данных

В данной программе используется в качестве входных данных дата. Ее ввод осуществляется с помощью объекта класса QDateEdit. Для выходных данных предусмотрено диалоговое окно, в котором выводится текст из файла.

2.6 Разработка пользовательского интерфейса

При разработке ПС использовалось создание приложения на базе главного окна класса QMainWindow. Главное окно предоставляет структуру для создания пользовательского интерфейса приложения. Qt имеет класс QMainWindow и связанные с ним классы для управления главным окном. QMainWindow имеет собственный компоновщик, в который вы можете добавлять QToolBar'ы, QDockWidget'ы, QMenuBar, и QStatusBar. Компоновщик имеет центральную область, которая может быть занята любым виджетом. В данной программе в центральной области поле ввода даты и кнопка.

2.7 Кодирование модулей ПС

Для получения прогноза пользователь выбирает нужную дату и нажимает кнопку «Получить». По нажатию данной кнопки вызывается слот on_pushButton_clicked(), в котором считывается дата. После чего создается диалоговое окно с помощью класса QDialog, и начинается считывание гороскопа из файла. Какой именно выбрать файл позволяет функция what_sign(day,month), аргументами которой являются день и месяц.

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

Для редактирования гороскопа нужно вызвать диалоговое окно путем выбора из «Меню» пункта «Редактировать гороскоп», либо открыть одноименное окно путем сочетания клавиш «Ctrl» + «E». После чего вызовется слот on_actionEdit_triggered(). После вывода окна редактирования на нем будут доступны две кнопки «Открыть файл» и «Сохранить», которые связаны со слотами on_pushButton_clicked() и on_pushButton_2_clicked() соответственно. Первый слот позволяет считать и вывести на экран выбранный файл, второй слот сохраняет этот файл, а именно обновляет его содержимое.

void MainWindow::on_pushButton_clicked()

{date = ui->dateEdit->date();//считываем датуday = date.day();//разделяем деньmonth = date.month();//и месяц

QDialog *dlg = new QDialog(this);//создаем указатель на диалоговое окно*textEdit = new QTextEdit(dlg);//и указатель текст , который будет выводится из файла

textEdit->viewport()->setAutoFillBackground(false);//сделаем фон прозрачный>setFrameStyle(QFrame::NoFrame);//и без рамки

textEdit->setReadOnly(true);//и только для чтенияfilename,name;// перменные текстового файла и знака

// Вычисляем знак зодиака= what_sign(day,month);// получаем название текст. файла

name = name_sign(day,month);//и название гороскопаpp(PROJECT_PATH);//путь к папке с гороскопами

QFile file(pp+"/zz/"+filename); /* объявляем файл */(file.exists()) // если файл найден

{.open(QIODevice::ReadOnly|QIODevice::Text);//открываем для чтения

QString text = file.readAll(); // считываем весь текст>setText(text); // выводим текст файла на экран>show();//выводим текст>setWindowTitle(name);//установиим название окна>show();//и выведем окно

}// если не найдет файл выведем предупреждение об ошибке

QMessageBox::critical(this,"Ошибка","Файл "+filename+" не найден");

}

3. Выбор стратегии тестирования и отладка ПС

Отладка - это процесс, который начинается с момента установления существования ошибки и заканчивается локализацией этой ошибки в программе, то есть определением ее характера и местонахождения. Таким образом, отладки программы предусматривает обязательное наличие ошибки.

Тестирование - это выполнение комплекса упражнений (заданий) для проверки работоспособности программы при любых условиях. Тестирование может выявить факт наличия ошибки, а налаживание выявляет причину ошибки, так что эти два этапа разработки "перекрываются".

Отладка программ - достаточно сложный процесс. Во-первых, для исправления ошибки необходимо полностью выявить ее причины, часто далеко неочевидны. Во-вторых, эта деятельность психологически носит негативный характер, в том смысле, что программист должен признать, что именно его ошибка является причиной программного сбоя. Кроме того, отладки - это процесс, который приостанавливается лишь временно, пока тестирование не выявит наличие очередной ошибки.

Для тестирования данной программы нужно запустить программу и подать ей на вход дату «08.04». Следовательно, программа должна дать на выходе гороскоп Знака Зодиака Овен.



4. Системные требования, возможности ПС

Платформой для функционирования, разработанного ПС является любой персональный компьютер. Минимальные системные требования к аппаратно-операционной среде: OC Windows 7/8, Linux, Mac OS X с предустановленным инструментарием Qt 4.8.x и средой разработки Qt Creator 2.7 и выше. Клавиатура, мышь.

Заключение

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

Программа реализована на языке C++ в программной оболочке QtCreator 2.7.1. Изучение данного языка освоено на уровне, позволяющем справиться с данной задачей

Список литературы

1.   Страуструп, Б. «Язык программирования C++» Москва: Бином, 2011г Шлее, М. «Qt 4.5. Профессиональное программирование на C++», Санкт-Петербург: БХВ-Петербург, 2009 г.

2.      Характеристика знаков зодиака [Электронный ресурс], 2007. - Режим доступа: #"867361.files/image003.jpg">

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


Для редактирования гороскопа следует выбрать в «Меню» пункт «Редактировать гороскоп», либо нажать клавиши «Ctrl» + «E».


Откроется окно редактирования, где нужно нажать на кнопку «Открыть файл»


После чего выбрать нужный файл из списка и нажать «Открыть».


В окне редактирования изменить текущий текст на нужный.


Нажав кнопку «Сохранить» приложение сохранит новый гороскоп.


После чего можно продолжить работу с программой.

Приложение 2. Листинг программы

 

#ifndef DIALOG_H

#define DIALOG_H

#include <QDialog>Ui {Dialog;

}Dialog : public QDialog

{_OBJECTfileName;:Dialog(QWidget *parent = 0);

~Dialog();slots:on_pushButton_clicked();on_pushButton_2_clicked();:::Dialog *ui;

};

#endif // DIALOG_H

Файл mainwindow.h

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QMainWindow>Ui {MainWindow;

}MainWindow : public QMainWindow

{_OBJECT:MainWindow(QWidget *parent = 0);

~MainWindow();:what_sign(int day, int month);name_sign(int day, int month);slots:on_pushButton_clicked();on_actionEdit_triggered();:::MainWindow *ui;

};

#endif // MAINWINDOW_H

Файл dialog.cpp

#include "dialog.h"

#include "ui_dialog.h"

#include <QtGui>::Dialog(QWidget *parent) :(parent),(new Ui::Dialog)

{>setupUi(this);

}::~Dialog()

{ui;

}Dialog::on_pushButton_clicked()

{pp(PROJECT_PATH+QString("/zz/"));= QFileDialog::getOpenFileName(, // указатель на родительское окно

"Открыть файл", // заголовок окна(pp), // выбор начинается с текущего каталога("Текстовые файлы (*.txt);;Все файлы (*.*)") );

// фильтры для списка файловfile;(!fileName.isEmpty()) // если имя файла выбрано

{.setFileName(fileName);

// связываем объект file с физическим файлом

file.open(QIODevice::ReadOnly|QIODevice::Text);.setFileName(fileName);

// связываем объект file с физическим файлом.open(QIODevice::ReadOnly|QIODevice::Text);text = file.readAll();>textEdit->setText(text); // отображаем текст на экране

}

}Dialog::on_pushButton_2_clicked()

{pp(PROJECT_PATH+QString("/zz/"));(!fileName.isEmpty()) // если имя файла задано

{rezFile(pp+fileName); // объявляем объект, соответствующий новому файлу.setFileName(fileName); // связываем объект и файл

rezFile.open(QIODevice::WriteOnly|QIODevice::Text);

// открываем файлout(&rezFile); // создаем поток для работы с файлом<< ui->textEdit->toPlainText(); // переписываем текст в файл.close(); // обязательно закрываем созданный файл

QMessageBox::information(this,"Готово","Сохранено!");

}QMessageBox::critical(this,"Ошибка","Файл не выбран");

}

Файл main.cpp

#include "mainwindow.h"

#include <QApplication>main(int argc, char *argv[])

{a(argc, argv);w;.show();a.exec();

}

Файл mainwindow.cpp

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include "dialog.h"

#include <QtGui>::MainWindow(QWidget *parent) :(parent),(new Ui::MainWindow)

{>setupUi(this);* codec = QTextCodec::codecForName("UTF-8");::setCodecForCStrings(codec);::setCodecForLocale(codec);::setCodecForTr(codec);

}::~MainWindow()

{ui;

}MainWindow::what_sign(int day, int month){ //функция определения знака и его файлаfilename;//имя файла( (month == 3 && day >= 21) || (month == 4 && day <= 20) )="Aries.txt"; // Овен( (month == 4 && day >= 21) || (month == 5 && day <= 20) )="Taurus.txt"; //Телец( (month == 5 && day >= 21) || (month == 6 && day <= 21) )="Gemini.txt";            // Близнецы( (month == 6 && day >= 22) || (month == 7 && day <= 22) )="Cancer.txt";                   // Рак( (month == 7 && day >= 23) || (month == 8 && day <= 23) )="Leo.txt";                        // Лев( (month == 8 && day >= 24) || (month == 9 && day <= 23) )="Virgo.txt";        // Дева( (month == 9 && day >= 24) || (month == 10 && day <= 22) )="Libra.txt";               //Весы( (month == 10 && day >= 23) || (month == 11 && day <= 22) )="Scorpio.txt";           // Скорпион( (month == 11 && day >= 23) || (month == 12 && day <= 21) )="Sagittarius.txt";                   // Стрелец( (month == 12 && day >= 22) || (month == 1 && day <= 20) )="Capricorn.txt";    // Козерог( (month == 1 && day >= 21) || (month == 2 && day <= 19) )="Aquarius.txt";        // Водолей( (month == 2 && day >= 20) || (month == 3 && day <= 20) )="Pisces.txt"; // Рыбыfilename;//возвращаем имя файла

}MainWindow::name_sign(int day, int month){ //функция определения знака и его названияname;( (month == 3 && day >= 21) || (month == 4 && day <= 20) )="Овен"; // Овен( (month == 4 && day >= 21) || (month == 5 && day <= 20) )="Телец"; //Телец( (month == 5 && day >= 21) || (month == 6 && day <= 21) )="Близнецы";    // Близнецы( (month == 6 && day >= 22) || (month == 7 && day <= 22) )="Рак";                   // Рак( (month == 7 && day >= 23) || (month == 8 && day <= 23) )="Лев";                 // Лев( (month == 8 && day >= 24) || (month == 9 && day <= 23) )="Дева";   // Дева( (month == 9 && day >= 24) || (month == 10 && day <= 22) )="Весы";                     //Весы( (month == 10 && day >= 23) || (month == 11 && day <= 22) )="Скорпион"; // Скорпион( (month == 11 && day >= 23) || (month == 12 && day <= 21) )="Стрелец";                // Стрелец( (month == 12 && day >= 22) || (month == 1 && day <= 20) )="Козерог";      // Козерог( (month == 1 && day >= 21) || (month == 2 && day <= 19) )="Водолей";     // Водолей( (month == 2 && day >= 20) || (month == 3 && day <= 20) )="Рыбы";          // Рыбыname;

}MainWindow::on_pushButton_clicked()

{date = ui->dateEdit->date();//считываем датуday = date.day();//разделяем деньmonth = date.month();//и месяц

QDialog *dlg = new QDialog(this);//создаем указатель на диалоговое окно*textEdit = new QTextEdit(dlg);//и указатель текст , который будет выводится из файла

textEdit->viewport()->setAutoFillBackground(false);//сделаем фон прозрачный>setFrameStyle(QFrame::NoFrame);//и без рамки

textEdit->setReadOnly(true);//и только для чтенияfilename,name;// перменные текстового файла и знака

// Вычисляем знак зодиака= what_sign(day,month);// получаем название текст. файла

name = name_sign(day,month);//и название гороскопаpp(PROJECT_PATH);//путь к папке с гороскопами

QFile file(pp+"/zz/"+filename); /* объявляем файл */(file.exists()) // если файл найден

{.open(QIODevice::ReadOnly|QIODevice::Text);//открываем для чтения

QString text = file.readAll(); // считываем весь текст>setText(text); // выводим текст файла на экран>show();//выводим текст>setWindowTitle(name);//установиим название окна>show();//и выведем окно

}// если не найдет файл выведем предупреждение об ошибке

QMessageBox::critical(this,"Ошибка","Файл "+filename+" не найден");

}MainWindow::on_actionEdit_triggered()//слот взывающий диалоговое окно редактирования прогноза

{*dlg = new Dialog(this);

}

Похожие работы на - Разработка Windows приложения определения гороскопа по дате рождения

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!