Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Lom1
1 / 1 / 0
Регистрация: 09.05.2014
Сообщений: 79
#1

Сортировка по расчетным счетам плательщиков - C++

11.05.2014, 20:03. Просмотров 196. Ответов 0
Метки нет (Все метки)

Нужно настроить сортировку по расчетным счетам плательщиков по первой цифре.

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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
#include <iostream>
#include <fstream>
using namespace std;
 
const int n=21;
 
class ORDER
{
private:
    char plat[n], pol[n];        //Ввод счета длиной 20 символов
    double summa;
public:
    void setDATA (char* plat_s, char* pol_s, double summa_r)
    {
        strcpy(plat,plat_s);
        strcpy(pol, pol_s);
        summa = summa_r;
    }
 
    void getDATA()               //Ввод данных
    {
        back:
        cout<<"Расчетный счет плательщика: ";
        cin>>plat;
        int count_plat = strlen(plat);
        while ((count_plat>20) || (count_plat<20))
        {
            cout << "Введите корректный расчетный счет плательщика (20 цифр): ";
            cin>>plat;
            count_plat=strlen(plat);
        }
        cout<<"Расчетный счет получателя:  ";
        cin>>pol;
        int count_pol = strlen(pol);
        while ((count_pol>20) || (count_pol<20))
        {
            cout << "Введите корректный расчетный счет получателя (20 цифр): ";
            cin>>pol;
            count_pol = strlen(pol);
        }
        while (strcmp(plat, pol)==0)
        {
            for (int i=1;i<=3;i++)
            {
                int yes_or_no;
                cout <<endl<<"\a"<< "Операция не может быть продолжена из-за совпадения расчетных счетов плательщика и получателя!"
                <<endl<<"Просим вас начать операцию заново."<<endl;
                cout <<"Вы согласны?!"<<endl<<"1. Да"<<endl<<"2. Нет"<<endl<<"Ваша цифра: ";
                cin >> yes_or_no;
                while ((yes_or_no<1) || (yes_or_no>2))
                {
                    cout <<"Введите корректную цифру: ";
                    cin >> yes_or_no;
                }
                if (yes_or_no==1)
                {
                    cout<<endl<<endl<<"# "<<i<<"                        |                    |"<<endl;
                    goto back;
                }
                else if (yes_or_no==2)
                    exit (0);
            }
        }
        cout<<"Перечисляемая сумма (макс. 500.000): ";
        cin>>summa;
        while ((summa>500000) || (summa<0))
        {
            cout<<"Введите корректную перечисляемую сумму (макс. 500 000 руб.): ";
            cin>>summa;
        }
        cout << endl;
    }
 
    void WriteDATA(ofstream& fout)          //Запись данных
    {
        fout<<endl<<plat<<endl<<pol<<endl<<summa<<endl<<endl;
    }
 
    void ReadDATA(ifstream& fin)            //Чтение данных и вывод их на экран
    {
        fin>>plat;
        fin>>pol;
        fin>>summa;
        cout<<endl<<"Плательщик - "<<plat<<endl
        <<"Получатель - "<<pol<<endl<<"Сумма - "<<summa<<" руб."<<endl<<endl;
   }
    friend void sort(ORDER* Spisok)         //Сортировка по расчетным счетам плательщиков
    {
        ORDER tmp;
        for (int i=1;i<=3;i++)
        for (int j=1;j<=3;j++)
        {
            if (i!=j)
            if (strcmp(&Spisok[i].plat[0], &Spisok[j].plat[0]))
            {
                tmp=Spisok[j];
                Spisok[j]=Spisok[i];
                Spisok[i]=tmp;
            }
        }
        cout<<"Сортировка по расчетным счетам плательщиков.";
        for (int i=1;i<=3;i++)
        cout<<endl<<"# "<<i<<endl<<"Плательщик - "<<Spisok[i].plat<<endl
        <<"Получатель - "<<Spisok[i].pol<<endl<<"Сумма - "<<Spisok[i].summa<<" руб."<<endl;
        cout << "--------------------------------------------------------------------------------"<<endl;
    }
 
