Skip to content

soodddd/CalcLab

Repository files navigation

CalcLab

面向科研场景的智能计算与数据工具 · 移动端 App(Flutter 跨平台)

License: MIT Flutter Platform Tests Analyze

CalcLab 是一款专为理工科学生与科研人员设计的智能计算 App。它把"科学计算 → AI 辅助数据清洗 → 误差校正 → 可视化 → 实验报告导出"整合到一个 App 中,灵感来自卡西欧 fx-991CN X 的自然书写体验,同时扩展了科研工作流所需的全部能力。


✨ 核心特性

🧮 P0 — 核心计算

  • 卡西欧风格自然书写:模拟 fx-991CN X 键盘布局,按分数键出现分子/分母占位符,按积分键出现积分模板
  • MathO / LineO 双模式:可一键切换数学符号显示与线性文本
  • 智能历史:每一步计算自动持久化到 SQLite,支持命名分组与文字注释
  • 基础 + 统计计算:四则运算、三角函数、对数、指数、积分、求和、阶乘;均值、方差、标准差、线性回归

🔬 P1 — 科研增强

  • 复数运算:加减乘除、模、辐角、共轭
  • 矩阵运算:加减乘、转置、求逆、行列式
  • 方程求解器:一元/多元线性方程组
  • 完整统计套件
    • 描述性统计(均值、中位数、众数、方差、标准差、偏度、峰度)
    • 概率分布(正态、t、χ²、F、二项、泊松)
    • 异常值检测(3σ、Grubbs、IQR)
    • 线性/多项式回归
    • 直方图、KDE 估计
    • 数据清洗、显著数字、不确定度传递
  • 单位换算:长度、质量、时间、温度、能量、压力等 20+ 物理量
  • 物理常数库:光速 c、普朗克 h、阿伏伽德罗 NA 等 30+ 常用常数
  • LaTeX 渲染:使用 flutter_math_fork 高质量渲染数学公式
  • 报告生成:导出 PDF / PNG / CSV,附计算过程与图表

🤖 P2 — AI 加分

  • AI 公式识别 → 计算:拍照或粘贴 LaTeX 公式,自动转换为表达式并执行计算
  • 自然语言 → 计算:「计算 2+3 的阶乘」「求 1,2,3,4,5 的均值」一句话搞定
  • 协作分享:一键生成分享码(CALCLAB: 前缀 + base64 编码),跨设备同步历史

📸 截图

即将补充。可通过 flutter run 启动后查看。


🚀 快速开始

环境要求

  • Flutter SDK ≥ 3.12
  • Dart SDK ≥ 3.12
  • Android Studio / Xcode(对应平台)
  • Git

安装与运行

# 1. 克隆仓库
git clone https://github.com/soodddd/CalcLab.git
cd CalcLab

# 2. 安装依赖
flutter pub get

# 3. 运行(选择已连接的设备或模拟器)
flutter run

# 4. 构建发布 APK
flutter build apk --release

详细安装说明(Windows / macOS / Linux、平台配置、常见问题)请见 docs/INSTALLATION.md


📚 文档

文档 说明
docs/INSTALLATION.md 完整安装与平台配置指南
docs/USER_GUIDE.md 用户使用手册(功能详解 + 操作步骤)
docs/DEVELOPER_GUIDE.md 开发者指南(架构、模块、扩展)
CHANGELOG.md 版本更新日志
CalcLab-创意方案.md 产品创意方案(P0/P1/P2 详细定义)

🏗️ 技术栈

  • 框架:Flutter 3.x(Dart 3.x)
  • 状态管理:内置 StatefulWidget + InheritedWidget
  • 持久化:SQLite(计算历史)+ SharedPreferences(设置)
  • 数学计算math_expressions(表达式求值)
  • 公式渲染flutter_math_fork(LaTeX → Widget)
  • 图表fl_chart(2D 可视化)
  • PDFpdf + printing
  • 图片image(格式转换、像素操作)

