Будь умным!


У вас вопросы?
У нас ответы:) 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
2. МОДУЛЬ IV Днепропетровск 2010
3. Тема лекции 7- НЕРАЗЬЕМНЫЕ СОЕДИНЕНИЯ ДЕТАЛЕЙ МАШИН [1] ОБЩИЕ СВЕДЕНИЯ О СОЕДИНЕНИЯ
4. Финансовое планирование в унитарных предприятиях
5. К проблеме самодвижения
6. Исковая давность
7. Тема- MPIпрограма обчислення визначеного iнтеграла
8. Реферат на тему- Психологізація навчального процесу на уроках математики М о т и в а ц і я в и б о р у т е
9. Чайка по имени Джонатан Ливингстон Невыдуманному ДжонатануЧайке который живет в каждом из нас Час
10. реферат дисертації на здобуття наукового ступеня кандидата філологічних наук Київ ~ Дисер
11. ПОЯСНИТЕЛЬНАЯ ЗАПИСКА К КУРСОВОЙ РАБОТЕ по дисциплине Валютное регулирование и валютный контроль ЮУр
12. Реч
13. Дородницын Анатолий Алексеевич.html
14. . Информация содержится в человеческой речи текстах книг журналов и газет сообщениях радио и телевидения п
15. Сущностью человека является личность как духовная индивидуальность
16. задание компьютерной практики фрагмент отсканированного текста
17. Гуманистическая философия Возрождения.html
18.  Документационное обеспечение основа информационного обеспечения управления 1
19. И А Одругой автор но большинство- обе Г
20.  Горячая прокатка листовой стали 4