Разработка информационной системы для деканата высшего учебного заведения

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



>//Обычный одномерный динамический массив

export templatedinmas

{: public:* data;:siz;();(SIZETYPE);

~dinmas();make(SIZETYPE);clear();& operator[](SIZETYPE);bytes();insert(type &, int);erase(int);(type &);();& top();SaveToFile(AnsiString);LoadFromFile(AnsiString);& size();

#ifndef NOCOPY=(dinmas &);

#endif

};

//Обычный двумерный динамический массив

class dinmas2d

{:** data;n,m;exists;d();d(SIZETYPE, SIZETYPE);

~dinmas2d();make(SIZETYPE, SIZETYPE);clear();* operator[](SIZETYPE);bytes();

#ifndef NOCOPY=(dinmas2d &);

#endif

};

//Одномерный динамический массив с двойной адресацией, может содержать в себе

//другие динамические массивы

class smartcont

{:** graphs;_size;selected;:(int);();(int n);&size();clear();& operator[](int);& operator()();

~smartcont();(type &value);();copy();erase(int);erase();select(int);SelectedItem();MoveUp();MoveDown();

};namespace std;::dinmas()

{=0;

}::dinmas(SIZETYPE Size)

{(2500,100);=0;(Size);

}::~dinmas()

{();

}::make(SIZETYPE Size)

{(siz>0) clear();=Size;=new type[siz];1;

}::clear()

{(siz<=0) return;[] data;=0;

}::operator[](SIZETYPE i)

{data[i];

}::bytes()

{siz*sizeof(type);

}::insert(type &variable, int position)

{(siz==0)

{(1);[0]=variable;;

}(positionsiz) position=siz;*buff1, *buff2;=new type[position];(int i=0;i<position;i++)

{[i]=data[i];

}=new type[siz-position];(int i=0;i<siz-position;i++)

{[i]=data[position+i];

}++;(siz);(int i=0;i<position;i++)

{[i]=buff1[i];

}[position]=variable;(int i=0;i<siz-1-position;i++)

{[position+1+i]=buff2[i];

}[] buff1;[] buff2;

}::erase(int position)

{(positionsiz-1) position=siz-1;(siz==0) return;*buff1, *buff2;=new type[position];(int i=0;i<position;i++)

{[i]=data[i];

}=new type[siz-position-1];(int i=0;i<siz-position-1;i++)

{[i]=data[position+1+i];

}-;(siz);(int i=0;i<position;i++)

{[i]=buff1[i];

}(int i=0;i<siz-position;i++)

{[position+i]=buff2[i];

}[] buff1;[] buff2;

}::push(type &variable)

{(variable, 0);

}::pop()

{(0);

}::top()

{data[0];

}::SaveToFile(AnsiString FileName)

{file(FileName.c_str(), ios::binary);.write((char*)&siz,sizeof(siz));(int i=0;i<siz;i++)

{.write((char*)&data[i],sizeof(type));

}.close();1;

}::LoadFromFile(AnsiString FileName)

{file(FileName.c_str(), ios::binary);.read((char*)&siz,sizeof(siz));(siz);(int i=0;i<siz;i++)

{.read((char*)&data[i],sizeof(type));

}.close();1;

}::size()

{siz;

}

#ifndef NOCOPY &object)

{

0)">if(object.size()>0)

{(object.size());(int i=0;i<size();i++)

{[i]=object.data[i];

}

}

}

#endif::dinmas2d()

{=0;=m=0;

}::dinmas2d(SIZETYPE N, SIZETYPE M)

{=0;=m=0;(N,M);

}::~dinmas2d()

{();

}::make(SIZETYPE N, SIZETYPE M)

{(N==0 || M==0) return 0;();=N; m=M;=new type*[n];(int i=0;i<n;i++)

{[i]=new type[m];

}=1;1;

}::clear()

{(!exists) return;(int i=0;i<n;i++)

{data[i];

}[] data;=0;

}::operator[](SIZETYPE i)

{data[i];

} int bytes()

{n*m*sizeof(type);

}

#ifndef NOCOPY &object)

{(object.exists)

{(object.n,object.m);(int i=0;i<n;i++)

{(int j=0;j<m;j++)

{[i][j]=object.data[i][j];

}

}=1;

}

}

#endif::smartcont(int n)

{

_size=selected=0;(n);

}::smartcont()

{

_size=selected=0;

make(0);

}::make(int n)

{(_size>0) clear();

_size=n;(_size!=0)

{= new type*[n];(int i=0;i<n;i++)

{[i] = new type[1];

}

}

}::size()

{_size;

}::clear()

{(_size<=0) return;(int i=0;i<_size;i++)

{[] graphs[i];

}[] graphs;

_size=0;

}::operator[](int n)

{(_size>0 && n<_size)*graphs[n];

{(NULL,"Ошибка массива","Ошибка",MB_OK|MB_ICONERROR);

}

}::operator()()

{(_size>0 && selected<_size)*graphs[selected];

{(NULL,"Ошибка массива","Ошибка",MB_OK|MB_ICONERROR);

}

}::~smartcont()

{

clear();

}::insert(type &value)

{();[selected]=value;

}::insert()

{(_size!=0)

{++;** buff;= new type*[_size];(int i=0;i<_size;i++)

{[i]=graphs[i];

}

_size++;= new type*[_size];(int i=0;i<selected;i++)

{[i]=buff[i];

}[selected] = new type[1];(int i=selected+1;i<_size;i++)

{[i]=buff[i-1];

}[] buff;(selected);

}

{(1);=0;(selected);

}

}::copy()

{();

*graphs[selected]=*graphs[selected-1];(selected);

}::erase(int n)

{buff=selected;(n);();(selected);

}::erase()

{(_size==0) return;[] graphs[selected];** buff;= new type*[_size];(int i=0;i<_size;i++)

{[i]=graphs[i];

}

_size--;= new type*[_size];(int i=0;i<selected;i++)

{[i]=buff[i];

}(int i=selected;i<_size;i++)

{[i]=buff[i+1];

}[] buff;(selected>0)(selected-1);

}::select(int item)

{(_size==0) return 0;=item;1;

}::SelectedItem()

{selected;

}::MoveUp()

{(selected<1) return;* buff;=graphs[selected-1];[selected-1]=graphs[selected];[selected]=buff;-;

}::MoveDown()

{(selected>_size-1) return;* buff;=graphs[selected+1];[selected+1]=graphs[selected];[selected]=buff;++;

}

#endif

3.3 Модуль lotexture

/******************************************************

Автор: Плеханов Ф.А.

Назначение: Класс для чтения файлов изображений в формате TGA и преобразования

в готовые для использования в среде OpenGL текстуры, также позволяет сохранять

изображения в формате TGA.

Входные данные: файл TGA, настройки чтения

Выходные данные: ID текстуры в OpenGL

*******************************************************/

3.3.1 Заголовочный файл lotexture.h

#ifndef LOTEXTURE_H

#define LOTEXTURE_H

#include

#include

#include

#include

#include

#include "mathadv.h"

#include "dinmas.cpp"

#define LT_IGNORE_ERROR 1namespace std;

#pragma pack (push, 1)

//Заголовок TGA-файла

struct TgaHeader

{idLength;colormapType;imageType;__int16 colormapIndex;__int16 colormapLength;colormapEntrySize;__int16 xOrigin;__int16 yOrigin;__int16 width;__int16 height;pixelSize;imageDesc;

};

#pragma pack (pop)

//Структуры точнек в