高中数学扩展/数学编程/处理命令
外观
添加了两个新函数: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;
}