2016-09-30 4 views
-3

Простой проект с использованием оператора switch. У меня есть 4 варианта, и 1-3 отлично работает. 4-й выбор в инструкции switch (case 4, duh) должен побудить пользователя «поблагодарить вас!», А затем подождать несколько секунд, чтобы они могли его прочитать, а затем завершить программу. Я получил «спасибо»! часть вниз xD.Запросить пользователя, подождать несколько секунд, а затем завершить программу?

Я просто не знаю, как закончить программу автоматически. Я попробовал функцию выхода (0) и не повезло. Также имейте в виду, что мне нужно показать сообщение за несколько секунд до его закрытия.

Вот код:

/* ------------------------------------------------- 
    The purpose of this program is to simulate a 
    basic ATM machine and display four key options: 
    deposit, withdraw, check balance, and exit. 
    A switch statement must be used. 
------------------------------------------------ */ 


#include <stdio.h> 
#include <stdlib.h> 

int main() 
{ 

    // Assume a balance of $500.00 for all users. 
    #define BALANCE 500.00 

    // Declare variables. 
    int iMenuSelect = 0; 
    double dUserDeposit = 0.0, dNewBalance = 0.0; 
    double dUserWithdraw = 0.0; 

    //Print the menu to the console. 
    printf("\t*******************\n"); 
    printf("\t1 - Deposit\n"); 
    printf("\t2 - Withdraw\n"); 
    printf("\t3 - Check Balance\n"); 
    printf("\t4 - Exit\n"); 
    printf("\t*******************\n\n"); 

    //Prompt the user for their selection and store the value. 
    printf("Please type the number of the option you would like to perform > "); 
    scanf("%d", &iMenuSelect); 

    //Begin switch statement of variable iMenuSelect. 
    switch(iMenuSelect) 
    { 
     // Deposit, create new balance. 
     case 1: 

      // Ask for deposit amount, then add it and print new balance. 
      printf("\nHow much would you like to deposit? > "); 
      scanf("%lf", &dUserDeposit); 

      // Create and display new balance after deposit. 
      dNewBalance = dUserDeposit + BALANCE; 

      printf("\nYour new balance is $%.2f.\n", dNewBalance); 
      break; 

     // Withdraw, create new balance. 
     case 2: 

      // Ask for withdraw amount, then subtract it and print new balance. 
      printf("\nHow much would you like to withdraw? > "); 
      scanf("%lf", &dUserWithdraw); 

      // Create and display new balance. 
      dNewBalance = BALANCE - dUserWithdraw; 

      if(dUserWithdraw <= 500) 
      { 
       printf("\nHere is your money. Your new balance is $%.2f.\n", dNewBalance); 
      } 

      else 
      { 
       printf("\nYou have insufficient funds.\n"); 
      } 

      break; 

     // Check balance, display BALANCE. 
     case 3: 

      // Display balance. 
      printf("\nYour balance is %.2f\n", BALANCE); 

      break; 

     // Exit program. 
     case 4: exit(EXIT_FAILURE); 
      break; 

     default: printf("\n\nWARNING: Invalid option selected.\n\n"); 
    } 

    return 0; 

} 

EDIT 11/19/2016:

я мог бы просто использовать системы ("PAUSE"); и ждал, когда пользователь выйдет, когда выйдет. Я получил гораздо больше опыта в программировании, так как размещал это. Извините за загромождение сайта.

+0

без кода будет сложно ... –

+0

Не могли бы вы приложить код для справки. Ознакомьтесь с рекомендациями [полные минимальные и проверенные примеры справки по отладке] (http://stackoverflow.com/help/mcve). –

+0

"* показать *" и "* закрыть *" "* сообщение *"? Вы используете любую систему окон? – alk

ответ

1

Вы можете сделать свою собственную переносную функцию задержки, используя стандартную функцию clock().

#include <stdio.h> 
#include <time.h> 

void sleeper(unsigned seconds) 
{ 
    clock_t start, period, elapsed; 
    period = seconds * CLOCKS_PER_SEC; 
    start = clock(); 
    do { 
     elapsed = clock() - start; 
    } while(elapsed < period); 
} 

int main(void) { 
    printf("Hello, World!\n"); 
    sleeper(3); 
    return 0; 
} 
Смежные вопросы