# ZJOI系统本地 C++ IDE

这是由国科主教练李春杰开发设计，给 Mac 学生使用的极简中文 C++ 练习软件。它会在本机启动一个小网页 IDE，后台用本机 `clang++` 编译运行。

特点：

- 中文界面，按钮少，适合新手。
- 代码区使用本地打包的 Monaco Editor，支持行号、C++ 高亮、缩进和撤销重做。
- 支持 `#include <bits/stdc++.h>`。
- 已自检基础课常用内容：`cin`、`cout`、`fixed`、`setprecision`、`swap`、`ceil`、结构体、`sort`、`strlen`。
- 使用 macOS 已安装的 `clang++` 编译器。
- 左侧写代码，右上输入测试数据，右下看运行结果。
- 支持从本机打开 `.cpp` / `.cc` / `.cxx` 等代码文件，保存时生成 `.cpp` 文件。
- 不修改系统目录，万能头文件放在本软件自己的 `include/` 目录里。
- Monaco 静态资源已放在软件包内，学生使用时不需要联网加载编辑器。

## 启动

学生第一次使用时，双击：

```text
一键安装到本机.command
```

以后从桌面双击：

```text
ZJOI C++ 小 IDE.command
```

不想安装时，也可以直接双击：

```text
启动 ZJOI C++ 小 IDE.command
```

## 学生使用流程

1. 写代码。
2. 在“输入数据”里写样例输入。
3. 点击“运行”。
4. 看“运行结果”。

默认模板：

```cpp
#include<bits/stdc++.h> 
using namespace std;
int main(){  

	return 0;
} 
//Ctrl C 复制
//Ctrl V  粘贴
//Ctrl A 全选   
```

## 编译参数

软件内部使用：

```bash
clang++ -std=c++17 -O2 -Wall -I include main.cpp -o main
```

其中 `-I include` 用来支持 `bits/stdc++.h`。

## 基础课自检

运行：

```bash
python3 web_ide.py --self-test
```

会检查：

- `cin` / `cout`
- `cout << fixed << setprecision(2)`
- `swap`
- `ceil`
- `struct`
- `sort`
- `strlen`

## 发布给学生

老师运行：

```bash
./tools/build-release.command
```

生成：

```text
dist/ZJOI-CppIDE-Mac.zip
```
