还剩14页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
《C++语言程序设计实验》教学大纲
一、课程基本信息中文名称C++语言程序设计英文名称C++Programming适用专业计算机科学与技术先修课程计算机导论课程类别专业核心课修读性质必修学分/学时2学分/34学时考核方式考查
二、教学目标本课程主要介绍程序的基本方法,借助C++语言讲授OOP的基本理论和方法,是学习计算机后续课程的一门重要的核心课程通过该课程的学习,要求同学们掌握程序设计的基本知识和基本技能,了解面向对象分析、设计和实现的过程和基本方法,通过理论与实践相结合,使学生理解并掌握面向对象程序设计的基本方法和技术,为进一步学习、研究、开发与学习本专业相关的计算机软件打好良好的基础三教学内容实验项目一Visual C++
6.0开发环境应用入门实验2学时
1.实验属性验证实验
2.修读性质选开
3.教学目标1了解Visual C++
6.0的特点,熟悉了解Visual C++
6.0的开发环境;2学习使用Visual C++
6.0编写标准的C++控制台应用程序
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本6,实验内容使用Visual C++来建立一个非图形化的标准C++程序,用公式法求解PI的数值,并尝试利用其他方法求解并获得相同的结果n=16arctanl/5-4arctan1/239其中arctanx=x-x3/3+x5/5-x7/7+…求兀二?
7.成绩评定上机测试通过、提交实验报告实验项目二C++简单程序开发实验2学时
1.实验属性验证实验2,修读性质选开
3.教学目标1会编写简单的C++程序;2复习基本数据类型变量和常量的应用;3复习运算符与表达式的应用;加元素,queue::pop从非空的队列中删除最后一个元素,queue::empty判断队列是否为空,queue::back返回非空队列的最后一个元素,queue::front返回非空队列的第一个元素,queue::size返回队列中元素的个数,请构造一个int类型的队列,对这个队列应用上述几个函数,体会队列这种数据结构的特点和其成员函数的用法2对于一个包含特定个数整型数据的数组A,对于从键盘输入的任意数,使用C++标准模板库中的find查找在A中的位置,使用sort来对数组进行升序或降序排列,排序前和排序后的结果使用copy输出
7.成绩评定上机测试通过、提交实验报告实验项目十六流内库与输入、输出实验2学时L实验属性设计实验2,修读性质选开
8.教学目标1熟悉流类库中常用的类及其成员函数的用法;2学习标准输入输出及格式控制;3学习对文件的应用方法二进制文件、文本文件
9.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本10实验内容1观察以下程序的输出,注意对输出格式的控制方法下一页2编写程序,用文本方式打开指定的一个文件,在每一行前加行号3使用实验10中的学生类数组,输入数据并显示出来,使用I/O流用二进制方式把此数组的内容写入磁盘文件,再显示出文件内容4如果班级同学的身高、体重信息存放在一个文本文件中,编写程序实现从该文件中读取学生信息并计算每个学生的身体状况,然后将结果写入另外一个文本文件11成绩评定上机测试通过、提交实验报告实验项目十七异常处理实验2学时
1.实验属性设计实验2,修读性质选开
3.教学目标1正确理解C++的异常处理机制;2学习异常处理的定义和执行过程
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本
6.实验内容1定义一个异常类CException,有成员函数Reason,用来显示异常的类型在字函数中触发异常,在主程序中处理异常,观察程序的执行过程
7.成绩评定上机测试通过、提交实验报告//labl6_l.cpp#includefstream DT.setfios:internal,ios::adjustfield;Using namespacestd;DT.windth8;#define DaT«#a«endl;a OfstreamT«i«endl;T€t output.ouf,;DT«iendl;/AVithout widthlODT.unsetfios::showpoint;Void main{DT.setfios::showpoint;Dint i=53;DT.«66prec=,,«T.precision«endl;Dfloatf=
4700113.141593;DT.setfios::scientific,ios::floatfield;Char*s=Is thereany more;DT«endl«f«endl;DT.setfios::fixed,ios::floatfield;DT.setfios::unitbuf;DT«f«endl;DT.setf0,ios::floatfield;//Automatic DT.setfios::showbase;DT.DT«f«endl;setfios::uppercase;DT.precisionl6;DT.setfios::showpos;DT«prec=,,«T.precision«endl;DT«i«endl;DT«endl«f«endl;DT.setfios::hex,ios::basefield;DT.setfios::scientific Jos::floatfield;DT«i«endl;DT.setf0,ios::floatfield;//Automatic DT.unsetfios::uppercase;DT«f«endl;DT.setfios::oct,ios::basefield;DT«i«endl;DT.width8;DT.setfios::showbase;T«s«endl;DT.setfios::dec,ios::basefieId;DTwidth36;DT.setfios::left,ios::adjustfield;T«s«endl;DT.finO;DT.setfios::left,ios::adj ustfield;DT«t6fill char:vvT.fmvendl;DTwidth36;DT.windrh8;T«s«endl;T«i«endl;DT.setfios::right,ios::adjustfield;DT.unsetfios::showpoint;DT.windth8;DT.unsetfios::unitbuf;T«i«endl;实验项目十八Windows应用程序框架实验2学时L实验属性设计实验
2.修读性质选开
3.教学目标1简单了解Windows程序设计
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本
6.实验内容
(1)练习使用VC++的AppWizard(应用程序向导)生成一个最简单的Windows应用程序
7.成绩评定上机测试通过、提交实验报告四考核形式及成绩评定(-)考核形式实验操作
(二)成绩评定撰写实现报告
五、教材与参考书(黑体小四号)教材郑莉《C++语言程序设计》(第四版)北京清华大学出版社2010年7月参考书
[1]吴乃陵.《C++程序设计》(第2版),北京高等教育出版社,2006
[2]刘加海,《Visual C++程序设计基础》.北京科学出版社,
2003.8
[3]谭浩强,《C++面向对象程序设计题解与上机指导》.北京清华大学出版社,2006
[4]谭浩强.《C++程序设计实践指导》.北京清华大学出版社,2006
[5]Lippman.《C++Primer))(第四版).北京中国电力出版社,2006
[6]Eckel.《C++编程思想》(第二版).北京机械工业出版社,2006
[7]Schildt.《C++参考大全》(第四版).北京电子工业出版社,2003
[8]Ira Pohl.C++面向对象编程(双语).北京电子工业出版设,2004
[9]H.M.Deitel.《C++程序设计教程》(第4版).北京清华大学出版社,2004
[10]李师贤.《面向对象程序设计基础》(第2版).北京高等教育出版社,2005
六、课程学时分配表(黑体小四号)序号实验项目名称学时实验属性修读性质主要仪器设备实验项目1Visual C++
6.0开微机2验证选开发环境应用入门VC
6.0实验项目2C++简单程序设计实微机2验证选开验VC
6.0实验项目3C++简单程序应用实微机2设计必开验VC
6.0实验项目4微机函数的应用实验2设计必开VC
6.0实验项目5微机类与对象基础实验2验证必开VC
6.0实验项目6微机类与对象应用实验2设计选开VC
6.0实验项目7C++程序的结构实抬微机2验证必开VC
6.0实验项目8数组、指针与字符微机2验证必开串基础实验VC
6.0实验项目9数组、指针与字符微机2设计选开串应用实验VC
6.0实验项目10继承与派生基础实微机2验证必开验VC
6.0实验项目11继承与派生应用实微机2设计选开验VC
6.0实验项目12微机多态性实验2设计选开VC
6.0实验项目13群体类和群体数据微机2验证必开组织基础实验VC
6.0实验项目14群体类和群体数据微机2设计选开组织应用实验VC
6.0实验项目15泛型程序与C++标准微机2设计选开模板库实验VC
6.0实验项目16流内库与输入、输微机2设计选开出实验VC
6.0实验项目17微机异常处理实验2设计选开VC
6.0实验项目18Windows应用程序框微机2设计选开架实验VC
6.0
(4)复习结构化程序设计基本控制结构的应用
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本6,实验内容
(1)给定一个字符变量输出其二进制形式例如char a=a;其二进制为00100001
(2)给定一个字符变量输出其二进制反转形式例如char球;其二进制为00100001,反转形式为10000100(提示:使用位运算)
7.成绩评定上机测试通过、提交实验报告实验项目三C++简单程序应用实验(2学时)
1.实验属性设计实验2,修读性质必开
3.教学目标
(1)复习自定义数据类型的应用;
(2)练习使用简单的输入输出;
(3)观察头文件的作用;
(4)学会使用VC
6.0开发环境中的debug调试功能
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本
6.实验内容
(1)袋子里有红,黄,蓝,绿,黑五种不同颜色的球若干个,从中取出三个不同颜色的球,编程输出每种取法及统计不同取法的总数(提示使用枚举)
(2)给定一个整型变量输出其二进制形式
7.成绩评定上机测试通过、提交实验报告实验项目四函数的应用实验(2学时)
1.实验属性设计实验2,修读性质必开
3.教学目标
(1)掌握函数的定义和调用方法;
(2)练习重载函数的使用;
(3)练习使用系统函数;
(4)学习使用debug的step into追踪到函数内部
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本
6.实验内容1用递归的方法编写函数求Fibonacci级数,观察递归调用的过程;2编写重载函数Maxi可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值3写一个函数,能够接收身高、体重等数据,能够根据身高、体重检测身体状况,胖,瘦等
7.成绩评定上机测试通过、提交实验报告实验项目五类与对象基础实验2学时
1.实验属性验证实验
2.修读性质必开
3.教学目标1掌握类的定义和使用;2掌握类对象的声明;3复习具有不同访问属性的成员的访问方式;4观察构造函数和析构函数的执行过程
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本
6.实验内容1定义一个CPU类,包含等级Rank、频率frequency、电压voltage等属性,有两个公有成员函数runstop o其中,rank为枚举类型CPU—Rank,定义为enum CPU_Rank{Pl=l,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值观察构造函数和析构函数的调用顺序2定义一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom等等,有两个公有成员函数run、stopo cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDR0M类的一个对象,定义并实现这个类,观察这些类的构造函数和析构函数的调用顺序3分析以下程序运行结果//lab5_l.cpp#include iostream.h void fnl;int x=l,y=2;int maincout«,,Begin...,,«endl;cout«,,x=,,«x«endl;cout«y=^«y«endl;cout«9,Evaluate xand yin main../,«endl;int x=10,y=20;cout«,,x=,,«x«endl;cout«,,y=,,«y«endl;cout«,Step intofnl()...,,«endl;fnl();cout«Back inmain^«endl;cout«,,x=,,«x«endl;cout^y=9,«y«endl;return0;)voidfnl()(int y=200;cout«,,x=,,«x«endl;cout«,,y=,,«y«endl;}
7.成绩评定上机测试通过、提交实验报告实验项目六类与对象应用实验(2学时)L实验属性设计实验2,修读性质选开
3.教学目标
(1)学习类组合使用方法;
(2)使用VC++的debug调试功能观察程序流程;
(3)跟踪观察类的构造函数、析构函数、成员函数的执行顺序
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本
6.实验内容
(1)定义一个Body类,拥有身高、体重等数据,能够根据身高、体重检测身体状况,要求设计相应的函数成员和构造函数
(2)设计一个用于人事管理的People(人员)类考虑到通用性,这里只抽象出所有类型人员都具有的属性number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等其中“出生日期”定义一个“日期”类内嵌子对象用成员函数实现对人员信息录入和显示要求包括构造函数和析构函数、拷贝构造函数、内联成员函数、类组合
7.成绩评定上机测试通过、提交实验报告实验项目七C++程序的结构实验(2学时)
1.实验属性验证实验2,修读性质必开
3.教学目标1观察程序运行中变量的作用域、生存期和可见性;2学习类的静态成员的使用;3学习多文件结构在C++程序中的使用
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本
6.实验内容1运行下面的程序,观察变量X、Y的值删除2实现客户机CLIENT类定义字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName改变服务器名称在头文件client,h中定义类,在文件client.cpp中实现,在文件test,cpp中测试这个类,观察相应的成员变量取值的变化情况需要给出main函数代码和运行结果3完善Body类,将检测胖瘦的标准定义为静态数据成员并设计相应的静态成员函数最好给出main函数代码和运行结果4定义Boat;和Car两个类,二者都有weight属性,定义二者的一个友元函数totalWeight,计算二者的和5选做在函数fnl中定义一个静态变量n,fnl中对n的值加1,在主函数中,调用fnl十次,显示n的值6选做在一个文件中定义一个全局变量n,主函数main,在另外一个文件中定义函数fnl,在main中对n赋值,再调用fnl,在fnl中也对赋值,显示n最后的值
7.成绩评定上机测试通过、提交实验报告实验项目八数组、指针与字符串基础实验2学时
1.实验属性验证实验
2.修读性质必开
3.教学目标1学习使用数组;学习字符串数据的组织和处理;2学习标准C++库的使用;3掌握指针的使用方法
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本
6.实验内容1编写一个用于3义3数组保存矩阵的类,具有矩阵显示和矩阵转置函数2使用动态内存分配生成动态数组来重新完成上题,使用指针实现函数的功能3拷贝构造2题中的矩阵类对象,运行程序看看是否存在问题,应该如何改进提示深浅拷贝
(4)编程实现两字符串的连接要求使用字符数组保存字符串,不要使用系统函数
(5)使用string类定义字符串对象,重新实现上一小题
(6)定义Body类的数组,评测班级每个同学的身体状况
7.成绩评定上机测试通过、提交实验报告实验项目九数组、指针与字符串应用实验(2学时)L实验属性设计实验2,修读性质选开
8.教学目标
(1)练习通过debug观察指针的内容及其所指的对象的内容;
(2)练习通过动态内存分配实现动态数组,并体会指针在其中的作用;
(3)分别使用字符数组和标准C++库练习处理字符串的方法
9.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本10实验内容
(1)定义电子秤类和学生类数组,用电子秤类评测班级每个同学的身体状况
(2)定义一个Employee类,其中包括姓名、街道地址、城市和邮编等属性,以及change_name()和display()等函数Display()显示姓名、街道地址、城市和邮编等属性,change_name()改变对象的姓名属性实现并测试这个类
(3)定义包含5个元素的对象数组,每个元素都是Employee类型的对象
(4)修改实验5中的选做实验中的people(人员)类具有的属性如下姓名char name
[11]编号char number
[7]、性别char sex
[3]生日birthday身份证号char id
[16]其中“出生日期”定义为一个“日期”类内嵌对象用成员函数实现对人员信息的录入和显示要求包括构造函数和析构函数、拷贝构造函数、内嵌构造函数、内联成员函数、类组合在测试程序中定义people类的对象数组,录入数据并显示,观察构造函数和析构函数的调用顺序11成绩评定上机测试通过、提交实验报告实验项目十继承与派生基础实验(2学时)L实验属性验证实验
2.修读性质必开
3.教学目标
(1)学习定义和使用类的继承关系,定义派生类;
(2)熟悉不同继承方式下对基类成员的访问控制
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本
6.实验内容
(1)定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把age改为公有或保护成员变量,还会有问题吗?编程试试看,说明了什么原则?
(2)定义一个基类BasClass,有整型成员变量Number,构造其派生类DerivedClass,观察构造函数和析构函数的执行情况和执行顺序
7.成绩评定上机测试通过、提交实验报告实验项目十一继承与派生应用实验(2学时)L实验属性设计实验1,修读性质选开
3.教学目标
(1)学习利用虚基类解决二义性问题
4.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本
6.实验内容
(1)定义一个车(vehicle)基类,具有MaxSpeed Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类,汽车(motorcar)类自行车(bicycle)类有高度(Height)等属性,汽车(motorcycle)类有座位数(SeatNum)等属性从bicycle和Motorcar派生出摩托车(motorcycle)类,在继承过程中,注意把vehicle设置为虚基类如果不把vehicle设置为虚基类,会有什么问?编程试试看
(2)从实验9中的people(人员)类派生出student(学生)类,添加属性职务char principalship
[11]部门char department
[21]o从stud6nt类中派生出graduate(研究生)类,添加属性:专业char subject
[21]、导师teacher adviser;从graduate类派生出其TA(助教)类,注意虚基类的使用重载相应的成员函数,测试这些类并观察构造图9T实验任务的类图
7.成绩评定上机测试通过、提交实验报告实验项目十二多态性实验(2学时)L实验属性设计实验2,修读性质必开
8.教学目标
(1)掌握运算符重载的方法;
(2)学习使用虚函数实现动态多态性
9.实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本10实验内容
(1)定义Point类,有坐标_x,_y两个成员变量;对Point类重载“++”(自增)、“一”(自减)运算符,实现对坐标的改变(提示注意前++和后++)
(2)定义一个车(vehicle)基类,有Run、Stop等虚成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,从bicycle到motorcar派生出摩托车(motorcycle)类,它们都有Run、Stop等成员函数,利用基类指针或引用虚函数,观察虚函数的作用,说说多态的含义,如果不采用虚函数会是什么样的结果?
(3)对实验9中的people类重载“二二”运算符和“二”运算符,“二二”运算符判断两个people类对象的id属性是否相等;“二”运算符实现people类对象的赋值操作11成绩评定上机测试通过、提交实验报告实验项目十三群体类和群体数据组织基础实验(2学时)12实验属性验证实验2,修读性质必开13教学目标
(1)了解链表类的定义与实现,学习其使用方法;
(2)了解栈类定义与实现,学习其使用方法14实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本15实验内容
(1)使用重载函数模板重新实现实验三中2小题中的函数Maxi
(2)编写程序link.h,实现教材中例9-6的链表类在测试lab9_l.cpp中定义两个整型链表A和B,分别插入5个元素,然后把B中的元素加入A的尾部
(3)编写程序queue,h,用链表实现队列(或栈)类在测试程序lab9_L cpp中定义一个整型队列(或栈)对象,插入5个整数,压入队列(或栈),再依次取出并显示出来16成绩评定上机测试通过、提交实验报告实验项目十四群体类和群体数据组织应用实验(2学时)L实验属性设计实验2,修读性质选开17教学目标
(1)了解队列类的定义与实现,学习其使用方法;
(2)了解C++标准模板库STL的使用方法18实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本19实验内容
(1)将直接插入排序、直接选择程序、冒泡排序、顺序查找函数封装到教材中第9章的数组类模板中,作为成员函数实现并测试这个类
(2)定义一个对people类对象数组按编号排序的函数,一个按编号查找people对象的函数在测试程序中使用前面实验得到的结果定义教师数组和学生数组,分别对教师数组和学生数组进行排序和查找
(3)定义course(课程)类,有属性课程名char name
[21]>成绩short score;在实验7中的student类中增加属性所修课程courses,为课程类对象在测试程序测试这个类学生类之间的关系如图9-2所示学生课成程绩-后续节力、指针7所修课程函注一图9-2实验任务的类图20成绩评定上机测试通过、提交实验报告实验项目十五泛型程序与C++标准模板库实验(2学时)L实验属性设计实验2,修读性质选开21教学目标
(1)掌握对数组元素排序的方法;
(2)掌握对数组元素查找的方法;
(3)应用标准C++库(STL)实现查找与排序22实验方法上机操作5实验仪器设备硬件环境PC兼容机或品牌机、彩显、内存512M以上软件环境WINDOWS-XP以上版本、VC++
6.0以上版本23实验内容
(1)在C++标准模板库中,队列类(queue)的成员函数queue::push在队列的一端添。