综合实践我的程序我来设计》ppt课件信息技术九下

上传人:san****019 文档编号:70176331 上传时间:2019-01-16 格式:PPT 页数:50 大小:848.51KB
返回 下载 相关 举报
综合实践我的程序我来设计》ppt课件信息技术九下_第1页
第1页 / 共50页
综合实践我的程序我来设计》ppt课件信息技术九下_第2页
第2页 / 共50页
综合实践我的程序我来设计》ppt课件信息技术九下_第3页
第3页 / 共50页
综合实践我的程序我来设计》ppt课件信息技术九下_第4页
第4页 / 共50页
综合实践我的程序我来设计》ppt课件信息技术九下_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《综合实践我的程序我来设计》ppt课件信息技术九下》由会员分享,可在线阅读,更多相关《综合实践我的程序我来设计》ppt课件信息技术九下(50页珍藏版)》请在金锄头文库上搜索。

1、程序设计综合实践,Outline,软件工程开发方法的介绍 “扫雷”案例的讲解 通讯录范例解析 实践作业要求,1 软件工程开发方法的介绍,生命周期方法学:从时间角度对软件开发和维护的复杂问题进行分解,把软件生命的漫长周期依次划分为若干个阶段,每个阶段有相对独立的任务,然后逐步完成每个阶段的任务。前一个阶段任务的完成是开始进行后一个阶段工作的前提和基础,而后一阶段任务的完成通常是使前一阶段提出的解法更进一步具体化,加进了更多的实现细节。,1 软件工程开发方法的介绍: 生命周期方法学,软件生命周期每个阶段及其解决的关键问题,瀑布模型,1 软件工程开发方法的介绍: 生命周期方法学,1 软件工程开发方法

2、的介绍: 结构化程序设计方法,结构化程序设计方法:是一种设计程序的技术,采用自顶向下逐步求精的设计方法和单入口单出口的顺序、选择和循环三种基本控制结构。它提出的原则可归纳为32字:“自顶向下,逐步细化;清晰第一,效率第二;书写规范,缩进格式;基本结构,组合而成。”,科目1考试网 http:/ 科目1考试 科目1考试网 http:/ 科目一考试C1试题 科目1考试网 http:/ 科目一考试B2试题 科目一考试网 http:/ 科目一模拟考试2016题库 科目一考试网 http:/ 科目一模拟考试C1 科目一考试网 http:/ 科目一模拟考试C2 科目一考试网 http:/ 科目一模拟考试A2

3、 科目一考试网 http:/ 科目一模拟考试B2 科目一考试网 http:/ 科目一模拟考试A1 科目一考试网 http:/ 科目一模拟考试A3,1 软件工程开发方法的介绍: 结构化程序设计方法,1 软件工程开发方法的介绍: 结构化程序设计方法,1 软件工程开发方法的介绍: 结构化程序设计方法,1 软件工程开发方法的介绍: 结构化程序设计方法,1 软件工程开发方法的介绍: 结构化程序设计方法,1 软件工程开发方法的介绍: 结构化程序设计方法,1 软件工程开发方法的介绍: 结构化程序设计方法,1 软件工程开发方法的介绍: 结构化程序设计方法,1 软件工程开发方法的介绍,三种描述设计的图形工具:

4、层 次 图用来描述软件层次结构 程序流程图是历史最悠久、使用最广泛 的描述软件设计的方法 盒 图是一种很好的支持结构化程序 设计思想的图形工具,1 软件工程开发方法的介绍: 描述设计的图形工具,1 软件工程开发方法的介绍: 描述设计的图形工具,1 软件工程开发方法的介绍,编码时注意的问题: 全局变量应该“有限制地使用全局变量”。使用全局变量过多,会降低程序的清晰性;降低函数的通用性;滥用全局变量会造成程序的混乱 函 数“工欲善其事,必先利其器”。我们在编写大型程序时,要善于利用已有的函数,以减少重复编写程序段的工作量,1 软件工程开发方法的介绍,编码时注意的问题: 风格全局变量使用具有说明性的

