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

Слишком сложный код программы, ничего не понимаю( - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Использовать функцию, возвращающую значение F (x) http://www.cyberforum.ru/cpp-beginners/thread1194067.html
Здравствуйте! Построил программу, а не могу понять как выполнить следующее задание: в программе использовать функцию, возвращающую значение F(x). Подсажите, пожалуйста код и куда его вставить?...
C++ Удалить из символьного файла f все однобуквенные слова и лишние пробелы. Результат записать в файл g Дан символьный файл f. Группы символов, разделенных пробелами и не содержащих пробелов внутри себя, называют словами. Удалить из файла все однобуквенные слова и лишние пробелы. Результат записать в... http://www.cyberforum.ru/cpp-beginners/thread1194056.html
C++ Дан текстовый файл с данными о студентах, содержащий сведения: ФИО и сумма стипендии. Вывести 5 самых богатых
Текстовый файл может содержать запись: Ivanov Ivan Ivanovich 1340 либо каждое слово построчно-на усмотрение разработчика. Я создала структуру: struct Student { string fio; string name; ...
Ошибка в программе вычисления arctg(x) C++
Программа открывается, но говорят, что какой-то блок не работает... Посмотрите, пожалуйста, решить данную проблему. #include <iostream> #include <stdio.h> #include <math.h> using namespace...
C++ Длинная арифметика, деление http://www.cyberforum.ru/cpp-beginners/thread1194030.html
Нужно составить программу для деления числа а на число b. Оба числа многозначные. Может кто то писал уже такую программу. Желательно на уровне начинающего :)
C++ Есть ли ошибки? float func1(int,float); float func1(int, int); int func1(int, float); подробнее

Показать сообщение отдельно
Glebordan
0 / 0 / 0
Регистрация: 07.04.2014
Сообщений: 37

Слишком сложный код программы, ничего не понимаю( - C++

30.05.2014, 21:14. Просмотров 3160. Ответов 2
Метки (Все метки)

Я искал код по этому заданию:
"Имеется картографическая информация, представляющая собой серии пар целых
чисел. Диапазон величин этих чисел 0-32737, т.е. для их размещения
достаточно описания short. Каждая серия - это множество прямоугольных
координат точек картографических объектов, например, рек, озер, домов и т.д.
Принято называть такую серию точек, приближенно описывающих географический
объект, МЕТРИКОЙ объекта.
Есть двоичный файл, в котором содержатся метрики объектов. Объекты
пронумерованы произвольными целыми номерами в возрастающем порядке.
Файл имеет следующую структуру."
Вот так вот, код то я нашёл, но очень важно знать как всё работает, т.к. интересно и важно для обучения языку.
Вот сам код:
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
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
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "cyr_io.h"
 
void add(void)
{
        FILE    *File;
        char myfile[50];
        short   Iter=0;
        short   Temp=0;
        short   CoordX=0;
        short CoordY=0;
        short   SumObj=0; //Коллличество объектов уже записанных в файле
        short NPoint=0; // Количество точек в метрике объекта
// Открываем файл на чтение, чтобы проверить его на наличие и количество записаных объектов
        rprintf("Введите имя файла\n");
        gets(myfile);
        if((File=fopen(myfile,"rb"))!=NULL)
        {
            while(!feof(File))
            {
                fread(&Temp,sizeof(short),1,File);
                if(Temp=='\n')  SumObj++;
            }
            SumObj--;
            fclose(File);
        }
 
        if(SumObj==0)
        {
            File=fopen(myfile,"wb");
        }
        else
        {
            File=fopen(myfile,"ab");
        }
 
        SumObj++;
        fwrite(&SumObj,sizeof(short),1,File);
 
    rprintf("Введите количество точек в метрике объекта:");
    scanf("%d",&NPoint);
        fwrite(&NPoint,sizeof(short),1,File);
 
        for(Iter=0;Iter<NPoint;++Iter)
        {
            rprintf("Введите X координат объекта:");
            scanf("%d",&CoordX);
            rprintf("Введите Y координату объекта:");
            scanf("%d",&CoordY);
            fwrite(&CoordX,sizeof(short),1,File);
            fwrite(&CoordY,sizeof(short),1,File);
        }
        Temp='\n';
        fwrite(&Temp,sizeof(short),1,File);
 
        fclose(File);
    getchar();
}
 
void view(void)
{
    FILE    *File;
    short   NPoint=0;//Количество точек в метрике объекта
    char myfile[50];
    short   NObj=0;// № объекта
    short   SumObj=0;// Количество объектов уже записаных в файе
    short   Iter=0;
    short   Temp=0;
// Открываем файл на чтение, чтобы проверить его наличие и количество записаных объектов
        rprintf("Введите имя файла\n");
        gets(myfile);
    if((File=fopen(myfile,"rb"))!=NULL)
    {
        while(!feof(File))
        {
            fread(&Temp,sizeof(short),1,File);
            if(Temp=='\n')  SumObj++;
        }
 
        SumObj--;
 
        fclose(File);
    }
    else
    {
        rprintf("Файл с метриками отсутствует !");
        return;
    }
 
    do
    {
        rprintf("Введите номер объекта:");
        scanf("%d", &NObj);
    }   while(NObj<1 || NObj>SumObj);
 
    File=fopen(myfile,"rb");
    while(!feof(File))
    {
        fread(&Temp,sizeof(short),1,File);
        if(Temp==NObj)
        {
            fread(&NPoint,sizeof(short),1,File);
            for(Iter=0;Iter<NPoint;++Iter)
            {
                fread(&Temp,sizeof(short),1,File);
                rprintf("Координата X: %2d, ",Temp);
                //CoordObj1[0][Iter]=Temp;
                fread(&Temp,sizeof(short),1,File);
                rprintf("Координата Y: %2d\n, ",Temp);
                //CoordObg1[1]=Temp;
            }
        }
        do
        {
            fread(&Temp,sizeof(short),1,File);
        } while(Temp !='\n');
    }
    fclose(File);
}
int menu_select(void)
{
    char str[2],pos;
 
    printf("\n");
    rprintf("1. Добавить объект в картограф.\t");
    rprintf("2. Вывести метрику объекта.\t");
    rprintf("3. Выход");
 
    do
    {
        rprintf("\n Введите номер нужного пункта:");
        gets(str);
        pos=atoi(str);
    } while(pos<0 || pos>3);
    return pos;
}
 
void main(void)
{
    char select;
    system("cls");
    for(;;)
    {
        select=menu_select();
        switch(select)
        {
        case 1: add(); break;
        case 2: view(); break;
        case 3: exit(0); break;
        default: break;
        }
    }
}
Если нужен файл "cur_io", пишите в личку.
Хочу узнать в каком файле он сохраняет метрики? Как его можно поменять?
Я так понял для корректной работы файл "cur_io" нужно поместить в нужную папку, но в какую?
Буду очень благодарен если вкратце получится объяснить ,что выполняет каждый блок программы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru