兰州交通大学国家级计算机实验教学示范中心欢迎您!

设为首页 加入收藏 联系我们

此页面上的内容需要较新版本的 Adobe Flash Player。

获取 Adobe Flash Player

 
 
您的位置: 首页 > 实验教学 > 实验课程
实验课程
C++程序设计专题实验
 

一、实验课程基本信息

课程代码

32021241

课程英文名称

The experiments of C++ Programming

开课实验室

计算机科学与技术实验中心

课程性质

必修课

课程类别

实践教育

单开课

是 R 否□

实验学时

16

学分数

1

适用专业

计算机科学与技术

执笔人

杜晓刚

审核人

陈永

编写日期

2013年 3 月

二、实验课程教学目的

通过C++程序设计实验,培养学生对学习程序设计的兴趣,使学生全面了解C++语言的特点,不仅要熟练掌握C++语言的基础知识,更重要的是让学生掌握利用C++语言进行程序设计的思想和方法,培养学生使用C++进行程序设计的能力。

三、实验课程教学基本要求

了解和熟悉C++语言程序开发的环境visual C++6.0或Visual studio 2005/2008/2010;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序,直至运行结果正确为止,上机结束后应整理出实验报告。

四、实验课程教学基本内容

实验项目编号: 01

实验项目名称

C++集成开发环境入门

实验类型

验证性

实验学时

2

必开 R 选开 □

备注

目的和要求:

1)了解C++集成开发环境Visual C++ 6.0、Visual Studio.NET 2005/2008/2010的特点;

2)熟悉Visual C++ 6.0、Visual Studio.NET 2005/2008/2010的开发环境;

3)学习用Visual C++ 6.0、Visual Studio.NET 2005/2008/2010编写C++控制台程序。

4)学会使用Visual C++ 6.0、Visual Studio.NET 2005/2008/2010开发环境中的调试功能。

内容:

使用Visual C++来建立一个标准的C++控制台程序,编译并运行以下程序:

#include

void main(void)

{

cout< <"hello!\n";

cout< <"welcome to c++!\n";

}

主要仪器设备及试剂:

安装有Visual C++6.0开发环境的PC机。

实验项目编号: 02

实验项目名称

C++简单程序设计

实验类型

验证性

实验学时

2

必开 R 选开 □

备注

目的和要求:

1. 学会编写简单的C++程序;

2. 复习基本数据类型变量和常量的应用;

3. 复习运算符和表达式的应用;

4. 复习结构化程序设计基本控制结构的运用;

5. 复习自定义数据类型的应用;

6. 练习使用简单的输入输出;

7. 观察头文件的作用;

8. 学会使用VC++6.0开发环境中的debug调试功能:单步执行、设置断点、观察变量值。

内容:

1. 用do-while语句编程,求自然数1-10之和,程序正确运行之后,去掉源程序中#include语句,重新编译,观察会有什么问题;

2. 将do-while语句用for语句代替,完成相同的功能;

3. 编写程序计算图形的面积。程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积的值后将其显示出来。并使用debug调试功能观察程序运行中变量值的变化情况。

4. 定义一个表示时间的结构体,可以精确表示年、月、日、时、分、秒;提示用户输入年、月、日、时、分、秒的值,然后完整的显示出来。

主要仪器设备及试剂:

安装有Visual C++6.0开发环境的PC机。

实验项目编号: 03

实验项目名称

函数及其应用

实验类型

验证性

实验学时

2

必开 R 选开 □

备注

目的和要求:

1. 掌握函数的定义和调用方法;

2. 练习重载函数的使用;

3. 练习函数模板的使用;

4. 练习系统函数的使用;

5.学习使用VC++的debug调试功能,使用step into追踪到函数内部。

内容:

1. 编写一个函数把华氏温度转换为摄氏温度,转换公式为:C=(F-32)*5/9.

2. 编写重载函数Max1可以分别求取两个整数、三个整数、两个双精度数、三个双精度数的最大值。

3. 使用重载函数模板重新实现上题中的函数Max1。

4. 使用系统函数 pow(x , y)计算x^y的值,注意包含头文件math.h.

5. 使用递归方法编写函数求Fibonacci级数,观察递归调用的过程。

主要仪器设备及试剂:

安装有Visual C++6.0开发环境的PC机。

实验项目编号: 04

实验项目名称

类与对象

实验类型

设计性

实验学时

2

必开 R 选开 □

备注

目的和要求:

1. 掌握类的定义和使用;

2. 掌握对象的声明和使用方法;

3. 复习具有不同访问属性的成员的访问方式;

4. 观察构造函数和析构函数的执行过程;

5. 学习类的聚集使用方法;

6. 使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。

内容:

1. 定义一个CPU类,包含等级(rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop.其中,rank为枚举类型CPU_Rank,定义为cnum CPU_Rank{P1=1 , P2 , P3 , P4 , P5 , P6 , P7}. frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。

2. 定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop. cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象。定义并实现这个类。

3. (选作)设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、拷贝构造函数、内联成员函数、聚集。

主要仪器设备及试剂:

安装有Visual C++6.0开发环境的PC机。

实验项目编号: 05

实验项目名称

数组、指针和字符串

实验类型

设计性

实验学时

2

必开 R 选开 □

备注

目的和要求:

1. 学习使用数组;

2. 学习字符串数据的组织和处理;

3. 学习标准C++库的使用;

4. 掌握指针的使用方法;

5. 练习通过debug观察指针的内容及其所指的对象的内容;

6. 练习通过动态内存分配实现动态数组,并体会指针在其中的作用;

7. 分别使用字符数组和标准C++库练习处理字符串的方法。

内容:

1. 编写并测试3*3矩阵转置函数,使用数组保存3*3矩阵;

2. 使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能;

3. 编程实现两字符串的连接。要求使用字符数组保存字符串,不要使用系统函数。

4. 使用string类定义字符串对象,重新实现上题;

5. 定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()函数。display()显示姓名、街道地址、城市和邮编等属性,change_name()函数改变对象的姓名属性。实现并测试这个类。

6. 定义包含5个元素的对象数组,每个元素都是Employee类型的对象。

主要仪器设备及试剂:

安装有Visual C++6.0开发环境的PC机。

实验项目编号: 06

实验项目名称

继承与派生

实验类型

设计性

实验学时

2

必开 R 选开 □

备注

目的和要求:

1. 学习定义和使用类的继承关系,定义派生类;

2. 熟悉不同继承方式下对基类成员的访问控制;

3. 学习利用虚基类解决二义性问题。

内容:

1. 定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有成员变量,还会有问题吗?编程试试看。

2. 定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况。

3. 定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcar)类有座位数(SeatNum)等属性。从bicycle和motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置成为虚基类。如果不把vehicle设置成为虚基类,会有什么问题?编程试试看。

主要仪器设备及试剂:

安装有Visual C++6.0开发环境的PC机。

实验项目编号: 07

实验项目名称

多态

实验类型

设计性

实验学时

2

必开 R 选开 □

备注

目的和要求:

1. 掌握运算符重载的方法;

2. 学习使用虚函数实现动态多态性。

内容:

1. 定义Point类,有坐标_x,_y两个成员变量;对Point类重载”++“(自增)、"--"(自减)运算符,实现对坐标值的改变。

2. 定义一个车(vehicle)基类,有Run、stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle和motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数。观察虚函数的作用。

主要仪器设备及试剂:

安装有Visual C++6.0开发环境的PC机。

实验项目编号: 08

实验项目名称

输入输出与异常处理

实验类型

设计性

实验学时

2

必开 R 选开 □

备注

目的和要求:

1. 学习标准输入输出及格式控制;

2. 学习对文件的应用方法。

3. 正确理解C++的异常处理机制;

4. 学习异常处理的定义和执行过程。

内容:

1. 编写程序,用二进制方式打开指定的一个文件,在每一行前加行号。

2. 定义一个异常类CException, 有成员函数Reason(), 用来显示异常的类型。在子函数中触发异常,在主程序中处理异常,观察程序的执行流程。

主要仪器设备及试剂:

安装有Visual C++6.0开发环境的PC机。

五、考核方法与成绩评定

本课程采取的考核方式:考试。

课程总成绩=考勤成绩×10%+平时实验成绩×40%+考试成绩×50%

考勤成绩:根据实验出勤情况确定考勤成绩;

平时实验成绩:主要根据实验结果的正确性和实验报告的完整规范性进行考核;

考试成绩:教师确定实验考试题目,让学生在规定的时间内上机完成,根据完成情况确定考试成绩。

六、建议教材与教学参考书

[1]《C++语言程序设计(第3版)学生用书》,郑莉等编,清华大学出版社,2002年;

[2]《C++语言程序设计习题与实验指导》(含光盘),郑莉等编,清华大学出版社,

中心图片  
“博创杯”西北赛区开幕式 校长观看学生作品演示 专家对参赛作品进行评审 专家对参赛作品进行评审 专家对参赛作品进行评审 博创杯颁奖仪式 学生作品展示 学生作品展示 学生作品展示 学生作品展示 学生作品展示
 
 
 
 
 
 

单位名称:兰州交通大学计算机科学与技术实验教学中心  中心办公室电话:0931-4957181、0931-4957180
 网址:http://jsjsfzx.lzjtu.edu.cn      E-mail:jsjsfzx@mail.lzjtu.cn        邮政地址:兰州交通大学802信箱   730070
 地址:兰州市安宁区安宁西路88号   兰州交通大学第六教学楼(图书馆东侧)