Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Организация работы в текстовом режиме
Цель работы – овладение навыкамиработы в текстовом режиме, использования стандартных функций для работы в текстовом режиме. Задания для самостоятельной подготовки: 1. Изучить: - особенности работы в текстовом режиме в изучаемом языке программирования; - возможности стандартных функций для работы в текстовом режиме. 2. Разработать алгоритм решения в соответствии с заданием. 3. Составить программу решения задачи.
Задание к работе: Составить и выполнить на ЭВМ программу, иллюстрирующую работу изученных стандартных функций для работы в текстовом режиме.
Пример выполнения работы Задание. Составить и выполнить на ЭВМ программу, иллюстрирующую работу изученных стандартных функций для работы в текстовом режиме.
Программа решения задачи имеет вид:
#include<stdio.h> #include<math.h> #include<conio.h> #include<stdlib.h>
void main() {
textbackground(7); //установка цвета фона clrscr(); //очистка экрана window(2,2,78,24); //задание окна textbackground(1); clrscr(); window(4,3,76,22); textbackground(4); clrscr(); textcolor(3); // установка цвета символов cprintf(" Russian color "); //вывод на экран window(7,5,70,19); textbackground(0); clrscr(); textattr(6+7*16); // установка цвета фона и символов clrscr(); cprintf("!!!!!!!!!!! \r\n"); textattr(1+7*16); highvideo(); //установка повышенной яркости cprintf("!!!!!!!!!!! \r\n"); lowvideo(); //установка пониженной яркости cprintf("!!!!!!!!!!! \r\n"); getch(); gotoxy(2,2); //перемещение курсора getch(); gotoxy(7,4); getch(); movetext(8,6,13,6,10,20); //перемещение области экрана getch(); movetext(8,5,60,5,10,23); getch(); movetext(8,5,60,5,10,21); getch(); movetext(8,5,60,5,10,22); getch(); movetext(8,5,60,5,10,24); getch(); gotoxy(1,1); delline(); //удаление строки getch(); gotoxy(1,1); insline(); //вставка строки getch(); return; }
Контрольные вопросы
Лабораторная работа №17 Создание светового меню Цель работы – овладение навыками алгоритмизации и программирования алгоритмов с использованием переменной структура (запись) и объединение, создания светового меню средствами изучаемого языка программирования.
Задания для самостоятельной подготовки: 1. Изучить: -основную терминологию, связанную с переменной объединение: определение, элемент объединения;
- организацию доступа к элементам объединения; - функции для обработки нажатия клавиши на клавиатуре; - принципы организации вывода и управления светового меню. 2. Разработать алгоритм решения в соответствии с заданием. 3. Составить программу решения задачи. 4. Подготовить тестовый вариант исходных данных. Выполнить на ЭВМ программу с тестовым вариантом. Задание к работе: Написать программу, осуществляющую вывод и управление меню с подсветкой. Главное меню должно содержать пункты: 1. Ввод информации 2. Вывод информации 3. Выход При выборе первого пункта осуществить ввод информации в массив структур (согласно варианту из таблицы 15). При выборе второго пункта осуществить вывод меню второго уровня (согласно варианту из таблицы 15). Таблица 15
Продолжение таблицы 15
Пример выполнения работы Задание. Написать программу, осуществляющую вывод и управление меню с подсветкой. Главное меню должно содержать пункты: 1. Ввод информации 2. Вывод информации 3. Выход При выборе первого пункта осуществить ввод в массив структур информации - ФИО рабочего; - год рождения; - табельный номер. При выборе второго пункта осуществить вывод меню второго уровня 1. Вывод ФИО рабочего и года рождения 2. Вывод ФИО рабочего и табельного номера 3. Вывод всей информации 4. Выход.
Программа решения задачи имеет вид:
#include<stdio.h> #include<string.h> #include<conio.h> #include<stdlib.h> #include<graphics.h> #include<math.h> #include<dos.h> #include<bios.h> struct pass //структура { char fio[30]; int god; int tabn; //fio[30]-фамилия, god-год рождения, tabn-табельный номер };
void menu(int j, int c1, int c2, int ys, char *textmenu[]) //функция вывода подпунктов меню //j-количество пунктов меню, c1-номер цвета текста, с2-номер цвета фона //ys-координата по у начала первого пункта меню, textmenu[]-содержание пунктов меню { int i; textcolor(c1); //функция задаёт цвет текста textbackground(c2); //функция задаёт цвет фона for(i=0;i<j;i++) //цикл осуществляет вывод пунктов меню { gotoxy(1,ys); //функция позиционирует курсор по указанным координатам clreol(); //функция очищает строку,на которой находится курсор cprintf("%s",textmenu[ys/2-1]); //вывод пункта меню ys+=2; } return; }
int winmenu(char* u[]) //функция задаёт интерфейс меню //u[]- массив пунктов меню {int y,predy; //координаты пункта меню по у
union //объединение для считывания кода клавиши { int p; unsigned char b[2]; }key; textbackground(0); clrscr(); //очистка экрана window(7,3,73,22); //задание размеров окна textbackground(15); clrscr(); window(10,4,70,21); textbackground(2); clrscr(); y=2; predy=2; menu(3,0,2,2,u); //вызов функции меню, где 3-количество пунктов меню // 0-номер цвета текста 2-номер цвета фона // 2-координата начала первой строки меню по у в заданном окне u-массив пунктов меню
menu(1,15,0,2,u); // установить подсветку на пункте меню
for(;;) { key.p=bioskey(0); switch (key.b[1]) //выполнение одной из альтернатив, в зависимости от того, какая клавиша нажата { case 72: y-=2; //нажата стрелка вверх if(y<2) y=6; break; //оператор разрыва, передаёт управление следующему за switch оператору case 80: y+=2; //нажата стрелка вниз if(y>6) y=2; break; case 28: return y/2; //нажата клавиша Enter } menu(1,0,2,predy,u); //убрать подсветку на пункте меню menu(1,15,0,y,u); // установить подсветку на пункте меню predy=y; } }
int vvod(struct pass mas[]) //функция ввода данных { int kol; int i; //kol-количество жителей clrscr(); cprintf("Введите кол-во жителей:"); scanf("%d",&kol); //функция считывает введённые с клавиатуры данные for(i=0;i<kol;i++) //цикл ввода данных { cprintf("\r\n"); cprintf("Введите ФИО: "); scanf("%s", &mas[i].fio); cprintf("\r\nВведите год рождение: "); scanf("%d", &mas[i].god); cprintf("\r\nВведите его табельный номер: "); scanf("%d", &mas[i].tabn); } return kol; //функция возвращает количество жителей }
void vivod(int k,struct pass mas[],int de) //функция вывода введённых данных { int i; //i-переменная цикла clrscr(); for(i=0;i<k;i++) //цикл вывода данных на экран switch(de) //в зависимости о пункта меню de вывод требуемых данных { case 1:cprintf("ФИО:%20s\r\nГод рождения:%5d\r\n",mas[i].fio,mas[i].god); break; case 2:cprintf("ФИО:%20s\r\nТабельный номер:%d\r\n",mas[i].fio,mas[i].tabn); break; case 3:cprintf("ФИО:%20s\r\nГод рождения:%5d\r\n\ Табельный номер:%d\r\n",mas[i].fio,mas[i].god,mas[i].tabn); } getch(); //останов выполнения программы до нажатия любой клавиши return; }
void main() { struct pass s[30]; int koll,R=1,P=1; //koll-количество жителей char *textmenu1[]={"1.Ввод инфо","2.Вывод инфо","3.Выход"}; char *textmenu2[]={"1.Вывод ФИО и год рождения", "2.Вывод ФИО и табельный номер","3.Вывод всей инфо"}; clrscr(); _setcursortype(_NOCURSOR); //убирает курсор с экрана while(R!=3) //пока пользователь не выбрал последний пункт меню “Выход” { R=winmenu(textmenu1); //номер пункта в главном меню switch(R) { case 1: koll=vvod(s); break; //ввод данных case 2: P=winmenu(textmenu2); //номер пункта в меню второго уровня vivod(koll,s,P); break; //вывод данных case 3: clrscr(); textcolor(4); cprintf("Программа завершила работу"); getch(); //выход } } return; } Контрольные вопросы
Лабораторная работа №18
|
|||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2017-02-19; просмотров: 182; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.103.10 (0.039 с.) |