《程序设计风格》PPT课件.ppt_第1页
《程序设计风格》PPT课件.ppt_第2页
《程序设计风格》PPT课件.ppt_第3页
《程序设计风格》PPT课件.ppt_第4页
《程序设计风格》PPT课件.ppt_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

南京大学计算机科学与技术系BaseofProgramming 1 4程序设计风格 南京大学计算机科学与技术系BaseofProgramming 2 程序设计 Programdesign Programming 计算机解题的方式与人解题的方式存在差异程序设计 设计和编制程序的过程 设计程序 数据结构设计和算法设计编制程序 把设计转化为某种程序语言的代码 软件工程 SoftwareEngineering 程序设计语言 程序设计要素数据结构算法程序设计方法 方法学语言工具和环境 语言学 南京大学计算机科学与技术系BaseofProgramming 3 面向过程面向问题面向对象 程序设计方法 南京大学计算机科学与技术系BaseofProgramming 4 程序设计语言 程序设计的结果必然要用一种能被计算机接受的语言表示出来 即编程实现 Coding 程序设计语言是人与计算机 计算机之间对话的工具 是用来书写计算机程序的语言机器语言 Machinelanguage 汇编语言 Assemblylanguage 高级语言 High levellanguage 南京大学计算机科学与技术系BaseofProgramming 5 1程序设计风格 程序设计风格通常有非结构化与结构化之分程序设计风格通常是指对程序进行静态分析所能确认的程序特性 它涉及程序的易读性 南京大学计算机科学与技术系BaseofProgramming 6 结构化程序设计自1969年由荷兰学者迪克斯特拉 E W dijkstra 提出后 经数十年的发展 如今已被广泛用于程序设计中 它要求整个程序可分解为不同功能的模块 每一个模块又由不同的子模块组成 最小的模块是一个最基本的结构 这样的程序一般具有良好的书写形式和结构 可以避免程序中无规则的跳转和繁杂的逻辑关系 易于阅读和理解 是一种良好程序设计风格的典范 结构化程序设计 StructuredProgramming 简称SP 南京大学计算机科学与技术系BaseofProgramming 7 SP不仅要求所编出的程序结构良好 而且还要求程序设计过程也是结构良好的 后者是前者的基础 对程序设计过程而言 结构良好 是指采用分解和抽象的方法来完成程序设计任务 具体体现为 自顶向下 逐步精化 的程序设计过程 对程序而言 结构良好 是指 每个程序单位应具有单入口 单出口的性质 不包含不会停止执行的语句 程序在有限时间内结束 程序中没有无用语句 程序中所有语句都有被执行的机会 结构化程序设计 StructuredProgramming 简称SP 南京大学计算机科学与技术系BaseofProgramming 8 结构化程序设计规定了几种具有良好特性的 基本结构 以作为程序设计中的基本单元 再由这些基本单元构成大的程序 其基本结构主要有三种 即顺序结构 分支 选择 结构和循环结构 三种基本流程的共同特点 只有一个入口 只有一个出口 每一部分都有机会被执行到 不存在 死循环 南京大学计算机科学与技术系BaseofProgramming 9 采用一致 有意义的标识符为程序实体 如变量 函数等 命名 使用符号常量为程序书写注释采用代码的缩进格式 南京大学计算机科学与技术系BaseofProgramming 10 自定义标识符命名建议 建议1 自定义标识符应当直观 用词尽量准确 可望文知意 便于记忆和阅读 切忌使用汉语拼音来命名 建议2 标识符的长度应当符合 min length max information 原则 一般来说 长名字能更好地表达含义 但名字并非越长越好 单字符的名字也是有用的 常见的如i j k m n x y z等 它们通常可用作函数内的局部变量 南京大学计算机科学与技术系BaseofProgramming 11 建议3 程序中不要出现仅靠大小写区分的相似的标识符 例如 intx y X 变量x与X容易混淆voidfoo intx 函数foo与FOO容易混淆voidFOO inty 建议4 用一对反义词命名具有相反含义的变量或函数等 例如 intminValue maxValue intSetValue GetValue 南京大学计算机科学与技术系BaseofProgramming 12 建议5 函数名和类型名用大写字母开头的单词组合而成 如 voidInit void voidSetValue intvalue 建议6 变量名和参数名的首单词用小写字母开头 如 intflag intstuAge intcurrent value main函数除外 南京大学计算机科学与技术系BaseofProgramming 13 建议7 符号常量名全用大写字母 用下划线分割单词 如 defineMAX LENGTH100 definePI3 14 建议8 静态变量名加前缀s 表示static 如 staticints initValue 建议9 全局变量名加前缀g 表示global 如 intg howManyBook 南京大学计算机科学与技术系BaseofProgramming 14 程序排版建议 建议1 在每个函数定义结束之后加空行 建议2 在一个函数体内 逻辑上密切相关的语句之间不加空行 其它地方加空行分隔 建议3 一行代码只做一件事情 比如只定义一个变量 或只写一条语句 这样的代码容易阅读 并且便于写注释 南京大学计算机科学与技术系BaseofProgramming 15 建议4 尽可能在定义变量的同时初始化该变量 如果变量的引用处和其定义处相隔比较远 变量的初始化很容易被忘记 如果引用了未初始化的变量 可能会导致程序错误 本建议可以减少隐患 建议5 长表达式要在低优先级操作符处拆分成新行 操作符放在新行之首 以便突出操作符 拆分出的新行要进行适当的缩进 使排版整齐 语句易读 建议6 注释的位置应与被描述的代码相邻 可以放在代码的上方或右方 当代码比较长 特别是有多重嵌套时 应在一些段落的结束处加注释 便于阅读 南京大学计算机科学与技术系BaseofProgramming 18 好的程序 正确 Correct 高效 Efficient 可靠 Reliable 易读 Easytoread 可维护 Maintainable 可重用 Re usable 可移植 Portable 南京大学计算机科学与技术系BaseofProgramming 19 2各种结构程序设计范例 顺序结构分支结构循环结构综合结构 南京大学计算机科学与技术系BaseofProgramming 20 2 1顺序结构程序设计范例 顺序结构涉及要素 表达式语句 赋值表达式 赋值语句最常用 空语句顺序结构 南京大学计算机科学与技术系BaseofProgramming 21 例1 输入一个角度 计算其对应的正弦值 可调用库函数 南京大学计算机科学与技术系BaseofProgramming 22 include include definePI3 14usingnamespacestd intmain intalpha 0 doublex y cout alpha x alpha PI 180 0 y sin x cout sin alpha y endl return0 Ex1 运行结果 sin 60 0 86576 南京大学计算机科学与技术系BaseofProgramming 23 include include definePI3 14usingnamespacestd intmain intalpha1 0 alpha2 0 alpha3 0 doublex y cout alpha1 alpha2 alpha3 x alpha1 alpha2 alpha3 60 0 60 0 x x PI 180 0 y sin x cout sin alpha1 alpha2 alpha3 cout y endl return0 Ex1 运行结果 sin 60 30 30 0 870164 南京大学计算机科学与技术系BaseofProgramming 24 2 2分支结构程序设计范例 分支结构涉及要素 if if else switchbreakgoto复合语句分支结构 南京大学计算机科学与技术系BaseofProgramming 25 例2 计算函数分析 南京大学计算机科学与技术系BaseofProgramming 26 includeusingnamespacestd intmain doublex y cout x if x10 y x x 1 elsey x cout y endl return0 Ex2 计算分段函数 南京大学计算机科学与技术系BaseofProgramming 27 从键盘输入一个三角形的三条边 判断其为何种三角形 includeusingnamespacestd intmain floata b c cin a b c if a b c b c a c a b cout 不是三角形 elseif a b Ex3 南京大学计算机科学与技术系BaseofProgramming 28 并非越精炼的程序就越好 并非越精炼的程序效率就越高 P47例3 6 南京大学计算机科学与技术系BaseofProgramming 29 includeusingnamespacestd intmain doublex y charoperatr cout x operatr y switch operatr case x y break case x y break case x y break case x y break default cout error n cout x endl return0 输入 10 8 0 13输出 10 93 例4 编程 模拟袖珍计算器的加减乘除四则运算 读入数据 并按算式计算结果 若去掉break语句执行结果将如何 南京大学计算机科学与技术系BaseofProgramming 30 includeusingnamespacestd intmain doublex y charoperatr cout x operatr y switch operatr case x y break case x y break case x y break case x y break default cout error n cout x endl return0 输入 10 8 0 13输出 10 930000 思考 修改程序 使之能计算一个加减运算混合表达式 输入 10 8 0 13 10 输出 0 930000 南京大学计算机科学与技术系BaseofProgramming 31 2 3循环结构程序设计范例 循环结构涉及要素 while do while forbreakcontinuegoto 使用频率 for while do while 南京大学计算机科学与技术系BaseofProgramming 32 includeusingnamespacestd intmain intp i n 10 p 1 i 2 while i n p p i i cout factorialofn p endl return0 例5 计算n p 1 i 2 do p p i i while i n for i 2 p 1 i n i p i 南京大学计算机科学与技术系BaseofProgramming 33 例6 利用公式 C 5 9 F 32 计算并输出F氏温度与C氏温度对照表 设已知F氏温度取0 10 20 200 南京大学计算机科学与技术系BaseofProgramming 34 defineLOWER0 defineUPPER200 defineSTEP10 includeusingnamespacestd intmain floatf c 变量定义f LOWER while f UPPER 循环计算 c 5 0 9 0 f 32 0 cout f c endl f f STEP return0 Ex6 南京大学计算机科学与技术系BaseofProgramming 35 确定性有穷性可执行性 有效性 0个或多个输入 1个或多个输出 求i的约数 i除以一个数 余数为0 1 i之间的一个整数 inta b c cin a b c a b if b 0 cout else 2 4综合结构程序设计范例 求和 shortsum 0 i 32767 while i 0 sum sum i i i 2 cout 南京大学计算机科学与技术系BaseofProgramming 36 例7 译密码 为使电文保密 往往按一定规律将其转换成密码后传输 收报人再按约定的规律解密 编程将输入字符按如下规律

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论