    friend void search(ORDER* Spisok)       //Поиск расчетного счета и вывод на экран информации о сумме, cнятой с расчетного счета плательщика
    {
        bool r=false;
        double snyataya_summa=0;
        char nomer_plat[21];
        cout<<"Введите номер расчетного счета (плательщика): ";
        cin>>nomer_plat;
        for (int i=1;i<=3;i++)
        if (strcmp(&Spisok[i].plat[0], &nomer_plat[0]) == 0 )
        {
            snyataya_summa+=Spisok[i].summa;
            r=true;
        }
        if (r)
        cout<<"С расчетного счета "<<nomer_plat<<" снято "<<snyataya_summa<<" руб."<<endl;       
        else
        cout<<"Такого расчетного счета нет!"<<endl;
    }
};
 
 int main()
{
    setlocale (LC_ALL, "rus");
    char plat[n], pol[n];
    double summa=0;
 
    ORDER Spisok[4];
    for (int i=1;i<=3;i++)
    {
        Spisok[i].setDATA (plat, pol, summa);
        cout<<"# "<<i<<"                        |                    |"<<endl;
        Spisok[i].getDATA();
    }
 
 
    ofstream fout("input.txt");
    if(!fout)
        return 0;
    for (int i=1;i<=3;i++)
    { 
        fout<<i;
        Spisok[i].WriteDATA(fout);
    }
    fout.close();
 
 
    ifstream fin("input.txt");
    cout <<"--------------------------------------------------------------------------------"<<endl<<"Чтение данных из файла."<<endl;
    if(!fin)
        return 0;
    for (int i=1;i<=3;i++)
    { 
        fin >> i;
        cout<<"# "<<i;
        Spisok[i].ReadDATA(fin);
    }
    cout <<"--------------------------------------------------------------------------------"<<endl;
    fin.close();
    sort(Spisok);    
    search(Spisok);
    system("PAUSE");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2014, 20:03
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка по расчетным счетам плательщиков (C++):

Класс ORDER. Сортировка по расчетным счетам плательщиков выполнена неверно - C++
Помогите решить! -------------------------------------------------------------------------------------------------------- Условие...

Вычислить значения переменных по заданным расчетным формулам и наборам исходных данных - C++
Спасайте, дали задания, а программу в первый раз вижу, С++ Вычислить значения переменных по заданным расчетным формулам и наборам...

Записи должны быть размещены в алфавитном порядке по расчетным счетам плательщиков - C#
Все привет, у меня такой вопрос как отсортировать массив структурного типа в алфавитном порядке по расчетным счетам плательщиков. ...

Выполнить запрос по двум счетам - 1С
&quot;//{{ЗАПРОС(ОС) |Период с (?(ВариантФормирования=&quot;&quot;За период&quot;&quot;,ДатаНач,ДокументНачисленияИзноса)) по (?(ВариантФормирования=&quot;&quot;За...

1C 7.7 Запрос на получение остатков по счетам - 1С
Добрый день! Так получилось, что пути с семеркой пересеклись впервые. Пишу обработки для переноса данных в самописную конфигурацию. По...

1C 8.x Дебет в кредит по двум счетам - 1С
Конфа БП 2.0 Как можно передать дебет с одного счета в кредит другого? Например мне надо перекинуть Остатки по дебету счета ...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2014, 20:03
Привет! Вот еще темы с ответами:

Кривые на графике не соответствуют расчетным данным - MathCAD
Здравствуйте, столкнулся с такой проблемой. Кривые на графике не соответствуют, расчетным данным по тем же уравнениям что и строился...

БП 3.0. Обработка заполнения ТЧ Инвентаризация ОС: заполнение ТЧ по нескольким счетам - 1С
всем доброго времени суток. есть обработка заполнения ТЧ документа Инвентаризация ОС, которая заполняет по определенной выборке ТЧ...

Как сложить данные по счетам из двух таблиц - Oracle
Добрый день к примеру у меня есть две таблицы C и D мне надо получить 3 результат в которой бы по счетам посчиталась сумма и субконте ,...

Вычислить значения переменных по заданным расчетным формулам - Turbo Pascal
Вычислить значения переменных по заданным расчетным формулам и наборам исходных данных. На печать вывести значения вводимых исходных данных...


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

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

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