#include <iostream>
#include <iomanip>
#include <string.h>
#include <cstdlib>
using namespace std;
struct Car {
int Year;
double Price;
char Color[10];
char Model[20];
int Id;
};
void InputCars(Car cars[], int numOfCars);
void OutputCars(Car cars[], int numOfCars);
double AllPrices(Car cars[], int numOfCars); // find the price of all cars
double CustomSum(Car cars[], int numOfCars, int year); // find the price of all cars that is made in the year 2009;
double CustomSum(Car cars[], int numOfCars, char model[]); // find the price of all cars that is Opel made;
int main() {
int numOfCars = 0;
Car cars[100];
int item = 0;
cout.setf(ios::fixed); // set fixed point
cout.precision(2); // set output precision
while (item != 6) {// print menu until user choose item 6
cout << "-------------------------" << endl;
cout << " 1. Input cars." << endl;
cout << " 2. Output cars." << endl;
cout << " 3. Calculate total price." << endl;
cout << " 4. -//- for specific year." << endl;
cout << " 5. -//- for specific model." << endl;
cout << "-------------------------" << endl;
cout << " 6. Quit" << endl;
cout << "-------------------------" << endl;
cout << ">";
cin>>item;
cout << endl;
switch (item) {
case 1:
{
cout << "Enter number of cars: ";
cin>>numOfCars; // read number of cars
cout << "Enter data for " << numOfCars << " cars." << endl;
InputCars(cars, numOfCars); // call funtion to inpu cars
break;
}
case 2:
{
OutputCars(cars, numOfCars);
break;
}
case 3:
{
double total = AllPrices(cars, numOfCars); // calculate total price for all cars
cout << "\nTotal price for all cars is: $" << total << endl;
break;
}
case 4:
{
int year;
cout << "Enter specific year: ";
cin>>year; // read year
double total = CustomSum(cars, numOfCars, year); // calculate total price
cout << "\nTotal price for all cars made in " << year << " is: $" << total << endl;
break;
}
case 5:
{
char model[30];
cout << "Enter specific model: ";
cin>>model; // read model
double total = CustomSum(cars, numOfCars, model); // calculate total price
cout << "\nTotal price for all cars of " << model << " is: $" << total << endl;
break;
}
case 6:
{
cout << " -- Good bye!" << endl;
break;
}
default:
{
cout << " -- Invalid item!" << endl;
break;
}
}
cout << endl;
}
return 0;
}
void InputCars(Car cars[], int numOfCars) {
for (int i = 0; i < numOfCars; i++) {// for each records
cout << "Car " << i + 1 << ": " << endl;
cout << " Year: ";
cin >> cars[i].Year;
cout << " Price: $";
cin >> cars[i].Price;
cout << " Color: ";
cin >> cars[i].Color;
cout << " Model: ";
cin >> cars[i].Model;
cout << " ID: ";
cin >> cars[i].Id;
}
}
void OutputCars(Car cars[], int numOfCars) {
/*Print header of the table*/
cout << setw(3) << "#" << setw(6) << "Year" << setw(10) << "Price($)"
<< setw(10) << "Color" << setw(12) << "Model" << setw(14) << "ID" << endl;
for (int i = 0; i < numOfCars; i++) {// for each records
/*Print data for current car*/
cout << setw(3) << i + 1 << setw(6) << cars[i].Year << setw(10) << cars[i].Price
<< setw(10) << cars[i].Color << setw(12) << cars[i].Model << setw(14) << cars[i].Id << endl;
}
}
double AllPrices(Car cars[], int numOfCars) { // find the price of all cars
double total = 0;
for (int i = 0; i < numOfCars; i++) {// for each records
total += cars[i].Price;
}
return total;
}
double CustomSum(Car cars[], int numOfCars, int year) { // find the price of all cars that is made in the year 2009;
double total = 0;
for (int i = 0; i < numOfCars; i++) {// for each records
if (cars[i].Year == year)// compare the year
total += cars[i].Price;
}
return total;
}
double CustomSum(Car cars[], int numOfCars, char model[]) { // find the price of all cars that is Opel made;
double total = 0;
for (int i = 0; i < numOfCars; i++) {// for each records
if (strcmpi(cars[i].Model, model) == 0)// compare the model
total += cars[i].Price;
}
return total;
}
Comments
Leave a comment