Code:
// Compiler Includes
#include <stdio.h>
#include <string.h>
//User defined definitions
typedef enum {
JAN = 1, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC
} MONTH_TYPE;
typedef struct {
char make[20];
char model[20];
int odometer;
} AUTO_TYPE;
typedef struct {
int month;
int day;
int year;
} DATE_TYPE;
typedef struct {
double tankCap;
double curTankLevel;
} TANK_TYPE;
// Function Prototypes
void PrintCarInfo (AUTO_TYPE carToPrint);
AUTO_TYPE ScanCarByValue(void);
void PrintDateInfo(DATE_TYPE ManDateToPrint, DATE_TYPE PurDateToPrint);
DATE_TYPE ScanDateByValue(void);
void PrintTankInfo(TANK_TYPE tankToPrint);
TANK_TYPE ScanTankByValue(void);
// function main
int main(void){
//Local variables
AUTO_TYPE carOne = {"\0", "\0",0};
DATE_TYPE carOneManDate = { 0,0,0};
DATE_TYPE carOnePurDate = { 0,0,0};
TANK_TYPE carOneTank = {0.0, 0.0};
//begin
carOne = ScanCarByValue();
printf("enter the manufacture date\n");
carOneManDate = ScanDateByValue();
printf("enter the purchase date\n");
carOnePurDate = ScanDateByValue();
printf("enter the fuel measurements\n");
carOneTank = ScanTankByValue();
PrintCarInfo(carOne);
PrintDateInfo(carOneManDate, carOnePurDate);
PrintTankInfo(carOneTank);
return 0;
} // end function main
void PrintCarInfo (AUTO_TYPE carToPrint) {
printf("\n==================================================================\n");
printf("MAKE: %s MODEL: %s Odometer: %d\n",carToPrint.make,
carToPrint.model, carToPrint.odometer);
}
void PrintDateInfo (DATE_TYPE ManDateToPrint, DATE_TYPE PurDateToPrint) {
printf("\n------------------------------------------------------------------\n");
printf("MANUFACTURED ON: %d, %d, %d PURCHASED ON: %d, %d, %d\n", ManDateToPrint.month,
ManDateToPrint.day, ManDateToPrint.year,PurDateToPrint.month,PurDateToPrint.day,
PurDateToPrint.year);
}
void PrintTankInfo(TANK_TYPE tankToPrint) {
printf("\nFUEL CAPACITY IS: %.2f GALLONS\t", tankToPrint.tankCap);
printf("CURRENT FUEL LEVEL IS: %.2f%%\n", ((tankToPrint.curTankLevel/tankToPrint.tankCap)*100));
}
AUTO_TYPE ScanCarByValue (void) {
AUTO_TYPE inputCar = {"<NULL>", "<NULL>", 0};
printf("Enter car make: ");
scanf("%s", inputCar.make);
printf("Enter car model: ");
scanf("%s", inputCar.model);
printf("Enter odometer: ");
scanf("%d", &inputCar.odometer);
return inputCar;
} // end function ScanCarByValue
DATE_TYPE ScanDateByValue(void) {
DATE_TYPE inputDate = {0,0,0};
printf("Enter month: ");
scanf("%d", &inputDate.month);
printf("Enter date: ");
scanf("%d", &inputDate.day);
printf("Enter Year: ");
scanf("%d", &inputDate.year);
return inputDate;
}
TANK_TYPE ScanTankByValue(void) {
TANK_TYPE inputTank = { 0.0, 0.0};
printf("enter tank capacity: ");
scanf("%lf", &inputTank.tankCap);
printf("enter current level: ");
scanf("%lf", &inputTank.curTankLevel);
return inputTank;
}
// end file