Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
beckham
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 8
#1

Создание интерфейса пользователя в текстовом режиме - C++

28.02.2012, 22:52. Просмотров 1879. Ответов 4
Метки нет (Все метки)

Создание интерфейса пользователя в текстовом режиме. Библиотека PDCurses. (С++)
Задание:
В текстовом режиме экрана реализуйте возможность рисования (какими-либо символами) прямоугольников с помощью клавиш управления курсором.
Всем заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2012, 22:52     Создание интерфейса пользователя в текстовом режиме
Посмотрите здесь:

Создание игр в текстовом режиме - C++
Привет всем! Тут занялся написанием игрушек в текстовом режиме, типа змейки, тетриса и т.п. Суть в том, что я хочу как можно более...

Работа с экраном в текстовом режиме - C++
Ниже дана программа которая до нажатия Esc повторяет действия: случайным образом выбирает размеры (соотношение 25х80) и положение окна ...

Работа с экраном в текстовом режиме - C++
В меню с выбором пунктов Функциональными Клавишами по программе с клавиатуры в 1-е окно вводится текст с цифрами. Во 2-м окне...

Нарисовать мышью прямоугольник в текстовом режиме экрана - C++
Помогите разобраться.. Нужно нарисовать прямоугольник (любыми символами) в текстовом режиме экрана с помощью мышки. Ну я пытался...

ООП иерархия классов с выводом в текстовом режиме - C++
Помогите с решением "Дана иерархия классов числа-числа кратные 5-числа кратные 25. Написать программу с выводом объектов указанных классов...

Как сделать прокрутку (в текстовом режиме) и менюшку в turbo c - C++
(Turbo c)Если прогамма выводит на экран большое кол-во информации, то некоторая её часть становится недоступной, как же сделать прокрутку...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
beckham
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 8
01.03.2012, 08:12  [ТС]     Создание интерфейса пользователя в текстовом режиме #2
Помогите написать программу
beckham
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 8
02.03.2012, 09:23  [ТС]     Создание интерфейса пользователя в текстовом режиме #3
Пытался сделать что-то подобное, но ничего не получается...Помогите пожалуйста с этим заданием! И можно ли это реализовать как-нибудь по проще(подоступнее)?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include "stdafx.h"
#include <Windows.h>
#include <conio.h>
COORD pos;
HANDLE display;
 
void rect(int len,int wid){
    COORD p=pos;
    SetConsoleCursorPosition(display,p);    printf("%c",0xda);for(int i=0;i<len;i++) printf("%c",0xC4);printf("%c",0xbf);p.Y++;
    for(int j=0;j<wid;j++){
     SetConsoleCursorPosition(display,p);   printf("%c",0xB3);for(int i=0;i<len;i++) printf("%c",' ');printf("%c",0xb3);p.Y++;
    }
    SetConsoleCursorPosition(display,p);    printf("%c",0xc0);for(int i=0;i<len;i++) printf("%c",0xC4);printf("%c",0xD9);
    
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    system("cls");
    display = GetStdHandle(STD_OUTPUT_HANDLE);
    pos.X=0;    pos.Y=0;
    int ln=10,wd=10;
    rect(10,10);
    for(char c=getch();c!=27;c=getch()){
        switch(c){
            case 'd':{pos.X++;break;}
            case 'a':{pos.X--;break;}
            case 's':{pos.Y++;break;}
            case 'w':{pos.Y--;break;}
            case '1':{ln--;break;}          case '2':{ln++;break;}
            case '3':{wd--;break;}          case '4':{wd++;break;}
        };
        system("cls");
        rect(ln,wd);
    }
    return 0;
}
beckham
0 / 0 / 0
Регистрация: 16.02.2012
Сообщений: 8
28.03.2012, 11:36  [ТС]     Создание интерфейса пользователя в текстовом режиме #4
Помогите написать программу
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.03.2012, 18:26     Создание интерфейса пользователя в текстовом режиме
Еще ссылки по теме:

Реализация графического интерфейса пользователя в приложениях WinAPI. Ошибка default - C++
Сама программа: // фывфвфыв.cpp: определяет точку входа для приложения. // #include &quot;stdafx.h&quot; #include &lt;windows.h&gt; #include...

Работа с экраном в текстовом режиме (вывод всех цветов фона, разделяя цвета паузой) - C++
Пожалуйста подскажите, как сделать вывод всех цветов фона, разделяя цвета паузой. Задание: Дополнить меню функциональной клавишей F6:...

Создание интерфейса c++ - C++
Я новичок в c++ уже около месяца ищу по поисковикам материал по созданию интерфейса в программе,раньше работал на php и там были заготовки...

