Вход

Личный блокнот - справочник

Реферат по программированию
Дата добавления: 19 июня 2006
Язык реферата: Русский
Word, rtf, 5.6 Мб (архив zip, 140 кб)
Реферат можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу



МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ

НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ "ЛЬВОВСКАЯ ПОЛИТЕХНИКА"

Кафедра АСУ









К У Р С О В А Я Р О Б О Т А

из дисциплины

"Проблемно ориентированные языки программирования"

на тему:

“Личный блокнот - справочник”









Выполнил студент группы КН – 12

Руководитель






ЛЬВОВ - 2002



Содержани



Вступление 3

1. формулирование задания 4

2. Теоретические сведения 5

2.1. функции для работы з графикой 5

2.2. Функции для работы с файлами 6

2.2.1. Функции форматированого ввода-вывода. 7

2.2.2. Функции безформатного ввода-вывода 7

2.2.3. блочный ввод 7

2.2.4. Блочный вывод 7

2.3. другие функции для работы з файлами 8

3. Алгоритм реализации программы 9

4. программа и ее описание 11

5. Контрольный пример программы 13

Вивод 15

Литература 16

Прибавления 17

Прибавление 1. Текст программы 17



Вступление

Сохранение информации на компьютерных носителях данных на сегодняшний день не редкость. Любой электронный прибор имеет встроенный носитель информации, которая вмещает значения о своих данных. Персональные компьютеры имеют два вида памяти: постоянно запоминающее устройство (ПЗП) и оперативно запоминающее устройство (ОЗП). Отличие между двумя видами в том, что ОЗП теряет информацию после прекращения подачи питания, а ПЗП сохраняет данные постоянно. Аналогом ПЗП есть чипы – миниатюрные приборы для запоминания информации.

В современных средствах телекоммуникаций чипы для запоминания цифровой информации приобретают больших темпов развития. С помощью таких чіпів сохраняются данные о телефонных номерах, дате, распорядке дня и т.п.. Широко используются электронные записные книжки-справочники, которые дают возможность сохранять текстовую информацию небольших размеров, а также осуществлять пополнение базы данных и изъятия ее элементов.

Создание электронного блокнота – основная задача данной курсовой работы.

  1. Формулирование задачи

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

Все созданные файлы данных будут иметь текстовый формат и сохраняться в файлах с расширением ref. Текстовый, а не бинарный формат выбран для того, чтобы созданную базу данных можно было бы пересматривать и редактировать, не только с помощью данной программы, а также и стандартными средствами редактирования текстовых файлов (например,: NotePad).

Для разработки программы используется язык программирования С. С помощью стандартных функций этого языка можно просто и эффективно изображать графические объекты для разработки интерфейса. А также использовать функции ввода и вывода в файл. Язык С имеет стандартный тип FILE, используя что можно работать с файлами двух типов: бинарным или текстовым.

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

  1. Теоретические сведения

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

2.1. Функции для работы с графикой

К основным функциям, для работы с графикой, в языке С относят такие:

  • rectangle(x1, y1, x2, y2) – изображения прямоугольника текущего цвета с координатами верхнего левого угла (x1,y1) и нижнего правого (x2,y2).

  • bar(x1, y1, x2, y2) – изображения закрашенного прямоугольника текущей палитры и цвета с координатами верхнего левого угла (x1,y1) и нижнего правого (x2,y2).

  • putpixel(x1, x2, color) – рисование точки за координатами (x1, y1) и текущим цветом.

  • getpixel(x1,x2) – определения цвета точки за указанными координатами.

  • line(x1, y1, x2, y2) – изображения линии текущего цвета с координатами начала (x1, y1) и конца (x2, y2).

  • setcolor(color); - установления текущего цвета вывода объектов на экран. Цвета задаются стандартными константами или числовыми значениями.

  • setfillstyle(pattern, color) – установления параметров закрашивания объектов. Палитра закрашивания задается стандартными константами или числовыми значениями.

  • getimage(x1, y1, x2, y2, bitmap) – сохранение области экрану прямоугольной формы x1, y1, x2, y2 – в оперативную память по адресу bitmap.

  • putimage(x1, y1, bitmap, mode) – вывод на экран, начиная из точки x1, y1, графического изображения, которое сохраняется по адресу bitmap.

  • circle(x1, y1, radius) – изображения кола текущего цвета с центром в точке (x1, y1) и радиусом radius.

  • sector(x1, y1, startangle, endangle, verradius, gorradius) – рисования закрашенного сектору с заданной палитрой и цветом с центром в точке (x1, y1), начальными и конечными углами сектору startangle, endangle и вертикальным и горизонтальным радиусом verradius, gorradius.

    1. Функции для работы с файлами

Организация поточного буферного ввода-вывода проводится за такой последовательностью:

  1. Объявить указатель на файловую структуру:

FILE *f;

  1. Открыть файл:

FILE *fopen(char *filename, char *mode);

filename – название файла для открытия;

mode – режим открытия файла, может содержать два символа. Первый определяет направление передачи данных, второй режим открытия: t – текстовый, b – бинарный.


Символ

Определения

r

Открывает файл для чтения, должен существовать

w

Открывает для записи, если не существовал, то создает новый

a

Для записи в конец файла

r+

Для чтения и записи, должен существовать

w+

Для записи и чтение, создает несуществующий файл

a+

Для дополнения и чтение

Таблица определений первого символа


  1. Использовать функции для работы с файлами

  2. Закрытия файла:

int fclose(FILE *f);

int fcloseall(void);

Если файл закрылся нормально, то возвращается 0, в другом случае возвращается 1.

      1. Функции форматированого ввода-вывода.


  • int fscanf(FILE *f, char *format, список адресов сменных) – Для введения информации из файла. Записывает в файл f, форматирование данные, какие указанные в списке адресов сменных.

  • int fprintf(FILE *f, char *format, список констант и сменных для записи в файл) – Выводит в файл f отформатированый список констант и сменных. Возвращает количество успешно переданных байтов.

      1. Функции безформатного ввода-вывода

  • int fgetc(FILE *f) – возвращает ASCII код введенного символа, при ошибке ли в конце файла возвращается EOF. Можно использовать чтобы читать посимвольно файл.

  • int fputs(char *s, FILE *f) - записывает строка s в файл f к нулевому символу, сам нулевой символ в файл не записывается. Возвращает код последнего записанного символа.

      1. Блочный ввод

  • int fread(void *buffer, size_t size, size_t n, FILE *f) – считывает n элементов размером size байтов каждый, из файла f в буфер buffer. Возвращает число прочитанных элементов. Если ошибка, то возвращает число меньше за n.

  • int getw(FILE *f) – считывает два байта из файла f, если ошибка или конец файла, то возвращает EOF.

      1. Блочный вывод

  • int fwrite(void *buffer, size_t size, size_t n, FILE *f) -записывает n элементов размером size байтов каждый, с буферу buffer в файле f. Возвращает число записанных элементов. Если ошибка, то возвращает число меньше за n.

  • int putw(int w, FILE *f) – записывает целое двохбайтное число w в файл f. Возвращает это же самое число.

    1. Другие функции для работы с файлами

  • int fileno(FILE *f) – возвращает значения дескриптора открытого файла. Дескриптор (номер файла) есть целым числом. В PSP записывается номер каждого файла.

  • int feof(FILE *f) – возвращает отличное от нуля значения, если прочитан кінець файла

  • int ferror(FILE *f) – осуществляет проверку наличия ошибки при чтении или записи. Возвращает 0, если ошибок не выявлен

  • int fflush(FILE f) – записывает символ из буфера связанного с потоком f в файл, если ее применить для файла открытого для чтения, то буфер очистится. В случае когда файл открытый для записи – данные из буфера переносятся на диск.

  • int flushall (void) – записывает символы с буфере во все соответствующие открытые в программе файлов.

  • int unlink(const char *filename) – вытирает файл с именем filename. Файл должен быть закрытый. Возвращает 0 при завершении без ошибки, в другом случае возвращает – 1.

  • int remove(const char *filename) – аналогичная к unlink.

  1. Алгоритм реализации программы

