
Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
// algo.h
// Содержит алгоритмы для обработки баз данных
// Структура двоичного временного файла таблицы f1
struct f1_structure
{
int Nomer; // Номер предмета
char Nazvanie[256]; // Название предмета
};
struct f2_structure
{
int NomerGrup;
char FIO[256];
int NomerPredmeta;
char NazvaniePredmeta[256];
int Ocenka;
// Дополнительное поле, чтобы отмечать записи во второй таблице
int _metka;
};
// Класс алгоримов обработки базы данных
class db_algo
{
public:
db_algo();
// Установить имена обрабатываемых файлов
void SetFileNames(CString f1_name, CString f2_name, CString f3_name,
CString sr_ball = "");
// Установить имя файла со средним баллом
void SetSredniBallFileName(CString sr_ball);
// Проверить уникальность номера предмета из файла f1
int TestUniqID(CString &ErrorMsg);
int MakeBinResTable(CString &ErrorMsg);
int GenF3(CString &ErrorMsg);
int CalculeSredBall(CString &ErrorMsg);
protected:
void PutF2Temp(int NG, CString &FIO, int NomPr,
CString &NazPr, int Ocenka, FILE *temp);
int FindF1Temp(int Num, CString &Buffer, FILE *temp);
void PutF1Temp(int Num, CString &Name, FILE *temp);
int GetFirstUnmarketRecord(f2_structure &st, FILE *f2);
void PutRecordF3(f2_structure &st, FILE *f3);
int GetFindUnmarket(int NP, int NG, f2_structure &st, FILE *f2);
void DeleteAllMetka(FILE *f2);
void PutSredniBall(int NomGr, const char* NazPr, double SrBall, FILE *fballs);
private:
// Имена файлов с базами данных
CString file1_name, file2_name, file3_name;
// Имя файла со средними баллами
CString sred_ball_name;
};