北京大学:《数据结构与算法》课程教学资源(实习课件PPT)风格、设计与实现

风格、设计与实现 2007.10
风格、设计与实现 风格、设计与实现 高壮 2007.10

class风格 命名 My Type语句; Mype注释; My Type文档; My Type参考文献; public 风格0; 风格0;
class 风格 { private: private: MyType 命名; MyType 语句; MyType 注释; MyType 文档; MyType 参考文献; public: public: 风格(); ~风格(); };

风格风格O 额外的工作量为了减少工作量 So it is a tradeoff! Good points 阅读别人的代码方便; 自己的代码适合别人学习,别人=?=几个月或者 几年后的自己 Bad point: 风格要付出额外的劳动—增加输入量; 人们经常忽略风格,或者不能达成共识 没有风格有利于代码的保密⑧
风格.风格() 额外的工作量为了减少工作量 额外的工作量为了减少工作量 So it is a tradeoff So it is a tradeoff! Good Points Good Points: 阅读别人的代码方便; 阅读别人的代码方便; 自己的代码适合别人学习,别人 自己的代码适合别人学习,别人=?=几个月或者 几年后的自己。 几年后的自己。 Bad Point Bad Point: 风格要付出额外的劳动 风格要付出额外的劳动—增加输入量; 人们经常忽略风格,或者不能达成共识; 人们经常忽略风格,或者不能达成共识; 没有风格有利于代码的保密 没有风格有利于代码的保密/

风格风格O 我们必须培养良好的代码风格: ■现在处于学习阶段,不能太懒 团队合作要求统一的风格 从最切身的利益讲:有利于助教或者老师 批改;② 所以我们的代码需要风格
风格.风格() 我们必须培养良好的代码风格: 我们必须培养良好的代码风格: 现在处于学习阶段,不能太懒; 现在处于学习阶段,不能太懒; 团队合作要求统一的风格; 团队合作要求统一的风格; 从最切身的利益讲:有利于助教或者老师 从最切身的利益讲:有利于助教或者老师 批改;☺ 所以我们的代码需要风格 所以我们的代码需要风格

