Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> перевод с с++ на с. 
:(
    Опции темы
dlp
Дата 30.10.2012, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 25.10.2012

Репутация: нет
Всего: нет



Помогите плиз перевести с с++ на с.
Код

struct dvd // структура dvd диска 
{
    string namefilm; // название фильма
    string namereg; // имя режисера
    int prodol; // продолжительность в минутах
    int cena; // цена
};
 
void addvd() // создание базы и добавление дисков
{   
    cout << "Вводите только латиницей(английскими)\n";
    cout << "Количество dvd дисков = ";
    int t; // количество добавляемых дисков
    (cin >> t).get();
 
    dvd *p = new dvd[t];
    int n = 0; // количество дисков в файле (записывается в первой строке)
  
  //запись в файл
 
 fstream f("f.txt");
 if (!f.is_open()) // если файла не существует
 {
    f.open("f.txt", ios::out);
    f << t << '\n'; // записываем в файл количество дисков
    f.close();
 }
 else // если файл существует
 {
    f >> n; // читаем количество дисков в файле
    f.seekg(0);
    f << t + n << '\n'; // записываем новое количество дисков в файле
    f.close();
 }
 
 f.open("f.txt", ios::app); // открываем файл для дозаписи
 
 for(int i = 0; i < t; i++)
 {  cout << "\nНазвание фильма: ";           getline(cin, p[i].namefilm);  f << p[i].namefilm << '\n';
    cout << "Имя режисера: ";                getline(cin, p[i].namereg);   f << p[i].namereg  << '\n';
    cout << "Продолжительность в минутах: ";  cin  >> p[i].prodol;          f << p[i].prodol   << '\n';
    cout << "Цена: ";                        (cin >> p[i].cena).get();     f << p[i].cena     << '\n';
 }
 f.close(); 
 
 delete [] p;
}
 
 
void print() // вывести из файла на экран
{ 
  fstream f("f.txt");
  if (!f.is_open()) cout << "\nБазы дисков не существует." << endl << endl;
  else
  {
      int n = 0;
      (f >> n).get();
      if (n == 0) cout << "\nДисков в базе нет." << endl << endl;
      else
      {
          for(int i = 0; i < n; i++)
          {  
                string temp;
                int v;
                
                cout << "    Диск: "<< i + 1 << endl;
                cout << "\nНазвание фильма: ";           getline(f, temp);   cout << temp << endl;
                cout << "Имя режисера: ";                getline(f, temp);   cout << temp << endl;
                cout << "Продолжительность в минутах: "; f  >> v;            cout << v    << endl;
                cout << "Цена: ";                        (f >> v).get();     cout << v    << endl;
                cout << endl;
          }
          f.close();
      }
   }
}
 
void poisk_cena()
{
  fstream f("f.txt");
  if (!f.is_open()) cout << "\nБазы дисков не существует." << endl << endl;
  else
  {
      int n = 0;
      (f >> n).get();
      if (n == 0) cout << "\nДисков в базе нет." << endl << endl;
      else
      {
          int rub;
          cout << "Задайте цену: ";
          (cin >> rub).get();
 
          int e = 0; // количество дисков в новой базе
          
          dvd *p = new dvd[n]; // массив для новой базы
  
          for(int i = 0 ; i < n; i++) // чтение из файла во временную структуру
          { 
                dvd temp; 
                getline(f, temp.namefilm); 
                getline(f, temp.namereg);
                f >> temp.prodol;
                (f >> temp.cena).get();
                if (temp.cena < rub) // если цена ниже, то помещаем сруктуру в массив
                {
                    p[i] = temp;
                    e++;
                }
          }
          f.close();      
 
        //вывод на экран и запись в файл новой базы
         f.open("f.txt", ios::out);
         f << e << '\n';
         if (e == 0) cout << "\nДисков в базе нет." << endl << endl;
         for(int i = 0; i < e; i++)
         {  
            cout << "\n    Диск: "                   << i + 1 << endl;
            cout << "\nНазвание фильма: "           << p[i].namefilm << '\n';  f << p[i].namefilm <<'\n';
            cout << "Имя режисера: "                << p[i].namereg  << '\n';  f << p[i].namereg  << '\n';
            cout << "Продолжительность в минутах: " << p[i].prodol   << '\n';  f << p[i].prodol   << '\n';
            cout << "Цена: "                        << p[i].cena     << '\n';  f << p[i].cena     << '\n';
            cout << endl;
         }
         f.close(); 
 
         delete [] p;
     }
  }
}
 
 
int main()
{
    setlocale(LC_ALL,"Russian"); // подключение русского языка
    
    int k; // меню
    do
    {
        cout << endl;
        cout << "1. Создать БД дисков или добавить в базу\n";
        cout << "2. Вывести данные\n";
        cout << "3. Удалить с ценой выше чем...\n";
        cout << "4. Выход\n";
        
        (cin >> k).get();
        switch(k)
        {
            case 1: addvd(); 
                break;
            case 2: print(); 
                break;
            case 3: poisk_cena(); 
                break;
        }
    } while(k != 4 );
 
    system("pause");
    return 0;
}

PM MAIL   Вверх
McMan
Дата 30.10.2012, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 21.2.2007
Где: Ярославль

Репутация: нет
Всего: 1



а где именно проблема?
просто, так переписывать две сотни строчек  не хотет
UPD
и зачем, собственно переводить?

Это сообщение отредактировал(а) McMan - 30.10.2012, 19:15
PM MAIL   Вверх
feodorv
Дата 30.10.2012, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

Репутация: 12
Всего: 45



Общие принципы перевода:
  • cout << заменяем на printf
  • cin >> заменяем на scanf
  • new заменяем на malloc
  • fstream на FILE *
  • f.open на fopen
  • f.seekg на fseek
  • f >> на fscanf
  • f << на fprintf
  • f.close на fclose
  • delete на free
  • string temp на char temp[256]
и т.д. Придётся сильно повозиться...

ЗЫ Это уже не первая тема, посвящённая дискам и их ценам  smile 


--------------------
Напильник, велосипед, грабли и костыли - основные инструменты программиста...
PM MAIL   Вверх
dlp
Дата 30.10.2012, 21:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 11
Регистрация: 25.10.2012

Репутация: нет
Всего: нет



А есть какой нибудь простенький компилятор чтоб чисто с воспринимал а с++ нет, так мне проверять легче будет. А то в с++ и с компилит....
PM MAIL   Вверх
McMan
Дата 30.10.2012, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 21.2.2007
Где: Ярославль

Репутация: нет
Всего: 1



gcc
PM MAIL   Вверх
NoviceF
Дата 30.10.2012, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 313
Регистрация: 13.3.2012
Где: Ростов-на-Дону

Репутация: 2
Всего: 2



Цитата(dlp @ 30.10.2012,  22:08)
А есть какой нибудь простенький компилятор чтоб чисто с воспринимал а с++ нет, так мне проверять легче будет. А то в с++ и с компилит....

Создай в IDE "проект Си", к нему, соответственно, будет применяться только компилятор Си.
PM MAIL   Вверх
bsa
Дата 31.10.2012, 10:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Обычно, если у файла расширение "c", то он компилируется с помощью компилятора Си.
PM   Вверх
tzirechnoy
Дата 31.10.2012, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1173
Регистрация: 30.1.2009

Репутация: -1
Всего: 16



Цитата
А есть какой нибудь простенький компилятор чтоб чисто с воспринимал а с++ нет, так мне проверять легче будет. А то в с++ и с компилит....


tcc. Только он всё равно комменты плюсовые, например, понимает.
PM MAIL   Вверх
Dem_max
Дата 1.11.2012, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1780
Регистрация: 12.4.2007

Репутация: 4
Всего: 39



GCC с ключом -std=c99


--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0508 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.