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

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

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

Функции,задачка на стоянку автомобилей,чуть переделать - C++

21.03.2013, 22:40. Просмотров 445. Ответов 6
Метки нет (Все метки)

Значит мы вводим время для 3х автомобилей, парковка посуточная, т.е больше 24 ч вводить нельзя!
Так вот..если мы ввели 5,10,24.01 то он выдаёт ошибку,и получается что все 3 времени с ошибкой, нужно чуть переделать,что бы он выдавал ошибку на ту стоку,в которой больше 24 часов,а ост считал и выводил,и писал уже не для 3х автомобилей,а для 2х например и т.д.. просто я так прикинул для 3 автомобилей это ещё можно взять что бы вот так выдавал(3 числа не сложно заного вбить),а если бы программа расчитывалась на 20 автомобилей например..вот..не очень то удобно было бы вводить заного 20 чисел...хотелось бы увидеть,как всё таки можно реализовать то что я написал выше

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
#include "iostream"
#include "iomanip"
#include "math.h"
float calculateCharges(float);
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
   float time1, time2, time3, totalTime;
   float sum1, sum2, sum3, totalSum;
   
   while(1)
   {
    cout<< "\t" << "Посуточная парковка!!!\n" << endl;
    cout << setw(10) << "Максимальная плата за сутки" << setw(10) << "$10.00" << endl;
    cout << setw(10) << "Стоянка до 3х часов" << setw(17) << "$2.00" << endl; 
    cout << setw(10) << "Стоянка более 3х часов" << setw(15) << "*$0.50\n" << endl;
    
   
   for (;;)
   {
      cout << "Введите время стоянки 3-х автомобилей: " << endl;
      cin >> time1 >> time2 >> time3;
            
      if (time1 < 0 || time1 > 24 || time2 < 0 || time2 > 24 || time3 < 0 || time3 > 24)
      {
         cout << "Error! Повторите ввод!" << endl;
         continue;
      }
       break;
   }
     totalTime = time1 + time2 + time3;   
 
   sum1 = calculateCharges(time1);
   sum2 = calculateCharges(time2);
   sum3 = calculateCharges(time3);
   
   totalSum = sum1 + sum2 + sum3;
   
  
   cout << setw(10) << "Автомобиль" << setw(10) << "Часы" << setw(10) << "Плата" << endl;
   cout << setw(10) << "1" << setw(10) << time1 << setw(10) << sum1 << endl;
   cout << setw(10) << "2" << setw(10) << time2 << setw(10) << sum2 << endl;
   cout << setw(10) << "3" << setw(10) << time3 << setw(10) << sum3 << endl;   
   cout << setw(10) << "Итого: " << setw(10) << totalTime << setw(10) << totalSum << endl;
   cout << "Повторить ? (y/n): ";
       char c;
       cin >> c;
       if (c == 'y')
           continue;
       if (c == 'n')
           break;
   }
   return 0;
}
 
float calculateCharges(float timeSt)
{
    
   float sum;
    
   if (timeSt > 0 && timeSt <= 3)
      sum = 2.00;   
   else if (timeSt > 3 && timeSt < 24)
   {      
      sum = ceil(timeSt - 3) * 0.50 + 2.00;      
      
      if (sum > 10)
         sum = 10;
   }
     else if (timeSt == 24)
      sum = 10.00;
   
     else
      sum = 0;   
        
   return sum;
       
}
Функции,задачка на стоянку автомобилей,чуть переделать
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.03.2013, 22:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функции,задачка на стоянку автомобилей,чуть переделать (C++):

файл вещественных чисел, нужно поравить код совсем чуть-чуть - C++
Вот написал, но работает только для целых чисел.Как сделать для файла с вещественными числами? #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; ...

Изменить значение тех элементов у которых последняя цифра 1 или 2 чуть-чуть осталось - C++
Одномерный массив заданный случайными целыми числами от -10000 до 10000. Вывести значения массива до и после изменений. Размер массива...

кто желает мне подсобить чуть чуть? - C++
нужно написать программу: 31 В одномерном массиве, состоящем из n вещественных элементов, вычислить: − номер минимального по...

Матрицы не могу доделать, чуть чуть осталось - C++
7. Напишите программу, которая принимает с клавиатуры число N, создает матрицу размера N на N, заполненную случайными числами, и выводит ее...

Осталось чуть чуть доделать. Посмотрите - C++
помогите дописать программу. Она считывает текст из файла и выводит слова начинающиеся с ' -'. А нужно, чтобы выводило предложеия. ...