Алгоритм основной программы работает таким образом: происходит установления графического режима, если графический режим установить не удалось, то программа завершает свое выполнение, так как интерфейс выполнен с помощью графических функций. Если графика иницыализировалась, то формируется изображения заднего фона и на экран выводится главное меню программы. Поскольку еще ни один файл не открытый, то доступных могут быть только четыре пункта: открыть, создать новый файл, о программе и выходе. В программе используется сменная Yes, которая может принимать два значения: 0 или 1.0 – означает, что файл не открытый и нужно выводить только четыре пункта меню, 1 – файл открыть и доступные все пункты.

Дале задается цикл, в котором читаются все данные из клавиатуры и соответственно нужной комбинации клавиш вызовется заданная функция. Если нажатая клавиша Esc – происходит выход из цикла, закрытия графического режима и окончание программы.


Программа и ее описание

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

struct reccords {

char name[200];

char title[200];

};

Программа использует такие сменные:

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

char s[200]="";

Указатель на файл

FILE *fil;

Указатель на название текущего файла

char *filename="";

Текущая позиция в файле

int pos=0;

Размер текущего файла

int size=0;

Сменная, которая равная 1, когда открытый файл

int Yes=0;

Промежуточная сменная

char *s_;

Сменная для помещения кода нажатой клавиши

char key;

Сменная файла

int и;

Программа содержит такие функции-подпрограммы:

int Len(int S) – возвращает количество цифр в числе S. Эта функция используется для определения параметру количества цифр при использовании стандартной функции gctv;

void button(int x,int y,int x1,int y1, int lin, int col, char *qwert) – рисует изображения кнопки за указанными координатами. x, y, x1, y1 – координаты кнопки, lin – толщина кнопки, col – цвет, qwert – надпись на кнопке.

void menu(int nf, int of, int ad, int dl, int nr, int pr, int a, int e) – формирования меню программы, параметры этой функции указывают на то, какие кнопки должны быть доступные (параметр равный 1), а что недоступные (параметр равный 0). Сменная nf – отвечает кнопке для создания файла, of – для открытия существующего файла, ad – добавления записи, dl – изъятия текущей записи, nr – следующая запись, pr – предыдущая запись, a – кнопка “О программе”, e – кнопка “Выход”.

int input(int x, int y, int length) – функция для ввода символьной информации в графическом режиме. Если ввод закончился клавишей Enter возвращает 1, если клавишей Esc – 0. Ввод проводится в глобальную сменную S. x и y – начало вывода на экране, int – допустимое количество символов для ввода.

void status() – выводит информацию о текущем файле, о количестве записей, номер текущей записи и отображение содержимого текущей записи.

void next() – вывод следующей записи.

void prem() -вывод предыдущей записи.

void open() – функция для открытия файла, название которого сохраняется в сменной filename.

void add() – функция для добавления новой записи в конец заданного файла.

void del() – изъятия текущей записи из файла. При изъятии элемента создается новый файл temp.tmp, в который записываются все записи к текущего, потом текущая запись пропускается и записываются все записи, которые следуют за ним. После этого файл задан в filename вытирается, а файл temp.tpm переименовывается на filename.

void newfile() – создания новый файл заданного в filename.

void about() – вывод информации об авторе программы.

  1. Контрольный пример программы

Текст программы описан в Прибавлении 1. Запускается программа на выполнение файлом ref.exe. На экране появится интерфейс программы, который изображен на Рис 2. Поскольку на данный момент ни один файл не открытый, то доступными есть только четыре кнопки меню: для открытия файла, создания нового файла, вывода информации об авторе программы и кнопка выхода. Для выбора существующего файла нужно нажать комбинацию клавиш Ctrl+O, после этого на экране появится запрос на ввод фалу. Для примера введем Data (расширения программы - ref – прибавляется автоматически). Data.ref – это файл, пример базы данных для блокнота, в нем содержатся некоторые графические функции графического режима языка программирование С (Прибавление 2). После введения названия файла, на экране появится окно (Рис 3.) с информацией о количестве записей, номер текущей записи, а также содержимое первой записи. Для добавления новых записей нужно нажать клавишу Ins, для изъятия текущей записи – Del. Перемещаться по записям можно, чем помощь клавиш управлением курсора: влево и вправо.

Чтобы создать новый файл нужно нажать комбинацию клавиш Ctrl+N. После этого на экране появится запрос на название нового файла, и ввод названия первого поля, а также описание этого поля. Дале появляется окно с количеством записей (в данном случае 1) и номер текущей записи (1).

