Будь умным!


У вас вопросы?
У нас ответы:) SamZan.ru

Тема- Работа с экраном в текстовом режиме

Работа добавлена на сайт samzan.ru: 2016-06-09


Контрольное задание  #12

Студента первого курса заочного факультета группы Уи Калужских Михаила Юрьевича. Вариант #24

Тема: Работа с экраном в текстовом режиме.

Цель: Научиться работать с экраном в текстовом режиме.

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

Блок-схема:

Исходный код:

#include <iostream.h>

#include <stdlib.h>

#include <conio.h>

#include <dos.h>

char text[]="Information";

unsigned int textlen=11, pause=500, maxx=80, maxy=25, x1, x2, y1, y2;

 unsigned int background, color, setblink, freq;

  unsigned int x, y, k, t, i;

void doubleframe ();

void doubleframetwo ();

void main ()

{

 unsigned int minlen;

  minlen=textlen+6;

 textbackground (0);

  clrscr ();

 do

  {

   x1=1+random (maxx-minlen);

 x2=minlen+random (maxx-x1-minlen);

y2=x2*maxy/maxx;

 y1=1+random (maxy-y2);

window (x1, y1, x1+x2-1, y1+y2-1);

 background=random (8);

color=random (16);

 setblink=random (2);

textbackground (background);

 clrscr ();

textcolor (color+setblink*128);

 gotoxy ((x2-textlen)/2+1, (y2-1)/2+1);

cout << text;

 doubleframe ();

/*switch (background)

 {

  case 0: freq 262; break;

  case 1: freq 294; break;

  case 2: freq 330; break;

  case 3: freq 349; break;

  case 4: freq 392; break;

  case 5: freq 440; break;

  case 6: freq 494; break;

  case 7: freq 524; break;

 }*/

sound (freq);

 delay (pause);

nosound ();

  }

 while (!kbhit ());

  window (1, 1, 80, 25);

   textbackground (0);

 textcolor (7);

  clrscr ();

 doubleframetwo ();

}

void doubleframe ()

{

 int i;

  gotoxy (2, 1);

 cout << 'Й';

  for (i=3; i<=x2-2; i++)

   cout << 'Н';

 cout << '»';

  for (i=2; i<=y2-1; i++)

   {

 gotoxy (2, i);

  cout << 'є';

 gotoxy (x2-1, i);

  cout << 'є';

}

  gotoxy (2, y2);

   cout << 'И';

  for (i=3; i<=x2-2; i++)

   cout << 'Н';

  cout << 'ј';

}

void doubleframetwo ()

{

 textbackground (0);

  clrscr ();

   _setcursortype (_NOCURSOR);

 x=1;

  y=1;

 k=1;

 do

  {

   textcolor (RED);

     for (t=0; t<23; t++)

      {

       clrscr ();

       textbackground (random (3));

        y=y+1;

         x=x+3.52;

       gotoxy (1, 1);

        cout << 'Й';

       for (i=1; i<=77; i++)

        cout << 'Н';

         cout << '»';

       for (i=2; i<=24; i++)

        {

         gotoxy (1, i);

          cout << 'є';

         gotoxy (79, i);

          cout << 'є';

        }

       gotoxy (1, 25);

        cout << 'И';

       for (i=1; i<=77; i++)

        cout << 'Н';

         cout << 'ј';

       gotoxy (x-2, y);

        cout << text;

         delay (200);

      }

     for (t=0; t<23; t++)

      {

       clrscr ();

        textbackground(random (3));

       gotoxy (1, 1);

        cout << 'Й';

       for (i=1; i<=77; i++)

        cout << 'Н';

         cout << '»';

       for (i=2; i<=24; i++)

        {

         gotoxy (1, i);

          cout << 'є';

         gotoxy (79, i);

          cout << 'є';

        }

       gotoxy (1, 25);

        cout << 'И';

       for (i=1; i<=77; i++)

        cout << 'Н';

         cout << 'ј';

       gotoxy (x-2, y);

        cout << text;

        y=y-1;

         x=x-3;

          delay (200);

      }

  }

 while (!kbhit ());

  window (1, 1, 80, 25);

 textbackground (0);

  clrscr ();

}

Таблица переменных:

Переменная

Тип переменной

x

unsigned int

y

unsigned int

k

unsigned int

t

unsigned int

i

unsigned int

x1

unsigned int

x2

unsigned int

y1

unsigned int

y2

unsigned int

pause

unsigned int

textlen

unsigned int

maxx

unsigned int

maxy

unsigned int

background

unsigned int

freq

unsigned int

color

unsigned int

setblink

unsigned int

text

char

Тестирование:

Тестирование прошло успешно. Программа выполняется по условию задачи.


D

while (!kbhit ())

Вывод текста

t

ывод символа

i

Вывод символа

i=1; i<=77; i++

Вывод символа

i

Вывод символов

i=2; i<=24; i++

Вывод символа

C

i

Вывод символа

i=1; i<=77; i++

Вывод символа

y=y+1;

x=x+3.52;

t=0; t<=77; t++

do

void doubleframetwo ()

C

Вывод символа

i

Вывод символа

i=3; i<=x2-2; i++

B

Вывод символов

i=2; i<=y2-2; i++

Вывод символа

i

Вывод символа

i=3; i<=x2-2; i++

Вывод символа

void doubleframe ()

Конец

void doubleframetwo ()

while (!kbhit ())

void doubleframe ()

A

A

Воспроизведение звуков в соответствии с цветом фона

Вывод текста

определение координат, формирование окна, определение цвета фона, символов.

do

void doubleframe() void doubleframetwo()

Объявление переменных

Начало

Вывод символа

i

B

y=y-1;

x=x-3;

Вывод текста

t

Вывод символа

i

Вывод символа

E

E

i=1; i<=77; i++

Вывод символа

i

Вывод символов

i=2; i<=24; i++

Вывод символа

i

Вывод символа

i=1; i<=77; i++

Вывод символа

t=0; t<=77; t++

D




1. Тема- КРАЇНИ БЛИЗЬКОГО ТА СЕРЕДНЬОГО СХОДУ
2. а имеющими источники возврата предоставляемых финансовых средств обеспечивающие значительный прирост инв
3. на тему Разъеденители отделители короткозамыкатели
4. ВНЕДРЕНИЕ ТВОРЧЕСКОЙ ИНДУСТРИИ В ОБРАЗОВАТЕЛЬНЫЙ ПРОЦЕСС
5. Distnce humn flights pper The modern ge of vition begn with the first untethered humn lighterthnir flight on November 21 1783 in hot ir blloon designed by the Montgolfier brothers
6. Сидерский А. Мищенко Ю
7. а не удалось полностью уничтожить нас не оставив от нас и следа
8. Перевод с английского В
9. і Якийсь художник Добсон відправив своєму другові поздоровлення зі святом на якому намалював зі зворотної с
10. Политические праздники в массовом сознании омичей
11. Сбербанк России [0
12. Ребенок и общество
13. Нуклеиновые кислоты
14. Тема- Формы проведения досуга школьников
15. Технология производства на предприятии ОАО Гормолзавод Вольский
16. Лекція. Сучасна характеристика конкурентоспроможноі продукції
17. тематически осуществляет сброс сточных вод в водоем.
18. Метафизике и других трудах Аристотель развивает учение о причинах и первоначалах всего сущего
19. Монополистическая конкуренция основные понятия
20. практикум по информатике