现代程序设计 作业4

英语国家的小孩们经常玩 Word Search 的游戏, 就是在一个填满字母的矩阵中把单词找出来。  这是一个简单的例子:

image (来自 wikipedia)

这是一个比较复杂的例子:

clip_image002[4]

这是答案:

 

clip_image004[4]


美国的商店里还有不少 word search books 卖,  两三块钱一本。 让我们把这个有趣的游戏变成有趣的作业吧:  

­­Homework 4

       Pair Programming – Word Search

 

Given a file of phrases,   produce a matrix of letters so that people can play the word search game.

 

Input file:

                A collection of phrases, between 20 and 60.  Each phrase has no more than 20 letters,  not including spaces.

Output:

                A matrix of letters,  the output can be just command line output (no GUI is required at this moment),  meeting the following  criteria:

a)      Stage 1

a.       Every phrase in the input file is covered once and only once.

b.      No less than 2 of the phrases must be in these directions:

                                                               i.      top-down, bottom-up,  left-right, right-left, and all 4 diagonal directions.

c.       The width and height of the matrix can be different

d.      there doesn’t exist a row or column of letters where none of the letters are covered (不存在一行或一列字母不被任何短语覆盖)

b)      Stage 2

a.       The matrix must have the same width and height

c)       Stage 3

a.       The four corners of the output matrix must be occupied by a phrase.

Definition:

·         A phrase:  a string of A-Z and optional space (it’s case-insensitive). A phrase can have space in it,  as in “ZIP CODE”,  or “C DRIVE”.  The “space” is not counted inside the matrix, when considering “coverage”.

·         A phrase is “covered” by the matrix: its letters can be found, sequentially,  in the matrix by going thru any directions (top-down, bottom-up,  left-right, right-left, and all 4 diagonal directions).

·         Matrix: it must have the same width and height.

Requirement:

Students must complete this assignment in Pair Programming style.   please read these documents and related docs on the internet:

    a. 代码规范和代码复审

    b. 结对编程,

    c. 给人提意见的方式 - 送一个汉堡包

You can use any programming language of your choice.   Students must complete Stage 1 (50% of the total score),  Stage 2 (70% of the score) and Stage 3 (100% of the score) are optional.  As usual,  students will need to submit code into GibHub, and Submit the description of their homework in each student’s blog.

TA will provide several files for you to test out,  or you can get some examples from the web to try things out.

Of course,  please continue filling in your “Personal Software Process” time estimation sheet.  

 

Personal Software Process Stages

时间百分比(%)

实际花费的时间 (分钟)

原来估计的时间 (分钟)

Planning

计划

   

·         Estimate

·         估计这个任务需要多少时间,把工作细化并大致排序

   

Development

开发

   

·         Analysis

·         需求分析 (包括学习新技术)

   

·         Design Spec

·         生成设计文档

   

·         Design Review

·         设计复审 (和同事审核设计文档)

   

·         Coding Standard

·         代码规范 (制定合适的规范)

   

·         Design

·         具体设计

   

·         Coding

·         具体编码

   

·         Code Review

·         代码复审

   

·         Test

·         测试(自我测试,修改代码,提交修改)

   

Reporting

总结报告

   

·         Test Report

·         测试报告

 

 

 

·         Size Measurement

·         计算工作量

   

·         Postmortem & Improvement Plan

·         事后总结, 并提出改进

   
Total总计100%总用时总估计的用时

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代程序设计 作业5

在前四个作业中, 我们体会了数组,子数组的和,二维数组,字符串和字母的处理, 简单和复杂的 UI 程序等。大家锻炼了命令行的处理,模块的持续重构和演化,单元测试,UI 程序的处理&#x…

现代程序设计 作业6 - 简单而有意义的题目

这是这个课件的一部分: 现代程序设计 (课程设计中, 征求意见稿) 好多同学们都说题目难,这回我们来一个简单而很有意义的。 :) 写代码爽还是读代码爽? 往一堆乱麻中再加上一些线索,似乎比较容易;然而从…

现代程序设计 作业7 - 更加简单的题目

在网上,当用户发现一个新东西 (海洋里捞出来的新物种,奇怪颜色的飞鸟,某种新的植物等), 大家会问下面的问题: 能吃么 好吃么 怎么吃 这三个振聋发聩的问题被吃货们简称为能好怎, 大家可以打开链接看看&…

现代程序设计 作业9 - 综合练习

经过大半学期的学习和练习, 我们把学到的东西综合起来。 在作业2 (http://www.cnblogs.com/xinz/p/3318230.html ) 中, 同学们用各种方法 (主要是动态规划,外加一些遍历)计算了一维和二维数组中最小最大子数组的和。 当然,程序在…

对微软实习生或者工作感兴趣的读者, 目前我的项目是...

从 2018/4 开始,我在微软亚洲研究院(北京)工作,做AI 工具的研发,请看:https://github.com/microsoft/ai-edu --------------- 从2014/7/28 开始,我在Windows 的中国工程团队干活: http://weibo.com/355…

现代软件工程 第一章 【概论】练习与讨论

0. 学习别人的经验和体会。 同学们在上这门课的时候,都是大二,大三,有的是跨专业考研过来的。觉得在大学里,到教室来听课有意思么?请看:你为何要来上课并且认真参与, 另外,请看&…

现代软件工程 第二章 【个人技术】 练习与讨论

1 基本作业: 从Hello World开始 要求每个读者(或者学生)开始管理自己的源代码: 每个人都有一个VSTS的客户端,系统管理员给每一个人都创建了TFS项目,每个学员都是各自项目的管理员。每个同学去申请一个GitHub [i]的项目&#xff0…

现代软件工程 第三章 【软件工程师的成长】练习与讨论

1. 选哪一种医生? 作为一个软件工程师, 你觉得自己表现如何? 有没有这样的体会: 看书的时候觉得“技止此耳”,开发项目的时候才觉得实际情况和书上讲的都有一些出入,一些重要的细节书上没有提。我们很多人是边看Asp.net的书, 边开发Asp.ne…

现代软件工程 课件 软件工程师能力自我评价表

这是《构建之法》和软件工程教学的一部分,用于学生/工程师自我评价。 软件工程师如何评价自己的能力? 有人写Java,有人用C,还有人用1980年代就出现的 Object-C, 有人写前端,有人写后端,有人偏于行业应用&a…

现代软件工程 第四章 【结对编程】练习与讨论

4.7.0 结对编程的练习题 地铁导航和遍历 4.7.1 结对项目的案例和论文 在现代软件工程教学的过程中,同学们已经总结了不少切身体会。例如: 总结1[i]:那是project到了比较关键的创造阶段,整整一天,我们俩椅子靠椅子的坐在电脑前&am…

现代软件工程 第五章 【团队和流程】练习与讨论

团队模式和团队的开发模式有什么关系?如果你领头开展一个全新的项目,你要怎么选择“合适”的团队模式?不同的团队模式如何影响团队绩效的评估?团队精神和集体主义的区别? 大家回想在小学和中学的学习过程&#xff…

现代软件工程 第六章 【敏捷流程】练习与讨论

6.3.1 什么时候适合选择敏捷 我们看了这么多方法论之后,一些同学一定比较困惑,到底选择哪一种开发方法比较好呢? 这在实践中不是难题,有学者还列出了一些简单的问题来帮助人们做决定[i]: 表6-3 问题引出方法 问题 Yes – 偏向传…

现代软件工程 第七章 【MSF】练习与讨论

7.7 移山开发方法——比TFS敏捷更精简 几个软件学院的学生来请教阿超,同学们自豪地说,我们要用全套TFS敏捷开发模式开发项目! 真的?阿超不敢相信。 同学: 对!我们要用全5个工作项类型 – 任务、缺陷、场景…

现代软件工程 第八章 【需求分析】练习与讨论

1 扩展阅读下面两篇文章也说明了软件估计的难度: Steve McConnell 软件估计的 10 种罪:http://www.ewh.ieee.org/r5/central_texas/austin_cs/presentations/2004.08.26.pdf Quora精选: 为什么软件开发周期总是预估的2~3倍http://jandan.net/201…

现代软件工程 第九章 【项目经理】练习与讨论

9.5.1 PM们的故事 讲了这么多条条框框,我们还是来讲几个故事吧。 A)是不是所有的好功能都是由PM主导,一步一步根据用户需求,按照用户场景设计,然后进行可用性测试等等步骤之后得来的呢? 功能本天成,妙手偶…

现代软件工程 第十章 【典型用户和场景】 练习与讨论

1. 讨论:下面的老板犯了什么错误? 只看用户的表面语言或行动还是不够的。我们还要找到用户语言行动背后的动机! (图像来源: http://www.weibo.com/funnyshoelace) 2. 是否要文档 有人说,我们敏捷的团队,就喜欢直接的面对面的交流&#xff0…

现代软件工程 第十一章 【软件设计与实现】 练习与讨论

1 如何避免在产品开发后期不断有重大修改,导致其它模块的连锁反应? DCR Tell mode vs. Ask mode设计变更 在项目早期,如果大家觉得要做一个设计变更,便可以采用告知模式(Tell-mode)的形式,也就是说,修改方必须通告所…

现代软件工程 第十二章 【用户体验】练习与讨论

1 什么是用户体验, 什么时候开始考虑用户体验? 究竟什么是用户体验呢? 请看: http://www.infoq.com/articles/aaron-sanders-user-experience (中文版)http://kb.cnblogs.com/page/508097/ 既然用户体验和用户界面对一个项目这么重要&…

现代软件工程 第十七章 【人、绩效和职业道德】 练习与讨论

0. 为啥要讲人、绩效、和职业道德? 学好专业不就行了么,为啥要扯这么多? 用专业知识教育人是不够的。通过专业教育,他可以成为一种有用的机器,但是不能成为一个和谐发展的人。要使学生对价值有所理解并且产生热烈的感情…

现代软件工程 第十三章 【软件测试】 练习与讨论

13.5.2 有错不改 果冻: 微软的产品经过这么多版本的不断完善,应该是把所有问题都搞定,“止于至善”了吧? 阿超: 那也不一定,在非常有名的电子表格软件Excel中,就有这样一个Bug:Exce…