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

Многомдульные преложения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ нужен дебаггер для QT Creator http://www.cyberforum.ru/cpp-beginners/thread291570.html
кто знает, киньте мне пожалуйста это важно
C++ Почему программы не видят кодировку cp866? Началось с того, что я попал на ирц чат к разрабам CodeLite с просьбой разобраться с русскими буквами в консоли. Там сказали, что программы использую только те кодировки, которые есть в системе. Тогда я сравнил списки кодировок в CodeLite и Code::Blocks, они оказались совершенно одинаковые. Стал копать WinXP. Сначала проверил файл C:\WINDOWS\system32\c_866.nls, есть такой, и куча других. Потом... http://www.cyberforum.ru/cpp-beginners/thread291563.html
Написать программу, которая... C++
Здравствуйте Ув форумчане. Мне нужно написать ряд программ, сам я уже нифига не помню, честно пытался делать. А для тех кто это все знает и помнит, думаю будет пустяком. Я учусь на заочке, а скоро экзамены, мне надо материал сдать. Помогите пожалуйста Работа№1 1. Написать программу, которая выводит на экран ваши имя и фамилию. 2. Написать программу, которая выводит на экран путь к файлу...
C++ Максимальное множество вершин графа
Алгоритм Брона-Кербоша на СИ. Нахождение максимального независимого множества вершин графа, через таблицу смежности. Не могу додуматься как образовать рекурсию.
C++ создать функцию на основе кода (разбиение строки на отрезки) http://www.cyberforum.ru/cpp-beginners/thread291523.html
Здравствуйте уважаемые программисты. Мне нужна Ваша помощь. Есть небольшой код программы, суть которой в следующем. На входе есть строка. Программа "разбивает" строку на отрезки по разделителю (в моем случае это запятая). Каждый отрезок помещается в отдельный индекс массива. В результате я получаю готовый массив и могу свободно использовать его. Листинг программы: #include <iostream>...
C++ Управление машинкой Здраствуйте! Мне нада написать тетрис. Но не простой тертрис, нада что бы машинка (!)сама на трасе обходила препятствия.Тоесть нужно составить алгоритм обхода преград. Например: #0000###000000# #0000###000000# #00000000000### #00000000000### #00000000000### подробнее

Показать сообщение отдельно
Jupiter
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.05.2011, 14:09     Многомдульные преложения
C++
1
2
3
4
5
6
7
8
9
//MARSH.h
#pragma once //работает не во всех IDE
struct MARSH
{
    char start_name[20];
    char finish_name[20];
    int nom_msrsh;
    int dl_msrsh;
};
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
//main.cpp
#include <iostream>
#include "MARSH.h"
using namespace std;
#define MAX 4
 
MARSH *mass[MAX];
 
void init();
int menu();
void enter();
void show();
void del();
unsigned int rpos=0, spos=0;
bool qstore(MARSH *);
MARSH *qretrieve();
ostream &operator<<(ostream &, MARSH *);
 
int main()
{
        init();
        while(true)
        {
                switch(menu())
                {
                case 1: enter(); break;
                case 2: show(); break;
                case 3: del(); break;
                case 4: return 0;
                }
        }
 
        return 0;
}
int menu()
{
        cout<<"******Menu******\n";
        cout<<"1-Dobavit' danie|2-Soderzimoe|3-Udalenie|4-Vihod\nVvod: ";
        int otvet;
        do
        {
                cin>>otvet;
        }while(otvet<1||otvet>5);
        return otvet;
}
void init()
{
        for(int i=0; i<MAX; i++)
                mass[i]=NULL;
}
void enter()
{
        int otvet;
        while(true)
        {
                cout<<"Dobavit'|0-Zakonchit' vvod\nVvod: ";
                cin>>otvet;
                if(otvet==0)
                        return;
                MARSH *ob=new MARSH;
                if(!qstore(ob))
                        return;
                cout<<"Vvedite nachalnii punkt : ";
                cin>>ob->start_name;
                cout<<"Vvedite konechnii punkt : ";
                cin>>ob->finish_name;
                cout<<"Vvedite nomer mershruta : ";
                cin>>ob->nom_msrsh;
                cout<<"Vvedite dlinu marshruta : ";
                cin>>ob->dl_msrsh;      
        }
}
void show()
{
        for(unsigned int i=0; i<MAX; i++)
                if(mass[i])cout<<mass[i]<<'\n';
}
void del()
{
        MARSH *p;
        if((p=qretrieve())==NULL)
                return;
        cout<<p<<endl;
        delete p;
 
}
bool qstore(MARSH *ob)
{
        if(spos+1==rpos || (spos+1==MAX && !rpos))
        {
                cout<<"Polna...\n";
            return false;
        }
        mass[spos]=new MARSH;
        mass[spos]=ob;
        if(++spos==MAX) spos = 0;
        return true;
}
MARSH *qretrieve()
{
        if(rpos==MAX) rpos = 0;
        if(rpos==spos)
        {
                cout<<"Pusta\n";        
                return NULL;
        }
        MARSH *temp=mass[rpos];
        mass[rpos++]=NULL;
        return temp;
}
 
ostream &operator<<(ostream & stream, MARSH *ob)
{
        stream<<ob->start_name<<' '<<ob->finish_name<<' '<<ob->nom_msrsh<<' '<<ob->dl_msrsh;
        return stream;
}
Добавлено через 1 минуту
если у вас есть еще модули в которых используется MARSH *mass[MAX]; то в каждом из них нужно объявить
C
1
extern MARSH *mass[MAX];
 
Текущее время: 22:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru