Программа поиска информации о телевизорах

 














Курсовая работа

Дисциплина: «Основы программирования»

ТЕМА: «Программа поиска информации о телевизорах»


Реферат


Работа содержит 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++ не ведут.Creator - кроссплатформенная свободная IDE для работы с фреймворком Qt, разработанная Trolltech (Nokia). Анонс проекта состоялся на Qt Developer Days в октябре 2008 года. Публичная бета-версия проекта была опубликована 30 октября 2008 года. Финальный релиз состоялся 3 марта 2009 года (вместе с выходом Qt 4.5), а исходный код доступен под лицензией LGPL.

Особенности:

. Сделана специально для разработки на Qt;

. Встроенные редактор форм (Qt Designer) и справочная система (Qt Assistant);

. Контекстно-зависимая система помощи;

. Расширяема плагинами;

. Имеется графический фронтенд для GDB;

. Обобщённая подсветка синтаксиса, поддерживается большое количество языков программирования и разметки. Есть возможность создания своих стилей подсветки;

. 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»:+= core gui= program= app+= sql+= main.cpp\

«Connect.h»

#ifndef CONNECT_H

#define CONNECT_H

#include <QMessageBox>

#include <QtSql/QSqlDatabase>bool createConnection()

{db = QSqlDatabase::addDatabase("QSQLITE");.setDatabaseName("C:/01010101/Denis Krash/Kr/db1.db");(!db.open())

{::critical(0,"Connection error!","Connection failed!");false;

}true;

}

#endif // CONNECT_H

«mainvindow.h»:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QMainWindow>

#include <QtSql>Ui {MainWindow;

}

class MainWindow : public QMainWindow

{_OBJECT

public:MainWindow(QWidget *parent = 0);

~MainWindow();:changeEvent(QEvent *e);

private:::MainWindow *ui;*tab;*qm;*qp;

private slots:

void on_pushButton_clicked();slot1();

};

#endif // MAINWINDOW_H

«main.cpp»:

#include <QtGui/QApplication>

#include "mainwindow.h"

#include "connect.h"

#include <QMessageBox>

int main(int argc, char *argv[])

{a(argc, argv);(!createConnection())

{::critical(0,"Connection error!","Connection failed!");1;

}w;.show();a.exec();

}

«mainwindow.cpp»:

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include <math.h>::MainWindow(QWidget *parent) :(parent),(new Ui::MainWindow)

{>setupUi(this);= new QSqlTableModel;>setTable("table1");>select();>setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("ID"));>setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Производитель"));>setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("Наличие"));>select();>tableView->setModel(tab);>tableView->resizeColumnsToContents();

}::~MainWindow()

{ui;

}MainWindow::changeEvent(QEvent *e)

{::changeEvent(e);(e->type()) {QEvent::LanguageChange:>retranslateUi(this);;:;

}

}MainWindow::on_pushButton_clicked()

{

}MainWindow::slot1()

{h=ui->lineEdit->text();t=ui->lineEdit->text();=new QSqlQueryModel;q1=QString ("SELECT Type, diagonal FROM table2 WHERE ID="+h);>setQuery(q1);>tableView_2->setModel(qm);

qm->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("Тип"));>setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Диагональ"));=new QSqlQueryModel;p=QString("SELECT Quantity_in_a_warehouse, The_average_price FROM table3 WHERE ID="+t);>setQuery(p);>tableView_3->setModel(qp);

qp->setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("Количество на складе"));>setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Средняя цена товара"));

}

Наиболее важные части кода находятся в «connect.h» и «mainwinwow.cpp». Код подключающий базу данных:bool createConnection()

{db = QSqlDatabase::addDatabase("QSQLITE");

db.setDatabaseName("F:/01010101/KypcoBa9/program/db1.db");(!db.open())

{::critical(0,"Connection error!","Connection failed!");

return false;

}true;

}

В данной части кода прописывается тип базы данных и путь к ней, так же прописывается код, который запускает её.

Код выполняющий поиск и выдачу информации на экран:

ui->setupUi(this);= new QSqlTableModel;>setTable("table1");>select();>setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("ID"));>setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Производитель "));>setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("Наличие"));>select();>tableView->setModel(tab);>tableView->hideColumn(0);>tableView->resizeColumnsToContents();

