Browsed by
Category: Projects

[NEUOJ日记] #1 Hello World

[NEUOJ日记] #1 Hello World

写在前面: NEUOJ的开发即将满五个月, 算是我在大学阶段做的最大的一个项目了(因为搞ACM的缘故没有在大一大二做什么项目出来) 在开发过程中遇到了很多问题  & 学到了很多东西, 谨以此系列文章记录开发过程以及开发心得体会 文章的格式: 每一篇文章都会以: 一个主标题 开头, 然后 分为多个副标题, 每个副标题后面会跟一个解释下面要讲的内容的commit-id Hello World Why we start (No commit id) 两年半的ACM生涯结束了, 老师征求我们对于重写OJ的想法, 我们队伍的大家早就有自己写一个OJ的想法了, 作为挖坑小能手的我 ( Qrz ) 本来还有点因为自己的时间+个人原因不是很想搞(其实内心是非常想搞的) 被两个队友拉着就果断入坑了, 我们想写出一个能够给大家一个梯度训练, 界面友好, 测评多样化, 符合当今Web开发潮流的新的Online judge 系统, 于是我们队伍+ sjm + wyf就开始了对OJ的开发, 最初的分工是 我们队伍搞 Web 后端开发, sjm 搞前端开发, wyf + 我搞测评端研究 How we design (No commit id) 开发OJ对我来说最陌生的就是测评后端的开发, 不知道如何下手, 好在老师给我们提供了一个开源的测评系统 domjudge, domjudge的后端judgehost已经非常完善了, 支持多语言多环境多测试样例的安全测评, 于是我们初期就直接使用judgehost来做我们的测评后端, 然后前端我们使用的是Bootstrap框架, Web后端使用Laravel框架, 然后我们初步设计了一下表的结构, 参考了hustoj的数据表结构 & 我们自己的表结构,对表进行了设计, 最初的表有   users: 用户登陆信息 problem: 题目相关信息 submissions: 用户提交相应信息 userinfo: 用户的详细信息,基本信息 (之后会在不同的阶段介绍表的具体结构…

Read More Read More

justQuiz!开发计划-1

justQuiz!开发计划-1

justQuiz Develop Plan justQuiz Develop Plan Table of Contents 1 STEP1 简易答题&判题(客观题)的实现 1.1 A 题目管理 1.1.1 Func1-添加题目到题库 1.1.2 Func2-用题库的题目组成试卷 1.1.3 系统初始化的实现 1.2 B 答题功能 1.2.1 Func3-抓取特定试卷的题目显示到答题区 1.2.2 Func4-判题功能 2 STEP2 支持题目上传附件 3 STEP3 支持用户注册,登录 4 STEP4 支持显示该套卷的分数分布 5 STEP5 人工批改功能的添加 6 STEP6 加入不同的答题模式 7 STEP7 UI优化 jQuery Bootstrap优化UI 8 STEP… 其它功能的添加 1 WORKING STEP1 简易答题&判题(客观题)的实现 1.1 WORKING A 题目管理 本阶段要实现题目管理的基本功能 及试题录入以及试卷生成 所有试题初期决定为存入同一个数据表,每一道试题包含的数据域有 PID 题目ID title 题目标题 body 题目内容 attachment 附件路径 为以后使用 isObjective 题目是否为选择题 isMulti 题目为单选or多选 item1 item2 item3 item4 item5…

Read More Read More

[Project] Huffman 压缩软件的实现 01 计划及开题报告

[Project] Huffman 压缩软件的实现 01 计划及开题报告

准备写一个Huffman压缩软件 ,通过Huffman编码来实现文件的压缩和解压 计划书如下 Huffman 文件压缩系统 ======== 1. **Functions**: 1. 对任意文件进行压缩 并且生成压缩文件保存在磁盘上 1. 读入文件并且保存在一个字符串数组内 或者保存文件指针 或文件流对象 2. 根据读入的文件 统计出字符出现的频度 频数 保存在一个优先队列内 为下一步编码做准备 3. 根据字符的频度 建立Huffman树(静态链表结构) 并且保存根节点的标号 4. 通过Huffman树来建立符号表 5. 用符号表对原始文件进行编码 并使用位操作生成新的压缩文件并且输出到文件 2. 对经过Huffman压缩的文件进行解压,把解压后的文件保存在磁盘上 1. 读入压缩后的文件并且保存在一个字符串数组内 或者文件指针 文件流对象 2. 读入压缩时使用的Huffman树 3. 依次读取文件的每一个位 并通过Huffman树对文件进行解码 并导出解压后的文件 4. (选作) 将Huffman 的树型结构展示出来(可视化) 2. **Class Definition** //Here to Put classHuffmanTree class HuffmanTree{ private: void createHuffmanTree(); void countFreq(); void generateCodingTable(); void pr_encoding(); void pr_decoding(); int root; vector<StaticHuffmanNode> HuffmanT; string codingTable[300]; string fileStr; public: void encoding(); void decoding(); void…

Read More Read More