关于 JoyCode

什么是JoyCode:
JoyCode IDE 是一款专为攻克企业级复杂任务而设计的智能编码工具。 上下文引擎实现对代码仓库的深度解析与理解,规约编程助力业务需求精准理解,保障交付效果。开放的AI资源生态、多智能体协同助您驾驭企业复杂的业务场景。

下载地址:
https://joycode.jd.com/download/
在这里插入图片描述

使用说明文档:
https://joycode.jd.com/docs/start/intro

直接使用手机注册即可

注册后获得免费的试用,可以使用主流大模型:
在这里插入图片描述

使用通过提示词创建程序

使用wxWidgets组件C++ 语言开发,实现基础四则运算、平方、开方功能的计算器程序。

切换GLM5.1模型,速度快效果好:

然后工具就会自动拆分任务执行:

点击接受后,就会继续开始写代码:

还可以输出说明文档:

wxCalculator - 跨平台图形界面计算器

基于 wxWidgets 框架开发的 C++ 桌面计算器应用程序,支持基本四则运算及常用数学函数。

功能特性

  • 四则运算:加(+)、减(-)、乘(×)、除(÷)
  • 数学函数:平方(x²)、平方根(√x)、正负取反(±)
  • 编辑操作:退格(⌫)、清除(C)、清除当前输入(CE)
  • 小数支持:支持浮点数输入与运算
  • 错误处理:除零错误及负数开方错误提示
  • 跨平台:支持 Windows、macOS、Linux

技术栈

项目 技术
语言 C++17
GUI 框架 wxWidgets
构建系统 CMake (≥ 3.10)
编译器要求 支持 C++17 标准的编译器

项目结构

.
├── CMakeLists.txt          # CMake 构建配置
├── src/
│   ├── main.cpp            # 应用程序入口,定义 CalculatorApp
│   ├── CalculatorFrame.h   # 计算器主窗口类声明
│   └── CalculatorFrame.cpp # 计算器主窗口类实现
└── README.md

部分代码展示:

void CalculatorFrame::CreateControls() {
    wxPanel* panel = new wxPanel(this);
    wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL);

    // Display
    m_display = new wxTextCtrl(panel, wxID_ANY, "0", wxDefaultPosition,
        wxDefaultSize, wxTE_RIGHT | wxTE_READONLY);
    wxFont displayFont(18, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD);
    m_display->SetFont(displayFont);
    m_display->SetMinSize(wxSize(-1, 50));
    mainSizer->Add(m_display, 0, wxEXPAND | wxALL, 8);

    // Button grid
    wxGridSizer* grid = new wxGridSizer(6, 4, 4, 4);

    // Row 1: C, CE, Backspace, ÷
    grid->Add(new wxButton(panel, ID_CLEAR, "C"), 1, wxEXPAND);
    grid->Add(new wxButton(panel, ID_CLEAR_ENTRY, "CE"), 1, wxEXPAND);
    grid->Add(new wxButton(panel, ID_BACKSPACE, "⌫"), 1, wxEXPAND);
    grid->Add(new wxButton(panel, ID_DIVIDE, "÷"), 1, wxEXPAND);

....


void CalculatorFrame::OnOperator(wxCommandEvent& event) {
    double operand = 0;
    m_display->GetValue().ToDouble(&operand);

    if (!m_operator.IsEmpty() && !m_waitingForOperand) {
        m_currentValue = operand;
        Calculate();
        UpdateDisplay();
    } else {
        m_storedValue = operand;
    }

    switch (event.GetId()) {
        case ID_ADD:      m_operator = "+"; break;
        case ID_SUBTRACT:  m_operator = "-"; break;
        case ID_MULTIPLY:  m_operator = "×"; break;
        case ID_DIVIDE:    m_operator = "÷"; break;
    }
    m_waitingForOperand = true;
}

构建与运行

前置依赖

  1. CMake ≥ 3.10
  2. C++17 编译器(GCC ≥ 7 / Clang ≥ 5 / MSVC ≥ 2017)
  3. wxWidgets ≥ 3.0(需安装 core 和 base 组件)
安装 wxWidgets
  • macOS(Homebrew):

    brew install wxwidgets
    
  • Ubuntu/Debian

    sudo apt install libwxgtk3-dev
    
  • Windows(vcpkg):

    vcpkg install wxwidgets
    

编译步骤

# 克隆项目
git clone <repository-url>
cd calculator

# 配置构建
cmake -B build

# 编译
cmake --build build

# 运行
./build/calculator        # Linux/macOS
.\build\calculator.exe    # Windows

macOS 备注

项目通过 MACOSX_BUNDLE 标记配置为 macOS 应用包,编译后可直接作为 .app 运行。

界面布局

┌─────────────────────────────┐
│                        0    │  ← 显示屏
├──────┬──────┬──────┬───────┤
│  C   │  CE  │  ⌫   │   ÷   │
├──────┼──────┼──────┼───────┤
│  x²  │  √x  │  ±   │   ×   │
├──────┼──────┼──────┼───────┤
│  7   │  8   │  9   │   -   │
├──────┼──────┼──────┼───────┤
│  4   │  5   │  6   │   +   │
├──────┼──────┼──────┼───────┤
│  1   │  2   │  3   │   =   │
├──────┼──────┼──────┼───────┤
│  0   │  .   │      │       │
└──────┴──────┴──────┴───────┘

最后展示效果:

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