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

Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 46, средняя оценка - 4.76
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
04.02.2014, 13:54     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #1
Всем доброго времени суток!!!
Передо мной стоит задача: написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер, а также должен быть нарисован сам граф.
Пользователь должен вводить:
1) кол-во вершин (например: 1, 2, 3, 4);
2) кол-во ребер (например: 4);
3) название самих рёбер (например: 1 2, 2 3, 3 4, 4 1);
Дальше должен строиться граф (видимо с помощью графики visual studio) и выводиться сама матрица смежности.

Так получилось, что я смог реализовать всё, кроме вот этой самой графики, то есть нет построения графа, как реализовать, не знаю. Если кто знает, будьте добры, помогите пожалуйста.
Код для вывода матрицы смежности был написан в Visual Studio 2008 в консольном приложении. Может быть можно как-то графику связать с консолькой, или как-то уж по другому, к сожалению я не знаю, подскажите))
Код представлен ниже.
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
#include "stdafx.h"
#include "iostream"
#include "conio.h"
#include "locale.h"
 
using namespace std;
 
int main()
{
    int n, m, x, y, a[80][80];
    setlocale(LC_ALL, "rus");
    cout << "Введите количество вершин: ";
    cin >> n;
    cout << "Введите количество рёбер: ";
    cin>> m;
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            a[i][j]=0;
        }
        cout << endl;
    cout << "Введите рёбра: " << endl;
    for(int i=1;i<=m;i++)
    {
        cin >> x >> y;
        a[x][y]=1;
        a[y][x]=1;
    }
    cout << endl;
    cout << "Матрица смежности: " << endl;
    for(int i=1;i<=n;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cout << a[i][j] << " ";
        }
        cout << endl;
    }
    _getch();
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2014, 13:54     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер
Посмотрите здесь:

C++ Написать программу, которая будет показывать следующий день на определенным формате
заданно матрицу смежности простого графа. Построить каркас этого графа с использованием поиска вширь C++
Написать программу, которая выводит круговую диаграмму. C++
Написать программу, которая выводит пример на вычитание, запрашивает ответ пользователя, проверяет его и выводит сообщение о правильности C++
Написать программу, которая выводит значения факториалов чисел от 0 до N. Для вычисления факториала числа написать функцию пользователя C++
Написать программу которая выводит трафарет C++
C++ Написать программу которая выводит график
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
04.02.2014, 14:13     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #2
Alexandr1966, я бы написал на C# Win Forms так, располагал точки графа по окружности и соединял отрезками
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
04.02.2014, 14:25  [ТС]     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #3
в Visual Studio на C# ???

Добавлено через 6 минут
Если можете написать на C#, чтоб все условия задачи были учтены, то напишите пожалуйста а, и объясните как правильно создать проект там, то сё, а то я вообще не шарю(
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
04.02.2014, 14:39     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #4
Alexandr1966, можно и на c++, но мне легче в C#.
Если не лень будет, вечером попишу
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
04.02.2014, 16:00  [ТС]     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #5
Спасибо тебе большое, друг. Если напишешь, буду тебе очень благодарен)

Добавлено через 1 час 7 минут
Может быть еще кто нибудь в курсе, как сделать, какие нибудь варианты?)
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
04.02.2014, 19:45     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #6
Alexandr1966,Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер

WindowsFormsApplication1.rar вот исходники
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
04.02.2014, 23:52     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #7
Alexandr1966, где-то год-два назад решал похожую задачу, исходники вроде остались, если будут нужны.
Только за качество кода не отвечаю, писал быстро ради "автомата". Плюс часто с поправками от препода ради удовлетворения его капризов. Много мусора и лишнего функционала может быть ))
Пример упрощенной версии здесь: Редактор графов [Решение + Исходник]
Потом добавлял еще различные алгоритмы. Последнюю версию исходников могу выложить, если будет интересно. Всё на чистом WinAPI, правда.
Миниатюры
Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер  
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
05.02.2014, 09:15  [ТС]     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #8
Enotniy, а вот скажите пожалуйста, можете ли вы так сделать да, чтоб допустим если ввожу кол-во вершин 3 да, а в ребрах указываю вот так 1 2, 2 3, 3 4, 1 4 - чтоб выдавалось сообщение об ошибке, что нет вершины то четвертой как бы, реально так сделать?
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
05.02.2014, 09:27     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #9
Alexandr1966, никаких проблем, но опять же только вечером, после работы
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
05.02.2014, 13:38  [ТС]     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #10
Спасибо большое, буду ждать) И если можно, объясните пожалуйста, какой файл является исходником, сам код программы весь (с каким расширением в папке проекта), просто я вообще не сталкивался с формами(((
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
05.02.2014, 14:04     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #11
файл проекта sln,
мой код (обработка событий нажатий на кнопки) - Form1.cs
Form1.Designer.cs и Program.cs - автоматически сгенерированный код

Добавлено через 8 минут
специально для вас перекомпилировал под Framework 3,5
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
05.02.2014, 14:35  [ТС]     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #12
всё понял)) обработчик бы вот ошибок еще, о которых я выше говорил(
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
05.02.2014, 14:49     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #13
Alexandr1966, на самом деле надо много ошибок отловить, но не лень будет сделаю... Давно на C# не развлекался
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
05.02.2014, 14:59  [ТС]     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #14
ахахаха не развлекался)))
Ошибки надо только вот касаемые вершин, если их там 3, а при вводе их больше, наверное только это и нужно в основном)) А можно так еще сделать, чтоб на рисунке где граф подписывались названия вершин?
Enotniy
 Аватар для Enotniy
96 / 95 / 14
Регистрация: 15.01.2014
Сообщений: 283
05.02.2014, 17:42     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #15
Alexandr1966, ну уж извиняй, я не для себя делал, мне интересно только решить задачу, а не защиту от дурака клепать, мне этого и на работе хватает
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
06.02.2014, 08:22  [ТС]     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #16
ну так ты мне поможешь сделать так, чтоб ошибка то вылазила при вводе лишней вершины?
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5534 / 2568 / 234
Регистрация: 01.11.2011
Сообщений: 6,343
Завершенные тесты: 1
06.02.2014, 10:54     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #17
Alexandr1966, так вы на чем пишете ее уже теперь? На C++ или на C#?
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
06.02.2014, 12:27  [ТС]     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #18
выше в теме есть архив от пользователя, который на C# сделал
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
15.02.2014, 14:31  [ТС]     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #19
Друзья, кто может, помогите отловить ошибки в этой программе.
В общем, если вводишь кол-во вершин в верхнем правом поле формы например 3, то ниже ты должен вводить название рёбер 1 2, 2 3, 1 3 и всё, но никак не должна быть 4-я вершина какая-нибудь (например, не должно быть 1 4, если ввел и потом нажимаешь построение матрицы или вывод графа чтоб выдавалось сообщение об ошибке).
Потом должна быть кнопка на форме, чтоб очищала поля ввода, чтоб по новой программу не перезапускать.
Потом надо сделать следующее:
когда строится граф должно выдаваться сообщение о том, какой это граф: связанный или нет. Если он связанный, то просто сообщение "Граф связанный". Но если же он не связанный, то кроме сообщения "граф несвязанный" должно выдаваться количество компонент связанности. Архив программы ниже, выполнена в VS 2008 в Visual C#.
Вложения
Тип файла: rar WindowsFormsApplication1.rar (54.1 Кб, 77 просмотров)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2014, 16:01     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер
Еще ссылки по теме:

C++ Создать программу, которая выводит на экран символьную матрицу
C++ Сгенерировать матрицу смежности полного графа
C++ Написать программу которая выводит последовательность
Написать программу, выводящую список всех "циклических" вершин ориентированного графа C++
C++ Написать программу,которая выводит на экран ( для заданного n>1) верхнетреугольную матрицу

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

Или воспользуйтесь поиском по форуму:
Alexandr1966
25 / 25 / 1
Регистрация: 17.12.2012
Сообщений: 425
15.02.2014, 16:01  [ТС]     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер #20
Ребята подскажите пожалуйста)
Yandex
Объявления
15.02.2014, 16:01     Написать программу, которая выводит матрицу смежности графа с определенным количеством вершин и ребер
Ответ Создать тему
Опции темы

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