QString h=ui->lineEdit->text();t=ui->lineEdit->text();=new QSqlQueryModel;q=QString ("SELECT Type, diagonal FROM table2 WHERE ID="+h);>setQuery(q);>tableView_2->setModel(qm);=new QSqlQueryModel;p=QString("SELECT Quantity_in_a_warehouse, The_average_price table3 WHERE ID="+t);>setQuery(p);>tableView_3->setModel(qp);

}

В данном коде первая таблица выводиться на «tableView» и названия заменяются с английского на русский язык. Далее данные из таблицы 2 и таблицы 3 выводиться информация в «tableView 2» и «tableView 3» соответственно.

программирование язык телевизор база

Заключение


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

Разработка системы продемонстрировала некоторые особенности языка С++, а именно среды qt creator.

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


Приложение


Код программы:

«Kr.pro»:+= core gui= program= app+= sql+= main.cpp\

«Connect.h»

#ifndef CONNECT_H

#define CONNECT_H

#include <QMessageBox>

#include <QtSql/QSqlDatabase>bool createConnection()

{db = QSqlDatabase::addDatabase("QSQLITE");.setDatabaseName("C:/01010101/Denis Krash/Kr/db1.db");(!db.open())

{::critical(0,"Connection error!","Connection failed!");false;

}true;

}

#endif // CONNECT_H

«mainvindow.h»:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include <QMainWindow>

#include <QtSql>Ui {MainWindow;

}MainWindow : public QMainWindow

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

~MainWindow();:changeEvent(QEvent *e);:::MainWindow *ui;*tab;*qm;*qp;slots:on_pushButton_clicked();slot1();

};

#endif // MAINWINDOW_H

«main.cpp»:

#include <QtGui/QApplication>

#include "mainwindow.h"

#include "connect.h"

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

{a(argc, argv);(!createConnection())

{::critical(0,"Connection error!","Connection failed!");1;

}w;.show();a.exec();

}

«mainwindow.cpp»:

#include "mainwindow.h"

#include "ui_mainwindow.h"

#include <math.h>::MainWindow(QWidget *parent) :(parent),(new Ui::MainWindow)

{>setupUi(this);= new QSqlTableModel;>setTable("table1");>select();>setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("ID"));>setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Производитель"));>setHeaderData(2, Qt::Horizontal, QString::fromLocal8Bit("Наличие"));>select();>tableView->setModel(tab);>tableView->resizeColumnsToContents();

}::~MainWindow()

{ui;

}MainWindow::changeEvent(QEvent *e)

{::changeEvent(e);(e->type()) {QEvent::LanguageChange:>retranslateUi(this);;:;

}

}MainWindow::on_pushButton_clicked()

{

}MainWindow::slot1()

{h=ui->lineEdit->text();t=ui->lineEdit->text();=new QSqlQueryModel;q1=QString ("SELECT Type, diagonal FROM table2 WHERE ID="+h);>setQuery(q1);>tableView_2->setModel(qm);>setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("Тип"));>setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Диагональ"));=new QSqlQueryModel;p=QString("SELECT Quantity_in_a_warehouse, The_average_price FROM table3 WHERE ID="+t);>setQuery(p);>tableView_3->setModel(qp);>setHeaderData(0, Qt::Horizontal, QString::fromLocal8Bit("Количество на складе"));>setHeaderData(1, Qt::Horizontal, QString::fromLocal8Bit("Средняя цена товара"));}


Список использованных источников


.Лекции по дисциплине «Основы программирования на языке С++»

2.Jasmin Blanchette, Mark Summerfield, перевод Андрей Киселёв «Разработка графического интерфейса с помощью библиотеки Qt3» книга распространяется на условиях Open Publication License, v1.0.

.Герберт Шилдт, «Полный справочник по C++», 4-е издание, издательство Диалектика, Москва 2003г, 800стр.

.Александр Чиртик, «Программирование на С++», издательство Питер, 2010 год, 352стр.


Курсовая работа Дисциплина: «Основы программирования» ТЕМА: «Программа поиска информаци

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