Для получения справки об авторе программы нужно нажать клавишу F1, чтобы выйти из программы – Esc.

Рис 2. Интерфейс программы


Рис 3. Вывод информации о файле



Вывод

Все современные технологические устройства используют приборы для запоминания информации. Широко используются электронные блокноты, которые дают возможность сохранять небольшие объемы информации. В данной курсовой работе была разработана программа, которая дает возможность работать как электронный блокнот. Разрешает прибавлять новые записи, изымать существующие, передвигаться по записям, а также сохранять информацию на шершавый диск и считывать данные из диска. При разработке программы использованный язык программирования С, с помощью стандартных графических функций созданный интерфейс программы. Также разработанная функция для ввода информации из клавиатуры в графическом режиме, стандартного аналогу такой функции нет.

Данную программу можно использовать для сохранения небольшой по объему информации, которую можно разделить на два вида: название поля и описание этого поля.



Литература

  1. Болски М.И. Язык программирования Си. 1988г.

  2. Прата С. Язык программирования С. Лекции и упражнения, «Диасофт», 2000.-432с.

  3. Фаронов В.В. – Практика программирования. – Москва.: «Нолидж», 2000. – 416с.



Прибавления

Прибавление 1. Текст программы

/* Курсовая работа по предмету: Проблемно ориентированные языки программирования

Выполнил ст. гр. КН – 12

Заяць Д. О.

*/

#include

#include

#include

#include

#include

#include

#include


struct reccords {

char name[200];

char title[200];

};

struct reccords x;

char s[200]="";

FILE *fil;

char *filename="";

int pos=0;

int size=0;

int Yes=0;

char *s_;

// Определения количества цифр в числе S

int Len(int S)

{int a = 1;

if (S > 9) a++;

if (S > 99) a++;

if (S > 999) a++;

if (S > 9999) a++;

return a;

}

// Рисования кнопки за указанными координатами

void button(int x,int y,int x1,int y1, int lin, int col, char *qwert)

{ setfillstyle(1,col);

setcolor(15);

bar(x,y,x1,y1);

setcolor(0);


rectangle(x,y,x1,y1);

setcolor(0);

rectangle(x+lin,y+lin,x1-lin,y1-lin);

line(x,y,x+lin,y+lin);

line(x1,y,x1-lin,y+lin);

line(x,y1,x+lin,y1-lin);

setfillstyle(1,0);


floodfill(x1-1,y1-1,0);

setcolor(col);

rectangle(x,y,x1,y1);

setcolor(15);

settextstyle(7,0,1);

outtextxy(x+lin+3,y+lin+2,qwert);

}

// Вывод на экран главного меню

void menu(int nf,

int of,

int ad,

int dl,

int nr,

int pr,

int a,

int e)

{

if (nf) {button(20,20,210,55,2,1, " New File (Ctrl+N)");} else

{button(20,20,210,55,2,8, " New File (Ctrl+N)");}

if (of) {button(20,60,210,95,2,1, " Open File (Ctrl+O)");} else

{button(20,60,210,95,2,8, " Open File (Ctrl+O)");}

if (ad) {button(20,100,210,135,2,1," Add Reccord (Ins)");} else

{button(20,100,210,135,2,8," Add Reccord (Ins)");}

if (dl) {button(20,140,210,175,2,1," Del. Reccord (Del)");} else

{button(20,140,210,175,2,8," Del. Reccord (Del)");}

if (nr) {button(20,180,210,215,2,1," Next Reccord (->)");} else

{button(20,180,210,215,2,8," Next Reccord (->)");}

if (pr) {button(20,220,210,255,2,1,"Prem. Reccord (<-)");} else

{button(20,220,210,255,2,8,"Prem. Reccord (<-)");}

if (a) {button(20,260,210,295,2,1," About (F1)");} else

{button(20,260,210,295,2,8," About (F1)");}

if (e) {button(20,300,210,335,2,1," Exit (Esc)");} else

{button(20,300,210,335,2,8," Exit (Esc)");}

if (nf) {button(20,20,210,55,2,1, " New File (Ctrl+N)");} else

{button(20,20,210,55,2,8, " New File (Ctrl+N)");}

if (of) {button(20,60,210,95,2,1, " Open File (Ctrl+O)");} else

{button(20,60,210,95,2,8, " Open File (Ctrl+O)");}

}

// Функция форматированого ввода в графическом режиме

int input(int x, int y, int length)

{char c;

int len, i ;

setfillstyle(1,15);

bar(x,y,x+350,y+20);

setcolor(1);

settextstyle(0,0,1);

moveto(x+1,y+8);

for (i=0;i<=40;i++) s[i]='\x0';

len = 0;

while (1)

{c=getch();

if (c==8) //BackSpase

{if (len!=0) {len--;}

bar(x,y,x+350,y+20);

moveto(x+1,y+8);

s[len]='\x0';

outtext(s);

continue;

}

if (c==27) {return 0;} // Esc

if (c==13) {return 1;} // Enter

if (c==32) {c='_';} // Space

if (len>=length) {continue;}

s[len]=c;

len++;

bar(x,y,x+350,y+20);

moveto(x+1,y+8);

outtext(s);

}

}

// Вывод информаций о выбранном файле

void status()

{ setfillstyle(7,8);

bar(220,20,620,460);

button(230,20,600,180,4,6,"");

settextstyle(0,0,1);

setcolor(14);

moveto(270,40);

outtext("Файл: ");

setcolor(15);

outtext(filename);

moveto(270,50);

setcolor(14);

outtext("Количество записей: ");

gcvt(size,Len(size),s_);

setcolor(15);

outtext(s_);

moveto(270,60);

setcolor(14);

outtext("Текущая запись: ");

gcvt(pos,Len(pos),s_);

setcolor(15);

outtext(s_);

setcolor(14);

outtextxy(270,80,"Название");

setfillstyle(1,15);

bar(240,90,580,110);

setcolor(1);

outtextxy(250,97,x.name);

setcolor(14);

outtextxy(270,128,"Описаниеание");

bar(240,140,580,160);

setcolor(1);

outtextxy(250,147,x.title);

}

// Следующая запись в файле

void next()

