Какую часть функции process_time_cards () я должен поместить в main? Я до сих пор неясно, аргументы функции и входы / выходы - PullRequest
0 голосов
/ 28 февраля 2020

Я совершенно новичок в C, так что прости, как новичок в этом вопросе ... Мне все еще немного неясно, как вызывать функцию. Мне нужно написать функцию с именем process_time_cards (), которая обрабатывает еженедельные карты времени для сотрудников компании. Вам необходимо ввести идентификатор, отработанные часы и почасовую ставку. Кроме того, мы должны заплатить полтора раза за все часы, отработанные свыше тридцати. Наконец, мы должны вычесть 30% для федеральных налогов и 10% для государственных налогов из валовой заработной платы. Ниже приведен код, который у меня есть, и я действительно заблудился, как его исправить. Если я введу 20 долларов / час и 50 часов, получится 1300,00 брутто и 700,00 net. Предполагается выйти на 1100 брутто и 660,00 net. Пожалуйста, дайте мне знать, что я делаю неправильно!


    //Lesson 9 Assignment - Salary Lab 
    //** STEPWISE REFINEMENT **

    // 0 - Header files and constant macro values
    #include  // printf(), scanf(), puts()
    #define SENTINEL -1 // sentinel value 
    #define FED_TAX 0.30 // federal tax
    #define STATE_TAX 0.10 // state tax
    #define MIN_HOURS 0.00 // min amount of hours
    #define MAX_HOURS 40.00 // maximum hours before we implement overtime

    // 1 - Display title of lab
    void display_title() {
    puts("Salary Lab");
    }

    // 2 - Create a function that processes weekly time cards for all employees
    // 2.1 - Inputs = ID#, hourly pay, no. of hours worked
    void process_time_cards() {

    // 2.1.1 Declare variables and types
    int id; // Input - user provides identification number
    double hourly_pay; // Input - hourly pay
    double overtime; // (hours_worked - MAX_HOURS)
      double hours_worked; // Input - hours worked
      double gross_pay; // hourly pay * hours worked (BEFORE TAXES)
      double net_pay; // federal and state tax subtracted from gross pay
      double overtime_rate; // hourly_pay + (hourly_pay / 2)
      double federal_tax;
      double state_taxes;
      double overtime_total; // product of ot hours worked and ot rate
      double overtime_gross;
      double overtime_net;
      double straight_gross;
      double straight_net;


      // 3- Prompt for Information
      // 3.1 - Prompt Employee ID
      // 3.1.1 - Set conditions for Employee ID
      // 3.1.1.1 - While true, enter ID
      while (1) {
      printf("Enter Employee ID (or %d to exit): ", SENTINEL);
      scanf("%d", &id);

      // 3.1.1.2 - nested if - if id == sentinel value, break the loop
      if (id == SENTINEL) {
      printf("All done.\n"); 
      break;
      }

      // 3.2 - Employee Hours Worked for the week
      printf("Enter Hours Worked: ");
      scanf("%lf", &hours_worked);

      // define overtime
      overtime = hours_worked - MAX_HOURS;

      // 3.2 - Employee Hourly Wage
      printf("Enter Hourly Wage: ");
      scanf("%lf", &hourly_pay);

      //3.2.1 - Calculate gross and net pay

      gross_pay = hourly_pay * hours_worked;
      federal_tax = gross_pay * FED_TAX; 
      state_taxes = gross_pay * STATE_TAX;
      net_pay = gross_pay - federal_tax - state_taxes;

      // 6 - Calculate Overtime 
      // 6.1 - Calculate 
      // 6.1.1 Calculates straight gross and net payments if hours worked is under 40


      while (hours_worked  MAX_HOURS) {
      overtime_rate = hourly_pay * 1.5;
      overtime_gross = overtime * overtime_rate;
      overtime_net = overtime_gross - federal_tax - state_taxes;
      break;
      }

      gross_pay = straight_gross + overtime_gross;
      net_pay = straight_net + overtime_net;
      }
      /// ^ This value also works
      /// We just need to add them... 


      printf("ID-    Gross Pay-     Net10-\n");
      printf("%d-    %.2lf-        %.2lf-\n", id, gross_pay, net_pay);
      break;
      }
      }



      // Display Information to user through main function 
      int main() {
      display_title(); 
      process_time_cards();
      return 0;
      }



Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...