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

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

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

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 1.3.2025

Контрольное задание  #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. Міжнародне право Поняття міжнародного публічного права
6. Углич город царевича Димитрия
7. Великие реформы 60-70-х годов. Отмена крепостного права
8. славные или словые
9. Лабораторная работа ’6 Стандартные прикладные программы
10. Курсовая работа- Справедливость налогообложения как экономический фактор