Доработать простенькую программку.

Тема в разделе "C/C++/C#", создана пользователем Gery, 14 янв 2010.

Статус темы:
Закрыта.
  1. Gery

    Gery Гость

    Доработать структуру.
    Знающему и понимающему человеку делов на 5 минут, не больше. Ребят, очень прошу, помогите.
    Собственно вот задание:
    Описать структуру с именем Order, содержащую следующие поля: plat-расчетный счет плательщика, pol- расчетный счет получателя, summa-перечисляемая сумма. Написать программу, выполняющую ввод с клавиатуры данных в массив Spisok, состоящий из 15 элементов типа Order. Записи должны быть упорядочены по расчетным счетам плательщиков. Вывести на экран информацию о сумме, снятой с расчетного счета плательщика, введенного с клавиатуры. Если такого расчетного счета нет, то вывести соответствующее сообщение.
    Расчётный счёт плательщика и получателя, 20 символов.

    Что требуется:
    1)сортировку настроить.
    2)настроить вывод на экран суммы введённого с клавиатуры счёта плательщика.

    Код (C++):
    #include <cstdlib>
    #include <iostream>

    using namespace std;

    int main()
    {
    int const n=20;
    struct order {
    char plat[n],pol[n]; // Здесь я обозначил счета, длинной 20 символов.
    float summa;
    };
    order tmp;
    order Spisok[15];
    int nomer_plat;
    bool r=false;
    float snyataya_summa=0;
    for (int i=0;i<=14;i++)
    { cout<<"Platel'shik - ";
    cin>>Spisok[i].plat;
    cout<<"Poluchatel - ";
    cin>>Spisok[i].pol;
    cout<<"summa - ";
    cin>>Spisok[i].summa;    
    }        
    for (int j=0;j<=14;j++)
    for (int i=1;i<=14;i++)
    {                             //в такой форме оператор if не может использовать массивы, нужно немного подделать программу, использовать можно strcmp.
    if (Spisok[i].plat < Spisok[i-1].plat)
    {
    tmp=Spisok[i-1];
    Spisok[i-1]=Spisok[i];
    Spisok[i]=tmp;  
    }
    }
    for (int i=0;i<=14;i++)
    cout<<"Platel'shik "<<Spisok[i].plat<<" Poluchatel' "<<Spisok[i].pol<<" summa "<<Spisok[i].summa<<"\n";
    cout<<"Vvedite nomer raschetnogo scheta\n";
    cin>>nomer_plat;
    for (int i=0;i<=14;i++)              
    if (Spisok[i].plat == nomer_plat) //такая же ситуация, поиск не происхоодит.
    {
    snyataya_summa+=Spisok[i].summa;
    r=true;              
    }
    if (r==true)
    cout<<"S raschetnogo scheta "<<nomer_plat<<" snyato "<<snyataya_summa<<"\n";
    else
    cout<<"Takogo scheta ne sushestvuet\n";      
    system("PAUSE");
    return EXIT_SUCCESS;
    }
     
  2. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Судя по тому, что вы пишете на форум, то к числу таковых себя не относите. А если не относите, то как вы можете оценивать сколько времени понадобится для решения?
    Это во-первых. Во-вторых, пункт 4.3 к вам не относится?
     
  3. Gery

    Gery Гость

    Вопрос с поиском решён. изменил условие на : if ( strcmp(&Spisok.plat[0], &nomer_plat[0]) == 0 )
    Вопрос с сортировкой открыт. Частично работает: if ( strcmp(&Spisok.plat[0], &Spisok[i+1].plat[0]) > 0 )
     
  4. Gery

    Gery Гость

    ... тема закрыта
     
Загрузка...
Статус темы:
Закрыта.

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