DATA STRUCTURES AND PROGRAM DESIGN IN C++ Unit1 Programming Principles

来源:互联网 发布:微信霸屏软件 编辑:程序博客网 时间:2024/04/29 22:55

编程原则(大型程序设计问题)

问题提出->需求分析->选择数据结构->设计、分析算法->程序编码->软件测试和验证->程序维护

1.1简介  C++语言支持软件工程方法的特色

1.数据抽象 2.面向对象设计 3.自顶向下设计 4.可能重用代码

1.2 life游戏 

一、游戏规则:

本世纪70年代,人们曾疯魔一种被称作“生命游戏”的小游戏,这种游戏相当简单。假设有一个像棋盘一样的方格网,每个方格中放置一个生命细胞,生命细胞只有两种状态:“生”或“死”。规则如下:n活的细胞:邻居数为0,1,>=4,下一代将死去。n死的细胞:邻居数为3,复活。n保持原状:邻居数为2,3。n依此规则进行迭代变化,使细胞生生死死,会得到一些有趣的结果。该游戏之所以被称为“生命游戏”,是因为其简单的游戏规则,反映了自然界中的生存规律:如果一个生命,其周围的同类生命太少的话,会因为得不到帮助而死亡;如果太多,则会因为得不到足够的资源而死亡。

二、设计生存游戏的算法

1、引入了C++的类、对象、数据成员、方法、成员函数、公有与私有等概念

2、定义生存游戏的类

算法

1.设置Lift Configuration初始状态

2.打印Lift Configuration状态

3.当用户要下一代生成的细胞图时

1)根据游戏规则更改Configuration

2)打印当前Configuration状态

1.3 编程风格

1)命名规则

2)文档格式

3)逐步求精及模块化中的编程准则

①自顶向下

②工作分配

4)数据分类

Input parametersn

Output parametersn

Inout parametersn

Local variablesn

Global variables

1.4 编码测试及求精

程序测试的原则

    测试数据的质量比数量更为重要

    测试只能发现错误而不能证明程序的正确性

程序测试的方法

    黑盒法  白盒法

1.5 程序维护

1)程序交付使用后一半以上的工作就要进行维护

2)给出用于评价Evaluation程序的6个问题,并以”life游戏“程序为例进行说明

3)程序的改进及进一步的开发

1.6 结论及预备知识

    软件工程方面的进一步的概念

        1)软件的生命周期

        2)需求规范说明书

        3)快速原型法