Информационная система жилищного агентства
Создание программы для хранения и обработки данных о съеме/сдаче жилья. Написание программы на языке C++ с использованием библиотеки Qt; использование исходного кода для создания приложения под Windows, Linux, Mac OS X без дополнительных изменений кода.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 07.03.2013 |
Размер файла | 60,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
{
int i = 0;
city->setText(poster->getCity());
area->setText(poster->getArea());
nPhone->setText(poster->getNumberPhone());
for(i = 0; nRoom->currentText() != poster->getSumRoom(); nRoom->setCurrentIndex(++i));
furtiture->setChecked(poster->getFurtiture());
animal->setChecked(poster->getAnimal());
for(i = 0; tenant->currentText() != poster->getTenant(); tenant->setCurrentIndex(++i));
price->setText(QString("%1").arg(poster->getPrice()));
}
void FunctionUser::writePosterTiItemsRent(PosterRent *poster, QLineEdit *city, QLineEdit *area,
QLineEdit *street, QLineEdit *home, QSpinBox *floor, QLineEdit *nPhone,
QComboBox *nRoom, QCheckBox *furtiture, QCheckBox *animal,
QComboBox *tenant, QLineEdit *price)
{
writePosterTiItemsHiring(poster, city, area, nPhone, nRoom, furtiture, animal, tenant, price);
street->setText(poster->getStreet());
home->setText(poster->getHome());
floor->setValue(poster->getNumberFloor());
}
void FunctionUser::slotEditPosterHiring()
{
QLinkedList<PosterHiring *>::Iterator passage = current->getPostersHiring()->begin();
int row;
for(row = 0; row < uiTabPostersHiring.tableWidget->currentRow(); ++row)
++passage;
QDialog *window = new QDialog(this);
Ui::workWindowPoster uiWindow;
uiWindow.setupUi(window);
QObject::connect(uiWindow.okButton, SIGNAL(clicked()), window, SLOT(accept()));
QObject::connect(uiWindow.cancelButton, SIGNAL(clicked()), window, SLOT(reject()));
Ui::posterHiring ui;
ui.setupUi(uiWindow.windowPoster);
writePosterTiItemsHiring(*passage, ui.cityLineEdit, ui.areaLineEdit, ui.nPhoneLineEdit,
ui.sRoomComboBox, ui.furtitureCheckBox, ui.animalCheckBox, ui.tenantComboBox,
ui.priceLineEdit);
if(window->exec())
{
readPosterHiring(*passage, current->getLogin(),ui.cityLineEdit, ui.areaLineEdit,
ui.nPhoneLineEdit, ui.sRoomComboBox, ui.furtitureCheckBox, ui.animalCheckBox,
ui.tenantComboBox, ui.priceLineEdit);
uiTabPostersHiring.tableWidget->removeRow(row);
uiTabPostersHiring.tableWidget->insertRow(row);
addInTablePosterHiring(uiTabPostersHiring.tableWidget, *passage, row);
}
delete window;
viewButtonHiring(false);
uiTabPostersHiring.tableWidget->selectionModel()->clearSelection();
}
void FunctionUser::slotEditPosterRent()
{
QLinkedList<PosterRent *>::Iterator passage = current->getPostersRent()->begin();
int row;
for(row = 0; row < uiTabPostersRent.tableWidget->currentRow(); ++row)
++passage;
QDialog *window = new QDialog(this);
Ui::workWindowPoster uiWindow;
uiWindow.setupUi(window);
QObject::connect(uiWindow.okButton, SIGNAL(clicked()), window, SLOT(accept()));
QObject::connect(uiWindow.cancelButton, SIGNAL(clicked()), window, SLOT(reject()));
Ui::posterRent ui;
ui.setupUi(uiWindow.windowPoster);
writePosterTiItemsRent(*passage, ui.cityLineEdit, ui.areaLineEdit, ui.streetLineEdit,
ui.nHomeLineEdit, ui.floorSpinBox, ui.nPhoneLineEdit, ui.sRoomComboBox,
ui.furtitureCheckBox, ui.animalCheckBox, ui.tenantComboBox, ui.priceLineEdit);
if(window->exec())
{
readPosterRent(*passage, current->getLogin(),ui.cityLineEdit, ui.areaLineEdit,
ui.streetLineEdit, ui.nHomeLineEdit, ui.floorSpinBox, ui.nPhoneLineEdit,
ui.sRoomComboBox, ui.furtitureCheckBox, ui.animalCheckBox, ui.tenantComboBox,
ui.priceLineEdit);
uiTabPostersRent.tableWidget->removeRow(row);
uiTabPostersRent.tableWidget->insertRow(row);
addInTablePosterRent(uiTabPostersRent.tableWidget, *passage, row);
}
delete window;
viewButtonRent(false);
uiTabPostersRent.tableWidget->selectionModel()->clearSelection();
}
void FunctionUser::slotDelMyAccount()
{
QLinkedList<User *>::Iterator passage = users->begin();
while( (*passage) != current )
++passage;
users->erase(passage);
slotSavePosterHiring();
slotSavePosterRent();
exit(1);
}
Листинг functionAdmin.h
functionAdmin |
|
#ifndef FUNCTIONADMIN_H #define FUNCTIONADMIN_H #include "functionUser.h" #include "ui_functionAdmin.h" class FunctionAdmin:public FunctionUser { Q_OBJECT protected: QWidget *windowUsers; Ui::functionAdmin uiFunctionAdmin; protected: void fillUserInTable(); public: FunctionAdmin(QLinkedList<User *> *_users, User *_current, QWidget *parent = 0); ~FunctionAdmin(); protected slots: void newPassword(); void editAccess(); void saveUsers(); void deleteUser(); void editPostersUser(); }; #endif // FUNCTIONADMIN_H |
Листинг functionAdmin.cpp
functionAdmin.cpp |
|
#include "functionAdmin.h" #include "ui_editPassword.h" #include "ui_editAccess.h" FunctionAdmin::FunctionAdmin(QLinkedList<User *> *_users, User *_current, QWidget *parent): FunctionUser(_users, _current, parent) { windowUsers = new QWidget(parent); uiFunctionAdmin.setupUi(windowUsers); uiFunction.tabWidget->addTab(windowUsers, windowUsers->windowTitle()); fillUserInTable(); QObject::connect(uiFunctionAdmin.newPasswordButton, SIGNAL(clicked()), SLOT(newPassword())); QObject::connect(uiFunctionAdmin.editAccessButton, SIGNAL(clicked()), SLOT(editAccess())); QObject::connect(uiFunctionAdmin.saveButton, SIGNAL(clicked()), SLOT(saveUsers())); QObject::connect(uiFunctionAdmin.delUserButton, SIGNAL(clicked()), SLOT(deleteUser())); QObject::connect(uiFunctionAdmin.editPostersButton, SIGNAL(clicked()), SLOT(editPostersUser())); } FunctionAdmin::~FunctionAdmin() { delete windowUsers; } void FunctionAdmin::fillUserInTable() { QLinkedList<User *>::Iterator passage = users->begin(); int row = 0; while(passage != users->end()) { if(row <= uiFunctionAdmin.usersTableWidget->rowCount()) uiFunctionAdmin.usersTableWidget->insertRow(row); addQStringInTable(uiFunctionAdmin.usersTableWidget, (*passage)->getLogin() , row, 0); if((*passage)->getAccess()) addQStringInTable(uiFunctionAdmin.usersTableWidget, "ADMIN", row++, 1); else addQStringInTable(uiFunctionAdmin.usersTableWidget, "USER", row++, 1); ++passage; } } void FunctionAdmin::newPassword() { int row = uiFunctionAdmin.usersTableWidget->currentRow(); QLinkedList<User *>::Iterator passage = users->begin(); for(row = 0; row < uiFunctionAdmin.usersTableWidget->currentRow(); row++) ++passage; QDialog *window = new QDialog(this); Ui::editPassword ui; ui.setupUi(window); QObject::connect(ui.okButton, SIGNAL(clicked()), window, SLOT(accept())); QObject::connect(ui.cancelButton, SIGNAL(clicked()), window, SLOT(reject())); while(window->exec()) { if(ui.passwordLineEdit->text().isEmpty()) QMessageBox::information(this, tr("clear string"), tr("SORRY, clear string"), QMessageBox::Ok); else { (*passage)->setPassword(ui.passwordLineEdit->text()); break; } } delete window; uiFunctionAdmin.usersTableWidget->selectionModel()->clearSelection(); } void FunctionAdmin::editAccess() { int row = uiFunctionAdmin.usersTableWidget->currentRow(); QLinkedList<User *>::Iterator passage = users->begin(); for(row = 0; row < uiFunctionAdmin.usersTableWidget->currentRow(); row++) ++passage; QDialog *window = new QDialog(this); Ui::editAccess ui; ui.setupUi(window); QObject::connect(ui.okButton, SIGNAL(clicked()), window, SLOT(accept())); QObject::connect(ui.cancelButton, SIGNAL(clicked()), window, SLOT(reject())); if(window->exec()) if(ui.AccessComboBox->currentIndex()) { (*passage)->setAccess(ADMIN); uiFunctionAdmin.usersTableWidget->item(row, 1)->setText("ADMIN"); } else { (*passage)->setAccess(USER); uiFunctionAdmin.usersTableWidget->item(row, 1)->setText("USER"); } delete window; uiFunctionAdmin.usersTableWidget->selectionModel()->clearSelection(); } void FunctionAdmin::saveUsers() { QFile *file = new QFile("login.bin"); file->open(QIODevice::WriteOnly); QDataStream in(file); QLinkedList<User *>::Iterator passage = users->begin(); while(passage != users->end()) { in << (*passage)->getLogin(); in << (*passage)->getPassword(); in << (*passage)->getAccess(); ++passage; } file->close(); delete file; uiFunctionAdmin.usersTableWidget->selectionModel()->clearSelection(); } void FunctionAdmin::deleteUser() { int row = uiFunctionAdmin.usersTableWidget->currentRow(); QLinkedList<User *>::Iterator passage = users->begin(); for(row = 0; row < uiFunctionAdmin.usersTableWidget->currentRow(); row++) ++passage; if((*passage) == current) { users->erase(passage); slotSavePosterHiring(); slotSavePosterRent(); saveUsers(); exit(1); } users->erase(passage); uiFunctionAdmin.usersTableWidget->removeRow(row); uiFunctionAdmin.usersTableWidget->selectionModel()->clearSelection(); } void FunctionAdmin::editPostersUser() { int row = uiFunctionAdmin.usersTableWidget->currentRow(); QLinkedList<User *>::Iterator passage = users->begin(); for(row = 0; row < uiFunctionAdmin.usersTableWidget->currentRow(); row++) ++passage; QDialog *window = new QDialog(this); FunctionAdmin *user = new FunctionAdmin(users, *passage, window); user->uiFunction.tabWidget->removeTab(0); user->uiFunction.tabWidget->removeTab(0); user->uiFunction.tabWidget->removeTab(2); user->uiFunction.delAccountButton->hide(); window->exec(); if(*passage == current) { row = uiTabPostersHiring.tableWidget->rowCount(); while(row > 0) uiTabPostersHiring.tableWidget->removeRow(--row); row = uiTabPostersRent.tableWidget->rowCount(); while(row > 0) uiTabPostersRent.tableWidget->removeRow(--row); fillPosterTableHiring(); fillPosterTableRent(); } delete user; delete window; uiFunctionAdmin.usersTableWidget->selectionModel()->clearSelection(); } |
Листинг main.cpp
main.cpp |
|
#include <QtGui> #include "mainWindow.h" #include "functionAdmin.h" #include "login.h" int main(int argc, char **argv) { QApplication app( argc, argv ); MainWindow mainWindow; FunctionGuest *guestWindow; FunctionUser *userWindow; FunctionAdmin *adminWindow; Login loginWindow; if(!loginWindow.exec()) return 0; if(!loginWindow.getCurrentUser()) guestWindow = new FunctionGuest(loginWindow.getUsers(), mainWindow.centralWidget() ); else if(loginWindow.getCurrentUser()->getAccess() == USER) userWindow = new FunctionUser(loginWindow.getUsers(), loginWindow.getCurrentUser(), mainWindow.centralWidget() ); else adminWindow = new FunctionAdmin(loginWindow.getUsers(), loginWindow.getCurrentUser(), mainWindow.centralWidget() ); mainWindow.show(); return app.exec(); } |
Размещено на Allbest.ru
Подобные документы
Использование в программах, написанных на языке C, Windows application programming interfaces. Роль центрального процессора. Архитектура Фон Неймана. Оперативная память. Графическая плата. Создание интерфейса программы. Разработка машинного кода.
реферат [101,5 K], добавлен 15.05.2014Общее определение и история создания JavaScript библиотек, их назначение и использование. Виды и особенности JS фреймворков. Создание клиентского приложения (каталога комплектующих компьютера), написание кода страницы с использованием фреймворка Jquery.
курсовая работа [544,5 K], добавлен 17.12.2013Общее определение JavaScript-библиотеки, виды библиотек. Создание клиентского приложения с использованием одного из существующий JS-фреймворков. Значение, виды и выбор фреймворка. Выбор приложения и его тематики. Написание программного кода, итоги работы.
курсовая работа [545,8 K], добавлен 21.12.2013Процесс создания программы, разработка проекта программы и программирование. Лексическая обработка, синтаксический анализ, поэтапная генерация кода, использование библиотечного файла и кода. Стандартные функции библиотечного кода, математические ошибки.
курсовая работа [26,4 K], добавлен 01.12.2009Программа как совокупность данных и команд, предназначенных для функционирования ЭВМ и других компьютерных устройств. Этапы создания программ: каскад, инкремент, эволюция. Порядок написания исходного кода и его компиляция. Сборка статической библиотеки.
презентация [119,4 K], добавлен 05.01.2014Написание прикладного Windows-приложения на примере программы-органайзера, позволяющей вести электронный ежедневник и телефонную записную книжку. Описание блок-схемы программы и операционной системы. Листинг результатов обработки на контрольном примере.
дипломная работа [2,5 M], добавлен 29.12.2014Теоретические основы разработки Windows-приложений с использованием библиотеки MFC. Создание приложения с помощью Visual C++. Описание логической структуры приложения. Установка и запуск программы. Входные и выходные данные. Преимущество MFC библиотек.
курсовая работа [563,2 K], добавлен 21.06.2011Разработка программы для рисования различных правильных многоугольников с помощью объектно-ориентированного языка программирования. Использование для разработки среды C++ Builder 6 и библиотеки VCL. Разработка интерфейса приложения и алгоритма его работы.
курсовая работа [616,4 K], добавлен 18.10.2010Представление о системе Arduino. Структура платформы Android. Выбор средств разработки. Разработка структур данных и алгоритмов. Характеристика Bluetooth модуля, блок реле, резисторов, диодов. Графический интерфейс приложения. Написание кода программы.
дипломная работа [4,0 M], добавлен 19.01.2017Разработка программного кода и алгоритма действий приложения "калькулятор". Использование функций в программе Matlab. Разработка кнопок, опций, интерфейса, оформление. Части кода Matlab и тестовый набор. Инструкция пользователя по работе программы.
курсовая работа [527,1 K], добавлен 27.09.2014