Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

数学函数计算器 - 教学版 🎓

一个专为中学数学教学设计的函数计算与图像绘制客户端程序。

Python PyQt5 License


✨ 核心特性

自定义表达式解析器(非 eval,完全手写)
符号求导功能(支持复合函数)
函数图像绘制(Matplotlib 高质量绘图)
智能结果格式化(整数 > π/e > 分数 > 小数)
PyQt5 图形界面(直观易用)
完全离线运行(无需联网)


🚀 快速开始

Windows 用户(推荐)

# 1. 安装依赖
双击运行:安装依赖.bat

# 2. 启动程序
双击运行:启动程序.bat

命令行方式

# 1. 安装依赖
pip install -r requirements.txt

# 2. 运行程序
python main.py

# 3. 测试功能(可选)
python test_calculator.py

📚 支持的数学表达式

基本运算

加法:x + 2
减法:x - 3
乘法:2 * x
除法:x / 2
幂运算:x^2, 2^x

函数

sin(x)          # 正弦函数
cos(x)          # 余弦函数
log(x)          # 自然对数 ln(x)
log(2, x)       # 以 2 为底的对数

常数

pi 或 π         # 圆周率 3.14159...
e               # 自然常数 2.71828...

复合函数

sin(x^2)                    # 三角复合幂函数
log(sin(x))                 # 对数复合三角函数
x^2 + 3*sin(x) - log(x)    # 混合表达式

💡 功能演示

1️⃣ 数值计算

输入:f(x) = x^2 + sin(x)
     x = pi
输出:f(pi) = π²
     (小数形式:9.8696)

2️⃣ 符号求导

输入:f(x) = x^3 + 2*x^2 - 5*x + 1
输出:f'(x) = 3*x^2 + 4*x - 5

3️⃣ 函数绘图

输入:f(x) = sin(x) + cos(x)
操作:点击"绘图"
结果:显示蓝色波形曲线

4️⃣ 导函数绘制

输入:f(x) = x^2
操作:点击"绘制导函数"
结果:蓝色实线(原函数)+ 红色虚线(导函数)

📖 文档导航

文档 说明 适合人群
使用说明.md 详细使用教程 新手用户
快速参考.md 语法速查手册 日常使用
示例集合.md 20+ 教学示例 教师学生
项目结构说明.md 技术架构文档 开发者
项目总览.md 完整项目介绍 所有人
项目检查清单.md 功能验收清单 管理者

🏗️ 技术架构

技术栈

  • 语言:Python 3.7+
  • UI 框架:PyQt5
  • 绘图库:Matplotlib
  • 数值计算:NumPy

模块结构

project/
├── lexer.py          # 词法分析器(~150 行)
├── parser.py         # 语法分析器(~200 行)
├── evaluator.py      # 数值计算器(~150 行)
├── derivative.py     # 符号求导器(~250 行)
├── plotter.py        # 函数绘图器(~80 行)
├── ui.py             # PyQt5 界面(~300 行)
└── main.py           # 程序入口(~20 行)

数据流程

用户输入 → 词法分析 → 语法分析 → AST
                                    ↓
                        ┌───────────┼───────────┐
                        ↓           ↓           ↓
                    数值计算    符号求导    函数绘图
                        ↓           ↓           ↓
                    结果显示    导数显示    图像显示

🧪 测试验证

运行测试脚本:

python test_calculator.py

测试结果:

✅ x^2 (x=3) → 结果: 9, 导数: 2*x
✅ x^2 + sin(x) (x=π) → 结果: 9.8696, 导数: 2*x + cos(x)
✅ 2^x (x=3) → 结果: 8, 导数: 2^x * ln(2)
✅ sin(x) + cos(x) (x=0) → 结果: 1, 导数: cos(x) - sin(x)
✅ log(x) (x=e) → 结果: 1, 导数: 1/x
✅ x^3 + 2*x^2 - 5*x + 1 (x=2) → 结果: 7
✅ sin(x^2) (x=1) → 结果: 0.8415, 导数: cos(x^2) * 2*x

所有测试通过!✅

🎓 教学应用场景

场景 1:函数性质演示

  • 输入 x^2x^3,对比图像
  • 观察偶函数和奇函数的对称性

场景 2:导数与单调性

  • 输入 x^3 - 3*x
  • 绘制原函数和导函数
  • 观察导数正负与函数增减的关系

场景 3:三角函数周期

  • 输入 sin(x)sin(2*x)
  • 对比周期变化

场景 4:复合函数求导

  • 输入 sin(x^2)
  • 展示链式法则:cos(x^2) * 2*x

📋 系统要求

  • 操作系统:Windows / macOS / Linux
  • Python 版本:3.7 或更高
  • 内存:至少 512MB
  • 磁盘空间:约 100MB(含依赖)

🔧 故障排除

问题:程序无法启动

解决:检查依赖安装

pip install PyQt5 matplotlib numpy

问题:表达式解析错误

解决

  • 检查括号是否匹配
  • 检查函数名拼写(sin, cos, log)

问题:图像不显示

解决

  • 检查函数定义域(如 log(x) 要求 x>0)
  • 点击"清除图像"后重新绘制

📈 版本规划

✅ Phase 1(当前版本 1.0)

  • 基础表达式解析
  • 数值计算
  • 符号求导
  • 函数绘图
  • PyQt5 界面

🔄 Phase 2(计划中)

  • 表达式自动简化
  • 更多函数(tan, arcsin, sqrt)
  • 隐式乘法支持(2x → 2*x)
  • 求导步骤显示
  • 极值点自动标注
  • 保存/加载功能
  • 导出图像(PNG/PDF)

🤝 贡献指南

欢迎贡献代码!请遵循以下步骤:

  1. Fork 本项目
  2. 创建功能分支
  3. 提交更改
  4. 创建 Pull Request

代码规范

  • 遵循 PEP 8
  • 添加中文注释
  • 编写单元测试

📄 许可证

本项目采用 MIT 许可证,可自由用于教学和学习。


🙏 致谢

感谢以下开源项目:

  • PyQt5 - 强大的 GUI 框架
  • Matplotlib - 优秀的绘图库
  • NumPy - 高效的数值计算

📞 项目信息

  • 项目名称:数学函数计算器 - 教学版
  • 版本:1.0 (Phase 1)
  • 状态:✅ 完成并可交付
  • 开发日期:2026年1月
  • 开发者:数学教学工具开发组

🎉 开始使用

现在就运行 python main.py 开始探索数学的奥秘吧!

如有问题,请查阅 使用说明.md 或运行 python test_calculator.py 验证安装。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages