• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы Gery
  • Дата начала
Статус
Закрыто для дальнейших ответов.
G

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;
}
 
E

European

нающему и понимающему человеку делов на 5 минут
Судя по тому, что вы пишете на форум, то к числу таковых себя не относите. А если не относите, то как вы можете оценивать сколько времени понадобится для решения?
Это во-первых. Во-вторых, пункт 4.3 к вам не относится?
 
G

Gery

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!