0 / 0 / 0
Регистрация: 23.03.2022
Сообщений: 6
1

Зарегистрировать новый город на карте континента, координаты города будут введены с клавиатуры

08.06.2022, 19:23. Показов 206. Ответов 1

Привет всем, у меня сейчас идет практика. Осталась неделя, я ничего не понимаю как и вся наша группа, поскольку препод весь курс 1 играл в шахматы на парах со своим другом.
Помощи от него ни какой, и толку тоже, объясняет не понятно совсем.
Вообщем дано такое задание :
Карту континента можно представить в виде прямоугольника высотой n единиц и шириной m единиц.
Верхний левый угол карты имеет координаты [0, 0], а нижний правый угол имеет координаты [n, m].
Координаты городов на карте всегда целые, то есть имеют вид [i, j], где 0 ≤ i ≤ n,
представляющий строку, и 0 ≤ j ≤ m, представляющий столбец.
Информация о рассматриваемой карте записывается в текстовый файл Harta.in, который содержит в первой строке
натуральные числа n и m, разделенные пробелом, обозначающие размеры карты. Вторая строка файла содержит
натуральный k - количество городов на карте. В следующих k строках два натуральных числа,
разделенные пробелом, представляющие координаты города на карте.
Разработать программу, которая с помощью меню и подпрограмм будет выполнять по запросу пользователя
следующие рецепты:
1) Зарегистрировать новый город на карте континента; координаты города для регистрации будут введены из
клавиатура;
Не понимаю во первых что надо делать с файлами (самое начала задание), а другое как сделать что бы можно было регеистрировать город на карте и его координанты вводились с клавиатуры?
Объяснил он мне о карте, это что то типо массива-матрицы, 10x15.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2022, 19:23
Ответы с готовыми решениями:

Зарегистрировать новый город на карте континента
Привет, есть такое задание Имеется такой код : #include <iostream> #include <fstream>...

От города А до города Б - X км. Если из города А в город Б едет поезд со скоростью Y км/ч
Помогите пожалуйста: Реализовать на языке JavaScript решение школьной задачки о 2-х поездах. От...

Написать программу ввода символов с клавиатуры компьютера до тех пор, пока не будут введены заданные символы
Написать программу ввода символов с клавиатуры компьютера до тех пор, пока не будет введено...

Манипуляторы: вводить с клавиатуры одиночные символы до тех пор, пока не будут введены подряд два одинаковых символа
Вводить с клавиатуры одиночные символы до тех пор, пока не будут введены подряд два одинаковых...

Из города А одновременно выехали две машины, первая в город В, вторая в город С
Из города А одновременно выехали две машины, первая в город В, вторая в город С. Известны...

1
1343 / 974 / 339
Регистрация: 29.06.2020
Сообщений: 3,747
08.06.2022, 20:39 2
Цитата Сообщение от Exfil Посмотреть сообщение
поскольку препод весь курс 1 играл в шахматы на парах со своим другом.
Да хорош уже ныть. Это делу не поможет.

По заданию.
Цитата Сообщение от Exfil Посмотреть сообщение
Объяснил он мне о карте, это что то типо массива-матрицы, 10x15.
Как я и писал ранее.

Например :
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
#include <iostream>
#include <fstream>
 
using namespace std;
struct Continent{
    Continent(int height, int width);
    bool registerTown(int x, int y);
    bool isPresent(int x, int y) const;
    int height() const;
    int width() const;
    ~Continent();
 
    // deleted
    Continent(const Continent&) = delete;
    Continent operator = (const Continent&) = delete;
    Continent(Continent&&) = delete;
    Continent operator = (Continent&&) = delete;
private:
    int **data;
    int h, w; // высота и ширина соотвественно
};
 
int main()
{
    setlocale(LC_ALL, "");
    ifstream fdata("townlist.txt");
    int height, width;
    Continent * c1 = nullptr;
    if(fdata.is_open())
    {
        cout << true;
        int x,y;
        if (fdata >> height >> width)
            c1 = new Continent(height, width);
        if (c1){
            while (fdata >> x >> y)
                c1->registerTown(y-1, x-1);
        }
    }
    else{
        cout << "Data file is can't open !!!";
        return EXIT_SUCCESS;
    }
    fdata.close();
    if (c1){
        int x,y;
        cout << "The continent size is " << c1->width() << " x " <<  c1->height() << endl;;
        cout << "Enter to register town coordinates (x,y)." << endl;
        cout << "x = "; cin >> x;
        cout << "y = "; cin >> y;
        if (c1->registerTown(y-1,x-1))
            cout << "Town register.";
        else
            cout << "This place is busy.";
        delete c1;        
    }
    return 0;
}
 
Continent::Continent(int height, int width){
    data = new int*[height];
    for(int i=0; i<height; ++i)
        data[i] = new int[width]{0};
    h = height; w = width;
}
Continent::~Continent(){
    for(int i=0; i<h; ++i)
        delete [] data[i];
    delete [] data;
}
bool Continent::registerTown(int x, int y){
    if (isPresent(x,y))
        return false;
    data[y][x] = 1; // register town 
    return true;
}
bool Continent::isPresent(int x, int y) const{
    return !(data[y][x]==0);
}
int Continent::height() const{
    return h;
}
int Continent::width() const{
    return w;
}
Добавлено через 2 минуты
townlist.txt
первые два числа, размеры континента, 10 по высоте, и 15 по ширине.
дальше пары чисел, координаты городов, x y, начиная с 1
Код
10 15
1 1
3 5
4 8 
10 10
9 9s
Добавлено через 1 минуту
Цитата Сообщение от Exfil Посмотреть сообщение
Вторая строка файла содержит
натуральный k - количество городов на карте.
можно добавить и вторую строку, но я не вижу в ней смысла.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.06.2022, 20:39
Помогаю со студенческими работами здесь

Вводить с клавиатуры целые положительные числа до тех пор, пока не будут введены два одинаковых числа подряд
Вводить с клавиатуры целые положительные числа до тех пор, пока не будут введены два одинаковых...

Найти маршрут перелета из города А в город В, не содержащий города С
Нужна помощь с написанием программы про пути в ориентированном графе. Текст задания: Дан список...

из города А в город С, проезжая город B в C++
Пожалуйста помогите решить задачу. Нужно вывести номера поездов, которые проезжают из города А в...

Отметить город на карте
Доброго времени суток! Есть список городов, как отметить эти города на google maps? P.S Вместе со...

Нахождение пути из города А в город Х
Написать программу нахождения пути из города А в город Х . Количество городов не менее 10....


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru