Студопедия — Тестирование программы
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Тестирование программы






Для тестирования программы необходимо сделать следующий порядок действий.

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

Все выше описанное было написанное в кратце необходимое для тестирования программы. Так как для полного тестирования программы было бы необходимо писать отдельный отчет. Для того что бы посмотреть работоспособность на больших объемах информации была написана вспомогательная программа, она находится в приложении к отчету. Эта программа консольного типа, она генерирует текстовые файлы того же типа в которых хранит информацию наша программа.

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

Диаграмма классов

Диаграмма файлов сделана через программу Enterprise Architect

Более подробно и укрупнено можно посмотреть в приложении 1 к отчету по курсовой.

Листинг программы

В качестве листинга программы выступят файлы index.h/cpp, main.cpp и basa.h/cpp. Весь остальной код программы можно будет посмотреть в приложении в пункте «Код программы»

 

Main.cpp

 

#include "index.h"

#include <Windows.h>

 

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

{

 

// ниже написано все что связано с оболочкой

QApplication a(argc, argv);

 

QApplication::setStyle(new QCleanlooksStyle);

QTextCodec *codec = QTextCodec::codecForName("CP1251");

QTextCodec::setCodecForTr(codec);

 

 

index *qwerty = new index(&a);

qwerty->show();

 

 

return a.exec();

 

}

 

 

Index.h

 

#include "printer.h"

 

class index: public QWidget

{

Q_OBJECT

private:

QApplication *ap;

polsov *admin, *p;

QFrame *menu; // = new QFrame(this);

QFrame *panel; // = new QFrame(this);

QFrame *put;

QScrollArea *body1; // = new QScrollArea(this);

QFrame *body;

QFrame *podMenu;

QLabel *nadpis,*nadpis1;

QWidget *inst1;

QFrame *inst3,*inst2,*p1,*p2;

int isPan;//уровень доступа

QPixmap *fonMen;

QPalette pal;

QLabel *test;

QString *content;

 

//кнопки меню

QPushButton *punkt1,*punkt2,*punkt3,*punkt4,*punkt5,*punkt6;

QPushButton *punkt12,*punkt22,*punkt32,*punkt42,*punkt52,*punkt62;

QPushButton *punkt13,*punkt23,*punkt33,*punkt43,*punkt53,*punkt63;

 

 

QMenuBar *menuu;

QMenu *pmenu;// = new QMenu(QObject::tr("Меню"));

QMenu *dey;// = new QMenu(QObject::tr("Действия"));

QMenu *OProgram;// = new QMenu(tr("О программе"));

QMenu *tabSub;

QMenu *razSub;

QMenu *basSub;

QAction *el1,*el2,*el3;

QAction *kt1,*kt2,*kt3;

//путь

QLabel *pt;

 

//тело программы

 

//bodyBas

QFrame *pole;

 

//table

 

QTreeWidget *tab;

 

//принетер

Printer *prin;

 

New_basa *pre0; //создание новой базы

pereimen *pre; // окошко переименования

Open_bas *pre1; //окошко открытия базы

Delete_form_bas *pre2; //окошко удаления базы

New_razdel *raz; // окошко создания нового раздела

rename_razdel *raz1; //окошко переименование раздела

open_razdel *raz2; //окошко открытия раздела

delete_razdel *raz3; //окошко удаления раздела

new_table *table; //окошко создания таблицы

redakt_table *table1; //окошко редактирования таблицы

delete_table *table2; //окошко для удаления таблицы

open_table *table3; //окошко для открытия таблицы

redakt_soder *elemSoder; //окошко для редатирования содержания таблицы

 

char nmbs[31],nmrz[55],nmtb[31];// для местоположения

 

soobsenie *sob;// = new soobsenie(0,"Сохранение прошло успешно!");

 

load_prog *ld; // загрузка программы

info *inf;

 

public:

index(QApplication *app);

public:

void instrMenu();

void rabociePole();

void table_bas();

void table_bas_html();

void table_raz_html();

void table_table_html();

void open_table_html();

char* preobr_cast(int n);

void puty();

void menuPanel();

void in_load(polsov **p);

int kol_raz_bas(char* str);

public slots:

void dostup_menu();

void saved();

void prog();

void delet_bas();

void raname_basa();

void open_bas();

void open_raz();

void perestroit();

public slots:

void perehodRaz();

void perehodTable();

void perehodBas();

void sozdBas();

void newrazdel();

void renameRazdel();

void deleteRazdel();

void newtablica();

void deleteTable();

void openTable();

void OpenPerehodTable();

void RedaktTable();

void izmenElem1();

void izmenElem2();

void izmenElem3();

};

 

Index.cpp

 

#include "index.h"

 

index::index(QApplication *app)

{

 

ap = app;

ld = new load_prog;

ld->show();

 

move(100,100);

resize(1000,600);

 

admin = NULL;

 

in_load(&admin);

isPan = 0;

setWindowTitle("Arm@gedonSoft!");

//3 модуля или основные виджеты

podMenu = new QFrame(this);

put = new QFrame(podMenu);

panel = new QFrame(podMenu);

body1 = new QScrollArea(podMenu);

body = new QFrame(body1);

nadpis = new QLabel(body);

nadpis1 = new QLabel(body);

inst1 = new QWidget(panel);

inst3 = new QFrame(panel);

inst2 = new QFrame(panel);

p1 = new QFrame(panel);

p2 = new QFrame(panel);

pole = new QFrame;

tab = new QTreeWidget(pole);

test = new QLabel(tr("Пробный текст для печати!"),pole);

test -> move(10,10);

content = new QString;

prin = new Printer(pole,content);

pre = new pereimen;

pre -> hide();

pre1 = new Open_bas;

pre1 -> hide();

pre2 = new Delete_form_bas();

pre2 -> hide();

raz = new New_razdel;

raz ->hide();

raz1 = new rename_razdel;

raz1 -> hide();

raz2 = new open_razdel;

raz2 -> hide();

raz3 = new delete_razdel;

raz3 -> hide();

sob = new soobsenie(0,"Сохранение прошло успешно!");

sob ->hide();

pre0 = new New_basa;

pre0 -> hide();

table = new new_table();

table -> hide();

OProgram = new QMenu(tr("О программе"));

table1 = new redakt_table();

table1 -> hide();

table2 = new delete_table();

table2 -> hide();

table3 = new open_table();

table3 ->hide();

inf = new info();

inf -> hide();

elemSoder = new redakt_soder();

elemSoder -> hide();

 

//кнопки меню

punkt1 = new QPushButton(QObject::tr("Создать базу"),inst1);

punkt2 = new QPushButton(tr("Открыть базу"),inst1);

punkt3 = new QPushButton(QObject::tr("Переименовать базу"),inst1);

punkt4 = new QPushButton(QObject::tr("Сохранить изменения"),inst1);

punkt5 = new QPushButton(QObject::tr("Удалить базу"),inst1);

punkt6 = new QPushButton(QObject::tr("Список баз"),inst1);

 

punkt12 = new QPushButton(QObject::tr("Добавить раздел"),inst1);

punkt22 = new QPushButton(QObject::tr("открыть раздел"),inst1);

punkt32 = new QPushButton(QObject::tr("переименовать раздел"),inst1);

punkt42 = new QPushButton(QObject::tr(""),inst1);

punkt52 = new QPushButton(QObject::tr("удалить раздел"),inst1);

punkt62 = new QPushButton(QObject::tr(""),inst1);

 

punkt13 = new QPushButton(QObject::tr("Добавить таблицу"),inst1);

punkt23 = new QPushButton(QObject::tr("Открыть таблицу"),inst1);

punkt33 = new QPushButton(QObject::tr("Редактировать таблицу"),inst1);

punkt43 = new QPushButton(QObject::tr(""),inst1);

punkt53 = new QPushButton(QObject::tr("Удалить таблицу"),inst1);

punkt63 = new QPushButton(QObject::tr(""),inst1);

 

pt = new QLabel(put);

//bodybas

 

 

pmenu = new QMenu(tr("Меню"));

menuu = new QMenuBar(this);

//dey = new QMenu(tr("Действия"));

basSub = new QMenu(tr("База"));

razSub = new QMenu(tr("Раздел"));

tabSub = new QMenu(tr("Таблица"));

/* конец выделения памяти */

 

fonMen = new QPixmap("fonMen.png");

 

 

pal.setBrush(panel->backgroundRole(),QBrush(*fonMen));

panel->setPalette(pal);

panel->setAutoFillBackground(true);

delete fonMen;

 

fonMen = new QPixmap("fonBody.png");

pal.setBrush(body1->backgroundRole(),QBrush(*fonMen));

body1 -> setPalette(pal);

body1 -> setAutoFillBackground(true);

delete fonMen;

 

 

// отлов сигналов

 

connect(pre2,SIGNAL(dowto()),this,SLOT(perestroit())); // если удаление базы прошло успешно

connect(pre, SIGNAL(dowto()),this,SLOT(perestroit())); // если переименование прошло успешно

connect(pre1,SIGNAL(dowto()),this,SLOT(perehodRaz())); // если открыть раздел

connect(pre0,SIGNAL(dowto()),this,SLOT(sozdBas())); //если создание базы прошло успешно

connect(raz, SIGNAL(dowto()),this,SLOT(perestroit()));//если созддание раздела прошло успешно

connect(raz1,SIGNAL(dowto()),this,SLOT(perestroit()));//если переименование раздела прошло успешно

connect(raz3,SIGNAL(dowto()),this,SLOT(perestroit())); // если удаление раздела прошло успешно

connect(raz2,SIGNAL(dowto()),this,SLOT(perehodTable())); // если открытие таблицы прошло успешно

connect(table,SIGNAL(dowto()),this,SLOT(perestroit()));//если создание таблицы прошло успешно

connect(table3,SIGNAL(dowto()),this,SLOT(OpenPerehodTable()));//если открытие базы прошло успешно

connect(table2,SIGNAL(dowto()),this,SLOT(perestroit()));//если удаление прошло успешно

connect(table1,SIGNAL(dowto()),this,SLOT(perestroit()));//если редактирование таблицы прошло успешно

connect(elemSoder,SIGNAL(dowto()),this,SLOT(perestroit()));

 

podMenu ->move(0,30);

nadpis -> hide();

tab -> hide();

put -> show();

panel -> show();

int wih = width();

 

// все виджеты которые будут входить в основные виджеты

instrMenu();

menuPanel();

puty();

rabociePole();

perestroit();

// в этой часте у нас будет прорезиненность всех виджетов

 

//панель инструментов - содержимое

 

QGridLayout *layTabPan1 = new QGridLayout,*layTabPan2 = new QGridLayout,*layTabPan3 = new QGridLayout;

 

layTabPan1 -> addWidget(punkt1, 0, 0);

layTabPan1 -> addWidget(punkt2, 0, 1);

layTabPan1 -> addWidget(punkt3, 1, 0);

layTabPan1 -> addWidget(punkt4, 1, 1);

layTabPan1 -> addWidget(punkt5, 2, 0);

layTabPan1 -> addWidget(punkt6, 2, 1);

 

layTabPan2 -> addWidget(punkt12, 0, 0);

layTabPan2 -> addWidget(punkt22, 0, 1);

layTabPan2 -> addWidget(punkt32, 1, 0);

layTabPan2 -> addWidget(punkt42, 1, 1);

layTabPan2 -> addWidget(punkt52, 2, 0);

layTabPan2 -> addWidget(punkt62, 2, 1);

 

layTabPan3 -> addWidget(punkt13, 0, 0);

layTabPan3 -> addWidget(punkt23, 0, 1);

layTabPan3 -> addWidget(punkt33, 1, 0);

layTabPan3 -> addWidget(punkt43, 1, 1);

layTabPan3 -> addWidget(punkt53, 2, 0);

layTabPan3 -> addWidget(punkt63, 2, 1);

 

inst1 -> setLayout(layTabPan1);

inst2 -> setLayout(layTabPan2);

inst3 -> setLayout(layTabPan3);

 

//сама панель инструментов

QHBoxLayout *instlay = new QHBoxLayout;

instlay -> addWidget(inst1,1);

instlay -> addWidget(p1,1);

instlay -> addWidget(inst2,1);

instlay -> addWidget(p2,1);

instlay -> addWidget(inst3,1);

instlay -> setMargin(1);

panel -> setLayout(instlay);

 

 

QVBoxLayout *ptlay = new QVBoxLayout;

ptlay ->addWidget(pt);

ptlay ->setMargin(1);

put->setLayout(ptlay);

 

//основоное окно

QVBoxLayout *lay = new QVBoxLayout;

lay -> addWidget(panel,7);

lay -> addWidget(put,2);

lay -> addWidget(body1,50);

lay -> setMargin(1);

lay -> setSpacing(0);

// здесь кончается прорезиненость всех окон

 

//последние параметры главного окошка

podMenu->setLayout(lay);

 

QVBoxLayout *ind = new QVBoxLayout;

ind -> addWidget(menuu);

ind -> addWidget(podMenu);

ind -> setMargin(1);

ind -> setSpacing(0);

setLayout(ind);

 

//body1 -> setWidget(pole);

body -> show();

pole ->show();

body1 ->show();

 

ld->hide();

}

void index::instrMenu() // панель инсттрументов

{

 

//меню

pmenu->addAction(QObject::tr("Сохранить"),this,SLOT(saved()),Qt::CTRL + Qt::Key_S);

pmenu->addAction(QObject::tr("Печать"),prin,SLOT(slotPrint()),Qt::CTRL + Qt::Key_P);

pmenu ->addSeparator();

pmenu -> addAction(tr("Выход"),ap,SLOT(quit()),Qt::CTRL + Qt::SHIFT + Qt::Key_Q);

menuu->addMenu(pmenu);

 

//действия

kt1 = basSub -> addAction(tr("Каталог баз"),this,SLOT(perehodBas()));

basSub -> addSeparator();

basSub -> addAction(QObject::tr("создать базу"),this,SLOT(prog()));

basSub-> addAction(tr("Переименовать базу"),this,SLOT(raname_basa()));

basSub -> addAction(tr("Удалить базу"),this,SLOT(delet_bas()));

basSub -> addAction(tr("Открыть базу"),this,SLOT(open_bas()),Qt::CTRL+Qt::Key_B);

menuu -> addMenu(basSub);

kt2 = razSub -> addAction(tr("Каталог разделов"),this,SLOT(perehodRaz()));

razSub -> addSeparator();

razSub -> addAction(tr("Создать раздел"),this,SLOT(newrazdel()));

razSub -> addAction(tr("Переименовать раздел"),this,SLOT(renameRazdel()));

razSub -> addAction(tr("Удалить раздел"),this,SLOT(deleteRazdel()));

razSub -> addAction(tr("Открыть раздел"),this,SLOT(open_raz()),Qt::CTRL+Qt::Key_R);

menuu -> addMenu(razSub);

kt3 = tabSub -> addAction(tr("Каталог таблиц"),this,SLOT(perehodTable()));

tabSub -> addSeparator();

tabSub -> addAction(tr("Создать таблицу"),this,SLOT(newtablica()));

tabSub -> addAction(tr("Редактировать таблицу"),this,SLOT(RedaktTable()));

tabSub -> addAction(tr("Удалить таблицу"),this,SLOT(deleteTable()));

tabSub -> addAction(tr("Открыть таблицу"),this,SLOT(openTable()),Qt::CTRL+Qt::Key_T);

tabSub -> addSeparator();

el1 = tabSub -> addAction(tr("Добавить элементы"),this,SLOT(izmenElem1()));

el2 = tabSub -> addAction(tr("Изменить элементы"),this,SLOT(izmenElem2()));

el3 = tabSub -> addAction(tr("Удалить элементы"),this,SLOT(izmenElem3()));

menuu -> addMenu(tabSub);

OProgram ->addAction(tr("Версия программы"),inf,SLOT(show()));

menuu ->addMenu(OProgram);

dostup_menu();

menuu->show();

}

 

void index::rabociePole()

{

///////////////////////////////////////////////////////////////////////////////////////////////////////

/*

 

 

Ниже будет производиться работа над рабочим полем этой программы

 

*/

//////////////////////////////////////////////////////////////////////////////////////////////////////

 

pole -> setFixedWidth(600);

pole -> setFrameStyle(QFrame::Panel | QFrame:: Raised);

 

fonMen = new QPixmap("fonBody1.png");

pal.setBrush(pole->backgroundRole(),QBrush(*fonMen));

pole -> setPalette(pal);

pole -> setAutoFillBackground(true);

pole -> move(0,20);

 

//pole -> resize();

delete fonMen;

 

QFrame *razmer = new QFrame(pole);

razmer -> resize(800,1);

body1 -> setWidget(pole);

body1 ->setAlignment(Qt::AlignHCenter);

 

///////////////////////////////////////////////////////////////////////////////////

}

void index::table_bas()

{

QList<QFrame*> lst,lst1;// = new QList<QFrame>;

lst << new QFrame(pole) << new QFrame(pole) << new QFrame(pole) << new QFrame(pole);

QList<QFrame*>::iterator it = lst.begin();

char tab[4][61];

strcpy(tab[0]," Наименование базы");

strcpy(tab[1]," количество разделов");

strcpy(tab[2]," количество таблиц");

strcpy(tab[3]," количество записей");

int i = 0, l = 0;

while(it!= lst.end()){

(*it)->setFrameStyle(QFrame::Box | QFrame::Plain);

new QLabel(tr(tab[i]), (*it));

(*it)->move(50+(i*150),50);

(*it)->resize(150,30);

++it;

++i;

}

QList<QList<QFrame*>> list;

list.reserve(10);

polsov *p;

p = admin;

char* nm;

int num;

 

QList<QList<QFrame*>>::iterator lt = list.begin();

int j1, j2;

for(j1 = 0,j2; p!= NULL; j1++)

{

lst1 << new QFrame(pole) << new QFrame(pole) << new QFrame(pole) << new QFrame(pole);

list.insert(j1,lst1);

it = list[j1].begin();

j2 = 0;

while(it!= list[j1].end())

{

//(*it)->setFrameStyle(QFrame::Box | QFrame::Plain);

if(j2 == 0)

{

new QLabel(tr(p->element._get_name_base()), (*it));

}

if(j2 == 1)

{

num = p->element._get_kol_razdelov();

new QLabel(QString(tr("%1")).arg(num),(*it));

}

if(j2 == 2)

{

num = p->element._get_kol_table();

new QLabel(QString(tr("%1")).arg(num),(*it));

}

(*it)->move(50+(j2*150),80+(j1*30));

(*it)->resize(150,20);

++it;

++j2;

}

p = p->next;

for(int i = 0; i < 4; i++)

{

lst1.takeLast();

}

}

 

pole -> setFixedHeight(160+j1*30);

}

void index::table_bas_html()

