需求:今日因为项目组人员变动,需要新招一名开发人员。而面试的话会耽误开发进度,进而导致加班,所以准备开发一套随机面试题库,从而帮助我们筛选比较合适的同事。
延伸需求:这套题库的开发思路也适用于延伸到教育行业,总体来说是比较有意义的事情。
需求拆分:
1,设计一套比较基础的题库,题目比较常见且偏向于我们目前开发的项目。其中基础题型占据70%,以问答题和选择题为主,着重考虑能否尽快投入工作;算法与开发案例占据30%,着重考虑解决问题思路,以及后续的晋升等;
2,简单界面如下:
3,输出桌面docx文档,关键方法如下:
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using UnityEngine.UI;
using System;
public class Creat : MonoBehaviour
{
public Button btu;
public Button exit;
// Use this for initialization
void Start()
{
btu.onClick.AddListener(CreatDocx);
//AssetDatabase.Refresh();
exit.onClick.AddListener(delegate { Application.Quit(); });
}
int idx = 1;
// Update is called once per frame
void CreatDocx()
{
string dir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
Directory.CreateDirectory(dir);
using (StreamWriter writer = File.CreateText(dir + "/答题卷" + idx + ".docx"))
{
string docxStr = "*请在不使用搜索设备的情况下完成笔试题,如果有遗忘的可以写上思路补充。\n\n\n\n";
//foreach (Transform _tran in transform)
//{
// docxStr += _tran.name + ",";
// docxStr += (float)_tran.position.x + ",";
// docxStr += (float)_tran.position.z + ",";
// docxStr += "\n";
//}
//遍历循环表格,通过规则打印出需要的题库
docxStr += "End";
writer.Write(docxStr);
}
//AssetDatabase.Refresh();
Debug.Log(gameObject.name + "转表完毕");
idx++;
}
}
其中Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);方法是找到桌面路径。
接下来设计表格,截图如下(转表插件已经集成好,如有需要可以在我的店铺购买):
设计完之后就是填写具体的问答题,并编辑相关选题逻辑(选择填空分别占据多少等),最终结果为:
world文档如下: