在“Contents”标签页下,可以按目录查看所需帮助。
在“Index”标签页下键入关键字,可以查看对应的帮助。
在“Search”标签页下键入关键字,可搜索相应的帮助。
在左上部的编辑框中键入要查询的关键字,可以在http://www.cpprefernce.com查找相关帮助。
(3)配置编辑环境 选择“Settings Editor…”菜单,会弹出“Configure editor”对话框,在其中可以设置源代码字体、源代码风格等。
单击左侧的“Source formatter”图标,可以设置源代码的编写风格,如 ANSI、KampR、Linux、GNU、
Java、Custom 等,从中选择一种自己喜欢的风格(如图 1-5) 。
图 1-5 设置编码风格 3.程序编辑与调试 (1)工程管理 Code::Blocks 通过工作空间(Workspace)来管理多个工程(Project) ,而每个工程又是一组相关程序文件的集合,通常包含多个头文件(.h)和源文件(.cpp 或.hpp) 。
创建工程的方法很多,可以选择“File New Project…”菜单,也可单击“MainToolbar New file Project…” 工具栏按钮,还可以单击 Code::Blocks 主界面中的“Createa new project”链接。
无论使用哪种方式创建工程,都会打开“New from template”对话框(如图 1-6)。
从中选择一种工程类型,如控制台应用程序(Console application),接着选择希望使用的编程语言(本课程选 C) ,再指定工程文件名称及路径,最后指定使用的编译器(默认为 GNU GCC Compiler)以及希望创建的目标类型(如图 1-7) 。
目标类型可以为 Debug 或 Release,Debug 版本的目标文件允许使用调试器对该文件进行测试,其目标文件通常较大,而 Release 版本的目标文件一般较小。
工程创建成功后,在左侧控件栏“Management”的“Projects”选项卡下,可以依次展开需要查看的源文件。
打开的源文件显示在中间的代码窗口内,各种编辑功能可以通过“Edit”菜单或上下文菜单(在代码窗口中单击右键)来实现。
还可以向工程中添加新文件或现有文件,也可以移除相关文件。
工程的相关操作均可以通过“Project”菜单或在工程的快捷菜单(在工程名4上单击右键)来实现。
保存应用程序时,注意保存整个工程。
图 1-6 设置工程类型 图 1-7 设置工程的编译器及配置 (2)编译程序 单击“Project Build options…” 弹出 菜单, “Project build options” 对话框 (如图 1-8)。
选择 Debug 目标,“Compiler settings Compiler Flags” “Producing debugging symbols 在 选中-g”和“Enable standard compiler warnings -W” 。
前者表示产生调试信息,后者意味着给出标准的编译警告信息。
选择 Release 目标,在“Compiler settings Compiler Flags”选中“Strip all symbols from binary minimizes size -s”和“Optimize fully for speed-O3”。
图 1-8 工程编译选项 编译可通过 Build 菜单或 Compiler toolbar 工具栏来实现。
Build 为编译程序, Run为运行程序, Build and run 为编译并运行程序, Rebuild 为重新编译程序,Clean 可清除生成的目标文件。
在编译之前,应选择需要编译的目标类型(Debug 或 Rlease) 。
编译后,会在 Build messages 窗口中输出错误和警告,单击错误或警告,通常会定位到代码窗口中出错的地方,如图 1-9。
一般先修改前面的错误,再重新编译,可能会大大减少错误数目,直到编译成功为止。
5 图 1-9 Code::Blocks 集成开发环境 (3)调试程序 程序编译成功并不意味着程序的运行结果完全正确,可能还存在一些逻辑错误,需要通过调试来查找出错原因。
常用的调试方法主要有三种:在程序中添加输出语句,检查输出结果;单步执行应用程序,添加监视窗口查看局部变量的数值;设置条件断点监测程序运行过程(按 F5 可切换断点,右击断点可设置条件)。
常用调试命令的基本含义如表 1-1。
表 1-1 常用的调试命令 按钮 命令名称 快捷键 命令含义 Debug/Continue F8/CtrlF7 启动调试或继续执行 Run to cursor F4 运行到当前光标处暂停 Next line F7 单步运行到下一行语句 Next instruction AltF7 单步运行到下一条指令 Step into ShiftF7 进入函数内部单步执行 Step out CtrlShiftF7 跳出函数外部单步执行 Stop Debugger 停止调试 Debugging windows 打开相应的调试窗口 Various info 显示相应的调试信息四、实习思考 1.比较分析常用的 C的集成开发环境的优缺点。
2.Code::Blocks 中如何引入第三方库。
3.总结 C应用程序调试的基本方法。
4.用工程管理应用程序的主要目的。
6 实习二 C 函数一、实习目的 1. 掌握函数的重载; 2. 理解内联函数的概念,掌握内联函数的使用方法; 3. 掌握默认形参值的函数定义和使用; 4. 掌握函数参数表中的引用操作; 5. 掌握函数模板的使用。
二、实习内容 1.掌握函数的重载 计算 2 个浮点数的最小值函数 min 声明如下: float minfloat x1 float x2 计算 3 个浮点数的最小值函数 min 声明如下: float minfloat x1 float x2 float x3 计算 4 个浮点数的最小值函数 min 声明如下: float minfloat x1 float x2 float x3 float x4; 在 完成函数体, main 函数中调用自己编写的 min 函数, 输出 min0.12 0.56 110.30.03的结果。
2.理解内联函数的概念,掌握内联函数的使用方法 1 以下是斐波那契级数的定义: a0 1 a1 1 an an 1 an 2 n 2 , ,编写程序求斐波那契级数的第 n 项; 2 将1中的关键代码用作内联函数调用,求出斐波那契级数的第 1000 项,并记录运算时间。
与不使用内联函数求解第 1000 项所消耗的时间作比较。
注意思考和体会内联函数的使用对程序运行所需要时间和空间上的影响; 3 再写出一个使用内联函数的应用实例,并调用程序显示出使用内联前后在运行时间上的对比。
3.掌握默认形参值的函数定义和使用 普通的比较浮点数大小的函数如下: bool biggerfloat x1 float x2; 带默认形参值的比较浮点数大小的函数(默认与 0 比较)声明如下: bool biggerfloat x1 float x2 0.0; 7 1 对于带默认形参值的比较函数,尝试如下调用并分析其编译方式: coutltltbigger12ltltendl coutltltbigger1.5ltltendl 2 再写一个比较函数 bool smallerfloat x1 float x2与默认与 1 进行比较的 bool smallerfloat x1 float x2 1.0。
4.掌握函数参数表中的引用操作; 完成下面用引用操作实现函数多输出的例子,即输入两个浮点数,输出浮点数的和,差,乘积等 3 个输出值。
void Mathfloat a float b float ampsum float ampsub float amppro;并在 main 函数中尝试调用输出结果; 2 根据利用引用实现多输出的操作,完成如下题目: 输入两个整数,输出它们的最大公约数和最小公倍数。
5.掌握函数模板的使用; 1 使用函数模板实现从一个模板类型的数组里随即取出一个元素,完成函数: T RandomSelectT a int length; 2 试用上面设计的函数模板实现分别存储教师和学生信息的两个数组的随机元素抽取。
其中, 教师信息包括:教工号、教师姓名、所教课程; 学生信息包括:学号、班级、姓名。
三、注意事项 ⒈ 在使用函数重载时要注意:不可以使两个重载函数同时具有相同的名称、相同的参数类型和个数,即不需保证重载的两个函数具有不同的参数表; ⒉ 默认参数只可以在函数声明中定义一次,不可再在函数定义的头部重复设置。
只有在无函数声明时,才可在函数定义中说明。
另外,如果需要定义多个默认参数,则定义的顺序要自右向左,而且最右边的一个默认参数的右边不能有未指定默认值的参数; ⒊在使用引用的时候一定要注意函数参数中的二义性,例如: 不能够同时定义 voidinforfloat x1 float x2 float ampx3 float ampx4 和 void inforfloat x1 float x2 float x3 floatx4。
8 实习三 类和对象一、实习目的 1. 掌握类的定义; 2. 掌握对象的使用以及静态成员和友元的定义; 3. 掌握各继承方式,并能够熟练使用; 4. 掌握派生类的构造与析构; 5. 掌握类型兼容的规则以及虚基类的使用;二、实习内容 1.掌握类的定义 1 完成学生记录类 StudentRecord 的设计。
学生记录应包含如下信息: 姓名 , (Number) 班级 公有成员: (Name) 学号 , , (ClassName) 学生总人数 ; (TotalCount) 保护成员:性别(Gender) ,年龄(Age),平均成绩(Score) 。
2 按照定义学生类的步骤完成教师记录类的设计,并完成构造函数和析构函数。
教师信息包括: 公有成员:姓名(Name) ,学院(CollegeName),系(DepartmentName); 保护成员:性别(Gender) ,年龄(Age),教龄(Year)。
2.掌握对象的使用以及静态成员和友元的定义 1 实现单向链表类 LinkedList。
在单向链表类 LinkedList 类中实现构造函数和析构函数,并定义公有成员函数: 头插入(InsFirst),头删除(DelFirst),以及链表的遍历(Traverse)。
要求:实现遍历时,定义友元函数 PrintRecord 屏幕打印学生记录的学号,性别,平均成绩,学生总人数。
并以 PrintRecord 为 LinkedList 成员函数 Traverse 的参数,遍历链表。
另外,一定要注意在插入和删除时正确地更新静态成员—学生总人数(TotalCount) 。
2 完成类的结构设计后,向 list 插入 5 个学生记录调试各个成员函数: 姓名 学号 班级 性别 年龄 平均成绩 赵一 2010002 计 101 男 17 88 钱二 2010003 软 102 女 16 89 孙三 2010010 电 101 女 18 91 李四 2010045 信 103 男 19 90 周五 2010081 控 101 女 18 88 9 3.根据示例完成继承和派生的练习 1 定义人员类 Person: 公有成员:姓名(Name) ; 保护成员:性别(Gender) ,年龄(Age) ; 公有函数:显示人员信息(Show) ,屏幕打印 姓名,性别,年龄。
构造函数和析构函数。
2 从人员类 Person 派生学生记录类 StudentRecord: 添加公有成员:学号(Number) ,班级(ClassName) , 添加静态公有成员:学生总人数(TotalCount) ; 添加保护成员:平均.
上一篇:
从Java语言到XML语言的转换
下一篇:
非常好用的串口跟踪程序c++语言实验已通过