Закончить прогу. Чуть-чуть осталось - C++
Нужно заменить все маленькие латинские буквы на $. Мои наработки: #include &lt;windows.h&gt; #include &lt;cstdlib&gt; #include &lt;iostream&gt; using...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
IrineK
Заблокирован
22.03.2013, 04:46 #2
Для 20 автомобилей пришлось бы, например, копипастить строку 35 20 раз. А представь - для 100?
Чтобы этого избежать существуют циклы. С ними main принимает такой вид:


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
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL,"");
    const int n = 3;
   float time[n], totalTime = 0;
   float sum[n], totalSum = 0;
   
   while(1)
   {
    cout << "\t" << "Посуточная парковка!!!\n" << endl;
    cout << setw(10) << "Максимальная плата за сутки" << setw(10) << "$10.00" << endl;
    cout << setw(10) << "Стоянка до 3х часов" << setw(17) << "$2.00" << endl; 
    cout << setw(10) << "Стоянка более 3х часов" << setw(15) << "*$0.50\n" << endl;
    cout << "Введите время стоянки 3-х автомобилей: " << endl;
   
   for (int i=0;i<3;i++)
   {  
      cin >> time[i];
            
      if (time[i] < 0 || time[i] > 24)
      {
         cout << "Error! Повторите ввод!" << endl;
         i--;
         continue;
      }
      else
        {   totalTime += time[i];  
            sum[i] = calculateCharges(time[i]);
            totalSum += sum[i];
      }
   }
 
   cout << setw(10) << "Автомобиль" << setw(10) << "Часы" << setw(10) << "Плата" << endl;
    for (int i=0;i<3;i++)
        cout << setw(10) << i+1 << setw(10) << time[i] << setw(10) << sum[i] << endl;
    cout << setw(10) << "Итого: " << setw(10) << totalTime << setw(10) << totalSum << endl;
   cout << "Повторить ? (y/n): ";
       char c;
       cin >> c;
       if (c == 'y')
           continue;
       if (c == 'n')
           break;
   }
   return 0;
}



А вообще прога красивая, много внимания уделено выводу - няшно )
1
LaFlame
0 / 0 / 0
Регистрация: 21.12.2012
Сообщений: 18
22.03.2013, 09:16  [ТС] #3
хотелось бы увидеть ещё варианты реализации ( если не сложно,и желательно с функцией)
0
LaFlame
0 / 0 / 0
Регистрация: 21.12.2012
Сообщений: 18
23.03.2013, 12:59  [ТС] #4
неужели не у кого нету больше ни каких мыслей?
0
lemegeton
2924 / 1353 / 135
Регистрация: 29.11.2010
Сообщений: 2,725
23.03.2013, 14:52 #5
Цитата Сообщение от LaFlame Посмотреть сообщение
хотелось бы увидеть ещё варианты реализации
Цитата Сообщение от LaFlame Посмотреть сообщение
неужели не у кого нету больше ни каких мыслей?
Мысль: возьми и напиши другие варианты реализаций. Примени циклы, функции, структуры.

Выложи задание, может кто тебе еще чего понапишет.
0
LaFlame
0 / 0 / 0
Регистрация: 21.12.2012
Сообщений: 18
23.03.2013, 16:01  [ТС] #6
Цитата Сообщение от lemegeton Посмотреть сообщение
Мысль: возьми и напиши другие варианты реализаций. Примени циклы, функции, структуры.
Выложи задание, может кто тебе еще чего понапишет.
По заданию всё есть сверху, та и я хочу увидеть способы реализации различные,так зачем мне выкладывать то свои?...хочу увидеть как делают другие,как можно это сделать ещё каким либо способом..не знаю как ещё можно объяснить..
0
c4sp3r
0x5B4C322291BD52AE
92 / 92 / 5
Регистрация: 04.03.2013
Сообщений: 295
23.03.2013, 16:30 #7
LaFlame, Попробуй введеные значения сохранять в массив и потом в цикле уже считай и выводи при этом если значение больше 24 ч. пропускай или в этой строке выводи сообщение об ошибке.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 16:30
Привет! Вот еще темы с ответами:

Минимизация затрат на стоянку - C++
Всем привет, решаю задачу, написал вот такой код: #include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; long long...

Задачка на функции! - C++
Ребята! Помогите пожалуйста с задачкой на функции!!! Заранее спасибо!!!! Дан массив ненулевых целых чисел размера N. Проверить, чередуются...

Задачка на процедуры и функции - C++
Помогите пожалуйста решить задачку с помощью процедур и функций. Составить процедуру, позволяющую определить позицию самого правого...

Переделать функции в шаблон - C++
lib.h #pragma once int **rnd(int sizeA, int sizeB); int *Conversion(int **array, int sizeA, int sizeB); file.cpp ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.03.2013, 16:30
Ответ Создать тему
Опции темы

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