🧱 项目结构

lib/
├── core/                          # 业务核心(纯 Dart,可独立复用)
│   ├── calculator/                # 计算引擎
│   │   ├── expression_engine.dart # 表达式求值
│   │   ├── complex.dart           # 复数
│   │   ├── matrix.dart            # 矩阵
│   │   ├── equation_solver.dart   # 方程求解
│   │   ├── latex_to_expression.dart # LaTeX 反向解析
│   │   └── math_renderer.dart     # LaTeX 渲染封装
│   ├── statistics/                # 统计模块
│   │   ├── descriptive.dart
│   │   ├── distributions.dart
│   │   ├── outliers.dart
│   │   ├── regression.dart
│   │   ├── histogram.dart
│   │   ├── data_cleaning.dart
│   │   ├── significant_figures.dart
│   │   └── uncertainty.dart
│   ├── units/                     # 单位与常数
│   │   ├── unit_converter.dart
│   │   └── physical_constants.dart
│   ├── ai/                        # AI 模块(P2)
│   │   ├── formula_recognizer.dart
│   │   ├── nl_query_engine.dart
│   │   ├── local_rule_engine.dart
│   │   └── ai_service.dart
│   ├── share/                     # 分享服务(P2)
│   │   └── share_service.dart
│   ├── export/                    # 导出
│   │   ├── csv_exporter.dart
│   │   └── image_exporter.dart
│   ├── report/                    # 报告生成
│   │   └── report_generator.dart
│   └── storage/                   # 持久化
│       ├── history_model.dart
│       └── history_store.dart
├── ui/                            # 界面层
│   ├── calculator/                # 主计算器页
│   ├── data/                      # 数据清洗页
│   ├── chart/                     # 图表页
│   ├── history/                   # 历史页
│   ├── units/                     # 单位换算页
│   ├── advanced/                  # 高级功能页(复数/矩阵/方程)
│   ├── report/                    # 报告导出弹窗
│   ├── formula/                   # 公式识别页(P2)
│   ├── ai/                        # 自然语言查询页(P2)
│   └── share/                     # 分享弹窗(P2)
└── main.dart                      # 入口
test/                              # 单元测试(19 个文件,382 用例)
integration_test/                  # 集成测试

✅ 验证

本项目已通过完整三路验收:

验证项 结果
flutter analyze ✅ 0 issues
flutter test ✅ 382 tests passing
flutter build apk --debug ✅ Built app-debug.apk (174MB)

🧪 测试

# 运行全部单元测试
flutter test

# 运行指定文件
flutter test test/expression_engine_test.dart

# 集成测试(需先连接设备/模拟器)
flutter test integration_test/

🤝 贡献

欢迎贡献!流程:

  1. Fork 本仓库
  2. 创建特性分支(git checkout -b feature/amazing-feature
  3. 提交修改(git commit -m 'feat: add amazing feature'
  4. 推送到远程(git push origin feature/amazing-feature
  5. 创建 Pull Request

提交前请确保:

  • flutter analyze 无 warning
  • flutter test 全部通过
  • 新功能附带单元测试
  • 遵循现有代码风格

详细开发指南请见 docs/DEVELOPER_GUIDE.md


📄 许可证

本项目基于 MIT 协议 开源,详见 LICENSE 文件。

MIT License - Copyright (c) 2026 CalcLab Contributors

🙏 致谢

  • 灵感来源:卡西欧 fx-991CN X 自然书写计算器
  • Flutter 与 Dart 社区
  • 所有开源依赖的作者

📮 联系方式


Built with ❤️ by CalcLab Contributors

About

CalcLab - 面向科研场景的智能计算与数据工具 (Flutter)。P0/P1/P2 完整交付: 科学计算、统计、复数/矩阵/方程、LaTeX、AI 公式识别、自然语言、协作分享。

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages