Программа поиска информации о телевизорах
Методика разработки программы по поиску информации из базы данных, содержащей информацию о телевизорах. Использование языка программирования "С++" и среды разработки Qt Creator "С++" - статически типизированного языка программирования общего назначения.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 22.12.2011 |
Размер файла | 626,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Курсовая работа
Дисциплина: «Основы программирования»
ТЕМА: «Программа поиска информации о телевизорах»
Реферат
Работа содержит 19 листов отчета, 5 иллюстраций, 4 использованных источников литературы.
В рамках выполнения курсовой работы разрабатывается программа, на языке программирования «С++» и среде разработки Qt Creator. Разрабатываемая программа должна совершать поиск информации из базы данных, содержащей информацию о телевизорах. Для реализации работы данной программы, была взята база данных SQLite и написан код, реализующий поиск информации в базе данных и выводящий эту информацию на экран пользователю.
Введение
Целью данной работы является разработка программы поиска информации о телевизорах: тип, диагональ, средняя цена, количество на складе; на основе ввода пользователем запрашиваемой информации и выводом её на экран пользователю, с использованием базы данных, в которую можно добавлять и из которой можно удалять информацию.
Актуальность и новизна работы обусловлена тем, что при разработке настоящей программы студент получает базовые знания о языке С++ и среде разработки Qt Creator.
Результаты настоящей работы могут быть использованы как пример для разработки программного обеспечения схожего типа.
Глава 1. Язык программирования “С++” и среда разработки Qt Creator
«C++» -- компилируемый статически типизированный язык программирования общего назначения. Поддерживая разные парадигмы программирования, сочетает свойства как высокоуровневых, так и низкоуровневых языков. В сравнении с его предшественником -- языком C, -- наибольшее внимание уделено поддержке объектно-ориентированного и обобщённого программирования. Название «C++» происходит от языка C, в котором унарный оператор ++ обозначает инкремент переменной.
Являясь одним из самых популярных языков программирования, C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (например, видеоигры). Существует несколько реализаций языка C++ -- как бесплатных, так и коммерческих. Их производят Проект GNU, Microsoft, Intel и Embarcadero (Borland). C++ оказал огромное влияние на другие языки программирования, в первую очередь на Java и C#.
При создании C++ Бьёрн Страуструп стремился сохранить совместимость с языком C. Множество программ, которые могут одинаково успешно транслироваться как компиляторами C, так и компиляторами C++, довольно велико -- отчасти благодаря тому, что синтаксис C++ был основан на синтаксисе C.
Стандарт C++ на 2003 год состоит из двух основных частей: описание ядра языка и описание стандартной библиотеки.
Кроме того, существует огромное количество библиотек C++, не входящих в стандарт. В программах на C++ можно использовать многие библиотеки C.
Стандартизация определила язык программирования C++, однако за этим названием могут скрываться также неполные, ограниченные, достандартные варианты языка. Первое время язык развивался вне формальных рамок, спонтанно, по мере встававших перед ним задач. Развитию языка сопутствовало развитие кросс-компилятора cfront. Новшества в языке отражались в изменении номера версии кросс-компилятора. Эти номера версий кросс-компилятора распространялись и на сам язык, но применительно к настоящему времени речь о версиях языка C++ не ведут.
Qt Creator -- кроссплатформенная свободная IDE для работы с фреймворком Qt, разработанная Trolltech (Nokia). Анонс проекта состоялся на Qt Developer Days в октябре 2008 года. Публичная бета-версия проекта была опубликована 30 октября 2008 года. Финальный релиз состоялся 3 марта 2009 года (вместе с выходом Qt 4.5), а исходный код доступен под лицензией LGPL.
Особенности:
1. Сделана специально для разработки на Qt;
2. Встроенные редактор форм (Qt Designer) и справочная система (Qt Assistant);
3. Контекстно-зависимая система помощи;
4. Расширяема плагинами;
5. Имеется графический фронтенд для GDB;
6. Обобщённая подсветка синтаксиса, поддерживается большое количество языков программирования и разметки. Есть возможность создания своих стилей подсветки;
7. QML-дизайнер;
Еще одно немаловажное достоинство Qt Creator это его распространение под лицензией LGPL, что позволяет создавать собственные коммерческие проекты, без какого-либо вознаграждения производителям среды.
Глава 2. Разработка программы
Разрабатываемая программа должна выдавать пользователю информацию, которую он запрашивает, путём ввода ключевого слова в окно поиска. В разработке использовалась база данных SQLite, содержащая 3 таблицы с наименованиями и характеристиками персонажей онлайн игры «Lineage 2: interlude».
Рис 2.1. Общая структура базы данных
На рисунке 2.1. показана общая структура базы данных, состоящая из трёх таблиц.
Таблицы связаны через элемент данной базы данных «ID». В первой таблице элементу «manufacturer» присвоен «ID», соответственно во второй и третьей таблице характеристики персонажей «привязаны» к «ID» определенному элементу «manufacturer».
Рис 2.2. Наполнение первой таблицы
Рис 2.3. Наполнение второй таблицы
Рис 2.4. Наполнение третьей таблицы
На рисунках 2.2, 2.3, 2.4 показаны наполнения таблиц базы данных.
Графически, программа представляет собой три окна, на которые выводится информация о телевизорах. Как показано на рисунке 2.5 левое окно отображает производителей и наличие телевизоров. Среднее окно отображает типы и диагонали телевизоров находящихся в наличие. Правое окно отображает количество телевизоров на складе и среднюю цену на них. На рисунке 2.5 был произведен запрос по ID=1.
Рис 2.5 Внешний вид программы
Код программы находиться в пяти текстовых файлах: «Kr.pro» - корневой файл в котором находятся записи об остальных файлах и библиотеках; «Connect.h»-заголовочный файл в котором написан код подключающий базу данных; «mainwindow.h»-заголовочный файл, в котором задаются постоянные, слоты и т.п.; «main.cpp»- содержит подключения к «connect.h» и содержит код, описывающий корректное выполнение программы; «mainwindow.cpp»-содержит основную часть кода, который непосредственно выполняется при запуске программы.
Код программы:
«Kr.pro»:
QT += core gui
TARGET = program
TEMPLATE = app
QT += sql
SOURCES += main.cpp\
«Connect.h»
#ifndef CONNECT_H
#define CONNECT_H
#include <QMessageBox>
#include <QtSql/QSqlDatabase>
inline bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("C:/01010101/Denis Krash/Kr/db1.db");
if(!db.open())
{
QMessageBox::critical(0,"Connection error!","Connection failed!");
return false;
}
return true;
}
#endif // CONNECT_H
«mainvindow.h»:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtSql>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void changeEvent(QEvent *e);
private:
Ui::MainWindow *ui;
QSqlTableModel *tab;
QSqlQueryModel *qm;
QSqlQueryModel *qp;
private slots:
void on_pushButton_clicked();
void slot1();
};
#endif // MAINWINDOW_H
«main.cpp»:
#include <QtGui/QApplication>
#include "mainwindow.h"
#include "connect.h"
#include <QMessageBox>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
if(!createConnection())
{
QMessageBox::critical(0,"Connection error!","Connection failed!");
return 1;
}
MainWindow w;
w.show();
return a.exec();
}
«mainwindow.cpp»:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <math.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
tab = new QSqlTableModel;
tab->setTable("table1");
tab->select();
tab->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("ID"));
tab->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Производитель"));
tab->setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("Наличие"));
tab->select();
ui->tableView->setModel(tab);
ui->tableView->resizeColumnsToContents();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void MainWindow::on_pushButton_clicked()
{
}
void MainWindow::slot1()
{
QString h=ui->lineEdit->text();
QString t=ui->lineEdit->text();
qm=new QSqlQueryModel;
QSqlQuery q1=QString ("SELECT Type, diagonal FROM table2 WHERE ID="+h);
qm->setQuery(q1);
ui->tableView_2->setModel(qm);
qm->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("Тип"));
qm->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Диагональ"));
qp=new QSqlQueryModel;
QSqlQuery p=QString("SELECT Quantity_in_a_warehouse, The_average_price FROM table3 WHERE ID="+t);
qp->setQuery(p);
ui->tableView_3->setModel(qp);
qp->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("Количество на складе"));
qp->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Средняя цена товара"));
}
Наиболее важные части кода находятся в «connect.h» и «mainwinwow.cpp». Код подключающий базу данных:
inline bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("F:/01010101/KypcoBa9/program/db1.db");
if(!db.open())
{
QMessageBox::critical(0,"Connection error!","Connection failed!");
return false;
}
return true;
}
В данной части кода прописывается тип базы данных и путь к ней, так же прописывается код, который запускает её.
Код выполняющий поиск и выдачу информации на экран:
ui->setupUi(this);
tab = new QSqlTableModel;
tab->setTable("table1");
tab->select();
tab->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("ID"));
tab->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Производитель "));
tab->setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("Наличие"));
tab->select();
ui->tableView->setModel(tab);
ui->tableView->hideColumn(0);
ui->tableView->resizeColumnsToContents();
QString h=ui->lineEdit->text();
QString t=ui->lineEdit->text();
qm=new QSqlQueryModel;
QSqlQuery q=QString ("SELECT Type, diagonal FROM table2 WHERE ID="+h);
qm->setQuery(q);
ui->tableView_2->setModel(qm);
qp=new QSqlQueryModel;
QSqlQuery p=QString("SELECT Quantity_in_a_warehouse, The_average_price table3 WHERE ID="+t);
qp->setQuery(p);
ui->tableView_3->setModel(qp);
}
В данном коде первая таблица выводиться на «tableView» и названия заменяются с английского на русский язык. Далее данные из таблицы 2 и таблицы 3 выводиться информация в «tableView 2» и «tableView 3» соответственно.
программирование язык телевизор база
Заключение
В рамках курсовой работы была разработана программа, совершающая поиск по запросу и базы данных. В ходе выполнения проекта были изучены некоторые функции и особенности языка С++.
Разработка системы продемонстрировала некоторые особенности языка С++, а именно среды qt creator.
При помощи данной программы пользователь, сможет совершать поиск информации из базы данных по телевизорам.
Приложение
Код программы:
«Kr.pro»:
QT += core gui
TARGET = program
TEMPLATE = app
QT += sql
SOURCES += main.cpp\
«Connect.h»
#ifndef CONNECT_H
#define CONNECT_H
#include <QMessageBox>
#include <QtSql/QSqlDatabase>
inline bool createConnection()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("C:/01010101/Denis Krash/Kr/db1.db");
if(!db.open())
{
QMessageBox::critical(0,"Connection error!","Connection failed!");
return false;
}
return true;
}
#endif // CONNECT_H
«mainvindow.h»:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QtSql>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void changeEvent(QEvent *e);
private:
Ui::MainWindow *ui;
QSqlTableModel *tab;
QSqlQueryModel *qm;
QSqlQueryModel *qp;
private slots:
void on_pushButton_clicked();
void slot1();
};
#endif // MAINWINDOW_H
«main.cpp»:
#include <QtGui/QApplication>
#include "mainwindow.h"
#include "connect.h"
#include <QMessageBox>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
if(!createConnection())
{
QMessageBox::critical(0,"Connection error!","Connection failed!");
return 1;
}
MainWindow w;
w.show();
return a.exec();
}
«mainwindow.cpp»:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <math.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
tab = new QSqlTableModel;
tab->setTable("table1");
tab->select();
tab->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("ID"));
tab->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Производитель"));
tab->setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("Наличие"));
tab->select();
ui->tableView->setModel(tab);
ui->tableView->resizeColumnsToContents();
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::changeEvent(QEvent *e)
{
QMainWindow::changeEvent(e);
switch (e->type()) {
case QEvent::LanguageChange:
ui->retranslateUi(this);
break;
default:
break;
}
}
void MainWindow::on_pushButton_clicked()
{
}
void MainWindow::slot1()
{
QString h=ui->lineEdit->text();
QString t=ui->lineEdit->text();
qm=new QSqlQueryModel;
QSqlQuery q1=QString ("SELECT Type, diagonal FROM table2 WHERE ID="+h);
qm->setQuery(q1);
ui->tableView_2->setModel(qm);
qm->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("Тип"));
qm->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Диагональ"));
qp=new QSqlQueryModel;
QSqlQuery p=QString("SELECT Quantity_in_a_warehouse, The_average_price FROM table3 WHERE ID="+t);
qp->setQuery(p);
ui->tableView_3->setModel(qp);
qp->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("Количество на складе"));
qp->setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Средняя цена товара"));}
Список использованных источников
1. Лекции по дисциплине «Основы программирования на языке С++»
2. Jasmin Blanchette, Mark Summerfield, перевод Андрей Киселёв «Разработка графического интерфейса с помощью библиотеки Qt3» книга распространяется на условиях Open Publication License, v1.0.
3. Герберт Шилдт, «Полный справочник по C++», 4-е издание, издательство Диалектика, Москва 2003г, 800стр.
4. Александр Чиртик, «Программирование на С++», издательство Питер, 2010 год, 352стр.
Размещено на Allbest.ru
Подобные документы
Критерии классификации баз данных. Использование C++ - компилируемого, статически типизированного языка программирования общего назначения. Этапы разработки специализированного прикладного программного обеспечения - базы данных "Прохождение практики".
курсовая работа [1,4 M], добавлен 11.12.2015Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.
курсовая работа [571,9 K], добавлен 14.07.2012Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.
курсовая работа [19,5 K], добавлен 19.05.2011Характеристика структурированного языка программирования С, его основных структурных компонентов, области памяти, библиотеки. Методы поиска в массивах данных. Описание программы, функции сортировки и меню выбора, последовательного и бинарного поиска.
курсовая работа [1,7 M], добавлен 19.05.2014Классификация систем управления базами данных. Выбор операционной системы, языка программирования, среды разработки (IDE) и дополнительных компонент. Разработка интерфейса и функций программы по управлению складом, её тестирование и исходный код файлов.
курсовая работа [487,3 K], добавлен 25.12.2015Алгоритм разработки программного обеспечения. Выбор оптимальной среды программирования. Использование регистров специального назначения. Листинг программы в кодах языка Assambler. Результаты ее компилирования. Блок схема основной программы и макроса RND.
курсовая работа [416,5 K], добавлен 11.03.2015Разработка программы для поиска пути в лабиринте с возможностью задания входа и выхода, наглядное представление решений. Использование языка логического программирования Prolog. Данные и методы решения. Пользовательский интерфейс, листинг программы.
реферат [14,3 K], добавлен 15.10.2012Разработка программы, решающей базовую задачу линейного программирования симплекс-методом с помощью симплекс-таблиц. Выбор языка программирования и среды разработки, программные модули и их взаимодействие между собой. Листинг разработанной программы.
курсовая работа [415,8 K], добавлен 08.09.2013Общая характеристика языка программирования С++, его функции и возможности. Создание базы данных "Учет фототехники" для работников магазина. Этапы разработки алгоритма, спецификация, кодирование, отладка и тестирование программы. Руководство пользователя.
курсовая работа [3,2 M], добавлен 15.07.2012Изучение общей структуры языка программирования Delphi: главные и дополнительные составные части среды программирования. Синтаксис и семантика языка программирования Delphi: алфавит языка, элементарные конструкции, переменные, константы и операторы.
курсовая работа [738,1 K], добавлен 17.05.2010