5、名字,局部变量用短名字 表达式和语句采用一致的缩进风格、使用表达式的自然形式、分解复杂的表达式、当心具有副作用的运算符 神秘的数最好要命名,利用语言去计算对象的大小 除了定义符号常量外,最好避免使用宏 注释时要注意不要大谈明显的东西,要给函数和全局数据加注释,1 软件工程开发方法的介绍,测试和调试方法: 测试是在认为程序能工作的情况下,为发现其问题而进行的一整套确定的系统化的实验 白盒测试相当于把程序看成装在一个透明的白盒子里,也就是完全了解程序的结构和处理方法。它根据程序内部的逻辑来设计测试用例,检查程序中的逻辑路径是否都按预定的要求正确地工作。常用的技术包括语句覆盖、判定覆盖、条件覆盖、判

6、定/条件覆盖、条件组合覆盖、路径覆盖等。,1 软件工程开发方法的介绍,测试和调试方法: 测试是在认为程序能工作的情况下,为发现其问题而进行的一整套确定的系统化的实验 黑盒测试相当于把程序看成一个黑盒子,不考虑内部结构和处理过程。它根据规定的功能来设计测试用例,检查程序的功能是否符合要求。常用的技术包括等价类划分和边界值分析等。,1 软件工程开发方法的介绍,测试和调试方法: 调试(即排错)是在已知程序有问题时要做的事情 寻找熟悉的模式 检查最近的改动 不要两次犯同样的错误 现在排除,而不是以后 把你的代码解释给别人 分而治之,搜索局部化,Outline,软件工程开发方法的介绍 “扫雷”案例的讲解

7、 通讯录范例解析 实践作业要求,2 “扫雷”案例,实现一个具有Windows系统扫雷游戏主要功能的扫雷程序。,2 “扫雷”案例:分析,Windows扫雷游戏的游戏规则 : 在“游戏”菜单上,单击“开局”,出现的游戏界面中包括地雷计数器窗口、计时器窗口和雷区。开局后,单击雷区中的任何一个方块,便启动计时器。每标记一个地雷,地雷计数器减1; 用鼠标左键单击某个方块,可挖开它。若所揭方块下有雷,则踩雷,此时所有含地雷的块都标记,这局游戏失败;如果方块上出现数字,它代表在它周围的八个方块中共有多少颗地雷; 用鼠标右键单击某个方块,则标记此块下埋着地雷(实际上可能是误标),显示为。每标记一个地雷,地雷计

8、数器减1; 用鼠标右键击打某个方块两次,则在某块上面标一个问号(?),意味着没有把握判定它是否有雷。标记为?的块可在恰当的时候再击打鼠标右键两次或单击左键,将其标记为地雷或挖开; 如果某个数字方块周围的地雷全都标记完,可以同时单击鼠标左右键,将其剩下的方块挖开。如果挨着这个方块的地雷没有全部标记完,则未挖开的方块将闪烁。,2 “扫雷”案例:分析,主要功能: 规则1)隐含初始化新游戏的开局功能; 规则2)隐含的挖雷功能; 规则3)对应的标记地雷功能; 规则4)对应的标记疑问功能; 规则5)的自动挖开功能。 操作手段:鼠标,2 “扫雷”案例:设计,2 “扫雷”案例:设计,自顶向下逐步求精: 继续分

9、析已有功能,精化出所有子功能,确定模块间接口; 描述精化后每个模块的处理过程; 确定主要的数据及其数据结构; 确定输入输出数据的内外部形式; 界面的设计,2 “扫雷”案例:设计-界面,2 “扫雷”案例:设计-操作方式,采用键盘: 上,下,左,右键用来移动光标的位置; 回车或者空格键用来挖开光标当前指向的一个方块; F, f 标记当前光标指向的方块有地雷; Q, q 在光标指向方块打一个问号,表示可能有地雷; A , a 自动挖开光标周围的方块; ESC 退出游戏,2 “扫雷”案例:设计-主要数据,雷区界面数据 # define ROW 16 /* 表示整个雷区的行数*/ # define CO