{

test -> hide();

content->clear();

polsov *p;

p = admin;

int kol = 1;

if(p == NULL)

{

content -> append(tr("<center><h3>У вас нет ни одной базы данных</h3></center>"));

}

else

{

 

content->append(tr("<table border ='0'><tr><td width = '200'><b>Наименование базы</b></td><th width = '125'>количество разделов</th>\

<th width = '125'>Количество таблиц</th><th width = '125'>Количество записей</th></tr>"));

 

while(p!= NULL)

{

content->append(QString(tr("<tr height = '50'><td>%1</td>")).arg(tr(p->element._get_name_base())));

content->append(QString(tr("<td align = 'center'>%1</td>")).arg(p->element._get_kol_razdelov()));

content->append(QString(tr("<td align = 'center'>%1</td>")).arg(p->element._get_kol_table()));

content->append(QString(tr("<td align = 'center'>%1</td></tr>")).arg(p->element._get_kol_zapis()));

p = p->next;

++kol;

}

content->append(tr("</table>"));

 

}

test -> setText(*content);

test ->show();

pole -> setFixedHeight(20+(15*kol));

}

void index::table_raz_html()

{

 

test -> hide();

content->clear();

polsov *p;

p = admin;

int kol = 1;

 

while(strcmp(p->element._get_name_base(),nmbs)!= 0)

{

p = p->next;

}

if(p->element._get_kol_razdelov() == 0)

{

content -> append(tr("<h3>В этой базе отсутствуют разделы!</h3>"));

}

else

{

content->append(tr("<table border ='0'><tr><td width = '200'><b>Наименование раздела</b></td><th width = '125'>количество таблиц</th>\

<th width = '125'>Количество записей</th><th width = '125'>Количество товара</th></tr>"));

int n;

 

n = p->element._get_kol_razdelov();

 

while(kol <= n)

{

content->append(QString(tr("<tr height = '50'><td>%1</td>")).arg(tr(p->element._get_name_raz(kol))));

content->append(QString(tr("<td align = 'center'>%1</td>")).arg(p->element._get_kol_table(p->element._get_name_raz(kol))));

content->append(QString(tr("<td align = 'center'>%1</td>")).arg(p->element._get_kol_zapis(p->element._get_name_raz(kol))));

content->append(QString(tr("<td align = 'center'>%1</td></tr>")).arg(p->element._get_kol_tovara(p->element._get_name_raz(kol))));

++kol;

}

content->append(tr("</table>"));

 

}

 

test -> setText(*content);

test ->show();

 

pole -> setFixedHeight(20+(15*kol));

 

}

void index::table_table_html()

{

test -> hide();

content->clear();

polsov *p;

p = admin;

int kol = 1;

 

while(strcmp(p->element._get_name_base(),nmbs)!= 0)

{

p = p->next;

}

if(p->element._get_kol_table(nmrz) == 0)

{

content -> append(tr("<h3>В этом разделе отсутствуют таблицы!</h3>"));

}

else

{

content->append(tr("<table border ='0'><tr><td width = '200'><b>Наименование таблицы</b></td><th width = '125'>количество записей</th>\

<th width = '125'>Количество товара</th><th width = '125'></th></tr>"));

 

 

int n;

 

n = p->element._get_kol_table(nmrz);

 

while(kol <= n)

{

content->append(QString(tr("<tr height = '50'><td>%1</td>")).arg(tr(p->element._get_name_table(nmrz,kol))));

content->append(QString(tr("<td align = 'center'>%1</td>")).arg(p->element._get_kol_zapis(nmrz,p->element._get_name_table(nmrz,kol))));

content->append(QString(tr("<td align = 'center'>%1</td>")).arg(p->element._get_kol_tovara(nmrz,p->element._get_name_table(nmrz,kol))));

content->append(QString(tr("<td></td></tr>")));

++kol;

}

content->append(tr("</table>"));

 

}

 

test -> setText(*content);

test ->show();

 

pole -> setFixedHeight(20+(15*kol));

}

void index::open_table_html()

{

test -> hide();

content->clear();

polsov *p;

p = admin;

int kol = 1;

 

while(strcmp(p->element._get_name_base(),nmbs)!= 0)

{

p = p->next;

}

if(p->element._get_kol_zapis(nmrz,nmtb) == 0)

{

content -> append(tr("<h3>В этой таблице отсутствую записи!</h3>"));

}

else

{

content->append(tr("<table border ='0'><tr><td width = '200'><b>Наименование товара</b></td><th width = '75'>Цена закупки</th>\

<th width = '75'>Цена продажи</th><th width = '75'>Кол-во товара</th></tr>"));

 

 

int n;

 

n = p->element._get_kol_zapis(nmrz,nmtb);

 

while(kol <= n)

{

content->append(QString(tr("<tr height = '50'><td>%1</td>")).arg(tr(p->element._get_name_elem(nmrz,nmtb,kol))));

content->append(QString(tr("<td align = 'center'>%1</td>")).arg(p->element._get_zenaZak_produkt(nmrz,nmtb,p->element._get_name_elem(nmrz,nmtb,kol))));

content->append(QString(tr("<td align = 'center'>%1</td>")).arg(p->element._get_zenaPro_produkt(nmrz,nmtb,p->element._get_name_elem(nmrz,nmtb,kol))));

content->append(QString(tr("<td align = 'center'>%1</td></tr>")).arg(p->element._get_kol_produkt(nmrz,nmtb,p->element._get_name_elem(nmrz,nmtb,kol))));

++kol;

}

content->append(tr("</table>"));

 

}

 

test -> setText(*content);

test ->show();

 

pole -> setFixedHeight(20+(15*kol));

}

 

char* index::preobr_cast(int n)

{

FILE *fp = fopen("wr.txt","w");

fprintf(fp,"%d",n);

fclose(fp);

fp = fopen("wr.txt","r");

char* str = "";

fscanf(fp,"%s",str);

fclose(fp);

return str;

}

void index::puty()

{

char str[151] = " Вы находитесь: пользователь";

char* zn = " >> ";

char qwe[51];

if(isPan >= 1)

{

strcat(str,zn);

strcat(str,nmbs);

}

if(isPan >= 2)

{

strcat(str,zn);

strcat(str,nmrz);

}

if(isPan >= 3)

{

strcat(str,zn);

strcat(str,nmtb);

}

QByteArray qb;

pt->setText(tr(str));

pt->move(50,1);

pt->show();

put->show();

}

void index::menuPanel()

{

//три пункта инструментов

 

p1 -> setFrameStyle(QFrame::VLine | QFrame::Raised);

p2 -> setFrameStyle(QFrame::VLine | QFrame::Raised);

 

//инструмент первого пункта

 

QPixmap pix("cab.ico");

 

punkt1 -> setFlat(true);

punkt1 -> setIcon(pix);

punkt1 -> setIconSize(pix.size()/3);

 

connect(punkt1,SIGNAL(clicked()),this,SLOT(prog()));

 

punkt2 -> setFlat(true);

 

connect(punkt2,SIGNAL(clicked()),this,SLOT(open_bas()));

 

punkt3 -> setFlat(true);

 

connect(punkt3,SIGNAL(clicked()),this,SLOT(raname_basa()));

 

punkt4 -> setFlat(true);

 

connect(punkt4,SIGNAL(clicked()),SLOT(saved()));

 

punkt5 -> setFlat(true);

 

connect(punkt5,SIGNAL(clicked()),this,SLOT(delet_bas()));

 

punkt6 -> setFlat(true);

connect(punkt6,SIGNAL(clicked()),this,SLOT(perehodBas()));

 

if(isPan >= 1)

punkt12 -> setEnabled(true);

else punkt12 -> setEnabled(false);

punkt12 -> setFlat(true);

 

connect(punkt12,SIGNAL(clicked()),this,SLOT(newrazdel()));

 

if(isPan >= 1)

punkt22 -> setEnabled(true);

else punkt22 -> setEnabled(false);

punkt22 -> setFlat(true);

connect(punkt22,SIGNAL(clicked()),this,SLOT(open_raz()));

 

if(isPan >= 1)

punkt32 -> setEnabled(true);

else punkt32 -> setEnabled(false);

punkt32 -> setFlat(true);

connect(punkt32,SIGNAL(clicked()),this,SLOT(renameRazdel()));

 

punkt42 -> setFlat(true);

punkt42 -> setEnabled(false);

 

if(isPan >= 1)

punkt52 -> setEnabled(true);

else punkt52 -> setEnabled(false);

punkt52 -> setFlat(true);

connect(punkt52,SIGNAL(clicked()),this,SLOT(deleteRazdel()));

 

punkt62 -> setFlat(true);

punkt62 -> setEnabled(false);

 

if(isPan >= 2) punkt13 -> setEnabled(true);

else punkt13 -> setEnabled(false);

 

connect(punkt13,SIGNAL(clicked()),this,SLOT(newtablica()));

 

punkt13 -> setFlat(true);

if(isPan >= 2) punkt23 -> setEnabled(true);

else punkt23 -> setEnabled(false);

punkt23 -> setFlat(true);

 

connect(punkt23,SIGNAL(clicked()),this,SLOT(openTable()));

 

if(isPan >= 2) punkt33 -> setEnabled(true);

else punkt33 -> setEnabled(false);

punkt33 -> setFlat(true);

 

connect(punkt33,SIGNAL(clicked()),this,SLOT(RedaktTable()));

 

punkt43 -> setFlat(true);

punkt43 -> setEnabled(false);

if(isPan >= 2)punkt53 -> setEnabled(true);

else punkt53 -> setEnabled(false);

punkt53 -> setFlat(true);

 

connect(punkt53,SIGNAL(clicked()),this,SLOT(deleteTable()));

 

punkt63 -> setFlat(true);

punkt63 -> setEnabled(false);

}

 

void index::in_load(polsov **p)

{

polsov *s,*l;

s = *p; l = s;

char str[31];

int kol,kol2;

 

FILE *fp = fopen("base.txt","r");

 

fscanf(fp,"%d",&kol);

 

for(int i = 0; i<kol; i++)

{

fscanf(fp," %s",str);

if((*p) == NULL)

{

*p = new polsov;

(*p)->element._in_name_base(str);

(*p)->next = NULL;

(*p)->end = (*p);

(*p)->namber = i;

s = (*p);

}

else

{

s->next = new polsov;

(*p)->end = s->next;

s = s->next;

s->element._in_name_base(str);

s->next = NULL;

s->namber = i;

}

}

 

fclose(fp);

fp = fopen("razdel.txt","r");

FILE *fp1,*fp2;

fp1 = fopen("tablica.txt","r");

fp2 = fopen("element.txt","r");

s = *p;

int n1,n2,kolic;

char str2[31],str3[151];

double d1,d2;

for(int i = 0; i < kol; i++)

{

fscanf(fp,"%d",&kol2);

 

for(int j = 0; j < kol2; j++)

{

fscanf(fp," %s",str);

s->element._new_razdel(str);

fscanf(fp1,"%d",&n1);

for(int l = 0; l < n1; l++)

{

fscanf(fp1," %s",str2);

s->element._new_tabllica(str,str2);

fscanf(fp2,"%d",&n2);

for(int l1 = 0; l1<n2; l1++)

{

fscanf(fp2," %s",str3);

fscanf(fp2,"%lf",&d1);

fscanf(fp2,"%lf",&d2);

fscanf(fp2,"%d",&kolic);

s->element._in_elem_in_table(str,str2,str3,d1,d2,kolic);

}

 

}

}

 

s = s->next;

}

fclose(fp);

 

 

}

int index::kol_raz_bas(char* str)

{

polsov *p;

p = admin;

 

while(p!= NULL && strcmp(p->element._get_name_base(),str)!= 0)

p = p->next;

return p->element._get_kol_razdelov();

 

}

void index::dostup_menu()

{

if(isPan >= 2) tabSub->setEnabled(true);

else tabSub->setEnabled(false);

if(isPan >= 1) razSub->setEnabled(true);

else razSub->setEnabled(false);

if(isPan >= 3)

{

el1 -> setEnabled(true);

el2 -> setEnabled(true);

el3 -> setEnabled(true);

}else

{

el1 -> setEnabled(false);

el2 -> setEnabled(false);

el3 -> setEnabled(false);

}

if(isPan >= 1) kt1 ->setEnabled(true);

else kt1 -> setEnabled(false);

if(isPan >= 2) kt2 ->setEnabled(true);

else kt2 -> setEnabled(false);

if(isPan >= 3) kt3 -> setEnabled(true);

else kt3 -> setEnabled(false);

}

void index::saved()

{

polsov *s;

s = admin;

FILE *fp = fopen("base.txt","w"),

*fp1 = fopen("razdel.txt","w"),

*fp2 = fopen("tablica.txt","w"),

*fp3 = fopen("element.txt","w");

if(s!= NULL)

fprintf(fp,"%d\n",s->end->namber+1);

else fprintf(fp,"0");

while(s!= NULL)

{

fprintf(fp,"%s\n",s->element._get_name_base());

s->element.saveFile(fp1,fp2,fp3);

s = s->next;

}

fclose(fp);

fclose(fp1);

sob ->show();

}

 

void index::prog()

{

pre0 -> addPolsov(&admin);

pre0 -> show();

}

 

void index::delet_bas()

{

pre2->addPolsov(&admin);

pre2->pusk();

}

void index::raname_basa()

{

pre -> addPolsov(&admin);

pre -> pusk();

}

void index::open_bas()

{

pre1 -> addPolsov(&admin);

pre1 -> pusk();

}

void index::open_raz()

{

raz2->addPolsov(&admin);

raz2->addBasa(nmbs);

raz2->pusk();

}

void index::perestroit()

{

dostup_menu();

if(isPan == 0)

table_bas_html();

if(isPan == 1)

table_raz_html();

if(isPan == 2)

table_table_html();

if(isPan == 3)

open_table_html();

if(isPan >= 1) punkt6 -> setEnabled(true);

else punkt6 ->setEnabled(false);

}

void index::perehodRaz()

{

isPan = 1;

strcpy(nmbs,pre1->getNameBasa());

perestroit();

menuPanel();

puty();

}

void index::perehodTable()

{

isPan = 2;

strcpy(nmrz,raz2->getNameRaz());

perestroit();

menuPanel();

puty();

}

void index::perehodBas()

{

isPan = 0;

perestroit();

menuPanel();

puty();

}

 

void index::sozdBas()

{

perestroit();

}

void index::newrazdel()

{

raz -> addPolsov(&admin);

raz ->addBasa(nmbs);

raz -> show();

}

void index::renameRazdel()

{

raz1->addPolsov(&admin);

raz1->addBasa(nmbs);

raz1->pusk();

}

void index::deleteRazdel()

{

raz3->addPolsov(&admin);

raz3->addBasa(nmbs);

raz3->pusk();

}

void index::newtablica()

{

table -> addPolsov(&admin);

table -> addBasa(nmbs);

table -> addRazdel(nmrz);

table -> show();

}

void index::deleteTable()

{

table2->addBasa(nmbs);

table2->addRazdel(nmrz);

table2->addPolsov(&admin);

table2->pusk();

 

}

void index::openTable()

{

table3->addBasa(nmbs);

table3->addRazdel(nmrz);

table3->addPolsov(&admin);

table3->pusk();

}

 

void index::OpenPerehodTable()

{

strcpy(nmtb,table3->getNameTable());

isPan = 3;

perestroit();

puty();

}

void index::RedaktTable()

{

table1->addBasa(nmbs);

table1->addRazdel(nmrz);

table1->addPolsov(&admin);

table1->pusk();

}

void index::izmenElem1()

{

elemSoder -> addPolsov(&admin);

elemSoder -> addBasa(nmbs);

elemSoder -> addRazdel(nmrz);

elemSoder -> addTablica(nmtb);

elemSoder -> pusk(0);

 

}

void index::izmenElem2()

{

elemSoder -> addPolsov(&admin);

elemSoder -> addBasa(nmbs);

elemSoder -> addRazdel(nmrz);

elemSoder -> addTablica(nmtb);

elemSoder -> pusk(1);

 

}

void index::izmenElem3()

{

elemSoder -> addPolsov(&admin);

elemSoder -> addBasa(nmbs);

elemSoder -> addRazdel(nmrz);

elemSoder -> addTablica(nmtb);

elemSoder -> pusk(2);

}

 

 

Basa.h

 

#include "tablica.h"

 

 

class basa

{

struct razdel

{

int id_Tab;

tablica tab;

razdel *next,*end;

};

 

struct spisok

{

int id_raz;

razdel *raz;

spisok *next;

spisok *end;

char nameRazdel[31];

};

 

private:

int kolRazd,kolTabl,kolZapis;

char nameBase[31];

spisok *katalog;

int idBasa;

 

razdel* in_razdel(razdel **elm)

{

razdel *p;

 

p = new razdel;

p->next = NULL;

 

if((*elm) == NULL)

{

p->id_Tab = 1;

(*elm) = p;

(*elm) -> end = p;

}else

{

p -> id_Tab = (*elm)->end->id_Tab+1;

(*elm)->end->next = p;

(*elm)->end = p;

}

return p;

}

 

spisok* in_spisok()

{

spisok *p;

 

p = new spisok;

p->next = NULL;

 

if(katalog == NULL)

{

p->id_raz = 1;

katalog = p;

katalog -> end = p;

}else

{

p->id_raz = katalog->end->id_raz+1;

katalog->end->next = p;

katalog->end = p;

}

strcpy(p->nameRazdel,"");

return p;

}

razdel* poisk_table(int num, razdel *elm)

{

razdel *p;

p = elm;

 

while(p!= NULL && num!= p->id_Tab)

p = p->next;

return p;

}

spisok* poisk_razdel(int num)

{

spisok *p;

p = katalog;

while(p!= NULL && p->id_raz!= num)

p = p->next;

return p;

}

void numerik_tablic(razdel **l)

{

razdel *p;

p = *l;

for(int i = 1; p!=NULL;i++)

{

p->id_Tab = i;

p = p->next;

}

}

void numerik_razdelov()

{

spisok *p;

p = katalog;

for(int i = 1; p!= NULL; i++)

{

p->id_raz = i;

p = p->next;

}

}

void delete_table(razdel **l, razdel *del)

{

razdel *p;

p = *l;

if(p == del)

{

(*l) = (*l) -> next;

if(p->next!= NULL)

(*l)-> end = del->end;

}

else {

while(p->next!= del)

p = p->next;

if(del->next == NULL)

(*l)->end = p;

p->next = del->next;

}

delete del;

numerik_tablic(l);

}

 

void delete_razdel(spisok *del)

{

spisok *p;

p = katalog;

 

if(p == del)

{

katalog = katalog->next;

}else

{

while(p->next!= del)

p = p->next;

if(del->next == NULL)

katalog->end = p;

p -> next = del ->next;

}

delete del;

numerik_razdelov();

}

spisok* poisk_po_imeni(char* str)//поиск раздела по его имени возвращает указатель

{

spisok *p;

p = katalog;

int i = 0;

while(p!= NULL && i == 0)

{

if(strcmp(str,p->nameRazdel) == 0) return p;

p = p->next;

}

return p;

}

razdel* poisk_po_imeni_table(razdel *l,char* str)

{

razdel *p;

p = l;

int i = 0;

while(i == 0 && p!= NULL)

{

if(strcmp(p->tab.get_name_table(),str) == 0) return p;

p = p->next;

}

return p;

}

public:

 

basa();

bool _new_tabllica(char* nameRaz, char* nameTab);

bool _proverka_name_tablici(char* nameRaz, char* nameTab);

bool _proverka_name_razdel(char* str);

bool _new_razdel(char str[]);

void _in_name_base(char *str);

char* _get_name_base();

bool _delete_razdel(char* nameRaz);

bool _delete_table(char* nameRaz, char* nameTab);

bool _in_elem_in_table(char* nameRaz, char* nameTab, char* name, double zenP, double zenZ,int kol);

double _get_zenaPro_produkt(char* nameRaz, char* nameTab, char* nameElem);

double _get_zenaZak_produkt(char* nameRaz, char* nameTab, char* nameElem);

int _get_kol_produkt(char* nameRaz, char* nameTab, char* nameElem);

bool _in_kol_produkt(char* nameRaz, char* nameTab, char* nameElem,int kol);

int _get_kol_zapis(char* nameRaz, char* nameTab);

int _get_kol_zapis(char nameRazdel[]);

int _get_kol_tovara(char nameRazd[]);

int _get_kol_tovara(char nameRazdel[],char nameTable[]);

int _get_kol_zapis();

bool _in_zenaZak(char* nameRaz, char* nameTab, char* nameElem,double zena);

bool _in_zenaPro(char* nameRaz, char* nameTab, char* nameElem,double zena);

int _get_kol_razdelov();

int _get_kol_table();

int _get_kol_table(char nameRazdel[]);

char* _get_name_raz(int num);

void saveFile(FILE *fp,FILE *fp1,FILE *fp2);

void _rename_razdel(char str1[],char str2[]);

char* _get_name_table(char nameRazdel[],int num);

char* _get_name_elem(char nameRazdel[],char nameTable[],int num);

void _rename_table(char nameRazdel[],char nameTable[], char newNameTable[]);

void _rename_elem(char nameRazdel[],char nameTable[],char nameElem1[],char nameElem2[]);

void _in_kol_elem(char nameRazdel[],char nameTable[],char nameElem1[],int kol);

void _delete_elem(char nameRazdel[],char nameTable[],char nameElem[]);

};

 

Basa.cpp

 

#include "basa.h"

 

basa::basa()

{

kolRazd = 0;

kolTabl = 0;

kolZapis = 0;

strcpy(nameBase,"name Base");

katalog = NULL;

}

bool basa::_new_tabllica(char* nameRaz, char* nameTab)

{

if(_proverka_name_razdel(nameRaz) == 0) return false;

if(_proverka_name_tablici(nameRaz,nameTab) == 1) return false;

spisok *p;

p = poisk_po_imeni(nameRaz);

razdel *p1;

p1 = in_razdel(&(p->raz));

p1->tab.in_name_table(nameTab);

kolTabl++;

return true;

}

bool basa::_proverka_name_tablici(char* nameRaz, char* nameTab)

{

if(_proverka_name_razdel(nameRaz) == true) return false;

spisok *p;

 

p = poisk_po_imeni(nameTab);

 

razdel *p1;

 

p1 = p->raz;

int i = 0;

while(p1!= NULL && i == 0)

{

if(strcmp(p1->tab.get_name_table(),nameTab) == 0) i = 1;

p1 = p1->next;

}

 

if(i == 1) return true;

else return false;

}

bool basa::_proverka_name_razdel(char* str)

{

spisok *p;

p = katalog;

int i = 0;

while(i == 0 && p!= NULL)

{

if(strcmp(str,p->nameRazdel) == 0) i = 1;

p = p->next;

}

if(i == 1) return true;

else return false;

}

bool basa::_new_razdel(char str[]){

if(_proverka_name_razdel(str) == true) return false;

spisok *p;

p = in_spisok();

strcat(p->nameRazdel,str);

p->raz = NULL;

kolRazd++;

return true;

}

void basa::_in_name_base(char *str)

{

strcpy(nameBase,str);

}

 

char* basa::_get_name_base()

{

return nameBase;

}

bool basa::_delete_razdel(char* nameRaz)

{

if(_proverka_name_razdel(nameRaz) == 0) return false;

spisok *p;

p = poisk_po_imeni(nameRaz);

int kol_t,kol_z;

kol_z = _get_kol_zapis(nameRaz);

kol_t = _get_kol_table(nameRaz);

delete_razdel(p);

kolRazd--;

kolTabl -=kol_t;

kolZapis -=kol_z;

return true;

}

bool basa::_delete_table(char* nameRaz, char* nameTab)

{

if(_proverka_name_razdel(nameRaz) == 0) return false;

if(_proverka_name_tablici(nameRaz, nameTab)!= 0) return false;

 

spisok *p;

p = poisk_po_imeni(nameRaz);

razdel *p1;

p1 = poisk_po_imeni_table(p->raz,nameTab);

int kol_z;

kol_z = p1->tab.get_kol_elementov();

delete_table(&(p->raz),p1);

kolTabl--;

kolZapis -= kol_z;

 

return true;

}

bool basa::_in_elem_in_table(char* nameRaz, char* nameTab, char* name, double zenP, double zenZ,int kol)

{

if(_proverka_name_tablici(nameRaz,nameTab) == 1) return false;

spisok *p;

p = poisk_po_imeni(nameRaz);

razdel *p1;

p1 = poisk_po_imeni_table(p->raz,nameTab);

if(p1->tab.get_num_element(name) == -1) kolZapis++;

p1->tab.in_elem(name,zenZ,zenP,kol);

return true;

}

double basa::_get_zenaPro_produkt(char* nameRaz, char* nameTab, char* nameElem)

{

if(_proverka_name_tablici(nameRaz,nameTab)!= 0) return -1;

spisok *p;

p = poisk_po_imeni(nameRaz);

razdel *p1;

p1 = poisk_po_imeni_table(p->raz,nameTab);

int num;

num = p1->tab.get_num_element(nameElem);

if(num == -1) return -1;

return p1->tab.get_zena_zakupki(num);

}

double basa::_get_zenaZak_produkt(char* nameRaz, char* nameTab, char* nameElem)

{

if(_proverka_name_tablici(nameRaz,nameTab)!= 0) return -1;

spisok *p;

p = poisk_po_imeni(nameRaz);

razdel *p1;

p1 = poisk_po_imeni_table(p->raz,nameTab);

int num;

num = p1->tab.get_num_element(nameElem);

if(num == -1) return -1;

return p1->tab.get_zena_pro(num);

}

int basa::_get_kol_produkt(char* nameRaz, char* nameTab, char* nameElem)

{

if(_proverka_name_tablici(nameRaz,nameTab)!= 0) return -1;

spisok *p;

p = poisk_po_imeni(nameRaz);

razdel *p1;

p1 = poisk_po_imeni_table(p->raz,nameTab);

int num;

num = p1->tab.get_num_element(nameElem);

if(num == -1) return -1;

return p1->tab.get_kol(num);

}

bool basa::_in_kol_produkt(char* nameRaz, char* nameTab, char* nameElem,int kol)

{

if(_proverka_name_tablici(nameRaz,nameTab) == 0) return false;

spisok *p;

p = poisk_po_imeni(nameRaz);

razdel *p1;

p1 = poisk_po_imeni_table(p->raz,nameTab);

int num;

num = p1->tab.get_num_element(nameElem);

if(num == -1) return false;

p1->tab.in_kol(num,kol);

return true;

}

int basa::_get_kol_zapis(char* nameRaz, char* nameTab)

{

if(_proverka_name_tablici(nameRaz,nameTab) == 1) return -1;

spisok *p;

p = poisk_po_imeni(nameRaz);

razdel *p1;

p1 = poisk_po_imeni_table(p->raz,nameTab);

return p1->tab.get_kol_elementov();

}

int basa::_get_kol_zapis(char nameRazdel[])

{

spisok *p;

razdel *p1;

p = poisk_po_imeni(nameRazdel);

p1 = p->raz;

int num = 0;

while(p1!= NULL)

{

num+=p1->tab.get_kol_elementov();

p1 = p1->next;

}

return num;

}

int basa::_get_kol_tovara(char nameRazd[])

{

spisok *p;

razdel *p1;

p = poisk_po_imeni(nameRazd);

p1 = p->raz;

int num = 0;

while(p1!= NULL)

{

num += p1->tab.get_kol_tovara_table();

p1 = p1->next;

}

return num;

}

int basa::_get_kol_tovara(char nameRazdel[],char nameTable[])

{

spisok *p;

razdel *r;

p = poisk_po_imeni(nameRazdel);

r = poisk_po_imeni_table(p->raz,nameTable);

return r->tab.get_kol_tovara_table();

}

int basa::_get_kol_zapis()

{

return kolZapis;

}

bool basa::_in_zenaZak(char* nameRaz, char* nameTab, char* nameElem,double zena)

{

if(_proverka_name_tablici(nameRaz,nameTab) == 0) return false;

spisok *p;

p = poisk_po_imeni(nameRaz);

razdel *p1;

p1 = poisk_po_imeni_table(p->raz,nameTab);

int num;

num = p1->tab.get_num_element(nameElem);

if(num == -1) return false;

p1->tab.in_zena_zakupki(num,zena);

return true;

}

bool basa::_in_zenaPro(char* nameRaz, char* nameTab, char* nameElem,double zena)

{

if(_proverka_name_tablici(nameRaz,nameTab) == 0) return false;

spisok *p;

p = poisk_po_imeni(nameRaz);

razdel *p1;

p1 = poisk_po_imeni_table(p->raz,nameTab);

int num;

num = p1->tab.get_num_element(nameElem);

if(num == -1) return false;

p1->tab.in_zena_pro(num,zena);

return true;

}

int basa::_get_kol_razdelov()

{

return kolRazd;

}

int basa::_get_kol_table()

{

return kolTabl;

}

int basa::_get_kol_table(char nameRazdel[])

{

spisok *p;

p = katalog;

while(strcmp(p->nameRazdel,nameRazdel)!= 0)

p = p->next;

int num = 0;

if(p->raz!= NULL)

num = p->raz->end->id_Tab;

return num;

}

char* basa::_get_name_raz(int num)

{

spisok *p;

 

p = poisk_razdel(num);

return p->nameRazdel;

}

void basa::saveFile(FILE *fp,FILE *fp1,FILE *fp2)

{

fprintf(fp,"%d\n",_get_kol_razdelov());

 

spisok *p;

p = katalog;

int n1;

razdel *r;

while(p!= NULL)

{

fprintf(fp,"%s\n",p->nameRazdel);

n1 = _get_kol_table(p->nameRazdel);

r = p->raz;

fprintf(fp1,"%d\n",n1);

for(int i = 0; i<n1;i++)

{

fprintf(fp1,"%s\n",r->tab.get_name_table());

r->tab.fileSave(fp2);

r = r->next;

}

p = p->next;

}

}

void basa::_rename_razdel(char str1[],char str2[])

{

spisok *p;

p = katalog;

if(_proverka_name_razdel(str1) == true)

{

while(strcmp(p->nameRazdel,str1)!= 0)

p = p->next;

strcpy(p->nameRazdel,str2);

}

}

char* basa::_get_name_table(char nameRazdel[],int num)

{

char str[31];

spisok *p;

p = poisk_po_imeni(nameRazdel);

razdel *r;

r = poisk_table(num,p->raz);

return r->tab.get_name_table();

}

char* basa::_get_name_elem(char nameRazdel[],char nameTable[],int num)

{

spisok *p;

p = poisk_po_imeni(nameRazdel);

razdel *r;

r = poisk_po_imeni_table(p->raz,nameTable);

return r->tab.get_name_elem(num);

}

void basa::_rename_table(char nameRazdel[],char nameTable[], char newNameTable[])

{

spisok *p;

p = poisk_po_imeni(nameRazdel);

 

razdel *r;

r = poisk_po_imeni_table(p->raz,nameTable);

r->tab.in_name_table(newNameTable);

}

void basa::_rename_elem(char nameRazdel[],char nameTable[],char nameElem1[],char nameElem2[])

{

spisok *p;

p = poisk_po_imeni(nameRazdel);

 

razdel *r;

r = poisk_po_imeni_table(p->raz,nameTable);

r->tab.rename_elem(nameElem1,nameElem2);

}

void basa::_in_kol_elem(char nameRazdel[],char nameTable[],char nameElem1[],int kol)

{

spisok *p;

p = poisk_po_imeni(nameRazdel);

 

razdel *r;

r = poisk_po_imeni_table(p->raz,nameTable);

r->tab.in_kol(nameElem1,kol);

}

void basa::_delete_elem(char nameRazdel[],char nameTable[],char nameElem[])

{

spisok *p;

p = poisk_po_imeni(nameRazdel);

 

razdel *r;

r = poisk_po_imeni_table(p->raz,nameTable);

int num;

num = r->tab.get_num_element(nameElem);

r->tab.delete_elem(num);

kolZapis--;

}

 







Дата добавления: 2015-06-15; просмотров: 396. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

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

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

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

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

Расчет концентрации титрованных растворов с помощью поправочного коэффициента При выполнении серийных анализов ГОСТ или ведомственная инструкция обычно предусматривают применение раствора заданной концентрации или заданного титра...

Броматометрия и бромометрия Броматометрический метод основан на окислении вос­становителей броматом калия в кислой среде...

Метод Фольгарда (роданометрия или тиоцианатометрия) Метод Фольгарда основан на применении в качестве осадителя титрованного раствора, содержащего роданид-ионы SCN...

Потенциометрия. Потенциометрическое определение рН растворов Потенциометрия - это электрохимический метод иссле­дования и анализа веществ, основанный на зависимости равновесного электродного потенциала Е от активности (концентрации) определяемого вещества в исследуемом рас­творе...

Studopedia.info - Студопедия - 2014-2024 год . (0.014 сек.) русская версия | украинская версия