经过大半学期的学习和练习, 我们把学到的东西综合起来。

在作业2 (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 分。你可以宣传你的博客,让大家都来学习。

现代程序设计 作业9 - 综合练习相关推荐

  1. 2020-11-08 Windows应用程序设计作业(Python版实现)(五)综合作业 - 汉字版俄罗斯方块+2048

    Windows应用程序设计作业(Python版实现) 作业5-综合作业 要求:在作业3的基础上,每个方块随机设置偏旁部首或简单汉字.方块下落停止后,改变俄罗斯方块的消除规则.规则定义为:如果相邻的块能 ...

  2. c语言编程 构建围墙,c语言程序设计朝盛 综合程序练习题.ppt

    c语言程序设计朝盛 综合程序练习题 综合程序练习题 综合程序练习题 大型程序设计的要求 综合程序练习题 综合程序练习题 大型程序设计题目分析: 1 打字练习 2 电子琴 3 简易画图板 4 贪吃蛇 5 ...

  3. java语言程序设计期末复习综合练习题_Java语言程序设计期末复习综合练习题答案...

    Java语言程序设计期末复习综合练习题 一.选择题. 2. main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( )? A.public stat ...

  4. 面向对象程序设计作业 6.1~6.4

    面向对象程序设计作业 6.1-6.4 面对对象基础题三道.继承多态一道. #include <iostream> #include <string> #include < ...

  5. Java web对试卷进行单选多选答题进行打分_2020年大学慕课Java程序设计作业答案...

    2020年大学慕课Java程序设计作业答案 更多相关问题 [单选] 单元测试内容不包括().[单选] 在一个列车控制软件的需求文档中,我们发现了以下两条需求描述:"列车车门在两个停靠站之间要 ...

  6. 代写python代码一般多少钱_代写CO 353课程作业、代做Python程序设计作业、代写Python语言作业...

    代写CO 353课程作业.代做Python程序设计作业.代写Python语言作业 日期:2020-03-17 11:22 CO 353 - Homework assignment 4 Winter ' ...

  7. 北京大学c语言试题及答案,北大网络教育(计算机专业)C程序设计作业答案

    北大网络教育(计算机专业)C程序设计作业答案 第一章作业 一.将数150.10.75.50.375用十六进制表示 150=96:10.75=A:50.375=32 150(十进制)=96(十六进制) ...

  8. 代写php代码作业,代写phpmyadmin留学生作业、代做SQL语言作业、SQL程序设计作业调试、代做PHP script作业...

    代写phpmyadmin留学生作业.代做SQL语言作业.SQL程序设计作业调试.代做PHP script作业 日期:2019-04-20 01:17 Overview:In this assignme ...

  9. c语言程序设计个人作业,C语言程序设计-作业集.doc

    C语言程序设计-作业集 目 录 作业一2 作业二4 作业三9 作业四13 作业五19 作业六27 作业七36 作业八45 作业九47 作业十51 作业十一55 作业一 一.查找相关资料,回答下列问题 ...

最新文章

  1. IOS-Swift开发基础——通知
  2. CORS 请求未能成功_CORS 测试 提示错误 Reason: header authorization
  3. div模拟textarea自适应高度
  4. Eigen+suitesparse for windows 安装
  5. Codeforces Round #250 (Div. 2)—A. The Child and Homework
  6. LeetCode 剑指Offer 64.求1,2到n的和, 不使用循环/判断及乘除
  7. alphazawgyiversion3 安装口令_车窗晴雨挡到底有着什么用?为什么那么多人安装?酷斯特玩车...
  8. X86汇编语言从实模式到保护模式19:分页和动态页面分配
  9. vss 6.0配置VS2005、VS2008 ---- 图文
  10. java 游戏 异步框架_基于Java的轻量级异步编程框架
  11. jdbc和mysql做游戏排行榜_MySQL 和 JDBC编程
  12. telnet 回显 linux,telnet实现本地回显
  13. 【Dos默认路径设置】
  14. 在雨雾中穿行--张家界之旅786
  15. Mac/Linux下使用vim出现E45: ‘readonly‘ option is set (add ! to override)错误
  16. android lrc歌词解析,Android解析lrc里的歌词
  17. 移动端瀑布流/信息流布局以及交互
  18. html知识点整理(全)
  19. C++ 判断指针为空的写法(即if(p))
  20. java单链表选票_200个经典C程序源码

热门文章

  1. windows下vagrant的安装使用
  2. MySQL索引的索引长度问题
  3. Chapter2 MSP430硬件结构
  4. Linux常用命令 -- screen
  5. 关于GPS 车辆定位导航中的投影变换
  6. 2.2.1.处理机调度的概念,层次
  7. 计算机网络物理层-编码技术实现
  8. java if 定义变量_java – 如何分配在if else语句中定义的变量
  9. 合泰单片机做电压表_启士 | 蓝桥杯零基础单片机教程9 I2C介绍(上)
  10. getter方法的作用 vuex_Vuex的工作流程