风格风格O 两个程序片段 Int qg, 1,1, tot, pre -g9tot是什么? anf(%od", &qg while (-qq >=0) memset(stock, 0, sizeof(stock) anf(%/od%od",&side, &n); -max,min哪里来的? min scanf(o/od",&i) ++stock stock又是哪里的 f G> max)max =j if i< min) min=1
风格.风格() 两个程序片段: int main() { int qq, i, j, tot, pre; , i, j, tot, pre; ------------------ ------------------qq,tot是什么? scanf("%d scanf("%d", &qq); while ( while (--qq >= 0) { { memset(stock memset(stock, 0, sizeof(stock sizeof(stock)); scanf("%d%d scanf("%d%d", &side, &n); ", &side, &n); max = 0; max = 0; --------------------- ---------------------max,min哪里来的? min = 10; min = 10; tot = 0; tot = 0; for (i = 0; i max) max = j; if (j > max) max = j; if (j < min) min = j; if (j < min) min = j; tot += j * j; tot += j * j;

风格风格O bool Case: Cutable(COORDINATE leftTop int piece) if(left Top. first+pieceSizelpiece] >totalsize II left Top. second+piece Sizelpiecel>totalsize for(int row=leftTop first; row >caseNum while((caseNum--)>0) cutCake. Input
风格.风格() bool Case::Cutable(COORDINATE leftTop,int leftTop,int piece) { if(leftTop.first+pieceSize[piece if(leftTop.first+pieceSize[piece]>totalSize totalSize || leftTop.second+pieceSize[piece leftTop.second+pieceSize[piece]>totalSize totalSize) return false; return false; for(int for(int row=leftTop.first;row>caseNum; Case cutCake cutCake; while((caseNum--)>0) { cutCake.Input cutCake.Input(); cutCake.Output cutCake.Output(); } }

风格命名 命名是程序风格中最重要的部分,也是初 学者最容易忽略(甚至不屑)的部分。 个好的变量命名应该满足: )词能达意: COORDINATE leftTop b)表明身份:变量?函数?全局?局部?常 ?类?宏 存储类型:int?foat?char?
风格.命名 命名是程序风格中最重要的部分,也是初 命名是程序风格中最重要的部分,也是初 学者最容易忽略(甚至不屑)的部分。 学者最容易忽略(甚至不屑)的部分。 一个好的变量命名应该满足: 一个好的变量命名应该满足: a) 词能达意: COORDINATE COORDINATE leftTop leftTop b) 表明身份:变量?函数?全局?局部?常 表明身份:变量?函数?全局?局部?常 量?类?宏?… c) 存储类型:int?float?char?

风格命名 词能达意 ”获得字符串的长度“的函数,下面两个名称 hdzfcdcd O getLength () 孰优孰劣,一目了然! 这里我们不提倡“爱国”,不要用拼音,尤其 是拼音首字母组合米
风格.命名 词能达意: ”获得字符串的长度 获得字符串的长度“的函数,下面两个名称: 的函数,下面两个名称: hdzfcdcd hdzfcdcd() getLength getLength() 孰优孰劣,一目了然! 孰优孰劣,一目了然! **这里我们不提倡 这里我们不提倡“爱国”,不要用拼音,尤其 ,不要用拼音,尤其 是拼音首字母组合 是拼音首字母组合**

风格命名 表明身份: ■ ariable: 局部变量 variable:全局变量 m variable:成员变量 dosomething:函数 CONSTANT VARIABLE:常量 assume 类 MACRO0法宏 vErtex:全局变量,并且是指向顶点的指针
风格.命名 表明身份: variable variable:局部变量 g_variable g_variable:全局变量 m_variable m_variable:成员变量 doSomething doSomething():函数 CONSTANT_VARIABLE CONSTANT_VARIABLE:常量 ClassName ClassName:类 MACRO(): MACRO():宏 g_pVertex g_pVertex:全局变量,并且是指向顶点的指针 全局变量,并且是指向顶点的指针

风格命名 存储类型(匈牙利命名法) ■ Char charac ■ bOoL eNable Int nLength ■ WORD WPOS ■ LONG OFfset ■ DWORD dwRange 指针pDoc 远指针 lpszName 32位字符串指针1 pszName 32位常量字符串指针 lpszName ■ Windows对象句柄hWnd
风格.命名 存储类型(匈牙利命名法): 存储类型(匈牙利命名法): Char chGrade chGrade BOOL bEnable bEnable Int nLength nLength WORD wPos LONG lOffset lOffset DWORD dwRange dwRange 指针 pDoc 远指针 lpszName lpszName 32位字符串指针 lpszName lpszName 32位常量字符串指针 位常量字符串指针 lpszName lpszName Windows Windows对象句柄 hWnd
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)风格、设计与实现.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习课件PPT)概论.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)概论.pdf
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)高级树形结构.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)高级数据结构.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)索引技术.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)检索.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)文件管理和外排序.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)内排序.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)图.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)树与森林.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)字符串.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)二叉树.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)线性表、栈和队列.ppt
- 北京大学:《数据结构与算法》课程教学资源(PPT课件讲稿)数据结构和算法简介(概论).ppt
- 北京大学:《数据结构与算法》实习实验教程(PPT课件讲稿)数据结构设计技巧之二.ppt
- 北京大学:《数据结构与算法》实习实验教程(PPT课件讲稿)数据结构设计技巧之一.ppt
- 北京大学:《数据结构与算法》实习实验教程(PPT课件讲稿)实践之四:浅谈软件测试.ppt
- 北京大学:《数据结构与算法》实习实验教程(PPT课件讲稿)实践之三:界面、排错、性能.ppt
- 北京大学:《数据结构与算法》实习实验教程(PPT课件讲稿)浅谈软件开发过程.ppt
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)文件操作.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习课件PPT)文件操作(文件流技术).pdf
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)面向对象程序设计.ppt
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)界面技术(界面和排错).pdf
- 北京大学:《数据结构与算法》课程教学资源(实习课件PPT)界面技术(界面和排错).pdf
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)测试、性能和可扩展性.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习课件PPT)测试、性能和可扩展性.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)浅谈软件项目管理.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习课件PPT)浅谈软件项目管理.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)租房信息专业搜索引擎项目计划书.doc
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)基本算法与枚举法.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习课件PPT)基本算法与枚举法.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)回溯(Backtracking)基本原理.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习课件PPT)回溯(Backtracking)基本原理.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)贪心法.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习课件PPT)贪心法.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)分治法与时间复杂度计算.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习课件PPT)分治法与时间复杂度计算.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习讲义)动态规划.pdf
- 北京大学:《数据结构与算法》课程教学资源(实习课件PPT)动态规划.pdf