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

переделать код си

24.03.2011, 15:39. Показов 1267. Ответов 0
Метки нет (Все метки)

Доброго времени суток! Помогите пожалуйста переделать под борланд си++ код программы.
Написана она на MS2003. Отличается немного синтаксисом. Вроде необходимо w везде перед cout убрать. Цитата из форума не совсем понял что именно:
код C++
"wcout << L"\nНомер маршрута > "; // вывод русского текста
в общем надо все строки для вывода русских букв заменить
( wcout << L""; wstring; (L"автобусном парке") ... )"
Может нужно еще какиенибудь библиотеки подключить?
Само условие программы:
Составить программу, которая содержит динамическую информацию о наличии автобусов в автобусном парке. Сведения о каждом автобусе включают:
1) номер автобуса;
2) фамилию и инициалы водителя;
3) номер маршрута.
Программа должна обеспечивать:
1) начальное формирование данных обо всех автобусах в парке в виде списка;
2) при выезде каждого автобуса из парка вводится номер автобуса, и программа удаляет данные об этом автобусе из списка автобусов, находящихся в парке, и записывает эти данные в список автобусов, находящихся на маршруте;
3) при въезде каждого автобуса в парк вводится номер автобуса, и программа удаляет данные об этом автобусе из списка автобусов, находящихся на маршруте, и записывает эти данные в список автобусов, находящихся в парке;
4) по запросу выдаются сведения об автобусах, находящихся в парке, или об автобусах, находящихся на маршруте.
Хранение всех необходимых данных организовать с применением контейнерного класса map, в качестве ключа использовать "номер автобуса"

КОД
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
#include <iostream>
#include <string>
#include <map>
#include <locale> // для вывода русских букв
using namespace std;
class Access{ // Доступ
    struct Bus{ // Aвтобус
        string name; // фамилию и инициалы водителя;
        size_t num; //  номер маршрута.
    };
    typedef map<size_t,Bus> Array;
    typedef map<size_t,Bus>::iterator Iter;
    Array array; // массив автобусов map<Bus>
    wstring name; // слово - маршрут, или парк
public:
    Access( wstring str ): name( str ){};
    void ReadConsole( size_t size=1 ); // процедура чтения с консоли данных об автобусах
    friend ostream & operator<<( ostream & out, Access & ac ); // вывод всех авто. в поток ( консоль )
    bool Remove( Access & ac, size_t key ); // перемещение автобусов из массива в другой массив
};
void Access::ReadConsole( size_t size ){
    if( size == 0 ) return;
    Bus bus;
    wcout.imbue(locale(".866")); // русская кодировка
    wcout << L"Введите данные об автобусах которые будут находиться в " << name << L"\n";
    for( ; size != 0; size-- ){
        wcout << L"\nНомер маршрута > ";
        cin >> bus.num;
        wcout << L"Фамилию и инициалы водителя > ";
        cin.sync();
        getline( cin ,bus.name );
        wcout << L"Номер автобуса > ";
        size_t num;
        cin >> num;
        array.insert( make_pair( num, bus )); // дабавление автобуса в массив
    }
}
ostream & operator<<( ostream & out, Access & ac ){
    if( ac.array.empty())
        wcout << L"\nАвтобусов в " << ac.name << L" нет ни одного\n\n";
    else{
        wcout << L"\nАвтобусы в " << ac.name << ":\n\n";
        for( Access::Iter ptr = ac.array.begin(); ptr != ac.array.end(); ++ptr ){
            wcout << L"Номер маршрута > ";
            cout << ptr->second.num << "\n";
            wcout << L"Фамилию и инициалы водителя > ";
            cout << ptr->second.name << "\n";
            wcout << L"Номер автобуса > ";
            cout << ptr->first << "\n\n";
        }
    }
    return out;
}
bool Access::Remove( Access & ac, size_t key ){
    Iter ptr = array.find( key ); // поиск номера автобуса 
    if( ptr == array.end()) return false; // ненашли такого номера
    ac.array.insert(make_pair( ptr->first, ptr->second ));
    array.erase( ptr );
    return true;
}
/////////////// main ///////////////////
int main(int argc, char *argv[])
{    
    wcout.imbue(locale(".866"));
    Access BusPark(L"автобусном парке");
    Access Route(L"маршруте");
    BusPark.ReadConsole(3); // 3 авто. ( введи 1 авто. с №33 )
    cout << "\n\n_____________________________________________\n";
    if(BusPark.Remove( Route, 33 )) // "выводим" №33 автобус на маршрут
        wcout << L"\n\n\nВыводим автобус №33 в маршрут\n\n";
    else  wcout << L"\n\n\nАвтобуса с номером 33 нет в авто-парке\n\n";
    cout << BusPark; // какие автобусы в автобусном парке ?
    cout << Route; // какие на маршруте ?
    cout << "\n\n_____________________________________________\n";
    wcout << L"\n\n\nОбратно №33 в парк, если такой был...\n\n";
    Route.Remove( BusPark, 33 ); // обратно №33 в парк
    cout << BusPark; // какие автобусы в автобусном парке ?
    cout << Route; // какие на маршруте ?
    cin.sync();
    getchar(); // пауза
    return 0;
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
2
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2011, 15:39
Ответы с готовыми решениями:

Переделать код содержащий в себе цикл с параметром, в код с циклом с ПРЕДУСЛОВИЕМ (while do)
Program Sum_Del; Var N, I, Sum_Max, Sum, K, Ch : Integer; Begin Write('Введите число N: '); ...

Переделать исходный код. Код в Паскале,а нужно сделать его в Фортране
{$S+,R+} program arab_to_roman; uses crt; var n : word; ch : char; procedure...

Код написан в Dev C. Не работает в Visual. Как нужно переделать код?
Здравствуйте. Столкнулась с такой проблемой: код был написан в Dev C, но в Visual он выдаёт...

Есть такой код.Нужно переделать в код с функцией. Благодарю
program lab9(input,output); var s:string; len:integer; begin write('vvedit text:');...

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2011, 15:39

Как переделать код из консольного кода в код формы с кнопками?
Ребята, не шарю совсем в windows forms, но написал в консольной свою программу. Каким способом...

Переделать код без функции на код с функцией
Здравствуйте ,сделал программу по заданию &quot;Функция принимает строку (как массив символов) и набор...

Переделать код на код с рекурсией
Привет. Есть готовый код, нужно переделать его на код с рекурсией. Само задание для кода звучало...

возможно ли переделать код алгоритма под Borland C переделать под Borland Delphi?
Подскажите возможно ли переделать код алгоритма под Borland C переделать под Borland Delphi? У меня...


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

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

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