程序设计实践指导书(c++)

上传人:第*** 文档编号:56943788 上传时间:2018-10-17 格式:PDF 页数:34 大小:1.76MB
返回 下载 相关 举报
程序设计实践指导书(c++)_第1页
第1页 / 共34页
程序设计实践指导书(c++)_第2页
第2页 / 共34页
程序设计实践指导书(c++)_第3页
第3页 / 共34页
程序设计实践指导书(c++)_第4页
第4页 / 共34页
程序设计实践指导书(c++)_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《程序设计实践指导书(c++)》由会员分享,可在线阅读,更多相关《程序设计实践指导书(c++)(34页珍藏版)》请在金锄头文库上搜索。

1、 程序设计实践指导书 (C+版) 任课教师:郭勇 哈尔滨工业大学软件学院哈尔滨工业大学软件学院 2014-06-20 哈尔滨工业大学软件学院 程序设计实践 - I - 目目 录录 第 1 章 引 言 . 1 1 本课程的目的及意义本课程的目的及意义 1 2 教学基本要求教学基本要求 1 3 考核基本要求考核基本要求 1 4 要完成的内容要完成的内容 1 5 提交内容提交内容 3 第 2 章 编码规范 . 4 1 目的、环境目的、环境 4 2 文件结构文件结构 4 3 命名规则命名规则 5 4 代码风格与版式代码风格与版式 7 5 异常异常 14 第 3 章 VC+单步调试方法 . 15 1 目

2、的、环境目的、环境 15 2 知识要点:知识要点: 15 第 4 章 VC+中使用 MFC 编程 20 1 目的、环境目的、环境 20 2 知识要点:知识要点: 20 3 快速建立快速建立 MFC 应用应用 21 4 加入对话框资源加入对话框资源 26 5 在对话框中加入其他资源在对话框中加入其他资源. 29 附:. 31 1.图书管理系统参考功能图书管理系统参考功能 . 31 2.图书管理系统参考功能图书管理系统参考功能 . 31 3.图书管理系统参考界面图书管理系统参考界面 . 32 哈尔滨工业大学软件学院 程序设计实践 - 1 - 第第1 1章章 引引 言言 1 本课程的目的及意义本课程

3、的目的及意义 程序设计实践课程以基于项目的教学方法进行设计。 以一个项目为主线, 重点锻炼学生 软件项目开发能力,包括软件需求分析能力、计划管理、时间控制、团队协作、版本控制、 软件测试方法以及主要文档的编写。 通过本课程的学习和实践, 使学生掌握软件项目开发过 程中的主要环节, 学会软件项目计划的制定、 控制软件开发的时间、 懂得团队协作的重要性、 学会使用版本控制工具进行软件版本的管理, 并学基本的软件调试及测试方法, 进一步提高 学生的编程能力并养成良好的编程习惯。 2 基本要求基本要求 以 2-3 人为一个小组,通过对各知识点的训练最后分工合作完成一个项目。各部分要有 规范的文档,并且

4、编码符合规范要求,能够按计划在规定时间内完成所开发的项目,所开发 项目能正确运行, 能够通过小组讨论相互协作解决项目开发过程中的问题, 及验收测试的基 本过程。 具体功能由学生自行分析,功有模块不少于 10 个。 3 考核考核基本要求基本要求 在指定时间完成规定的内容,整个项目组的代码风格一致、符合制定的规范,程序运行 正确。 项目总分: 预期的全部功能完成情况、工作量及分工:30 分 程序是否正常运行、操作是否方便、数据是否正确:30 分 命名是否规范、代码结构是否清晰合理:15 分 程序设计实践报告:25 个人分数:项目总分 for (初始化; 终止条件; 更新) / . try / .

5、catch (const exception“ 应独占一行,并与 “class“ 关键字左对其。 /*! class * * 类名称 : CXXX 功能 : 异常类 : 备注 : 典型用法 : - 作者 : * */ class CXXX / . ; 对于功能明显的简单类(接口小于 10 个),也可以使用简单的单行注释头: /! class CXXX / . 哈尔滨工业大学软件学院 程序设计实践 - 10 - ; 继承 基类直接跟在类名称之后,不换行,访问说明符(public, private, 或 protected) 不可省略。如: class CXXX : public CAAA, pr

6、ivate CBBB / . ; 正确 地使 用 cons t 把不改变对象逻辑状态的成员都标记为const成员不仅有利于用户对成员的理解, 更可以最大化对象使用方式的灵活性及合理性 (比如通过 const 指针或 const 引用的形 式传递一个对象)。 如果某个属性的改变并不影响该对象逻辑上的状态,而且这个属性需要在 const 方法中被改变,则该属性应该标记为 “mutable“。 例如: class CString public: /! 查找一个子串,find()不会改变字符串的值所以为 const 函数 int find(IN const CString / . private: /

7、 最后一次错误值,改动这个值不会影响对象的逻辑状态, / 像 find()这样的 const 函数也可能修改这个值 mutable int m_nLastError; / . ; 初始 化列 表 应当尽可能通过构造函数的初始化列表来初始化成员和基类。 例如: CXXX:CXXXX(IN int nA, IN bool bB) : m_nA(nA), m_bB(bB) / . ; 初始化列表的书写顺序应当与对象的构造顺序一致,即:先按照声明顺序写基类 初始化,再按照声明顺序写成员初始化。 如果一个成员 “a“ 需要使用另一个成员 “b“ 来初始化, 则 “b“ 必须在 “a“ 之前 声明,否则将

8、会产生运行时错误(有些编译器会给出警告)。 例如: 哈尔滨工业大学软件学院 程序设计实践 - 11 - / . class CXXXX : public CAA, public CBB / . CYY m_iA; CZZ m_iB; / m_iA 必须在 m_iB 之前声明 ; CXXX:CXXXX(IN int nA, IN int nB, IN bool bC) : CAA(nA), CBB(nB), m_iA(bC), m_iB(m_iA) / 先基类,后成员, / 分别按照声明顺序书写 / . ; 4.3 函数函数 函 数 原 型 函数原型的格式为: 存储类 返回值类型 名空间或类:函

9、数名(参数列表) const 说明符 异常过 滤器 例如: static inline void Function1(void) int CSem:Function2(IN const char* pcName) const throw(Exp) 其中: 以 “ “ 括住的为可选项目。 除了构造/析构函数外,“返回值类型“ 和 “参数列表“ 项不可省略(可以为 “void“ )。 “const 说明符“ 仅用于成员函数中 “存储类“, “参数列表“ 和 “异常过滤器“ 的说明见下文 函 数 声 明 函数声明的格式为: /! 函数功能简单说明(可选) 函数原型; 例如: /! 执行某某操作 st

10、atic void Function(void); 函数声明和其它代码间要有空行分割。 声明成员函数时,为了紧凑,返回值类型和函数名之间不用换行,也可以适当 减少声明间的空行。 函函数定义使用如下格式: 哈尔滨工业大学软件学院 程序设计实践 - 12 - 数 定 义 /*! function * * 函数名 : 功能 : 参数 : IN|OUT 参数 1 : 参数说明 IN|OUT 参数 2 : 参数说明 . 返回值 : 抛出异常 : 类型 1 : 说明 类型 2 : 说明 . - 备注 : 典型用法 : - 作者 : * */ 函数原型 / . 对于返回值、参数意义都很明确简单函数(代码不超

11、过 20 行),也可以使用 单行函数头: /! 函数实现功能 函数原型 / . 函数定义和其它代码之间至少分开 2 行空行。 代 码 段 注 释 如果函数体中的代码较长, 应该根据功能不同将其分段。 代码段间以空行分离, 并且每段代码都以代码段分割注释作为开始。 例如: void CXXX:Function(IN void* pmodAddr) if (NULL = pmodAddr) return; CSessionLock iLock(*sm_hSELock); / 哈尔滨工业大学软件学院 程序设计实践 - 13 - = / = 判断指定模块是不是刚刚被装入,由于在 NT 系列平台中,“A

12、”系列函数都是 / = 由“W”系列函数实现的。所以可能会有一次 LoadLibrary 产生多次本函数调 / = 用的情况。为了增加效率,特设此静态变量判断上次调用是否与本次相同。 static PVOID pLastLoadedModule = NULL; if (pLastLoadedModule = pmodAddr) return; / 相同,忽略这次调用 pLastLoadedModule = pmodAddr; / = / = 检查这个模块是否在旁路模块表中 stringEx stModName; if (!BaiY_IMP:GetModuleNameByAddress(pmodAddr, stModName) return; if (CHookProc:sm_sstByPassModTbl.find(stModName) != CHookP

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

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

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