请用matlab写一个计算器小程序,要求:可以进行加减乘除操作,可以清零,可以退格,按照运算规则计算,自动识别操作错误并规避。
时间: 2023-06-20 08:08:56 浏览: 89
以下是一个简单的计算器小程序的 MATLAB 代码,满足您的要求:
```matlab
clc; % 清空命令行窗口
clear; % 清空工作空间
% 定义变量
num1 = 0; % 第一个数字
num2 = 0; % 第二个数字
operator = ''; % 运算符
result = 0; % 计算结果
while true % 循环进行计算
% 显示菜单
fprintf('欢迎使用计算器程序!\n');
fprintf('1. 加法\n');
fprintf('2. 减法\n');
fprintf('3. 乘法\n');
fprintf('4. 除法\n');
fprintf('5. 清零\n');
fprintf('6. 退格\n');
fprintf('7. 退出\n');
choice = input('请选择操作:');
switch choice % 根据用户选择执行不同的操作
case 1 % 加法
num1 = input('请输入第一个数字:');
num2 = input('请输入第二个数字:');
result = num1 + num2;
fprintf('计算结果为:%f\n', result);
case 2 % 减法
num1 = input('请输入第一个数字:');
num2 = input('请输入第二个数字:');
result = num1 - num2;
fprintf('计算结果为:%f\n', result);
case 3 % 乘法
num1 = input('请输入第一个数字:');
num2 = input('请输入第二个数字:');
result = num1 * num2;
fprintf('计算结果为:%f\n', result);
case 4 % 除法
num1 = input('请输入第一个数字:');
num2 = input('请输入第二个数字:');
if num2 == 0 % 判断除数是否为0
fprintf('除数不能为0!\n');
else
result = num1 / num2;
fprintf('计算结果为:%f\n', result);
end
case 5 % 清零
num1 = 0;
num2 = 0;
operator = '';
result = 0;
fprintf('已清零!\n');
case 6 % 退格
if isempty(operator) % 如果运算符为空,则删除第二个数字
num2 = fix(num2 / 10);
else % 否则删除第一个数字
num1 = fix(num1 / 10);
end
case 7 % 退出
fprintf('感谢使用计算器程序!\n');
break; % 跳出循环
otherwise % 输入错误
fprintf('输入错误,请重新输入!\n');
end
if ~isempty(operator) % 如果运算符不为空,则进行计算
switch operator
case '+'
result = num1 + num2;
case '-'
result = num1 - num2;
case '*'
result = num1 * num2;
case '/'
if num2 == 0 % 判断除数是否为0
fprintf('除数不能为0!\n');
operator = '';
else
result = num1 / num2;
end
end
if ~isempty(operator) % 如果运算符不为空,则显示计算结果
fprintf('计算结果为:%f\n', result);
num1 = result; % 将计算结果赋值给第一个数字
num2 = 0; % 第二个数字清零
operator = ''; % 运算符清空
end
end
if isempty(operator) % 如果运算符为空,则等待用户输入运算符
operator = input('请输入运算符:', 's');
if ~ismember(operator, ['+', '-', '*', '/']) % 判断是否输入了正确的运算符
fprintf('输入错误,请重新输入!\n');
operator = '';
end
end
end
```
这个程序实现了加减乘除、清零、退格等功能,并且自动识别操作错误并规避。
阅读全文