Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как сделать так, чтобы в массив вводилось, рэндомно, НЕ целочисленное число???? http://www.cyberforum.ru/cpp-beginners/thread271993.html
Например если есть массив из 100 элементов... а надо чтобы вводились именно не целочисленные числа. Не буду же я вводить каждое число ?! ВОт тока не могу догнать как это сделать.... подскажите...
C++ сделать пользовательскую функцию Необходимо Вычислить интеграл с заданной точностью, программа работает , но вычесление суммы s1 нужно сделать ввиде пользовательской функции #include <stdio.h> #include <stdlib.h> double f(double... http://www.cyberforum.ru/cpp-beginners/thread271990.html
Отладка C++
РЕбят, подскажите как сделать чтоб выводило только 4 знака после запятой у X и Y. Заранее спасибо#include<math.h> #include<stdio.h> void main() { int i; double x,y,f1,f2,a11,a12,a21,a22,d;...
C++ Работа с файлами и строками
Здравствуйте. Помогите пожалуйста с решением. ЗАДАНИЕ: Дан текстовый файл содержащий строки. Занести эти строки в другой текстовый файл, отсортировав их по убыванию количества слов заданной длины...
C++ strlen("Русский текст") http://www.cyberforum.ru/cpp-beginners/thread271959.html
Скорее всего данный вопрос уже поднимался... strlen("Русский текст") не может правильно обработать кириллицу. Латинские символы занимают один байт, а русские - два байта. Знаю что проблема в...
C++ виртуальные функции Здравствуйте.Перечитал различные статьи,но не могу до конца вникнуть в смысл использования виртуальных функций.Для взаимного понимания привожу свой код: struct first { Int a,b,c; virtual... подробнее

Показать сообщение отдельно
MrAleksej
20 / 15 / 8
Регистрация: 05.12.2010
Сообщений: 254
Записей в блоге: 1

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

07.04.2011, 19:54. Просмотров 907. Ответов 1
Метки (Все метки)

Ниже дана программа которая до нажатия Esc повторяет действия: случайным образом выбирает размеры (соотношение 25х80) и положение окна на экране закрашивает его в случайный цвет помещает в него двойную рамку и текст “Привет!” со случайным цветом и включает источник звука со случайной частотой Все окна полностью размещаются на экране Задание: после нажатия Esc программа модифицируется: Окно располагается в левой половине экрана и движется сверху вниз и затем обратно, а при повторном нажатии Esc прекращает свою работу

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<dos.h>

char text[]="Привет!";
unsigned int textlen=7, //размер текста
pause=500, //задержка в мсек
maxx=80, maxy=25, //гориз. и верт. размеры экрана
x1, y1, x2, y2, background, color, setblink, freq;
void doubleframe(); //функция формирования двойной рамки
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();
}
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<<'╝'; //правый нижний угол рамки
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru