中科院高级软件工程期末题库
文档是期末考试的题库,老师出的题目都是从这里面出的。目录概念解释.二、选择题、设计题四、简答题……………23概念解释1.敏捷开发方法与 Scrum方法2.基于计划文档开发方法(Pan-and- Document based Development)3.DRY( Dont repeat yourself)尢重复代码4.MVC(软件作为服务的开发框架)5. SMART用户故事6. TDD and红绿重构7.F|RST测试原则8.代码味道及类内方法SOFA原则(说明S、O、F、A分别代表什么?违法该原则的代码的不好特征、重构和修复的方法)9.类间关系的SOLD原则(说明每个原则的意义、违法该原则的代码的不好特征、重构和修复的方法)(1)单一责任原则(2)开闭原则(3)里氏替换原则(4)依赖注入原贝(5)迪米特法则10.持续集成及开发11.文档对象模型(DoM)和 jQuery12. JavaScript函数特点13. HTML14.ruby面向对象15.ruby访问控制 public、 private和 protected16.CSs规则构成17.ruby中的数组18.Ruby哈希(Hash)19.Ruby迭代器:each和 collect20.Git工作流程、选择题21工具/语言1.下面哪个git命令用来帮助跟踪谁修改了什么文件和什么时候修改的?A. git listB. git manageC. git pushD. git blame2.如何比较两个文件或当前文件和以前版木的修订?A. git diffB. git compareglt cloneD. git checkout3.如果提小提交内容为空、不能提交,则最为合适的处理方式是a)执行 glt status查看状态,再执行 git add命令选择要提交的文件,然后提交。b)执行 glt commit- allow- empty,允许空提交。c)执行 glt commit-a,提交所有改动。d)执行 glt commit- amend进行修补提交4.如果把项目中文件hel1o.c的内容破坏了,如何使其还原至原始版本?0 git reset--hellocb) git checkout HEAD--hellocc) git revert hello.cd)git update hello.c5.修改的文栏 meeting.doc尚未提交,因为错误地执行了 glt reset-hard导致数据丢失。丢失的数据能找回么?a)不能。执行硬重置使工作区文件被覆盖,导致数据丢失无法找回。b)能。可以通过 git checkout hEAD@{1}- meeting.doc找回。c)不确定。如果在重置前执行∫ git add命令将 meeting.doc加入了暂存Ⅸ,则可以在对象厍中处于悬空状态的文件中找到d)不能。因为未提交所以无法找回。6.仅将工作区中修改的文件添加到暂有区(新增文件不添加),以备提交,用什么命令标记最快?a) git add -Ab) git add→pc git addd git add下面哪一个命令不会改变提交历史?a) git resct --hard HEAD1b) git checkout HEADc) git rebase -i HEADd) git commit --amend8.下面的描述中不属于Ruby特性的是A.Ruby是一种功能强大的面向对象的脚本语言B.Ruby遵守GPL协议并且是免费的。C.Ruy具有自动内存管理机制。D.Ruby是基于MVC架构的。9.下面的描述中不属于 Rails特性的是A. Rails是一个使用Ruby语言写的开源网络应用框架。B. Rails具有强大的反射札制与后设编程C.“不要重复自u”和“约定胜丁配置”是 Rails的设计原则。D. Rails具有实时映射技术和模板编程技术。10.Ruby提供了多种字符串的表示方法,下面哪一种是错误的?A.str=在线学习乐园”B.str-niwww.itzcn.comlC.str=%/t免费教学和视频D.str="窗内网11.在命令控制台要查看Ruby的版本应该使用命令A. rubyB. ruby versionC. ruby -hD. ruby /12.下列不属丁 Ruby Gems提供命令的是A. gem listB. gem install railsC. gemD. gem -update rails13.下面关于Ruby编译器的使用方法,错误的是A. ruby hi. rbB. ruby -e print hC. ruby -h hi. rbD. ruby -c hi. rb14.调用方法可以去除用户输入的换行符。A. chompB. trC.D. to i22需求分析15.下面哪些用户故事描述是满足的 SMART原则要求的?A.用户能用影片名查找电影信息。B.作为一个用户,我想看前10个按价格从低到高排序的影片列表,以便我买到最便宜的电景票。C. Rotten potatoes app应该有好的用户界面D. Rotten potatoes app应该有好的用户界面和快的响应时间6.下面哪个是对,就用户故事而言?()它们应该措述该应软件是如何使用的。()它们应该有业务价值。(i)它们不必要是可以测试的。它们应该在敏捷软件开发生命周期的各阶段都能实施或实现。A. ionlyB. i and iic, i and iyD, i iii, and iv7.相对强调过程的场景描述而言,声眀性场景描述特点是:A.有更复杂语句和步骤。B.个是DRY。C.史段、易理解和维护。D.关注在低层步骤上,这些步骤需要初始化设置和执行测试。8.对隐性和显性需求而言,下面哪些说法是对的?A.无论隐性和显性需求,你都不能写用户故事。B.隐性需求更简洁,而显性需求更啰嗦。C.隐性需求是显性需求的逻辑结果,通常对应于综合性测试D.显性需求通常可以用场景化过程性语言描述,而隐性需求通常用声明性语言描述。19.为什么很多软件项目失败?软件不是用户所要的。(i)延迟交付。(i)软件超出预算。(y)软件演化后容易维护和升级A. i andB. iii and iyC. i ii and iiiD. i, ii, iii, and iv20.下面哪些是表达了BDD的不足。.与客户交互沟通的成本。i.客户满意不等于该软件有一个好的架构。ⅲ编写功能代码前,先写测试代码。.缺乏相关工具。A. i and iiB. iii and ivC. ii and iiiD. i ii, iii, and iy21.需求分析最终结果是产生()A.项目开发计划B.可行性分析报告C.需求规格说明书D.设计说明书22.需求分析中,开发人员要从用户那里解决的最重要的问趣是()A.让软件做什么B.要给软件供哪些信息C.需求软件工作效率怎样D.让软件具有何种结构23.需求规格说明书的内容不应包括对()的描述。A.主要功能B.算法的详絀过程C.用户界面的运行环境D.软件性能24.软件需求分析阶段的工作,可以分成4个方面:需求获取,需求分析,编与需求规格说明书以及()A.用户B.需求评审C.总结D.都不正确25.在原型法中,开发人员根据()的需求不断修改原型,直到满足客户要求为止A.用户B.开发人员C.系统分析员D.程序员26.需求验证应该从下述几个方面进行验证:A.可靠性、可用性、易用性、重用性B.可维护性、可移植性、可重用性、可丬则试性C.一致性、现实性、完整性、有效性D.功能性、非功能性22设计27.敏捷开发者崇尚的价值点是A.过程和工具胜于个人与团队交流B.可工作的软件系统胜于全面的文档C.合同谈判胜于与客户协作D.遵循计划胜于响应需求变化28.瀑冇软件开模型与螺旋软件开发模型的区别?A.瀑布模型包括了大量的计划文档和时间跨度大的可匚作软件版本,而螺旋模型小量的计划文档和时问跨度小的可工作软件版本。B.瀑布模型从开始就写全所有的需求文档,而螺旋模型按迭代阶段写需求文档.C.瀑布模型有教长的迭代周期,而蠓旋模型有较短和快的迭代周期。D.瀑布模型的在每个阶段完成后进行保障测试,最后验证阶段包括了验收测试;而螺旋模型的侏障测试在每2个月内进行。29.哪种类型的代码是最坏的?A.遗留代码( legacy code)B.静态代码( static code)C.与期望不一致的短命代码( unexpectedly short-lived code)D.优美代码( beautiful code)30.“系统中的每一个知识(功能或特性)必须有单一的、无二义和明确的表示。”是对下面的哪条原则的表达?RESTBSAASC. SOADDRY31.如果一个项日延期后,为什么说增加人于不是一个好主意。因为:A.程序员太贵B.不能用大团队来承建SaS软件C.交流成本会下降D.让新程序员上手需要较多时间32. Model- View-Controller(Mvc)架杓/设计模式有什么好处?A.支持多用户存取和更新模型数据,对每个用户提供各自的视图。B.确保模型与视图有一对一的映射。C.为了调试日的,提供模型和控制器的调试窗口。D.像其他设计模式一样,遵循这类架构可以得到更简洼的代码。33.下面哪一ˉ种提晑软件生产效率的方法比较能体现面向服务架构的软件?A.通过简洁达到清晰( Clarity via concisenessB.代码合成( Synthesis)C.可重用( Reuse)D.自动化和工具( Automation and tools)34.一个服务直接访问另外一个服务的数据时可能出现不稳定的情况一般是以下哪一种情况的特点之A. Rails应用框架B.面向服务的架构C.面向对象编程D.敏捷开发过程35.假设有两个HTTP请求的URI是·样,但调用的方法(GET与POST)不同。对于Rails路由而言,卜面哪个说法是对的。A.两个请求可以对应不同控制器的方法,但不是必须的。
- 2020-12-08下载
- 积分:1
OpenCV中文参考手册
OpenCV中文参考文件,应用程序接口(API)中文参考资料al OpenCV参考手册·ΩpencⅤ编程简介(矩阵/图像/姒频的基本·Ω中文参考手册读写操作)入门必读· OpenCV概述1.图像处理2.结构分析CXCore中文参考手册3.运动分析与对象跟踪4.模式识别1.基础结构5.照相机定标和三维重建2.数组操作3.动态结构HgGU中文参考手册4.绘图函数5.数椐保存和运行时类型信息1. HighGUI概述6,其它混合函数2.简单图形界面7.錯误处理和系统函数3.读取与保存图傯4.视频读写数机器学习中文参考手册5.实用涵数与系统函数OpencⅤ编码样式指南(阅读 Opencv代码前必CIMage类参考手册读CiMage中的陷阱和BUGOpenCV的Phon接口Opengν编程简介(矩阵/图像/视频的基本读写操作)Wikipedia,自由的百科全书Introduction to programming with OpenCVOpencv编程简介作者: Gady AgamDepartment of Computer ScienceJanuary 27, 2006Illinois Institute of TechnologyUrl:http://www.cs.it.edu/ragam/cs512/lect-notes/opency-intro/opency-intro. html#SECTION00040000000000000000翻译: chenyusiyuanJanuary 26, 2010.http:/blog.csdn.net/chenyusiyuan/archive/2010/01126/5259060.aspx摘要:本文旨在帮助读者快速入门 Openc,而无需阅读冗长的参考手册。掌握了 Opencv的以下基础知识后,有需要的话再查阅相关的参考手册。目录[原]1二、简介o1.11、 Openc的特点1.1.1(1)总体描述(2)功能113(3) OpenCv模块122、有用的学习资源2.1(1)参考手册;122(2)网络资源1.23(3)书籍124(4)视瓶处理例程(在< openly-root>/ samples/c/)125(5)图像处理例程(在< openly-root>/ samples/c/0133、 openc命名规则2(2)矩阵数据类型:■1.33(3)图像数据类型134(4)头文件:o144、编译建议.14.1(lInux;1.4.2(2) Windowso155、C例程2二、GUI指令2.11、窗口管理2.1.1(1)创建和定位一个新窗口∶2.12(2)载入图像2.13(3)显示图後2.14(4)关团窗口2.15(5)改变窗o222、输入处理2.2.1(1)处理鼠标事件222(2)处理键盘事件■2.23(3)处理滑动条事件·3三、 OpenCV的基本数据结构o3.11、图像数据结构3.1.1322、知阵与向量3.2,1(1)矩阵3232).元批333、其它结构类型33.1(1)点332(2)矩框大小(以像素为精度)∵■333(3)矩形框的偏置和大4四、图像处理4,11、图像的内存分配与释放411(1)分配内存给一幅新图像4.1.2(2)释放图像■4.13(3)复制图像414(4)设置/获取感兴趣区域ROI415〈5)设置/获取感兴趣通道COI422、图像读写4.2,1(1)从文件中读入图像4.2.2(2)保存图o433、访回图像像素4.3.1(1)假设你要访间第k通道、翦列的像素43,2(2)间接访间;(通用,但效可访间任意格式的图像)433(3)直接访间:(效率高,但容易岀错)434(4)基于指针的直接访闻:(简单高效435(5)基于c++ wrapper的直接访间(更简单高效a444、图像转换441(1)字节型图像的灰度-彩色转换442(2)彩色图像->灰度图像44不同彩色空间之间的转換a455、绘图指令4.5,1(1)绘制矩形452(2)绘制圆形45.3(3)绘制线段454(4)绘制一组线段455(5)绘制组填充颜色的多边形:456(6)文本标注5五、矩阵处理o5,11、矩阵的内存分配与释放32(3)为新矩阵分配达存释放矩阵内存514(4)复制矩阵5,15(5)初始化矩阵5.1.6(6)初始化矩阵为单位矩阵522、访回矩阵元焘52.1(1)假设需要访间一个2D浮点型矩阵的第(i,j个单元,5.2.2(2)间接访间5.23(3)直接访间(假设矩阵数据按4宰节行对齐)524(4)直接访间(当数据的行对齐可能存在间隙时 possible alignment gaps)5,25(5)对于初始化后的矩阵进行直接i°533、矩阵/向量运算5.3,1(1)矩阵之间的运算532(2)矩阵之间的元素级运算:53,3(3)向量乘积534(4)单一矩阵的运535(5)非齐次线性方程求解■536(6)特征債与特征向量(矩阵为方阵)6六、视频处理611、从视频流中捕捉一帧画面61.2(2)Y支从摄像头或视频文件(AM格式)中捕捉帧画面6,11(1)open个摄像头捕捉器6,1,3(3)初始化一个祕频文件捕捉器614(4)捕捉一帧画面61.5(5)释放视频流捕捉o622、获取/设置视频流信息6,2.1(1)获取视频流设备信息6,2,2(2)获取帧图信息6,23(3)设置丛视频文件抓取的第一帧画而的位置∵633、保存视频文件6.3,1(1)初始化视频编写器6.3,2(2)保持视频文件63)释放视频编写器[编辑]简介[编辑]1、 OpenCV的特点[编辑](1)总体描述· Opencv是一个基于CC++语言的开源图像处理函数库其代码都经过优化,可用于实时处理图像具有良好的可移植性可以进行图像/视频载入、保存和采集的常规操作具有低级和高级的应用程序接口(API·提供了面向 Intel IPP高效多媒体函数库的接口,可针对你使用的 Intel CPU优化代码,提高程序性能(译注: OpenC2.0版的代码已显著优化,无需IPP来提升性能,故2.0版不再提供IPP接口)[编辑(2)功能图像数据操作(内存分配与释放,图像复制、设定和转换)Image data manipulation (allocation, release, copying, setting, conversion·图像/视频的输入输出(支持文件或摄像头的输入,图像/视频文件的输出)Image and video I/o (file and camera based input, image/video file output).矩阵/向量数据操作炇线性代数运算(矩阵乘积、矩阵方程求解、特征值、奇异值分解)Matrix and vector manipulation and linear algebra routines(products, solvers, eigenvalues, SVD)支持多种动态数据结构(链表、队列、数据集、树、图)Various dynamic data structures(lists, queues, sets, trees, graphs)·基本图像处理(去噪、边缘检测、角点检测、采样与插值、色彩变換、形态学处理、直方图、图像金字塔结构)Basic image processing(filtering, edge detection, corner detection, sampling and interpolation, colorconversion, morphological operations, histograms, image pyramids)·结构分析(连通域/分支、轮廓处理、距离转换、图像矩、模板匹配、霍夫变换、多项式逼近、曲线拟合、椭圆拟合、狄劳尼三角化)Structural analysis(connected components, contour processing distance transform, various momentstemplate matching, Hough transform, polygonal approximation, line fitting, ellipse fitting, Delaunaytriangulation).·摄像头定标(寻找和跟踪定标模式、参数定标、基本矩阵估计、单应矩阵估计、立体视觉匹配)Camera calibration(finding and tracking calibration patterns, calibration, fundamental matrixestimation, homography estimation, stereo correspondence).·运动分析(光流、动作分割、目标跟踪)Motion analysis(optical flow, motion segmentation, tracking)目标识别(特征方法、HMM模型Object recognition(eigen-methods HMM)基本的GUI(显示图像/视频、键盘/鼠标操作、滑动条)Basic Gui (display image/ video keyboard and mouse handling, scroll-bars)图像标注(直线、曲线、多边形、文本标注)Image labeling(line, conic, polygon, text drawing[编辑](3) Opencvi模块cv-核心函数库Vaux-辅助函数库:e0机数线性代数作m|-机器学习函数库[编辑]2、有用的学习资源[编辑](1)参考手册:< opencv-root>/ docs/index. htm(译注:在你的 OpenCV安装目录< opencv-root>内)[编辑](2)网络资源:Etkmi:http:/www.intel.com/technology/computing/opencvl[编辑](3)书籍:Open Source Computer Vision Libraryby Gary R Bradski, Vadim Pisarevsky, and Jean-Yves Bouguet, Springer, 1st ed. (June, 2006)chenyusiyuan:补充以下书籍Learning OpenCV -Computer Vision with the OpenCV Libraryby Gary Bradski Adrian Kaehler, O Reilly Media, 1 st ed(September, 2008)OpenCv教程——一基础篇作者:刘瑞祯于仕琪,北京航空航天大学出版社,出版日期:200706(4)视频处理例程(在< opencv-root>/ samples/c/):·颜色跟踪: camshiftdemo点跟踪:| kemo动作分割: motel边缘检测: laplace[编辑](5)图像处理例程(在< opencv-root>/ samples/c/)边缘检测:edge图像分割: pyramid_ segmentation形态学: morphology直方图: demist距离变换: distrains椭圆拟合: fitellipse[编辑]3、 OpenCv命名规则[编辑](1)函数名CvActionTargetMod(.)Act⊥cn=核e functionality)(e.g. set, create)Targettarget image area) (e, g. contour, polygon)Modih (optional modifiers) (e.g. argument type)[编辑](2)矩阵数据类型:CV_(SIUIF)Cs=符号整型UE,q.:Cv_8UC1是指_个8位无符号整型单通道矩阵CV 32FC2是指一个32位浮点型双道道矩阵[编辑](3)图像数据类型:IPL_DEPTH_⊥nc1ude< VAux.h>include inc⊥ ude sinclude /一般不需要,cv,h内已包含该头文件[编辑]4、编译建议[编辑](1)Linux:g++ helloworld. cpp-o hello-worldI /usr/local/include/opencv -L /usr/local/liblm-Icv-highqui-Icvaux[编辑](2)Windows在Ⅵ visual studio的选项和项目牛设置好 OpenCv相关文件的路径。[编]5、C例程hello-worid. cpp/该程序从文件中读入一幅图像,将之反色,然后显示出来⊥nc1udeinclude ⊥nc1ude#include #include highgui.h>int main (int argc, char argv[IplImage* img=0int height, width, step, channelsuchar *datai. i,i,kif(argcheight iwidthimg->widthStepimg->widthstep ichannelsimg->channelsdata(uchar *)img->imageData iprint f("Processing a dx%d image with d channels", height, width, channels)create a windowcvNamedwindow("mainwin CV WINDOW AUTOSIZEcvMoveWindow ("mainwin", 100, 100)t the image相当于 caNot(img);for(i-o; isheighti 1++) for(j=; j
- 2020-12-10下载
- 积分:1