{int i;

if (pos<=size-1)

{pos++;

fil=fopen(filename,"r");

i=0;

while (i

status();

fclose(fil);

}

}

// Предыдущая запись в файле

void prem()

{int i;

if (pos>1)

{pos--;

fil=fopen(filename,"r");

i=0;

while (i

fclose(fil);

status();

}

}

// Открыть файл

void open()

{int и;

menu(0,0,0,0,0,0,0,0); // Недоступные все кнопки меню

setfillstyle(7,8);

bar(220,20,620,460);

setfillstyle(1,1);

bar(230,150,600,190);

settextstyle(0,0,1);

setcolor(14);

outtextxy(230,150," Введите название файла для открытия:");

if (input(240,160,8)==0)

{setfillstyle(7,8);

bar(220,20,620,460);

menu(1,1,0,0,0,0,1,1);

return;

} else

{for (i=0;i<=40;i++) filename[i]='\x0';

strcat(filename,s);

strcat(filename,".ref");

if ((fil=fopen(filename,"r"))==NULL)

{puts("Ошибка при открытии файла");

exit(1);}

size=0;



while (fscanf(fil,"%s %s",x.name,x.title)!=EOF) size++; //Количество записей

fclose(fil);

fil=fopen(filename,"r");

fscanf(fil,"%s %s",x.name,x.title);

pos=1;

status();

fclose(fil);

Yes=1;

menu(1,1,1,1,1,1,1,1); // Доступные все кнопки

}

}

// Прибавить новую запись

void add()

{int i;

setfillstyle(7,8);

bar(220,200,620,460);

setfillstyle(1,1);

bar(230,200,600,240);

setcolor(14);

settextstyle(0,0,1);

outtextxy(240,200,"Введите название поля: ");

if (input(240,210,45)==0)

{setfillstyle(7,8);

bar(220,200,620,460);

return;

}

for (i=0;i<=strlen(s);i++) {x.name[i]=s[i];}

setfillstyle(1,1);

bar(230,260,600,300);

setcolor(14);

outtextxy(240,260,"Введите описаниеание поля: ");

if (input(240,270,45)==0)

{setfillstyle(7,8);

bar(220,200,620,460);

return;

}

for (i=0;i<=strlen(s);i++) {x.title[i]=s[i];}

if ((fil=fopen(filename,"a"))==NULL)

{puts("Ошибка при открытии файла");

exit(1);}

fprintf(fil,"\n%s %s",x.name,x.title);

fclose(fil);

size++;

pos=1;

fclose(fil);

fil=fopen(filename,"r");

fscanf(fil,"%s %s",x.name,x.title);

setfillstyle(7,8);

bar(220,200,620,460);

status();

}

// Уничтожения текущей записи

void del()

{int i;

FILE *tempf;

fil=fopen(filename,"r");

size=0;

while (fscanf(fil,"%s %s",x.name,x.title)!=EOF) size++; //Количество записей

fclose(fil);

fil=fopen(filename,"r");

if (size>0)

{i=0;

tempf=fopen("temp.tmp","w");

while (i

{fscanf(fil,"%s %s",x.name,x.title);

i++;

fprintf(tempf,"%s %s\n",x.name,x.title);

}

fscanf(fil,"%s %s",x.name,x.title);

while (fscanf(fil,"%s %s",x.name,x.title)!=EOF) {fprintf(tempf,"%s %s\n",x.name,x.title);}

fclose(fil);

fclose(tempf);

remove(filename);

rename("temp.tmp",filename);

pos=1;

size--;

fclose(fil);

fil=fopen(filename,"r");

fscanf(fil,"%s %s",x.name,x.title);

status();

}

}


// Создания нового файла записей

void newfile()

{int i;

menu(0,0,0,0,0,0,0,0);

setfillstyle(7,8);

bar(220,20,620,460);

setfillstyle(1,9);

bar(230,150,600,190);

settextstyle(0,0,1);

setcolor(14);

outtextxy(230,150," Введите название файла для создания:");

if (input(240,160,8)==0)

{

setfillstyle(7,8);

bar(220,20,620,460);

menu(1,1,0,0,0,0,1,1);

return;

} else

{

for (i=0;i<=40;i++) filename[i]='\x0';

strcat(filename,s);

strcat(filename,".ref");

if ((fil=fopen(filename,"wb"))==NULL)

{puts("Ошибка при создании файла");

exit(1);}

add();

setfillstyle(7,8);

bar(220,20,620,460);

size=1;

pos=1;

status();

Yes=1;

menu(1,1,1,1,1,1,1,1);

}

fclose(fil);

}

// Вывод інфоромації об авторе программы

void about()

{ menu(0,0,0,0,0,0,0,0);

button(300,100,500,300,5,1,"");

setcolor(14);

settextstyle(0,0,1);

outtextxy(310,150," Курсовая работа");

outtextxy(310,160," с предмету");

outtextxy(310,170," ПОМП");

outtextxy(310,190," на тему: ");

outtextxy(310,200," 'Личный записник' ");

outtextxy(310,220," Выполнил ст. гр КН-12");

outtextxy(310,230," Заяць Д. О.");

getch();

if (Yes) {menu(1,1,1,1,1,1,1,1);status();return;}

menu(1,1,0,0,0,0,1,1);

setfillstyle(7,8);

bar(220,20,620,460);

}

// Начало основной программы

main()

{char key;

int i;

int gdriver = DETECT, gmode, errorcode;

initgraph(&gdriver, &gmode, "");

errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */

{ printf("Graphics error: %s\n", grapherrormsg(errorcode));

printf("Press any key to halt:");

getch();

exit(1);

}


setfillstyle(7,8);

floodfill(1,1,2);

for (и=1;и<=15;и++) {setcolor(и);rectangle(и,и,640-i,480-i);}

Yes=0; // Ни один файл не открытый

menu(1,1,0,0,0,0,1,1);

while (1)

{key=getch();

if (key==0) {key=getch();}

if (key==15) {open();continue;}

if (key==14) {newfile();continue;}

if (key==27) {break;}

if (key==75 && Yes) {prem();}

if (key==77 && Yes) {next();}

if (key==82 && Yes) {add();}

if (key==83 && Yes) {del();}

if (key==59) {about();}

}

closegraph();

}



© Рефератбанк, 2002 - 2017