Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
1

Класс ORDER. Сортировка по расчетным счетам плательщиков выполнена неверно

05.05.2014, 12:18. Показов 1076. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите решить!
--------------------------------------------------------------------------------------------------------
Условие задания:
Требуется решить задачу с использованием классов.
При этом обязательно оформить методы для выполнения каждого из действий: по вводу данных, выводу их в файл, чтению данных из файла и выводу их на экран, сортировке данных.

Дана структура с именем ORDER, состоящая из полей:
- расчетный счет плательщика;
- расчетный счет получателя;
- перечисляемая сумма в руб.
Написать программу, которая выполняет следующие действия:
- ввод с клавиатуры данных в массив, состоящий из 8 элементов типа ORDER, и занесение их в файл данных;
- чтение данных из файла и вывод их на экран;
- вывод на экран информации о сумме, снятой с расчетного счета плательщика, введенного с клавиатуры (если таких нет – вывести об этом сообщение);
- список должен быть упорядочен по расчетным счетам плательщиков.
---------------------------------------------------------------------------------------------------------------
Проблемы:
1) Преобразовать это все в класс
2) Сортировка по расчетным счетам плательщиков выполнена неверно

Вот, что сделал, код программы:
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
#include <iostream>
#include <fstream>
using namespace std;
 
int const n=20;
 
struct ORDER
{
       char plat[n], pol[n];                 //Ввод счета длинной 20 символов
       float summa;
};
 
 int main()
{
    setlocale (LC_ALL, "rus");
    ofstream fout; ifstream fin;
    ORDER tmp;
    ORDER Spisok[20];
    char nomer_plat[20];
    bool r=false;
    float snyataya_summa=0;
    fout.open ("input.txt");          //Запись в файл
    for (int i=1;i<=3;i++)
    { 
        cout<<"# "<<i<<endl;
        cout<<"Расчетный счет плательщика: ";
        cin>>Spisok[i].plat;
        cout<<"Расчетный счет получателя: ";
        cin>>Spisok[i].pol;
        cout<<"Перечисляемая сумма в руб.: ";
        cin>>Spisok[i].summa;
        cout << endl;
        fout<<"# "<<i<<endl<<"Плательщик - "<<Spisok[i].plat<<endl
        <<"Получатель - "<<Spisok[i].pol<<endl<<"Сумма - "<<Spisok[i].summa<<" руб.";
    }
    fout.close();
 
 
    fin.open ("input.txt");           //Чтение из файла
    cout <<"--------------------------------------------------------------------------------"<<"Чтение данных из файла."<<endl;
    for (int i=1;i<=3;i++)
    {
        int a;
        fin >> a;
        cout<<"# "<<i<<endl<<"Плательщик - "<<Spisok[i].plat<<endl
        <<"Получатель - "<<Spisok[i].pol<<endl<<"Сумма - "<<Spisok[i].summa<<" руб."<<endl<<endl;
    }
    cout <<"--------------------------------------------------------------------------------";
    fin.close ();
 
 
    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 << "--------------------------------------------------------------------------------";
    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==true)
    cout<<"С расчетного счета "<<nomer_plat<<" снято "<<snyataya_summa<<" руб."<<endl;
    else
    cout<<"Такого расчетного счета нет!"<<endl;
    system("PAUSE");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2014, 12:18
Ответы с готовыми решениями:

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

Установка DLL Visual Studio выполнена неверно
Вчера скачал VS 2010, до этого никогда раньше не делал на нём ничего, всё было нормально, написал...

Неверно сортирует ORDER BY DESC
Делаю сортировку select * from xusers WHERE (status='Готово' OR status='Рассмотрение' OR...

HSQL запрос. Что не так? "from hiberdata.Order order where order.clientId=?"
public List loadOrdersByClientId(Integer clientId) { return getHibernateTemplate().find( 'from...

2
8 / 8 / 5
Регистрация: 03.05.2014
Сообщений: 143
05.05.2014, 19:40 2
Структура ORDER. Проверить код на ошибки
0
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 67
05.05.2014, 21:32  [ТС] 3
deadlinishe, Так там тоже самое, мне нужно преобразовать это все в класс желательно, а особенно настроить сортировку.
0
05.05.2014, 21:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2014, 21:32
Помогаю со студенческими работами здесь

Количество итераций, за которое будет выполнена сортировка в заданной последовательности чисел
Требуется написать программу которая будет определять количество итераций за которое будет...

Создать класс Order
Помогите написать задачу пожалуйста 1. Создать класс с именем ORDER, содержащий следующие поля:...

Не работает сортировка ORDER BY
Не сортирует конструкция order by языка MYSQL. Вот какой запрос пишу: select * from pig order...

Не работает сортировка по ORDER BY
Всем доброго времени, суток, мне нужно сделать, чтобы данные из таблицы БД выводились в обратном...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru