Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
CSDN 技术社区
skill_tree_oo
提交
9e7c4030
S
skill_tree_oo
项目概览
CSDN 技术社区
/
skill_tree_oo
通知
4
Star
0
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
skill_tree_oo
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
9e7c4030
编写于
2月 24, 2022
作者:
F
feilong
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
初始化reademe
上级
d992fd15
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
147 addition
and
3 deletion
+147
-3
README.md
README.md
+145
-1
data/1.面向对象程序设计初阶/1.面向对象程序设计基础/1.HelloOO/config.json
data/1.面向对象程序设计初阶/1.面向对象程序设计基础/1.HelloOO/config.json
+1
-1
data/1.面向对象程序设计初阶/1.面向对象程序设计基础/1.HelloOO/helloworld.json
data/1.面向对象程序设计初阶/1.面向对象程序设计基础/1.HelloOO/helloworld.json
+1
-1
data/1.面向对象程序设计初阶/1.面向对象程序设计基础/1.HelloOO/helloworld.md
data/1.面向对象程序设计初阶/1.面向对象程序设计基础/1.HelloOO/helloworld.md
+0
-0
data/1.面向对象程序设计初阶/1.面向对象程序设计基础/config.json
data/1.面向对象程序设计初阶/1.面向对象程序设计基础/config.json
+0
-0
未找到文件。
README.md
浏览文件 @
9e7c4030
# skill_tree_oo
面向对象程序设计技能树
`面向对象程序设计技能树`
是
[
技能森林
](
https://gitcode.net/csdn/skill_tree
)
的一部分。
## 目录结构说明
*
技能树
`骨架文件`
:
*
位置:
`data/tree.json`
*
说明:该文件是执行
`python main.py`
生成的,请勿人工编辑
*
技能树
`根节点`
配置文件:
*
位置:
`data/config.json`
*
说明:可编辑配置关键词等字段,其中
`node_id`
字段是生成的,请勿编辑
*
技能树
`难度节点`
:
*
位置:
`data/xxx`
,例如:
`data/1.面向对象程序设计初阶`
*
说明:
*
每个技能树有 3 个等级,目录前的序号是必要的,用来保持文件夹目录的顺序
*
每个目录下有一个
`config.json`
可配置关键词信息,其中
`node_id`
字段是生成的,请勿编辑
*
技能树
`章节点`
:
*
位置:
`data/xxx/xxx`
,例如:
`data/1.面向对象程序设计初阶/1.面向对象程序设计基础`
*
说明:
*
每个技能树的每个难度等级有 n 个章节,目录前的序号是必要的,用来保持文件夹目录的顺序
*
每个目录下有一个
`config.json`
可配置关键词信息,其中
`node_id`
字段是生成的,请勿编辑
*
技能树
`知识节点`
:
*
位置:
`data/xxx/xxx/xxx`
,例如:
`data/1.面向对象程序设计初阶/1.面向对象程序设计基础/1.HelloOO`
*
说明:
*
每个技能树的每章有
`n`
个知识节点,目录前的序号是必要的,用来保持文件夹目录的顺序
*
每个目录下有一个
`config.json`
*
其中
`node_id`
字段是生成的,请勿编辑
*
其中
`keywords`
可配置关键字字段
*
其中
`children`
可配置该
`知识节点`
下的子树结构信息,参考后面描述
*
其中
`export`
可配置该
`知识节点`
下的导出习题信息,参考后面描述
## `知识节点` 子树信息结构
例如
`data/1.面向对象程序设计初阶/1.面向对象程序设计基础/1.HelloOO/config.json`
里配置对该知识节点子树信息结构:
```
json
{
//
...
"children"
:
[
//
TODO
...
],
}
```
## `知识节点` 的导出习题编辑
例如
`data/1.面向对象程序设计初阶/1.面向对象程序设计基础/1.HelloOO/config.json`
里配置对该知识节点导出的习题
```
json
{
//
...
"export"
:
[
"helloworld.json"
]
}
```
在 export 字段中,我们列出习题定义 json ,下面我们了解如何编写习题。
## `知识节点` 的导出习题选项配置编辑
目前我们支持使用 markdown 语法直接编辑习题和各选项。
如前文内容,我们在知识节点下增加习题
`helloworld`
的定义文件,即在
`data/1.面向对象程序设计初阶/1.面向对象程序设计基础/1.HelloOO`
目录增加一个
`helloworld.json`
文件:
```
json
{
"type"
:
"code_options"
,
"author"
:
"xxx"
,
"source"
:
"helloworld.md"
,
"notebook_enable"
:
false
}
```
其中 type 字段目前都固定是
`code_options`
,
`notebook_enable`
字段决定这个习题是否生成对应的
`notebook`
,可以默认设置为false。根据具体情况写好其它字段,注意这里
`source`
的文件名,我们指定了一个 markdwon 文件。现在我们新建一个
`helloworld.md`
并编辑为:
````
markdown
# Hello OO
以下哪个是面向对象程序代码
## 答案
```
cpp
// C++
class
Object
{
Object
(){}
~
Object
(){}
void
test
(){
std
::
cout
<<
"hello"
<<
std
::
endle
;
}
}
int
main
(){
Object
*
o
=
new
Object
();
delete
o
;
return
0
;
}
```
## 选项
### A
```
javascript
var
foo
=
function
(){
return
{
}
}
```
### B
```
python
def
object
():
return
{}
o
=
object
()
```
### C
```
c
int
test
(){
}
int
main
(){
test
();
return
0
;
}
```
````
这是一个最基本的习题结构,它包含标题、答案、选项,注意这几个一级和二级标题必须填写正确,解释器会读取这几个标题。而选项的标题会被直接忽略掉,在
最终生成的习题中不包含选项的三级标题,所以这个标题可以用来标注一些编辑信息,例如“此选项没有关闭文件连接”,“类型错误”等等。
## 技能树合成
在根目录下执行
`python main.py`
会合成技能树文件,合成的技能树文件:
`data/tree.json`
*
合成过程中,会自动检查每个目录下
`config.json`
里的
`node_id`
是否存在,不存在则生成
*
合成过程中,会自动检查每个知识点目录下
`config.json`
里的
`export`
里导出的习题配置,检查是否存在
`exercise_id`
字段,如果不存在则生成
data/1.面向对象程序设计初阶/1.
OO初步
/1.HelloOO/config.json
→
data/1.面向对象程序设计初阶/1.
面向对象程序设计基础
/1.HelloOO/config.json
浏览文件 @
9e7c4030
...
...
@@ -3,7 +3,7 @@
"keywords"
:
[],
"children"
:
[],
"export"
:
[
"hello.json"
"hello
world
.json"
],
"keywords_must"
:
[],
"keywords_forbid"
:
[]
...
...
data/1.面向对象程序设计初阶/1.
OO初步/1.HelloOO/hello
.json
→
data/1.面向对象程序设计初阶/1.
面向对象程序设计基础/1.HelloOO/helloworld
.json
浏览文件 @
9e7c4030
{
"type"
:
"code_options"
,
"author"
:
null
,
"author"
:
""
,
"source"
:
"hello.md"
,
"notebook_enable"
:
false
,
"exercise_id"
:
"d4e2302f452541b99f140996252d91a8"
...
...
data/1.面向对象程序设计初阶/1.
OO初步/1.HelloOO/hello
.md
→
data/1.面向对象程序设计初阶/1.
面向对象程序设计基础/1.HelloOO/helloworld
.md
浏览文件 @
9e7c4030
文件已移动
data/1.面向对象程序设计初阶/1.
OO初步
/config.json
→
data/1.面向对象程序设计初阶/1.
面向对象程序设计基础
/config.json
浏览文件 @
9e7c4030
文件已移动
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录