В предыдущей статье я показал вам программу, которая высчитывает стоимость приобретения Кофе с сахаром или без него, в зависимости от выбора пользователя. В этой статье я покажу вам более сложную версию данной программы. Теперь у пользователя больше вариантов выбора. Теперь у пользователя есть три главных варианта выбора: Кофе, Кофе+сахар, Кофе+сахар+сливки. При выборе одного из трех перечисленных вариантов, у пользователя появляется множество новых возможностей выбора разных исходов программы.
Я написал эту программу, используя только основы языка программирования C++, например, условные операторы if и else if для создания пользовательского выбора разных исходов программы. Я еще не знаю функций и классов, но уже пробую использовать основы этого языка программирования для написания программ, способных решать пока что простые задачи.
Я написал эту программу, опираясь на условие следующей задачи: "Объявите несколько переменных, с помощью которых можно будет подсчитать общую стоимость нескольких товаров".
Я решил что не буду смотреть в ответ этой задачи, пока не напишу несколько своих версий программы, решающей данную задачу. Сама эта задача достаточно абстрактна, и дает возможности для творческого подхода к решению.
Я работаю в Linux MX21, который основан на Debian, и в IDE - редактор кода или среда разработки программ под названием Geany.
Исходный код программы
--------------------------------------------------------------------------------
#include <iostream>
#include <string>
/*Примтивные программы на c++.*/
// Кофейная программа с сахаром или без + сливки.
using namespace std;
int main(){
double a_cup_of_coffee = 20; // одна чашка кофе 20 рублей
int number_of_cups; // пользовательское количество чашек кофе
double a_bag_of_sugar = 5; // один маленький пакетик сахара 5 рублей
int number_of_bags; // пользовательское количество пакетиков сахара
double a_bag_of_cream = 10; // один пакетик сливок стоит 10 рублей
int amount_of_cream;
string Str; // переменная для выбора пользователя
cout << "Выберете (Кофе),(Кофе+сахар),(Кофе+сахар+сливки).\n";
cout << "Введите ваш выбор без пробелов: ";
cin >> Str; // Пользовательский выбор кофе с сахаром или без него
if(Str == "Кофе"){
cout << "Вы выбрали кофе без сахара\n";
cout << "Один стакан кофе стоит " << a_cup_of_coffee << " рублей\n";
cout << "Сколько чашек вы хотите купить? " << "Введите значение: ";
cin >> number_of_cups;
if(number_of_cups == 0){
cout << "Вы не купили ни одной чашки кофе!\n";
} else if(number_of_cups > 0){
cout << "Ваш заказ стоит " << number_of_cups * a_cup_of_coffee << " рублей\n";
}
} else if(Str == "Кофе+сахар"){
cout << "Вы выбрали кофе с сахаром.\n";
cout << "Один стакан кофе стоит " << a_cup_of_coffee << " рублей\n";
cout << "Один пакетик сахара стоит " << a_bag_of_sugar << " рублей\n";
cout << "Сколько чашек кофе вы хотите купить? " << "Введите значение: ";
cin >> number_of_cups;
cout << "Сколько пакетиков сахара вы хотите купить? " << "Введите значение: ";
cin >> number_of_bags;
if(number_of_cups == 0 && number_of_bags == 0){
cout << "Вы ничего не купили!\n";
} else if(number_of_cups > 0 && number_of_bags == 0){
cout << "Вы решили пить кофе без сахара!\n";
cout << "Ваш заказ стоит " << number_of_cups * a_cup_of_coffee << " рублей\n";
} else if(number_of_cups == 0 && number_of_bags > 0){
cout << "Вы решили купить сахар!\n";
cout << "Ваш заказ стоит " << number_of_bags * a_bag_of_sugar << " рублей\n";
} else if(number_of_cups > 0 && number_of_bags > 0){
cout << "Ваш выбор - кофе с сахаром!\n";
cout << "Ваш заказ стоит " << number_of_cups * a_cup_of_coffee + number_of_bags * a_bag_of_sugar << " рублей\n";
}
} else if(Str == "Кофе+сахар+сливки"){
cout << "Вы выбрали кофе с сахаром и сливками.\n";
cout << "Один стакан кофе стоит " << a_cup_of_coffee << " рублей\n";
cout << "Один пакетик сахара стоит " << a_bag_of_sugar << " рублей\n";
cout << "Один пакетик сливок стоит " << a_bag_of_cream << " рублей\n";
cout << "Сколько чашек кофе вы хотите купить? " << "Введите значение: ";
cin >> number_of_cups;
cout << "Сколько пакетиков сахара вы хотите купить? " << "Введите значение: ";
cin >> number_of_bags;
cout << "Сколько пакетиков сливок вы хотите купить? " << "Введите значение: ";
cin >> amount_of_cream;
if(number_of_cups == 0 && number_of_bags == 0 && amount_of_cream == 0){
cout << "Вы ничего не купили!\n";
} else if(number_of_cups > 0 && number_of_bags == 0 && amount_of_cream == 0){
cout << "Вы решили пить кофе без сахара!\n";
cout << "Ваш заказ стоит " << number_of_cups * a_cup_of_coffee << " рублей\n";
} else if(number_of_cups == 0 && number_of_bags > 0 && amount_of_cream == 0){
cout << "Вы решили купить сахар!\n";
cout << "Ваш заказ стоит " << number_of_bags * a_bag_of_sugar << " рублей\n";
} else if(number_of_cups == 0 && number_of_bags == 0 && amount_of_cream > 0){
cout << "Вы решили купить сливки!\n";
cout << "Ваш заказ стоит " << amount_of_cream * a_bag_of_cream << " рублей\n";
} else if(number_of_cups > 0 && number_of_bags > 0 && amount_of_cream == 0){
cout << "Ваш выбор - кофе с сахаром!\n";
cout << "Ваш заказ стоит " << number_of_cups * a_cup_of_coffee + number_of_bags * a_bag_of_sugar << " рублей\n";
} else if(number_of_cups == 0 && number_of_bags > 0 && amount_of_cream > 0){
cout << "Ваш выбор - сливки с сахаром!\n";
cout << "Ваш заказ стоит " << number_of_bags * a_bag_of_sugar + amount_of_cream * a_bag_of_cream << " рублей\n";
} else if(number_of_cups > 0 && number_of_bags == 0 && amount_of_cream > 0){
cout << "Ваш выбор - кофе со сливками без сахара!\n";
cout << "Ваш заказ стоит " << number_of_cups * a_cup_of_coffee + amount_of_cream * a_bag_of_cream << " рублей\n";
} else if(number_of_cups > 0 && number_of_bags > 0 && amount_of_cream > 0){
cout << "Ваш выбор - кофе со сливками и с сахаром!\n";
cout << "Ваш заказ стоит " << number_of_cups * a_cup_of_coffee + number_of_bags * a_bag_of_sugar + amount_of_cream * a_bag_of_cream << " рублей\n";
}
}
return 0;
}
-------------------------------------------------------------------------------------------------------
Выше представлен исходный код программы. В этой статье, в отличие от предыдущей, я опубликую не только сам код, но и скриншоты из моей IDE.
Скриншоты результатов программы в терминале
У данной программы есть несколько исходов.
Если пользователь напишет "Кофе", то он выберет кофе без сахара, и если программа просит его, сколько чашек кофе ему налить, и пользователь напишет 0, то программа выдаст следующее:
Если пользователь напишет "Кофе", то он выберет кофе без сахара, и если программа просит его, сколько чашек кофе ему налить, и пользователь напишет 1, то программа выдаст следующее:
Если пользователь напишет "Кофе+сахар" без пробелов, программа сначала выдаст пользователю цену одной чашки кофе и одного пакетика сахара, потом спросит, сколько чашек кофе и пакетиков сахара нужно пользователю:
1) Если пользователь напишет количество чашек кофе = 0 и количество пакетиков сахара = 0, то программа выдаст следующее:
2) Если пользователь напишет количество чашек кофе = 1 и количество пакетиков сахара = 0, то программа выдаст следующее:
3) Если пользователь напишет количество чашек кофе = 0 и количество пакетиков сахара = 1, то программа выдаст следующее:
4) Если пользователь напишет количество чашек кофе = 1 и количество пакетиков сахара = 1, то программа выдаст следующее:
Если пользователь напишет "Кофе+сахар+сливки" без пробелов, программа сначала выдаст пользователю цену одной чашки кофе, одного пакетика сахара и одного пакетика сливок, потом спросит, сколько чашек кофе, пакетиков сахара и молока нужно пользователю:
1) Если пользователь напишет количество чашек кофе = 0, количество пакетиков сахара = 0, количество пакетиков сливок = 0, то программа выдаст следующее:
2) Если пользователь напишет количество чашек кофе = 1, количество пакетиков сахара = 0, количество пакетиков сливок = 0, то программа выдаст следующее:
3) Если пользователь напишет количество чашек кофе = 0, количество пакетиков сахара = 1, количество пакетиков сливок = 0, то программа выдаст следующее:
4) Если пользователь напишет количество чашек кофе = 0, количество пакетиков сахара = 0, количество пакетиков сливок = 1, то программа выдаст следующее:
5) Если пользователь напишет количество чашек кофе = 1, количество пакетиков сахара = 2, количество пакетиков сливок = 0, то программа выдаст следующее:
6) Если пользователь напишет количество чашек кофе = 1, количество пакетиков сахара = 0, количество пакетиков сливок = 1, то программа выдаст следующее:
7) Если пользователь напишет количество чашек кофе = 0, количество пакетиков сахара = 2, количество пакетиков сливок = 1, то программа выдаст следующее:
8) Если пользователь напишет количество чашек кофе = 1, количество пакетиков сахара = 2, количество пакетиков сливок = 1, то программа выдаст следующее:
Заключение к статье
Как видите, если вы дочитали статью до этого места, по сравнению с прошлой версией этой программы, мне удалось усложнить ее, используя только изученные основы языка программирования C++. Теперь у программы стало больше разных исходов, зависящих от выбора пользователя.
Как бы вы упростили код данной программы, используя только основы C++, не заходя в темы функций и классов?
Предыдущие статьи:
- Простая программа на основах языка программирования C++. Кофе с сахаром
- Кофейная программа. Примитив на C++. Открытый исходный код
- Простая программа на C++. Вывод или изменение элементов массива
- Hello World в Geany. C++ в Linux
- Мой путь к C++. Hello world без IDE