Курсова работа по Програмиране II


-Общо описание за функциониранe на програмата (вход/изход)



страница2/2
Дата16.01.2024
Размер175.17 Kb.
#119982
1   2
Курсова работа Програмиране
Свързани:
DVG- IVAN
-Общо описание за функциониранe на програмата (вход/изход)

  1. Включване на библиотеките iostream и string.

  2. Дефиниране на клас Item с член-данни itemNumber и price, конструктор с параметри itemNumber и price, методи за достъп getItemNumber() и getPrice(), метод за отпечатване на информацията printInfo() и предефиниран оператор за изход <<.

  3. Дефиниране на клас Pizza, който наследява Item и добавя член-данните size и hasSauce, конструктор с параметри itemNumber, price, size и hasSauce, методи за достъп getSize() и hasSauceTopping(), метод за отпечатване на информацията printInfo() и предефиниран оператор за изход <<.

  4. В main() функцията се създава масив от n на брой пици.

  5. Чрез for цикъл се въвежда информацията за всяка една пица от масива.

  6. След това се отпечатва информацията за всички пици.

  7. След това се пресмята общата цена на поръчката.

  8. Ако пицата има сос, се добавя цената му без ДДС.

  9. Ако пицата е с големина L, се отпечатва информацията й.

  10. След това се пресмятат ДДС и общата цена с ДДС.

  11. Отпечатва се информацията за всички пици с размер L.

  12. Последно се освобождава заделената памет.


-Листинг на source (изходния) код на програмата

#include


#include
using namespace std;

class Item {


private:
int itemNumber;
double price;
public:
Item(int itemNumber = 0, double price = 0.0) {
this->itemNumber = itemNumber;
this->price = price;
}

// Деструктор


~Item() {}

// Методи за достъп


int getItemNumber() const { return itemNumber; }
double getPrice() const { return price; }

// Метод за отпечатване на информацията


void printInfo() const {
cout << "Item #" << itemNumber << ", price: " << price << endl;
}

// Предефиниран метод, който отпечатва пълната информация <<


friend ostream& operator<<(ostream& os, const Item& item) {
os << "Item #" << item.itemNumber << ", price: " << item.price;
return os;
}
};

class Pizza : public Item {


private:
string size;
bool hasSauce;
public:
Pizza(int itemNumber = 0, double price = 0.0, string size = "M", bool hasSauce = false) :
Item(itemNumber, price) {
this->size = size;
this->hasSauce = hasSauce;
}

// Деструктор


~Pizza() {}

// Методи за достъп


string getSize() const { return size; }
bool hasSauceTopping() const { return hasSauce; }

// Метод за отпечатване на информацията


void printInfo() const {
cout << "Pizza #" << getItemNumber() << ", size: " << size << ", has sauce: " << (hasSauce ? "yes" : "no") << ", price: " << getPrice() << endl;
}

// Предефиниран метод, който отпечатва пълната информация <<


friend ostream& operator<<(ostream& os, const Pizza& pizza) {
os << "Pizza #" << pizza.getItemNumber() << ", size: " << pizza.size << ", has sauce: " << (pizza.hasSauce ? "yes" : "no") << ", price: " << pizza.getPrice();
return os;
}
};

int main() {


int n;
cout << "Enter number of pizzas: ";
cin >> n;

Pizza* pizzas = new Pizza[n];

for (int i = 0; i < n; i++) {
int itemNumber;
double price;
string size;
bool hasSauce;

cout << "Enter information for pizza #" << i + 1 << ":" << endl;


cout << "Item number: ";
cin >> itemNumber;
cout << "Price: ";
cin >> price;
cout << "Size (M/L): ";
cin >> size;
cout << "Has sauce (1/0): ";
cin >> hasSauce;
pizzas[i] = Pizza(itemNumber, price, size, hasSauce);
}

cout << endl << "Pizzas ordered:" << endl;


for (int i = 0; i < n; i++) {
cout << pizzas[i] << endl; // Предефиниране на оператор <<
}
double totalPrice = 0;
for (int i = 0; i < n; i++) {
totalPrice += pizzas[i].getPrice();
if (pizzas[i].hasSauceTopping()) {
totalPrice += 2.5; // Добавка цена без ДДС
}
if (pizzas[i].getSize() == "L") {
cout << "Pizza #" << pizzas[i].getItemNumber() << " ordered";
pizzas[i].printInfo();
}
}
double totalVAT = totalPrice * 0.2;
double totalPriceWithVAT = totalPrice + totalVAT;
cout << "Total price (without VAT): " << totalPrice << endl;
cout << "Total price (with VAT): " << totalPriceWithVAT << endl;

// Отпечатва информация за всички пици с размер L


cout << endl << "Ordered pizzas of size L:" << endl;
for (int i = 0; i < n; i++) {
if (pizzas[i].getSize() == "L") {
pizzas[i].printInfo();
}
}
// Освобождаване на динамичната памет
delete[] pizzas;
return 0;
}


-Резултати от изпълнението на програмата контролен (пример)


Сподели с приятели:
1   2




©obuch.info 2024
отнасят до администрацията

    Начална страница