跳轉到內容

高中數學擴充套件/數學程式設計/處理命令

來自華夏公益教科書,開放書籍,開放世界

添加了兩個新函式:char retrieve_keypress() 和 char validate(char check_me) ,並更改了兩個函式:void input_message(),char input()。

新增功能

char retrieve_keypress()

此函式確保程式輸入和輸出在控制檯上顯示在不同的行上。這使程式錯誤訊息更清晰,並且當我們列印它時,將使程式輸出更清晰。
  • 從控制檯讀取一個鍵。
  • 在讀取一個鍵後,向控制檯輸出一個換行符。這使程式錯誤訊息更清晰,並且當我們列印它時,將使程式輸出更清晰。

char validate (char checkme)

如果傳遞給它的字元位於此集中:{'=' '+' '-' 'd' 'D' 'x' 'X'},則返回 true,否則返回 false。

更改

void input_message()

更改為提示此程式將處理的命令。

char input()

更改為
  • 呼叫 retrieve_keypress 獲取命令
  • 驗證命令
  • 如果命令無效,則列印錯誤訊息和說明。

要更改的程式碼

[編輯 | 編輯原始碼]
新增並替換以下程式碼
 //function prototypes
 //...
 char retrieve_keypress();
 char validate(char check_me);

 //function definitions
 //...
 void input_message()
 {
    // Prompt for Commands
    cprintf("Key      Action.\n");
    cprintf("=        Display f(x) = result.\n");       
    cprintf("d or D   Change delta.\n");
    cprintf("+        Add delta to x.\n");
    cprintf("-        Subtract delta from x.\n");
    cprintf("x or X   End program.\n");
 }
 char input()
 {
     // Input a character at a time
     read=retrieve_keypress();
     // Validate command
     while (!validate(read))
        {
            cprintf("\nInvalid Command.\n");
            input_message();
            read=retrieve_keypress();
        }
     return read;
 }
char retrieve_keypress()
{
    char ret_val;
    ret_val=getche();
    cprintf("\n");
    return ret_val;
}
 char validate(char check_me)
{
    char ret_val=0;
    switch (check_me)
    {
        case '=':
        case '+':
        case '-':
        case 'd':
        case 'D':
        case 'x':
        case 'X':   ret_val++;
                    break;
    }
    return ret_val;
}


下一步

[編輯 | 編輯原始碼]
華夏公益教科書