Создание пользовательского интерфейса - C++
Приветы форумчанам. Вообщем встал вопрос создание графического интерфейса пользователя(GUI если не ошибаюсь) Использую VS2008 До...

Создание графического интерфейса - C++
Дали задание написать матричный калькулятор.Я вроде с этим справился теперь нужен интерфейс для неё .раньше никогда не делал.использую...

Создание интерфейса программы - C++
Здравствуйте, прошу вас мне помочь. Хочу создать приложение на с++, приложение должно будет при запуске просить ввод пароля, и после в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nameless One
Эксперт С++
5769 / 3418 / 255
Регистрация: 08.02.2010
Сообщений: 7,446
28.03.2012, 18:26     Создание интерфейса пользователя в текстовом режиме #5
Цитата Сообщение от beckham Посмотреть сообщение
но ничего не получается...
Цитата Сообщение от beckham Посмотреть сообщение
Библиотека PDCurses.
конечно не получается, у тебя же *curses даже и не пахнет. Вот пример на ncurses:

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <ncurses.h>
#include <stdlib.h>
 
void start(void);
void draw_rect(int, int, int, int);
 
int main(void)
{
    bool start_draw = FALSE;
    int last_row = 0, last_col = 0;
    
    start();
    
    for(;;)
    {
    int c = getch();
    int row, col;
 
    if(c == 'q' || c == 'Q')
        break;
 
    getyx(stdscr, row, col);
    
    switch(c)
    {
    case KEY_LEFT:
        move(row, col - 1);
        break;
    case KEY_RIGHT:
        move(row, col + 1);
        break;
    case KEY_UP:
        move(row - 1, col);
        break;
    case KEY_DOWN:
        move(row + 1, col);
        break;
    case 'c': case 'C':
        start_draw = FALSE;
        clear();
        refresh();
        move(row, col);
        break;
    case ' ':
        if(start_draw == FALSE)
        {
        last_row = row;
        last_col = col;
        addch(' ' | A_REVERSE);
        refresh();
        }
        else
        {
        int same_row = last_row == row;
        int same_col = last_col == col;
        
        if(same_row && same_col)
        {
            addch(' ');
            refresh();
        }
        else if(same_row || same_col)
        {
            continue;
        }
        else
        {
            mvaddch(last_row, last_col, ' ');
            draw_rect(last_row, last_col, row, col);
            refresh();
        }
        }
        
        start_draw = !start_draw;
 
        break;
    }
    }
    
    endwin();
    exit(0);
}
 
void start(void)
{
    initscr();
    keypad(stdscr, TRUE);
    nonl();
    cbreak();
    noecho();
    
    if(has_colors())
    {
    start_color();
    init_pair(1, COLOR_GREEN, COLOR_BLACK);
    attrset(COLOR_PAIR(1));
    }
    else
    {
    endwin();
    fputs("Your terminal doesn't support colors\n", stderr);
    exit(1);
    }
}
 
#define MIN_MAX(X, Y, MIN, MAX)                 \
    do                              \
    {                               \
    if((X) < (Y))                       \
    {                           \
        MIN = X;                        \
        MAX = Y;                        \
    }                           \
    else                            \
    {                           \
        MIN = Y;                        \
        MAX = X;                        \
    }                           \
    } while(0)                          
    
void draw_rect(int last_row, int last_col, int row, int col)
{
    int left, right, top, bottom, lwidth, lheight;
 
    MIN_MAX(last_row, row, top, bottom);
    MIN_MAX(last_col, col, left, right);
 
    lheight = bottom - top - 1;
    lwidth = right - left - 1;
 
    mvaddch(top, left, ACS_ULCORNER);
    hline(ACS_HLINE, lwidth); 
    mvaddch(top, right, ACS_URCORNER);
    mvvline(top + 1, left, ACS_VLINE, lheight);
    
    mvaddch(bottom, left, ACS_LLCORNER);
    hline(ACS_HLINE, lwidth); 
    mvaddch(bottom, right, ACS_LRCORNER);
    mvvline(top + 1, right, ACS_VLINE, lheight);
}
Передвижение курсора выполняется стрелками, 'q' — выход, 'c' — очистка экрана, пробел — установка/снятие точек, которые будут ограничивать прямоугольник.

Создание интерфейса пользователя в текстовом режимеСоздание интерфейса пользователя в текстовом режимеСоздание интерфейса пользователя в текстовом режиме
Yandex
Объявления
28.03.2012, 18:26     Создание интерфейса пользователя в текстовом режиме
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru