Список используемых источников. 1. Информационные системы: http://www.itcompanies.ru/04info.html
1. Информационные системы: http://www.itcompanies.ru/04info.html
2. Шлее М. Qt 4.8. Профессиональное программирование на C++. – СПБ.: БХВ-Петербугр, 2012. – 912 с.: ил. – (В подлиннике)
ПРИЛОЖЕНИЯ
Листинг posterHiring.h
posterHiring.h
|
#ifndef POSTERHIRING_H
#define POSTERHIRING_H
#include <QtGui>
class PosterHiring
{
protected:
QString login;
QString city;
QString area;
QString numberPhone;
QString sumRoom;
QString tenant;
int price;
bool furtiture;
bool animal;
public:
PosterHiring()
{
price = 0;
furtiture = false;
animal = false;
}
PosterHiring(const QString &_login, const QString &_city,
const QString &_area, const QString &_numberPhone,
int _sumRoom, int _price, bool _furtiture,
bool _animal,int _tenant)
{
login = _login;
city = _city;
area = _area;
numberPhone = _numberPhone;
sumRoom = _sumRoom;
tenant = _tenant;
furtiture = _furtiture;
animal = _animal;
setPrice(_price);
}
QString getLogin() { return login; }
QString getCity() { return city; }
QString getArea() { return area; }
QString getNumberPhone() { return numberPhone; }
QString getSumRoom() { return sumRoom; }
QString getTenant() { return tenant; }
int getPrice() { return price; }
bool getFurtiture() { return furtiture; }
bool getAnimal() { return animal; }
void setLogin (const QString &_login ) { login = _login; }
void setCity (const QString &_city ) { city = _city; }
void setArea (const QString &_area ) { area = _area; }
void setNumberPhone(const QString &_numberPhone) { numberPhone = _numberPhone; }
void setSumRoom (const QString &_sumRoom) { sumRoom = _sumRoom; }
void setTenant (const QString &_tenant) { tenant = _tenant; }
void setFurtiture (const bool &_furtiture ) { furtiture = _furtiture; }
void setAnimal (const bool &_animal ) { animal = _animal; }
void setPrice(int _price)
{
if(_price < 0)
price = 0;
else price = _price;
}
|
Листинг posterRent.h
posterRent.h
| #ifndef POSTERRENT_H
#define POSTERRENT_H
#include "posterHiring.h"
class PosterRent: public PosterHiring
{
protected:
QString street;
QString numberHome;
int numberFloor;
public:
PosterRent():
PosterHiring()
{
numberFloor = 1;
}
PosterRent(const QString &_login, const QString &_city,
const QString &_area, const QString &_street,
const QString &_nHome, int _nFloor, const QString &_numberPhone,
int _sumRoom, int _price, bool _furtiture,
bool _animal,int _tenant):
PosterHiring(_login, _city, _area, _numberPhone, _sumRoom,
_price, _furtiture, _animal, _tenant)
{
street = _street;
numberHome = _nHome;
numberFloor = _nFloor;
}
QString getStreet() { return street; }
QString getHome() { return numberHome; }
int getNumberFloor() { return numberFloor; }
void setStreet (const QString &_street ) { street = _street; }
void setHome (const QString &_numberHome) { numberHome = _numberHome; }
void setNumberFloor (int _floor)
{
if(_floor < 0)
numberFloor = 0;
else
if(_floor > 101)
numberFloor = 101;
else numberFloor = _floor;
}
};
#endif // POSTERRENT_H
|
Листинг user.h
user.h
| #ifndef USER_H
#define USER_H
#define USER false
#define ADMIN true
#include <QtGui>
#include "posterHiring.h"
#include "posterRent.h"
class User
{
protected:
QString login;
QString password;
bool access;
QLinkedList<PosterHiring *> *postersHiring;
QLinkedList<PosterRent *> *postersRent;
public:
User()
{
access = USER;
}
User(const QString &_login, const QString &_password, bool _access = false )
{
login = _login;
password = _password;
setAccess(_access);
postersHiring = new QLinkedList<PosterHiring *>;
postersRent = new QLinkedList<PosterRent *>;
}
bool check(const QString &_login, const QString &_password)
{
if( login == _login && password == _password)
return true;
return false;
}
QString getLogin() { return login; }
QString getPassword() { return password; }
bool getAccess() { return access; }
QLinkedList<PosterHiring *> *getPostersHiring() { return postersHiring; }
QLinkedList<PosterRent *> *getPostersRent() { return postersRent; }
void setLogin (const QString &_login) { login = _login; }
void setPassword (const QString &_password) { password = _password; }
void setPostersHiring (PosterHiring *poster) { postersHiring->push_back(poster); }
void setPostersRent (PosterRent *poster) { postersRent->push_back(poster); }
void setAccess(const bool &_access)
{
if(_access == false)
access = USER;
else access = ADMIN;
}
};
#endif // USER_H
|
Листинг login.h
login.h
| #ifndef LOGIN_H
#define LOGIN_H
#include <QtGui>
#include "user.h"
#include "ui_login.h"
class Login: public QDialog
{
Q_OBJECT
protected:
Ui::login uiLogin;
User *current;
QLinkedList<User *> *users;
QFile *file;
protected:
void consider();
void readPostersHiring();
void readPostersRent();
void fillPosterHiring(QDataStream &in, QString &tempQStr, int &tempInt, bool &tempBool,
PosterHiring *poster);
void fillPosterRent(QDataStream &in, QString &tempQStr, int &tempInt, bool &tempBool,
posterRent *poster);
void appointAdmin();
void readOutFile();
public:
Login(QWidget *parent = 0);
~Login();
void saveInFile(const QString &login, const QString &password, const bool &access);
void reset(QLineEdit *login, QLineEdit *password);
User *searchUser(const QString &login, const QString &password);
User *getCurrentUser();
QLinkedList< User * > *getUsers();
bool searchUserForLogin(const QString &login);
protected slots:
void slotCheck();
void slotRegistration();
void slotUserGuest();
};
#endif // LOGIN_H
|
Листинг login.cpp
login.cpp
| #include "login.h"
#include "ui_registration.h"
Login::Login(QWidget *parent):
QDialog(parent)
{
if(!parent)
parent = this;
uiLogin.setupUi(parent);
current = 0;
file = new QFile("login.bin");
users = new QLinkedList<User *>;
consider();
}
Login::~Login()
{
delete file;
delete users;
}
void Login::appointAdmin()
{
QLinkedList<User *>::Iterator passage = users->begin();
while(passage != users->end())
{
if((*passage)->getLogin() == "ADMIN")
{
(*passage)->setAccess(ADMIN);
return;
}
++passage;
}
saveInFile("ADMIN", "KI11-08", ADMIN);
}
void Login::consider()
{
if(!file)
return;
if( file->exists())
readOutFile();
else saveInFile("ADMIN", "KI11-08", ADMIN);
}
void Login::readOutFile()
{
file->open(QIODevice::ReadOnly);
QDataStream in(file);
QString login;
QString password;
bool access;
bool flAdmin = false;
while(! in.atEnd() )
{
in >> login;
in >> password;
in >> access;
if(access)
flAdmin = true;
users->push_back(new User(login, password, access));
}
if(!flAdmin)
appointAdmin();
file->close();
}
void Login::saveInFile(const QString &login, const QString &password, const bool &access)
{
file->open(QIODevice::Append);
QDataStream out(file);
out << login;
out << password;
out << access;
users->push_back(new User(login, password, access));
file->close();
}
User * Login::searchUser(const QString &login, const QString &password)
{
QLinkedList< User * >::iterator passage = users->begin();
while( passage != users->end() )
{
if( (*passage)->check(login, password) )
return *passage;
passage++;
}
return 0;
}
bool Login::searchUserForLogin(const QString &login)
{
QLinkedList< User * >::iterator passage = users->begin();
while( passage != users->end() )
{
if( (*passage)->getLogin() == login )
return true;
passage++;
}
return false;
}
void Login::slotCheck()
{
current = searchUser(uiLogin.loginLineEdit->text(), uiLogin.passwordLineEdit->text());
if(current == 0)
{
QMessageBox::information(this, tr("Error"), tr("Error write login or password!"),
QMessageBox::Ok);
uiLogin.passwordLineEdit->clear();
}
else
{
emit accept();
readPostersHiring();
readPostersRent();
}
}
void Login::reset(QLineEdit *login, QLineEdit *password)
{
login->clear();
password->clear();
}
void Login::slotRegistration()
{
QDialog *windowRegistration = new QDialog(this);
Ui::registration uiReg;
uiReg.setupUi(windowRegistration);
while( windowRegistration->exec() )
{
if (! searchUserForLogin(uiReg.loginLineEdit->text()))
{
saveInFile(uiReg.loginLineEdit->text(), uiReg.passwordLineEdit->text(), USER);
break;
}
else
{
QMessageBox::information(this, tr("Error"), tr("Error, user is have this login"),
QMessageBox::Ok);
reset(uiReg.loginLineEdit, uiReg.passwordLineEdit);
}
}
delete windowRegistration;
}
void Login::slotUserGuest()
{
emit accept();
readPostersHiring();
readPostersRent();
}
User *Login::getCurrentUser()
{
return current;
}
QLinkedList< User * > *Login::getUsers()
{
return users;
}
void Login::fillPosterHiring (QDataStream &in, QString &tempQStr, int &tempInt,
bool &tempBool, PosterHiring *poster)
{
in >> tempQStr;
poster->setLogin( tempQStr );
in >> tempQStr;
poster->setCity(tempQStr);
in >> tempQStr;
poster->setArea(tempQStr);
in >> tempQStr;
poster->setNumberPhone(tempQStr);
in >> tempInt;
poster->setPrice(tempInt);
in >> tempBool;
poster->setFurtiture(tempBool);
in >> tempBool;
poster->setAnimal(tempBool);
in >> tempQStr;
poster->setSumRoom(tempQStr);
in >> tempQStr;
poster->setTenant(tempQStr);
}
void Login::fillPosterRent (QDataStream &in, QString &tempQStr, int &tempInt, bool &tempBool,
PosterRent *poster)
{
fillPosterHiring (in, tempQStr, tempInt, tempBool, poster);
in >> tempQStr;
poster->setStreet(tempQStr);
in >> tempQStr;
poster->setHome(tempQStr);
in >> tempInt;
poster->setNumberFloor(tempInt);
}
void Login::readPostersHiring()
{
file->setFileName("posterHiring.bin");
if(!file->open(QIODevice::ReadOnly))
return;
QDataStream in(file);
QString tempQStr;
int tempInt;
bool tempBool;
PosterHiring *poster = 0;
QLinkedList<User *>::Iterator passage = users->begin();
while( passage != users->end() )
{
if(!poster)
{
poster = new PosterHiring;
fillPosterHiring(in, tempQStr, tempInt, tempBool, poster);
}
if ( (*passage)->getLogin() == poster->getLogin() )
{
(*passage)->setPostersHiring(poster);
if(!in.atEnd())
poster = 0;
else break;
}
else ++passage;
}
file->close();
}
void Login::readPostersRent()
{
file->setFileName("posterRent.bin");
if(!file->open(QIODevice::ReadOnly))
return;
QDataStream in(file);
QString tempQStr;
int tempInt;
bool tempBool;
PosterRent *poster = 0;
QLinkedList<User *>::Iterator passage = users->begin();
while( passage != users->end())
{
if(!poster)
{
poster = new PosterRent;
fillPosterRent(in, tempQStr, tempInt, tempBool, poster);
}
if ( (*passage)->getLogin() == poster->getLogin() )
{
(*passage)->setPostersRent(poster);
if(!in.atEnd())
poster = 0;
else break;
}
else ++passage;
}
if(!poster)
delete poster;
file->close();
}
|
Листинг mainWindow.h
mainWindow.h
| #ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include "ui_mainWindow.h"
class MainWindow : public QMainWindow
{
Q_OBJECT
protected:
Ui::MainWindow uiMainWindow;
public:
MainWindow(QWidget *parent = 0):
QMainWindow(parent)
{
uiMainWindow.setupUi(this);
}
};
#endif // MAINWINDOW_H
|
|
Обсуждений еще не было, будьте первым... ↓↓↓
|
|
Популярное: Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (461)
|
Почему 1285321 студент выбрали МегаОбучалку...
Система поиска информации
Мобильная версия сайта
Удобная навигация
Нет шокирующей рекламы
|