Вход/Регистрация
Основы программирования в Linux
вернуться

Мэтью Нейл

Шрифт:

mvprintw(start_row + current_row, start_col, "%s", txt_ptr);

if (current_row == current_highlight) attroff(A_STANDOUT);

current_row++;

option_ptr++;

 }

 mvprintw(start_row + current_row + 3, start_col,

"Move highlight then press Return ");

 refresh;

}

3. Далее рассмотрим функцию

clear_all_screen
, которая, как ни странно, очищает экран и перезаписывает заголовок. Если компакт-диск выбран, отображаются его данные:

void clear all_screen {

 clear;

 mvprintw(2, 20, "%s", "CD Database Application");

 if (current_cd[0]) {

mvprintw(ERROR_LINE, 0, "Current CD: %s: %s\n", current_cat, current_cd);

 }

 refresh;

}

Управление базой данных

В этом разделе описаны функции пополнения или обновления базы данных компакт-дисков. Функции

add_record
,
update_cd
и
remove_cd
вызываются из функции
main
.

Добавление записей

1. Добавьте сведения о новом компакт-диске в базу данных.

void add_record {

 char catalog_number[MAX_STRING];

 char cd_title[MAX_STRING];

 char cd_type[MAX_STRING];

 char cd_artist[MAX_STRING];

 char cd_entry[MAX_STRING];

 int screenrow = MESSAGE_LINE;

 int screencol = 10;

 clear_all_screen;

 mvprintw(screenrow, screencol, "Enter new CD details");

 screenrow += 2;

 mvprintw(screenrow, screencol, "Catalog Number: " );

 get_string(catalog_number);

 screenrow++;

 mvprintw(screenrow, screencol, " CD Title: ");

 get_string(cd_title);

 screenrow++;

 mvprintw(screenrow, screencol, " CD Type: ");

 get_string(cd_type);

 screenrow++;

 mvprintw(screenrow, screencol, " Artist: ");

 get_string(cd_artist);

 screenrow++;

 mvprintw(PROMPT_LINE-2, 5, "About to add this new entry:");

 sprintf(cd_entry, "%s, %s, %s, %s",

catalog_number, cd_title, cd_type, cd_artist);

 mvprintw(PROMPT_LINE, 5, "%s", cd_entry);

 refresh;

 move(PROMPT_LINE, 0);

 if (get_confirm) {

insert_title(cd_entry);

strcpy(current_cd, cd_title);

strcpy(current_cat, catalog_number);

 }

}

2. Функция

get_string
приглашает к вводу и считывает строку из текущей позиции экрана. Она также удаляет завершающую новую пустую строку:

void get_string(char* string) {

 int len;

 wgetnstr(stdscr, string, MAX_STRING);

 len = strlen(string);

 if (len > 0 && string[len - 1] == '\n') string[len - 1] = '\0';

}

3. Функция

get_confirm
запрашивает и считывает пользовательское подтверждение. Она читает введенную пользователем строку и проверяет, первый символ —
Y
или
у
. Если она обнаруживает другой символ, то не дает подтверждения.

int get_confirm {

 int confirmed = 0;

 char first_char;

 mvprintw(Q_LINE, 5, "Are you sure? ");

 clrtoeol;

 refresh;

 cbreak;

 first_char = getch;

 if (first_char == 'Y' || first_char == 'y') {

confirmed = 1;

 }

 nocbreak;

  • Читать дальше
  • 1
  • ...
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: