2.Описание программы
2.1. Описание данных
В программе используются указатели ptr_games, ptr_temp и ptr_sort типа struct Games_Data для доступа к полям структуры.
struct Game_Date
{
char name_game[80];
int publication_date;
double rating;
char developer[80];
char genre[80];
char resemblance[80];
};
static struct Game_Date *ptr_game;
static struct Game_Date *ptr_temp;
static struct Game_Date *ptr_sort;
Данная структура состоит из следующих элементов:
-
name_game[80] типа char (массив символов, содержащий название игры);
-
developer[80] типа char (массив символов, содержащий название издателя игры);
-
resemblance[80] типа char (массив символов, содержащий название похожей игры);
-
genre[80] типа char (массив символов, содержащий название жанра игры);
-
publication_date типа int (переменная, содержащая дату издания игры);
-
rating типа int (переменная, содержащая рейтинг игры).
Исходные три базы данных хранятся в файлах под именами:
-
GamesData.dat
-
NewGamesData.dat
-
RusGamesData.dat
В программе используются следующие функции:
-
char *rus(const char *text) (функция перевода русских символов);
-
char *sur(const char *text) (функция обратная функции перевода русских символов);
-
int input_find() и int input(int col_punkt) (функции проверки выбора действия);
-
void listing(Game_Date *ptr) (функция вывода записей);
-
void save_data(Game_Date *ptr_save) (функция сохранения базы данных);
-
void add_to_data(Game_Date *ptr_add_to_data) (функция добавление записи в каталог);
-
void delete_record(Game_Date *ptr_delete) (функция удаления записи из базы);
-
void change_record(Game_Date *ptr_dinamik_massiv) (функция изменения записей каталога);
-
void function_data_new() (функция создания файла базы данных);
-
void function_data_load() (функция загрузки файла базы);
-
void save_temp_massiv(Game_Date *ptr_temp_find,int j) (функция сохранения результатов поиска в файл типа .txt);
-
void sort_games_data(Game_Date *ptr_dinamik_massiv) (функция выбора критериев сортировки);
-
void find_to_games_data(Game_Date *ptr_dinamik_massiv) (функция выбора критериев поиска);
-
void main_data_all(Game_Date *ptr) (функция выбора действий (главное меню программы));
-
void sort_bubbling_games_data(Game_Date *ptr_dinamik_massiv) (функция сортировки каталога по названию игр (сортировка пузарьковая));
-
void sort_quick_gamesdata(Game_Date *ptr_dinamik_massiv, Game_Date *ptr_temp,int count) (функция сортировки по году издания (сортировка быстрая));
-
void sort_vstavki (Game_Date *ptr_dinamik_massiv,Game_Date *ptr_temp_vstavki) (функция сортировки по рейтингу игр (сортировка вставки));
-
void find_i(Game_Date *ptr_dinamik_massiv,char *str_name_find_i_1,char *str_name_find_i_2,int metka_find_type_2) (функция поиска с использованием связки ‘и’);
-
void find_ili(Game_Date *ptr_dinamik_massiv,char *str_name_find_ili_1,char *str_name_find_ili_2,int metka_find_type_3) (функция поиска с использованием связки ‘или’);
-
void find_ne(Game_Date *ptr_dinamik_massiv,char *str_name_find_ne,int metka_find_type_4) (функция поиска с использование связки ‘не’);