1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

Заковыристое задание

Тема в разделе "С и С++", создана пользователем Serafim, 8 июн 2005.

  1. Serafim

    Serafim Гость

    Репутация:
    0
    Дана таблица типа имя, пол, доход, доход в долларах.
    Итак, задание - изменить таблицу так, чтобы сохранялся и курс UE. :)

    Код:
    #include <conio.h>
    #include <iostream.h>
    #include <stdlib.h>
    #include <iomanip.h>
    #include <fstream.h>
    
    struct rab
    {
    char name [45], pol;
    int doxod;
    };
    
    rab  tabl [5];
    double  kursUE = 1;
    
    void enter (rab & x)
    {
    cout << "Name:";
    cin >> x.name;
    cout << "Pol:";
    cin >> x.pol;
    cout << "Doxod" << ":";
    cin >> x.doxod;
    }
    
    void enterUEkurs (double & x)
    {
    cout << "KursDollara:";
    cin >> x;
    }
    
    void print (rab x)
    {
    cout << setw (20) << x.name << setw (10) << x.pol
    << setw (3)<<' '<< x.doxod << ' ' << (x.doxod / kursUE);
    }
    
    void enter (rab y [], int & n)
    {
    cout << "size:"; cin >> n;
    for (int i = 0; i < n; i ++) enter (y [i]);
    }
    
    void print (rab y [], int n)
    {
    for (int i = 0; i < n; i++)
    {
     print (y [i]); cout << endl;
    }
    }
    
    char *fname ()
    {
    char *S = new char [40];
    cout << "Enter File name:"; 
    cin >> S; 
    
    return S;
    }
    
    void save (fstream & f, rab y)
    {
    f << y.name << ' ' << y.pol << ' ' << y.doxod;
    }
    
    void save (char fn [], rab x [], int n)
    {
    fstream f;
    
    f.open (fn, ios::out);
    f << n << ' ';
    
    for (int i = 0; i < n; i++)
    save (f, x [i]);
    
    f.close ();
    }
    
    void load (fstream & f, rab y)
    {
    f >> y.name >> y.pol >> y.doxod;
    }
    
    void load (char fn [], rab x [], int & n)
    {
    fstream f;
    
    f.open (fn, ios::in);
    f >> n;
    
    for (int i = 0; i < n; i ++)
    load (f, x [i]);
    }
    
    void main ()
    {
    rab tabl [5]; int n;
    do
    {
    textcolor (4);
    clrscr ();
    cout << "1 - Enter, 2 - Kurs, 3 - Vivod, 5 - Save, 6 - Load, Esc - Quit" << endl;
    
    switch (getch ())
    {
    case '1': enter (tabl, n); break;
    case '2': enterUEkurs(kursUE); break;
    case '3': print (tabl, n); break;
    case '5': save (fname (), tabl, n); cout << "SaveOk"; break;
    case '6': load (fname (), tabl, n); print (tabl, n); break;
    case 27 : exit (0);
    }
    
    getch ();
    }
    
    while (1);
    }
     
  2. ????

    ???? Гость

    Репутация:
    0
    Для: Serafim

    Купи/скачай книгу! Если не сможешь/захочешь сам понять - никто не помомжет.

    Код:
    #include <conio.h>
    #include <iostream.h>
    #include <stdlib.h>
    #include <iomanip.h>
    #include <fstream.h>
    
    struct rab
    {
    char name [45], pol;
    static double kursUE;
    int doxod;
    };
    
    //rab  tabl [5];
    double rab::kursUE = 1;
    
    void enter (rab & x)
    {
    cout << "Name:";
    cin >> x.name;
    cout << "Pol:";
    cin >> x.pol;
    cout << "Doxod" << ":";
    cin >> x.doxod;
    }
    
    void enterUEkurs (double &x)
    {
    cout << "KursDollara:";
    cin >> x;
    }
    
    void print (rab x)
    {
    cout << setw (20) << x.name << setw (10) << x.pol
    << setw (3) <<' '<< x.doxod << ' ' << (x.doxod / x.kursUE)
    << setw (20) << x.kursUE;
    }
    
    void enter (rab y [], int & n)
    {
    cout << "size:"; cin >> n;
    for (int i = 0; i < n; i ++) enter (y [i]);
    }
    
    void print (rab y [], int n)
    {
    for (int i = 0; i < n; i++)
    {
    print (y [i]); cout << endl;
    }
    }
    
    char *fname ()
    {
    char *S = new char [40];
    cout << "Enter File name:";
    cin >> S;
    
    return S;
    }
    
    void save (fstream & f, rab y)
    {
    f << y.name << ' ' << y.pol << ' ' << y.doxod << ' ' << y.kursUE << ' ';
    }
    
    void save (char fn [], rab x [], int n)
    {
    fstream f;
    
    f.open (fn, ios::out);
    f << n << ' ';
    
    for (int i = 0; i < n; i++)
    save (f, x [i]);
    
    f.close ();
    }
    
    void load (fstream & f, rab y)
    {
    f >> y.name >> y.pol >> y.doxod >> y.kursUE;
    }
    
    void load (char fn [], rab x [], int & n)
    {
    fstream f;
    
    f.open (fn, ios::in);
    f >> n;
    
    for (int i = 0; i < n; i ++)
    load (f, x [i]);
    }
    
    void main ()
    {
    rab tabl [5]; int n;
    do
    {
    textcolor (4);
    clrscr ();
    cout << "1 - Enter, 2 - Kurs, 3 - Vivod, 5 - Save, 6 - Load, Esc - Quit" << endl;
    
    switch (getch ())
    {
    case '1': enter (tabl, n); break;
    case '2': enterUEkurs(rab::kursUE); break;
    case '3': print (tabl, n); break;
    case '5': save (fname (), tabl, n); cout << "SaveOk"; break;
    case '6': load (fname (), tabl, n); print (tabl, n); break;
    case 27 : exit (0);
    }
    
    getch ();
    }
    
    while (1);
    }
    Вообще, весь код кривоват, но это моё ИМХО.
     
  3. Serafim

    Serafim Гость

    Репутация:
    0
    Для: ????

    Спасибо тебе огромное (и за советы тоже)! :)
     
Загрузка...

Поделиться этой страницей