- •Курсова робота
- •Завдання на курсову роботу
- •Розділ 1 теоретичні відомості замінити на свою тематику
- •Розділ 2 бібліотека користувача
- •1 Заголовний файл Bibl.H
- •2 Файл реалізації Bibl.Cpp
- •Розділ 3 основний модуль проекта
- •Розділ 4 створення додаткових форм
- •1 Форми «Про автора» та «Завдання»
- •2 Створення заставки до курсової роботи
- •Висновки
- •Список використаної літератури
Розділ 1 теоретичні відомості замінити на свою тематику
C++ Builder має потужні можливості по створенню…..
Розділ 2 бібліотека користувача
1 Заголовний файл Bibl.H
#ifndef libH
#define libH
#include "DateUtils.hpp" // долучення бібліотеки для роботи з типом даних Дата-Час
#include "stdio.h" //библиотека работы с файлами
//---------------------------------------------------------------------------
// глобальне оголошення файлових змінних (для текстового і бінарного файлів)
FILE *fT, *fB;
/* глобальне оголошення структури data з такими полями:
Fam[20] - прізвище
NameWr[20] - ім’я
Otch[20] – по-батькові
dolg[20] - посада
ustr[10] - дата прийому на роботу
zarp - оклад
*/
struct data
{
char Fam[20], NameWr[20], Otch[20], dolg[20], ustr[10];
float zarp;
};
// глобальне оголошення змінної типу data
data dan;
// глобальне оголошення змінних для зберігання імен бінарного і текстового файлів
char *nB="kurs.dat";
char *nT="kurs.txt";
// прототипи функцій
int kol(FILE **f); // кількість записів (структури) у файлі
void zapis(FILE **FT, FILE **FB); // створення txt-файла з бінарного умові
// по заданій (Завдання стовпчик 4)
void formir(FILE **f, data mass[],int k); // читання з бін. файла і формування масиву
// структур даних
void sort(data mass[], int k); // сортування (Завдання стовп.3)
#endif
2 Файл реалізації Bibl.Cpp
#pragma hdrstop
#include "Bibl.h"
#pragma package(smart_init)
//---------------------------------------------------------------------------------------------
// функція визначення кількості записів
int kol(FILE **f )
{
fseek(*f,0,2); // встановити курсор у кінець файла
int n= ftell(*f)/sizeof(data); // визначити кількість структур у файлі
fseek(*f,0,0); // перемістити курсор на початок файла
return n;
}
//---------------------------------------------------------------------------------------------
// функція формування масиву записів
void formir(FILE **f, data mass[], int k)
{
for(int i=0; i<k; i++)
fread(&mass[i], sizeof(dan), 1, *f); // зчитати один запис з файла і записати його як елемент масиву
}
//---------------------------------------------------------------------------------------------
// функція сортування масиву за спаданням по полю Оклад
void sort(data mass[], int k)
{
int i,j; data temp;
for(i=0; i<k-1; i++)
for(j=i+1; j<k; j++)
if(mass[i].zarp < mass[j].zarp) // (див. свій варіант сорт. у стовп.3)
{
temp = mass[i];
mass[i] = mass[j];
mass[j] = temp;
}
}
//---------------------------------------------------------------------------------------------
// Функція запису до текстового файла даних з бінарного файла по заданій умові (див. Стовп.4)
void zapis(FILE **FT, FILE **FB)
{
// допоки не дійшли до кінця бінарного файла зчитувати дані з нього
while( fread(&dan, sizeof(dan), 1, *FB)>0 )
// перевірка умови (завдання стовп.4) і, якщо вона виконується,
// записати дані до текстового файла
if (YearSpan(Now(),StrToDate(dan.ustr))>5)
fprintf(*FT,"%s %s %s %s %s %5.2f\n",&dan.Fam,&dan.NameWr,&dan.Otch,&dan.dolg, &dan.ustr, dan.zarp); // змінити імена полів для свого варіанта
}