10、L 16 /* 表示整个雷区的列数*/ # define STARTX 50 /* 表示雷区在屏幕上的起始x坐标*/ # define STARTY 50 /* 表示雷区在屏幕上的起始y坐标*/ # define SIZEX 20 /* 表示一个方块的长度*/ # define SIZEY 20 /* 表示一个方块的宽度*/,2 “扫雷”案例:设计-主要数据,雷区内部数据 int totalMine; /* 整个雷区所含的地雷总数*/ int tableROWCOL; /* 数组table的每个元素值记录了雷区 对应方块是否有雷:1有雷,0无雷*/ int numROWCOL; /* 数组nu

11、m的每个元素值记录了雷区 对应方块周围有多少个地雷*/ int flagROWCOL; /* 数组flag的每个元素值记录了雷区 对应方块当前的状态*/,2 “扫雷”案例:设计-主要数据,方块(i,j)的状态取值 #define UNFLAG 0 /* 表示该方块还没有被打开或者标记*/ #define FLAGED 1 /* 标记该方块有地雷*/ #define QUESTION 20 /* 表示该方块可能有地雷*/ #define EXPLOD 30 /* 踩到地雷爆炸了*/ #define OPEN 40 /* 一个没有地雷的方块被打开*/,2 “扫雷”案例:设计-主要数据,光标当前位置

12、数据 int pi,pj; /* 记录光标的当前位置,初始时光标在(0,0)*/ int di8=-1,-1,0,1,1,1,0,-1; int dj8=0,1,1,1,0,-1,-1,-1; /*相对于当前方块而言,di8和dj8分别表示了它周围八个 方块的行和列坐标偏移量。它们与当前光标坐标配合使用, 可表示周围的方块,如(-1+pi,0+pj)表示当前方块的 正上方方块的坐标。*/,2 “扫雷”案例:设计-主要数据,游戏状态数据 int gameRes; /*记录游戏结束的结果状态,是输出数据的内部形式。 值为0表示按esc键退出游戏;-1 表示游戏失败; 1表示游戏胜利。*/,2 “扫

13、雷”案例:设计功能求精,第1步:写出主程序的基本框架,确定各个内部模块的函数名和参数; 第2步:对“图形初始化”进一步求精; 第3步:对“初始化新游戏”进一步求精; 第4步:对“读入操作信息”进一步求精; 第5步:对“对其他key值进行判断处理” 进一步求精; 第6步:对判断游戏是否胜利进一步求精。,Outline,软件工程开发方法的介绍 “扫雷”案例的讲解 通讯录范例解析 实践作业要求,3 通讯录范例解析,问题描述: 以文件的方式保存用户录入的通讯录数据 供用户查询和使用通讯录信息 功能分析: 记录项的基本属性:姓名、性别、住址、联系电话、电子邮件 等 操作功能: 录入:操作添加一条新的记录

14、项 删除:删除一条已经存在的记录项,3 通讯录范例解析,功能分析: 修改:改变记录项的一个或多个属性,并用新的记录项覆盖已经存在的记录项 查找:根据用户输入的属性值查找符合条件的记录项。 通讯录数据以文件形式存储在磁盘上,根据实际需要定义文件的存储格式;在程序运行中需要对文件进行读取操作。 程序中还要对输入数据的容错性进行检查,可以保证通讯录数据的合法性。,3 通讯录范例解析,设计: 程序总体结构: 输入输出模块:人机交互,包括程序界面显示、用户输入响应、结果输出等 管理模块:管理模块从输入输出模块读取用户命令并进行相应的操作,包括录入、删除、修改、查找、列表等 文件操作模块:进行存储文件的读

15、写,3 通讯录范例解析,模块结构图,输入输出终端,输入输出模块,管理模块,文件操作模块,存储文件,用户输入,系统输出,文件写入,文件读出,3 通讯录范例解析,通讯录,界面设计 :,3 通讯录范例解析,数据结构设计: struct myrecord unsigned int num; unsigned int group; char nameMAXLEN+1; char gender; date birthday; char addressMAXLEN+1; char phoneMAXLEN+1; char emailMAXLEN+1; ;,3 通讯录范例解析,数据结构设计: struct mydate unsigned int year; unsigned int month; unsigned int day; ; typedef struct mydate date;,3 通讯录范例解析,数据结构设计: 三个查询关键字:记录编号、组别和联系人姓名 union mysearch_entry unsigned int num; unsign

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号