简易计算器
这是一个使用C语言实现的简易计算器,支持基本的数学运算和历史记录功能。
功能特性
基本运算
- 加法 (+)
- 减法 (-)
- 乘法 (*)
- 除法 (/)
- 取模运算 (%)
高级功能
- 括号优先级支持:使用栈结构实现,支持复杂的嵌套表达式
- 历史记录:自动记录所有计算历史,最多保存100条记录
- 文件持久化:历史记录自动保存到
calculator_history.txt文件 - 时间戳:每条历史记录都包含计算时间
编译和运行
编译程序
gcc calculator.c -o calculator
运行程序
# Windows系统
calculator.exe
# Linux/macOS系统
./calculator
使用说明
主菜单
程序启动后会显示主菜单:
=== 简易计算器 ===
1. 输入表达式计算
2. 查看历史记录
3. 清空历史记录
4. 退出
================
请选择操作 (1-4):
输入表达式
- 支持数字、运算符和括号
- 支持小数运算
- 支持空格分隔(可选)
- 示例:
2 + 310 * (5 - 2)15 % 43.5 * 2 + 1
历史记录
- 选择选项2查看历史记录
- 历史记录包含表达式、结果和时间戳
- 选择选项3清空历史记录
- 程序退出时自动保存历史记录到文件
技术实现
栈结构
- 使用栈实现中缀表达式转后缀表达式
- 支持括号优先级处理
- 使用两个栈:操作符栈和数字栈
算法
- 中缀转后缀:使用调度场算法
- 后缀求值:使用栈进行表达式求值
- 优先级处理:正确处理运算符优先级和括号
文件操作
- 历史记录自动保存到
calculator_history.txt - 程序启动时自动加载历史记录
- 支持文件不存在的情况
错误处理
- 除零错误检测
- 取模运算除零检测
- 表达式格式验证
- 文件操作错误处理
- 输入验证和缓冲区清理
示例输出
欢迎使用简易计算器!
支持的操作:+ - * / % ( )
示例:2 + 3 * (4 - 1)
=== 简易计算器 ===
1. 输入表达式计算
2. 查看历史记录
3. 清空历史记录
4. 退出
================
请选择操作 (1-4): 1
请输入表达式: 2 + 3 * (4 - 1)
结果: 2 + 3 * (4 - 1) = 11.00
系统要求
- Windows/Linux/macOS
- GCC编译器
- 标准C库
注意事项
- 程序最多保存100条历史记录
- 历史记录文件会在程序目录下创建
- 支持的最大表达式长度为1000字符
- 所有数值计算使用double类型
- 程序退出时会等待用户按键,避免窗口直接关闭
故障排除
如果程序运行时出现闪退:
- 确保使用正确的编译命令:
gcc calculator.c -o calculator - 在命令行中运行程序,而不是双击exe文件
- 检查是否有防病毒软件误删exe文件
- 确保系统已安装必要的C运行时库