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

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

Войти
Регистрация
Восстановить пароль
 
PsychodeliNoise
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 12
#1

Интерфейс пользователя типа "меню" - C++

26.02.2014, 15:44. Просмотров 287. Ответов 2
Метки нет (Все метки)

C++ (Qt)
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
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <stdlib.h>
 
using namespace std;
 
const int n = 4; 
 
void vvod(int a[n][n])
{
    int i, j;
 
    cout << " Просто введи эти 16 чисел, нигер: \n ";
 
    for (i = 0; i < n; i++)
    for (j = 0; j < n; j++)
    cin >> a[i][j];
}
 
void vivod(int a[n][n])
{
    setlocale(0, "");  
 
    int i, j;
 
    cout << "\n Вывод матрицы на экран\n";
    for (i = 0; i < n; i++)
    {
        for (j =0; j < n; j++)
        cout  << " " << setw(5) << a[i][j];
        cout << "\n";
    }
}
 
int imin(int a[n][n])
{
    setlocale(0, "");  
 
    int
    i, j,
    min = a[0][0],
    imin, 
    imin1,
    sum = 0;
 
    for (i = 0; i < n; i ++)
    {
        for (j = 0; j < n; j ++)
        if (a[i][j] < min)  
        min = a[i][j];
    }
    
    for (i = 0; i < n; i ++)
    {
        for (j = 0; j < n; j ++)
        if (a[i][j] == min)
        imin = i;      
    }
 
    imin1 = imin+1;
    for (i = 0; i < n; i ++)
    sum += a[imin][i];
 
    cout << "\n Минимальный элемент " << min << ", строка " << imin1;
    cout << "\n Сумма элеметов в этой строке = ";
 
    return sum;
 
}
 
int main()
{       
    setlocale(0, "");
 
    int b[n][n];
 
    while (1)
    
    {
    puts(" в•”в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•—\r\n");
    puts(" в•‘     ПРОГРАММА ОБРАБОТКИ МАТРИЦЫ                                 в•‘\r\n");
    puts(" в•*═════════╦══════════╦═════════════╦══════════╣\r\n");
    puts(" в•‘ 1-ввод       в•‘ 2-вывод       в•‘ 3-обработка       в•‘ 4-выход       в•‘\r\n");
    puts(" в•љв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•©в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•©в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•©в•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ђв•ќ\r\n");
    char menu=_getch();
    switch (menu)
        {
        case '1': vvod(b); break;
        case '2': vivod(b); break;
        case '3': cout << imin(b) << "\n "; break;
        case '4': exit(0);
        }
    }
 
    system("PAUSE");
 
    return 0;
}
Вот код. По идее, он рабочий, за исключением 2 "НО". В частности, вся суть кроется в главной функции:
1) VS 2012 не понимает символов, из которых составлено меню таблицы. Вместо них — вопросительные знаки.
2) Таблица выводится слишком часто. В идеале ей бы выводиться 1 раз, в начале, но таблица выводится и после нажатия Enter по завершении ввода чисел, и по факту нажатия клавиш "2" и "3". Ну вы сами убедиться можете. Я пробовал разными путями это исправить, но видно туповат я слегка. Прошу помочь. Важно лишь, чтобы в любой момент работы программы таблица высвечивалась лишь 1 раз.


P.S. Похоже, что символы таблицы не распознаются и тут. Вот так она в идеале должна выглядеть.
╔═════════════════════════════════════════════╗
║ ПРОГРАММА ОБРАБОТКИ МАТРИЦЫ ║
╠═════════╦══════════╦═════════════╦══════════╣
║ 1-ввод ║ 2-вывод ║ 3-обработка ║ 4-выход ║
╚═════════╩══════════╩═════════════╩══════════╝
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.02.2014, 15:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Интерфейс пользователя типа "меню" (C++):

Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: "Рабочий день","Суббота" или "Воскресенье" - C++
Написать программу, которая запрашивает у пользователя номер дня недели и выводит одно из сообщений: &quot;Рабочий день&quot;,&quot;Суббота&quot; или...

Написать программу которaя запрашиваeт у пользователя номер дня недели, затем выводит одно из сообщений "рабочий день", "суббота", "воскресенье" - C++
Добрый день необходимо написать несколько программ, кто может помогите. одна тема - одна задача!

Значение типа "void" нельзя использовать для инициализации сущности типа "int" - C++
Не понимаю, почему компилятор считает, что s.pop() это значение типа &quot;void&quot;.. он же вернет этот удаляемый элемент? Как исправить? void...

Error: значение типа "const char" нельзя присвоить сущности типа "double" - C++
#include &lt;iostream&gt; #include &lt;iomanip&gt;// using namespace std; void main(void) { const int k=5; int a=10; unsigned int...

Ошибка аргумент типа "char" несовместим с параметром типа "LPCSTR" - C++
char result; result=printf(&quot;%d %d&quot;, &quot;test.php?id=&quot;,id); HINTERNET hHttpRequest = HttpOpenRequest( hHttpSession, &quot;GET&quot;, result,...

Аргумент типа "const char*" несовместим с параметром типа "LPCWSTR" - C++
хочу запустить paint с visual studio но выдает ошибку под словами open, filename, строка 6#include &lt;iostream&gt; #include &lt;windows.h&gt; ...

2
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
26.02.2014, 16:20 #2
Вообще, нужно менять кодировку, т.к у вас скорее всего window-1251, а она не поддерживает такие символы вроде бы, ну и надо преобразовывать int в char:

cout << char(12);
0
PsychodeliNoise
0 / 0 / 0
Регистрация: 14.11.2013
Сообщений: 12
26.02.2014, 18:09  [ТС] #3
recoder, перепробовал все варианты кодировки Unicode — не помогает. А динии таблицы точно юникодовские.
А зачем преобразовывать в char?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.02.2014, 18:09
Привет! Вот еще темы с ответами:

Значение типа "char *" нельзя присвоить сущности типа "LPWSTR" - C++
значение типа &quot;char *&quot; нельзя присвоить сущности типа &quot;LPWSTR&quot; void AddColToListView(char *st, int sub, int size) { ...

Значение типа "char *" нельзя присвоить сущности типа "LPWSTR" - C++
как исправить эту ошибку значение типа &quot;char *&quot; нельзя присвоить сущности типа &quot;LPWSTR&quot;

В зависимости от времени года "весна", "лето", "осень", "зима" определить погоду "тепло", "жарко", "холодно", "очень холодно" - C++
В зависимости от времени года &quot;весна&quot;, &quot;лето&quot;, &quot;осень&quot;, &quot;зима&quot; определить погоду &quot;тепло&quot;, &quot;жарко&quot;, &quot;холодно&quot;, &quot;очень холодно&quot;. Я так...

Иерархия классов "список"-"очередь", вызов метода через класс интерфейс - C++
Есть небольшая иерархия классов, контейнер (список) для хранения объектов каждого класса, контейнер (очередь) с указателями на объект...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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