Дан код программы на C++, перевести этот код на C - C (СИ)

Узнай цену своей работы

Формулировка задачи:

#include <iostream>
#include <windows.h>
#include <string.h>

    using namespace std;
    HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE);
    struct Avto
    {
    char marka[10];
    };
 
    struct Stek
    {
    Avto a;
    Stek *next;
    };
    char bufer [255];
    char*rus (char*s)
    {
    CharToOem (s,bufer);
    return bufer;
    }
    void vvod(Avto &x)
    {
    cin>>x.marka;
    }
    void Print(Stek *u)
    {
    int k=0;
    Stek *p = u;
    if(p==0)
    {
    cout<<rus("\nВ Гараже НЕТ машин!!!")<<endl;
    return;
    }
    while(p)
    {
    p->a.marka;
    p = p->next;
    k++;
    }
    cout<<rus("\n\tВ гараже ");
    if(k<5) cout<<k<<rus(" машины")<<endl;
    else cout<<k<<rus(" машин")<<endl;
    p = u;
    SetConsoleTextAttribute(hConsole, 11);
    cout<<rus("\n ГАРАЖ:")<<endl;
    while(p)
    {
    cout<<"\t* ";
    cout << p->a.marka<<endl;
    p = p->next;
    }
    
    cout<<"\t********"<<endl;
    SetConsoleTextAttribute(hConsole, 7);
    }
    
    void dobavlenie(Stek **u, Avto &x)
    {
    Stek *t=new Stek;
    strcpy(t->a.marka,x.marka);
    t->next=*u;
    *u=t;
    }
    
    bool Zabiraem(Stek**u, Avto &x)
    {
    if(*u==NULL)
    {
    return false;
    }
    Stek*t=*u;
    strcpy(x.marka, t->a.marka);
    *u=t->next;
    delete t;
    return true;
    }
    
    void vyezjaet_iz_garaja(Stek**u)
    {
    Stek *v=NULL;
    Avto x;
    char n[7];
    cout<< rus("\n\t Введите машину, которая выезжает:");
    cin>>n;
    while(*u)
    {
    if(Zabiraem(u,x))
    {
    if(strcmp(n, x.marka)==0)
    {
    cout<< rus(" машина ") << n; cout<<rus(" уехала!!!");
    while(Zabiraem(&v, x)) /// возвращаем элементы из стека V в стек U
    dobavlenie(u, x);
    return;
    }
    else
    {
    dobavlenie(&v, x);
    }
    }
    else break;
    }
    SetConsoleTextAttribute(hConsole, 12);
    cout <<rus(" В гараже НЕТ машины ")<<n<<endl;
    SetConsoleTextAttribute(hConsole, 7);
    while(Zabiraem(&v,x))
    dobavlenie (u,x);
    }
    void Clear(Stek **u)
    {
    if(*u == 0) 
    return;
    Stek *p = *u;
    Stek *t;
    while(p)
    {
    t = p;
    p = p->next;
    delete t;
    }
    *u = 0;
    }
    
    int main()
    {
    SetConsoleTextAttribute(hConsole, 7);
    cout << "\n" << endl;
    Stek *u=NULL;
    int n;
    Avto x; //переменная x типа avto
    do
    {
    SetConsoleTextAttribute(hConsole, 14);
    
    cout<<rus(" ***********************\n * \tМеню:")<<endl;
    
    cout<<rus(" * 1. Приехала новая машина")<<endl;
    
    cout<<rus(" * 2. Печатать гараж")<<endl;
    
    cout<<rus(" * 3. Машина выезжает")<<endl;
    
    cout<<rus(" * 0. Выход")<<endl;
    
    cout<<rus(" ***********************")<<endl;
    
    cout<<rus("\n\tЗадайте действие: ");
    
    cin>>n;
    
    SetConsoleTextAttribute(hConsole, 7);
    
    switch (n)
    {
    case 1: 
        cout<<rus("Введите новое авто: ");
        vvod(x);
        dobavlenie(&u, x); 
        cout<<rus("\nАвто Добавлено!\a\n"); 
        break;
    case 2: 
        Print(u); 
        break;
    case 3: 
        Print(u); 
        vyezjaet_iz_garaja(&u); break;
    case 0: 
        Clear(&u); break;
    default: SetConsoleTextAttribute(hConsole, 12);
    cout<<rus("Нет такого ЧИСЛА!!!")<<endl;
    SetConsoleTextAttribute(hConsole, 7);
    }
    cout<<endl;
    }
    while (n!=0);
    return 0;
    }
можно без использования графики

Решение задачи: «Дан код программы на C++, перевести этот код на C»

textual
Листинг программы
scanf("%s", x.marka);

Объяснение кода листинга программы

  1. Код программы начинается с объявления переменной x типа марка автомобиля (предположительно структура или класс)
  2. Затем происходит считывание строки с помощью функции scanf в переменную x.marka (предполагается, что marka это поле структуры x)
  3. Значение переменной x.marka не указано в вопросе, поэтому предполагается, что это строка, которая содержит название марки автомобиля
  4. Оставшиеся действия программы, если они есть, не указаны в вопросе, поэтому предполагается, что код на этом заканчивается

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5
Похожие ответы