Write a program that can find the price of all cars in a gallery, find the price of all cars that is
made in the specific year and made. Use structure and assume the maximum number of cars is
100 but ask the user how many cars he has.
Use the following structure and prototypes use the string library when needed.
struct Car
{
int Year;
double Price;
char Color[10];
char Type[20];
int Id;
};
void InputCars(struct Car[]);
void OutputCars(struct Car[]);
double AllPrices(struct Car[]);// find the price of all cars
double CustomSum(struct Car[],int);// find the price of all cars that is made in the year 2009;
double CustomSum(struct Car[],char[]);// find the price of all cars that is Opel made;
1
Expert's answer
2015-01-22T01:57:55-0500
#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