Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 10:33   #1
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию Как сделать вывод данных после всего ввода данных.

Есть задача. Написать программу, которая высчитывает цену за стоянку.
До 3-х часов 2$, за каждый последующий полный или неполный час 0.5$, максимальная сумма за сутки 10$. Вы должны вводить кол-во клиентов, длительность парковки каждого клиента. Программа должна использовать функцию calculateCharges, что бы определять плату для каждого клиента.

Должна выводить в след формате.
Код:
cars     hour     charge
1           1.5        2.00
2           4.0        2.50
3          24.0      10.00
TOTAL   29.5      14.50
Ниже код который сделал, он пока что кривоват и не до конца дописан, но работает и считает все верно.
Вопрос вот в чем как сделать, что бы таблица подсчетов выводилась в конце ввода данных, т.е. сначало ввел данные, а потом вывел инфу по всем данным. Как то так. Прошу только подсказку а не готового кода.(учтите так же что я только совсем учусь самоучкой, по книгам)

Код:
#include <iostream>
using std::cout;
using std::cin;
using std::endl;

#include <cmath>
using std::ceil;

#include <iomanip>
using std::setw;

double hourse, charge;
int car;

double calculateCharges( double charge );

int main()
{
    cout << "Цена за 3 часа стоянки 2$, за каждый последующий полный или неполный час 0.50$,\nмаксимальная плата за сутки 10$" << endl;
    cout << "Введите сколько вчера было клиентов: ";
    cin >> car;

    for (int i = 1; i <= car; i++)
    {
        cout << "Введите сколько машина клиента находилась на стоянке в часах: ";
        cin >> hourse;
    }

    for (int i = 1; i <= car; i++)
    {
        if ( i == 1 )
            cout << "car" << setw(7) << "Hours" << setw(7) << "Charge" << endl;

        cout << i << setw(9) << hourse << setw(7) << calculateCharges( hourse ) << endl;
    }
    return 0;
}

double calculateCharges( double charge)
{
    if ( ( hourse > 3 ) && ( hourse <= 19 ) )
        charge = 2 + ceil(hourse - 3) * .5;
    if ( ( hourse > 19 ) && ( hourse < 24) )
        charge = 10;
    if ( hourse <= 3 )
        charge = 2;

    return charge;
}
П.С.: Пытался это реализовать посредством двух циклов, но не получилось. До этого было вводишь данные и он сразу пишет ответ.
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.

Последний раз редактировалось Donatello; 16.01.2011 в 10:36.
Donatello вне форума Ответить с цитированием
Старый 16.01.2011, 14:56   #2
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

когда вы вводите строку текста и нажимаете enter - программа переходит на следующую строку и там пишет результет, я правильно понял проблему - вернуть каретку на предыдущую строку и вывести там результат, чтобы выглядело не так

<длительность парковки>
<деньга>

а вот так :

<длительность><деньга>

?
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Старый 16.01.2011, 15:36   #3
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

что бы было вот так

Код:
Введите сколько машина первого клиента находилась на стоянке в часах: 1.5
Введите сколько машина второго клиента находилась на стоянке в часах: 4.0
Введите сколько машина третьего клиента находилась на стоянке в часах: 24.0
cars     hour     charge
1           1.5        2.00
2           4.0        2.50
3          24.0      10.00
TOTAL   29.5      14.50
а не так
Цитата:
cars hour charge
Введите сколько машина клиента находилась на стоянке в часах: 1.5
1 1.5 2.00
Введите сколько машина клиента находилась на стоянке в часах: 4.0
2 4.0 2.50
Введите сколько машина клиента находилась на стоянке в часах: 24.0
3 24.0 10.00
// Тотал я пока в программе не реализовывал
TOTAL 29.5 14.50
учитывая что кол-во машин который стояли на стоянке, вводятся пользователем т.е. их может быть и 10 и 100, массивы пока не прошел и чтение из файлов тоже. Просто интересно реально такое сделать без этого????
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 16.01.2011, 15:49   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Ну так считывайте всё с начало в массив(или vector) А потом обрабатывайте!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 16.01.2011, 15:53   #5
Donatello
Форумчанин
 
Аватар для Donatello
 
Регистрация: 22.12.2010
Сообщений: 109
По умолчанию

Я не прошел еще массивы и векторы, следующая глава будет, а раз задача дана до этого то решаема и без этого...
Я бы изменил мир, но бог не дает исходников (c)

И сказал мыслитель, напиши свою проблему на бумаге и ты увидишь свои ошибки.
Donatello вне форума Ответить с цитированием
Старый 16.01.2011, 16:08   #6
Vard
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 21
По умолчанию

Цитата:
Сообщение от Donatello Посмотреть сообщение
Я не прошел еще массивы и векторы, следующая глава будет, а раз задача дана до этого то решаема и без этого...
Могу предложить вариант с указателями и malloc(), но это будет скорее С-подход и на самом деле тебе просто самому придется реализовать что-то типо урезанного vector.
Vard вне форума Ответить с цитированием
Старый 16.01.2011, 16:32   #7
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

через new и структуру данных можно, или через new и 2 массива, но тут совсем другое -
вот тут посмотрите
просто перескакиваете в начало только что введенной строки печатаете введенные данные + результат, после чего прибавляете y на 1, и тд
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
защита строки после ввода данных Akmal-Sharipov Microsoft Office Excel 5 09.12.2010 08:40
Запрет ввода данных после наступления некоторой даты Nata75 Microsoft Office Excel 8 08.11.2010 08:24
К первому новому сообщению Как сделать , чтобы после ввода ключегого слова в edit программа переходила к gefest58 Общие вопросы Delphi 2 22.10.2010 00:36
Как программно организовать проверку ввода данных? parsn Microsoft Office Excel 2 07.01.2010 17:31
Удаление содержимого соседних ячеек после ввода данных. KOSTIK1 Microsoft Office Excel 3 29.12.2009 16:53