现在网上有很多关于动态显示排序过程的小工具,小程序。

1) https://visualgo.net/sorting  
    2) http://jsdo.it/norahiko/oxIy/fullscreen   
    3) http://coolshell.cn/articles/4671.html

我们能否也做一些类似的工作呢?

在在这个作业中 (http://www.cnblogs.com/xinz/p/3318230.html ) , 同学们用各种方法 (主要是动态规划,外加一些遍历)计算了一维和二维数组中最小最大子数组的和。 当然,程序在飞快地运行的时候,我们可以通过debug 工具中的 单步执行 命令看到中间结果。 中间结果一般有这些数据:

这个数组目前暂定的最大子数组的范围是哪里?  目前的值是多少?

目前计算到哪些部分, 目前的牵涉到的子数组的和是多少?

我们的要求是,设计并实现一个系统,让一个普通用户就能通过单步执行的方式看到你的算法是如何工作的。 一个典型的流程是:

1. 用户用你的程序读入一个数组文件 (就像我们以前做过的那样),显示初始状态 (就像围棋打谱程序那样)

1.1. 用户也可以自行定义数组的大小,或者要求随机生成一个数字矩阵。

2. 用户这时候有两个选择

2.1  按 单步执行 键, 在 GUI 看到你的程序是如何一步一步算出目前最大子数组的范围,当前计算到的临时子数组是在哪里,等等。 最好用不同的颜色标识不同的状态。

2.2  按 自动运行 键, 在 GUI 看到程序自动运行,并自动显示过程, 每次改变状态的时候要稍作停留 (例如 1 秒钟的时间)

3. 咳,我没看清楚!  这时最好有一个 倒带 / 回滚 的键, 让用户可以看清楚关键的几步。

(当然,用户可以选择是普通模式还是扩展定义的连通模式)

要求: 这个要求的各个方面我们都已经单独写代码试验过了,把它们合起来也不是太难。  要求还那样: 写程序和单元测试,签入GitHub,写博客描述,总结所花费的时间和估计。

评分:

功能 (分数范围 –30 到 30分):  在PC 桌面上运行  (满分 20 分); 如果能在程序能直接在网上显示 (例如使用 Javascript 在网页上让用户直接看到过程),则满分是 30 分。

代码质量 (分数范围:  -30 分到 30 分):  同学们在课程中已经看了很多书,实践了不少原理,也看过烂的代码 (很多同学还大义凛然地鄙视过烂代码),并且纷纷表示要写高效/好懂/可扩展的算法。现在就来试试看,请写博客,截图,画图描述:

注释,命名: 有一致规范的规范,合适的注释

结构: 结构清晰,各种类/结构的定义 正确地反映了现实世界实体,以及实体之间的关系.

单元测试: 有单元测试保证 非UI 模块的正确性  (UI 模块不要求单元测试自动覆盖),有代码覆盖率。

(注:  以上的各个部分,达不到基本要求的,倒扣分,扣到 –30 分为止。 抄袭按学校规定处理)

附加题:  你已经做了这么多,不妨再进一步: 如果博客中描述了动态规划的原理,并通过录制屏幕的方式让一般的读者 (例如,正在学习算法的大学生)能通过你的动态程序理解动态规划的算法,以及这个算法的扩展,那么可以得到附加分  10 分。你可以宣传你的博客,让大家都来学习。

个人或结对项目 - 动态显示程序运算的过程相关推荐

  1. 结对项目编程之代码进展

    由于最开始做个人项目的时候就是按照模块的思想进行的设计,所以已经是模块化的程序了. 结对项目关于程序方面老师提出了下列要求 Calc() 这个Calc 函数接受字符串的输入(字符串里就是运算式子,例如 ...

  2. 结对项目——自动生成小学四则运算题目的命令行程序(基于Python)

    这个作业属于课程 软件工程 这个作业的要求在哪里 结对项目 这个作业的目标是 实现一个自动生成小学四则运算题目的命令行程序 成员 3118005408 方俊涛 .3118005409 冯宇航 GitH ...

  3. 结对项目-四则运算出题程序(GUI版)

    目录: 一.致搭档(含项目地址) 二.PSP(planning) 三.结对编程中对接口的设计 四.计算模块接口的设计与实现过程 五.计算模块接口部分的性能改进 六.计算模块部分单元测试展示 七.计算模 ...

  4. 201571030135/201571030137《小学四则运算练习软件》结对项目报告

    任务1源码在Github的仓库主页链接地址:https://github.com/zhanghh2018/201571030135-201571030137 一.需求分析. 1)由计算机从题库文件中随 ...

  5. 201571030121《小学四则运算练习软件软件需求说明》结对项目报告

    201571030107/201571030121<小学四则运算练习软件软件需求说明>结对项目报告 结对小伙伴:冯晓(201571030107) 任务一 首先,我们进行了实例体验,把我们已 ...

  6. 201571030121 《小学生四则运算练习软件》结对项目

    201571030107/201571030121<小学四则运算练习软件>结对项目 结对伙伴:201571030107 冯晓 项目Github地址 https://github.com/d ...

  7. 软件工程导论结对项目

    小学四则运算结对项目 一.项目地址 https://git.coding.net/chenxin1998/Arithmetic.git 结对成员:马乐平,地址:https://git.coding.n ...

  8. [2017BUAA软工]结对项目:数独扩展

    结对项目:数独扩展 1. Github项目地址 https://github.com/Slontia/Sudoku2 2. PSP估计表格 3. 关于Information Hiding, Inter ...

  9. 201571030322/201571030319《小学生四则运算软件需求说明结对项目报告》

    1.任务一: (1).调研对象:小学生,小学数学代课老师,家长: (2).以实验二(小学四则混合运算项目),实验三(小学四则软件运算结对项目)开发的程序为软件原型: (3).采用问卷调查,访谈两种方式 ...

最新文章

  1. 腾讯云数据库副总监:图数据库好在哪?该用在哪?
  2. html(超链接定义锚点与特殊符号转义)
  3. Android studio 下 JNI 开发实例
  4. Kotlin中的Java静态方法等效于什么?
  5. ubuntu mysql 驱动_怎么在Ubuntu下为MySQL添加ODBC驱动?
  6. 高级工程师必须精通的七种武器(摘录)
  7. mysql 开发进阶篇系列 7 锁问题(innodb锁争用情况及锁模式)
  8. POJ 1991 Turning in Homework ★(区间DP)
  9. scala 主构造器_Scala主构造器深度
  10. 如何用C++从文件读取学生成绩再求出平均成绩送回文件中
  11. 系统软件-大型OA源码大型OA源代码C#.netOA系统源代码开发文档
  12. Pytorch——神经网络工具箱nn
  13. SQL_Server_2008完全学习之第五章操作架构、索引和视图
  14. 常见并发工具的使用和原理解析——Condition(重点在第五节)
  15. 通过cURL获取web页面及http header信息
  16. Zer0pts CTF 2020的web赛后记录+复现环境
  17. 方阵主对角线元素之和
  18. Orange pi GPIO输出控制,裸机点灯大法(二)!
  19. Java算法之冒泡算法
  20. c语言程序设计西安理工,c语言程序设计-西安理工大学三电教学中心!.doc

热门文章

  1. springmvc中@RequestMapping的使用
  2. pat 甲级 1034. Head of a Gang (30)
  3. 三极管稳压管组成的线性电源关键理解
  4. string.Format格式化输出
  5. 有原创保护能力的公众帐号可申请页面模版功能和图文消息正文插入历史群发链接...
  6. 如何从操作系统安装文件提取驱动文件/ How to extract driver files from setup files (win 7)...
  7. 数据库中char, varchar, nvarchar的差异
  8. 操作系统 —— 磁盘
  9. 王道计算机网络 传输层整理 超详细版
  10. Leetcode--1160.拼写单词(Java)