C语言做的简易计算器

132 阅读2分钟

简易计算器

这是一个使用C语言实现的简易计算器,支持基本的数学运算和历史记录功能。

功能特性

基本运算

  • 加法 (+)
  • 减法 (-)
  • 乘法 (*)
  • 除法 (/)
  • 取模运算 (%)

高级功能

  • 括号优先级支持:使用栈结构实现,支持复杂的嵌套表达式
  • 历史记录:自动记录所有计算历史,最多保存100条记录
  • 文件持久化:历史记录自动保存到 calculator_history.txt 文件
  • 时间戳:每条历史记录都包含计算时间

编译和运行

编译程序

gcc calculator.c -o calculator

运行程序

# Windows系统
calculator.exe

# Linux/macOS系统
./calculator

使用说明

主菜单

程序启动后会显示主菜单:

=== 简易计算器 ===
1. 输入表达式计算
2. 查看历史记录
3. 清空历史记录
4. 退出
================
请选择操作 (1-4):

输入表达式

  • 支持数字、运算符和括号
  • 支持小数运算
  • 支持空格分隔(可选)
  • 示例:
    • 2 + 3
    • 10 * (5 - 2)
    • 15 % 4
    • 3.5 * 2 + 1

历史记录

  • 选择选项2查看历史记录
  • 历史记录包含表达式、结果和时间戳
  • 选择选项3清空历史记录
  • 程序退出时自动保存历史记录到文件

技术实现

栈结构

  • 使用栈实现中缀表达式转后缀表达式
  • 支持括号优先级处理
  • 使用两个栈:操作符栈和数字栈

算法

  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类型
  • 程序退出时会等待用户按键,避免窗口直接关闭

故障排除

如果程序运行时出现闪退:

  1. 确保使用正确的编译命令:gcc calculator.c -o calculator
  2. 在命令行中运行程序,而不是双击exe文件
  3. 检查是否有防病毒软件误删exe文件
  4. 确保系统已安装必要的C运行时库

1.png