Написание программы с использованием структурного шаблона с именем ZNAK

Контрольная работа - Компьютеры, программирование

Другие контрольные работы по предмету Компьютеры, программирование

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

Объявление указателей в Си.

Вначале указывается тип указателя. Это некоторый тип языка Си. В данном случае он определяет тип объекта, на который указывает указатель.

Вслед за этим через пробел ставится звездочка - *. Она обозначает, что следующая за ней переменная является указателем.

Получается довольно простая формула:

тип *

Например:*ch;*temp, i, *j, *k;

float *pt, fon;

Здесь указателями являются: ch, temp, j, k pt.

Операции над указателями в Си.

Простейшая операция над указателями - это операция &, что означает "взять адрес". Существует еще одна операция над указателями. Она обозначается символом звездочка *. Смысл этой операции таков: "значение, расположенное по указанному адресу".

Хотя знак звездочка * соответствует обычной операции умножения, но никак нельзя перепутать эти две операции. Ведь арифметическая операция умножения имеет два операнда. Иначе говоря, при умножении должны быть указаны, как данные, два числа, участвующие в умножении. Поэтому и говорят, что умножение - это бинарная операция. Операция * над указателями, в отличие от арифметического умножения, - это унарная операция. То есть, другими словами, она использует всего один операнд (одно данное).

 

Графика

 

Разработка всех графических программ включает следующие пять шагов:

.Подключение графической библиотеки.

.Установка видео-режима.

.Определение параметров видео-конфигурации.

.Создание и манипуляции графическими фигурами.

.Восстановление первоначальной конфигурации перед выходом из программы.

Подключение графической библиотеки.

Включаемый заголовочный файл graph.h определяет основные переменные, прототипы функций и константы, используемые в графическом программировании. Подключайте данный файл ко всем программам, использующим графические функции.

Установка видео-режима.

Первым шагом в графических программах является установка видео-режима, который разрешает выполнение графических функций. В графической библиотеке СИ поддерживается 10 графических режимов.

Графические функции и видеорежимы, используемые в данной программе будут представлены далее.

 

КонстантаВидеорежимГрафический или текстовый_DEFAULTMODEОригинальный режимоба_TEXTBW4040x25 текст, 16 серыхтекстовый_TEXTTC4040x25 текст, 16/8 цветныхтекстовый_TEXTBW8080x25 текст, 16 серыхтекстовый_TEXTC8080x25 текст, 16/8 цветныхтекстовый_MRES4COLOR320x200 ячеек, 4 цветаграфический_MRESNOCOLOR320x200 ячеек, 4 серыхграфический_HRESBW640x200 ячеек, BWграфический_TEXTMONO80x25 текст, BWтекстовый_MRES16COLOR320x200 ячеек, 16 цветовграфический_HRES16COLOR640x200 ячеек, 16 цветовграфический_ERESNOCOLOR640x350 ячеек, BWграфический_ERESCOLOR640x350 ячеек,4/16 цветовграфический_VRES2COLOR640x480 ячеек, 2 цветаграфический_VRES16COLOR640x480 ячеек, 16 цветовграфический_MRES256COLOR320x200 ячеек, 256 цветовграфический

В своей программе я использую _VRES16COLOR для использования в видеорежиме 16-цветную палитру для графических объектов, а также _TEXTC80 для использования в видеорежиме 16-цветную палитру для текста. _DEFAULTMODE - возвращает или задает режим ввода данных, к которому возвращается элемент после операции обновления, вставки или отмены.

 

Таблица функций

ФункцияСмысловая нагрузкаvoid createFile()создание файлаmain()главная функцияvoid showRecords()функция вывода записей по введенной фамилииvoid showAll()функция вывода всех записей, сортированных по дате рожденияstruct inpinput()функция добавления новых записей в базу

Графические функции

int menu()создание графической оболочки

Описание переменных

имя переменнойтипкласс памятисмысловая нагрузкаNAMEcharимя, в котором хранится имя и фамилия человекаZODIAKcharимя, в котором хранится знак зодиакаBDAYintимя, в котором хранится дата рождения человека

main()

cintлокальнаяпеременная отвечает за ввод с клавиатурыselectionintлокальнаяпеременная используется в операторе switchnumberintлокальнаяпеременная отвечает за количество записейrezinpлокальнаяпеременная используется при создании новых записей; буферная структура для значенийBLOC_NOTENOTEлокальнаяуказатель на структуру NOTEiintлокальнаясчетчикmenu()

ccharлокальнаяотвечает за ввод с клавиатурыtextselectedcharлокальнаяотвечает за цвет выделенного текстаtextnotselectedcharлокальнаяотвечает за цвет невыделенного текстаbuttonselectedcharлокальнаяотвечает за цвет выделенной кнопкиbuttonnotselectedcharлокальнаяотвечает за цвет невыделенной кнопкиiintлокальнаясчетчикselectionintлокальнаяиспользуется в операторе switchx[2]intлокальнаякоординаты кнопок по xy[4]intлокальнаякоординаты кнопок по yhintлокальнаярасстояние между кнопкамиshowRecords(struct ZNAK*BOOK, int number)

ccharлокальнаяотвечает за ввод с клавиатурыzod[30]charлокальнаяотвечает за хранение введенной с клавиатуры фамилииI,jintлокальнаясчетчикиflagintлокальнаяпеременная, отвечающая за то найдена ли запись или нет

void showAll(struct ZNAK*BOOK, int number)

I,j,kintлокальнаясчетчикиccharлокальнаяотвечает за ввод с клавиатурыZZNAKлокальнаябуферная структура для обмена значений

struct inp input(int number, struct ZNAK*BOOK)

rezinpлокальнаяпеременная отвечает за количество записей; буферная переменная для обмена значенийI,jintлокальнаясчетчикиerrorflagintлокальнаяпеременная, отвечающая за ошибку при вводе данныхerrorflag2intлокальнаяпеременная, отвечающая за ошибку при вводе данныхbreakerintлокальнаяпеременная, отвечающая за прерывание функции и возвращение в главное менюccharлокальнаяза ввод с клави?/p>