Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  assigment 1
Language: C/C++
Code:
#include <stdio.h>


/*
Author: Zavier
Date: 06/05/19
Purpose: ASSIGMENT 1, money change machine dollars and cents
*/

  void DisplayMenu(void)
  {
    printf("Hi, please input a amount of change in dollars and cents, the cents must be in the range of 5 - 95 and a multiple of 5: ");

    return;
  }

  float GetChoice(void)
  {
    double userchoice;
    int dollars, cents;

    scanf("%lg", &userchoice);//* command to get input   */
    dollars = (int) userchoice;//* to test it was a valid value i had to convert it here as well   */
    cents = (int) (((userchoice - dollars)*100) + 0.5);


    while (dollars <0)
    {
      printf("\nYou have inputed a negative value, please reinput the correct value: ");
      scanf("%lg", &userchoice);

      dollars = (int) userchoice;//* updates in the loop each time  */
      cents = (int) (((userchoice - dollars)*100) + 0.5);
     
    }

    while (!((cents>=5 && cents<=95) && (cents%5==0)))
    {
      printf("\nThe cents is wrong, it should be in the range of 5 - 95 and a multiple of 5, please reinput the correct value: ");
      scanf("%lg", &userchoice);

      dollars = (int) userchoice;//* updates in the loop each time  */
      cents = (int) (((userchoice - dollars)*100) + 0.5);
    }

    return(userchoice);
  }
  
  int * Convertmoney(double money)
  {
    static int moneyarray[2];

    moneyarray[0] = (int) money;
    moneyarray[1] = (int) (((money - moneyarray[0])*100) + 0.5);

    return moneyarray;
  }


  int * proccessnotes(int *moneyaray)
  {
    static int notes[7];
    
    int tempmoney = moneyaray[0]; /* this gets the cents that we converted earlier, so it eliminates excess code*/

    notes[0] =  tempmoney / 100;
    tempmoney = tempmoney - (100 * notes[0]);/* Could of replaced it with tempmoney %= 50  which dose the same thing but i wanted to show i knew what it ment, meh */

    notes[1] = tempmoney / 50;
    tempmoney = tempmoney - (50 * notes[1]); 

    notes[2] =  tempmoney / 20;
    tempmoney = tempmoney - (20 * notes[2]);

    notes[3] = tempmoney / 10;
    tempmoney = tempmoney - (10 * notes[3]);
  
    notes[4] = tempmoney / 5;
    tempmoney = tempmoney - (5 * notes[4]);
    
    notes[5] = tempmoney / 2;
    tempmoney = tempmoney - (2 * notes[5]);
  
    notes[6] = tempmoney / 1;
    tempmoney = tempmoney - (1 * notes[6]);
    return notes;
  }

  int * proccesschange(int *moneyaray)
  {
    static int coins[4];

    int tempmoney = moneyaray[1]; /* this gets the cents that we converted earlier, so it eliminates excess code*/

    coins[0] = tempmoney / 50;
    tempmoney = tempmoney - (50 * coins[0]); /* Could of replaced it with tempmoney %= 50  which dose the same thing but i wanted to show i knew what it ment, meh */


    coins[1] =  tempmoney / 20;
    tempmoney = tempmoney - (20 * coins[1]);

    coins[2] = tempmoney / 10;
    tempmoney = tempmoney - (10 * coins[2]);
  
    coins[3] = tempmoney / 5;
    tempmoney = tempmoney - (5 * coins[3]);
    
    return coins;
  }

  void printchange(int *userchange, int *usernotes)
  {
    printf("\nWhy hello their, your notes are \nHundread dollar notes: %d ", usernotes[0]);
    printf("\nFifty dollar notes: %d ", usernotes[1]);
    printf("\nTwenty dollar notes: %d ", usernotes[2]);
    printf("\nTen dollar notes: %d", usernotes[3]);
    printf("\nFive dollar notes: %d ", usernotes[4]);
    printf("\n~~~~~~~~~~~And your coin change is,~~~~~~~~~~~\nTwo dollar coins: %d ", usernotes[5]);
    printf("\nOne dollar coins: %d ", usernotes[6]);

    printf("\nFifty cent coins: %d ", userchange[0]);
    printf("\nTwenty cent coins: %d ", userchange[1]);
    printf("\nTen cent coins: %d ", userchange[2]);
    printf("\nFive cent coins: %d\nThank you for using this programe.", userchange[3]);

    return;
  }
 
  
  int main(void) /* MAIN MENU #######################################################################*/
  {
    double money;
    int *userchange, *usernotes, *moneyarray;

      DisplayMenu();
      money=GetChoice();
      moneyarray=Convertmoney(money);
      userchange=proccesschange(moneyarray);
      usernotes=proccessnotes(moneyarray);
      printchange(userchange, usernotes);
      
    return(0);
  }


Comments: