Разработка информационной системы для деканата высшего учебного заведения
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
>//Обычный одномерный динамический массив
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)
//Структуры точнек в