《C++程序设计语言》实验课程教学大纲
一、 课程名称:C++程序设计语言实验 二、 课程性质:专业指导性选修课 三、 实验学时:18 学时 四、 课程类型:非独立设课
五、 课程适用专业:软件工程、计算机科学与技术、物联网工程
六、 教学目的:目前软件开发需要程序具备清晰的结构设计、良好的程序模块独立性
和数据安全性,并要求程序具有高可重用性,使软件的开发和维护更加方便。面向对象方法是支持程序具备上述特点的有力保证。本实验课程的主旨就是通过用C++语言编写面向对象的程序,使学生更加深刻地了解和掌握面向对象的编程思路和方法,为今后编写具备清晰的程序结构、高度的可重用性的程序打下扎实的基础,并为将来从事应用软件的开发工作奠定良好的思维习惯。
七、 实验教学项目表
项目 内容 要求 1 C++简单程序设计 内容: 1.编程计算图形的面积; 2.定义一个表示时间的结构体,可以精确的表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。 3.使用debug调试功能观察1中的变量的变化情况。 要求:1.练习简单的输入、输出;观察头文件的使用; 2.学会使用VC++6.0中的Debug调试。 项目 函数的应用 时数 2 性质 验证 时数 2 性质 验证 内容:1.编写重载函数Max1可分别求两个整数,三个整数,两个双精度数,三2 内容 要求 要求:1.练习重载函数的使用; 2.练习函数模板的使用。 3 项目 类和对象 时数 2 性质 验证 2.使用重载函数模板重新实现上面的函数Max1。 个双精度数的最大值;
内容:1.声明一个Dog类,包含age、weight等属性,以及对这些属性操作的方法。实现并测试这个类。 2.设计并测试一个名为Rectangle的矩形类,其属性为矩形的左下角和右上角两个点的坐标,有成员函数能计算矩形的面积。 3.定义一个CPU类,包含等级、频率,电压等属性,并编写构造函数、析构函数,以及成员函数run、stop模拟CPU的状态。其中,等级为整型,频率为单位是兆赫兹的整数,电压为浮点型。要求自己设计各个属性的标识。 4.定义一个简单的Computer类,包含数据成员cpu、ram、cdrom等等,内容 有两个成员函数run、stop。其中cpu为CPU类的一个对象,ram为RAM类的一要求 个对象,cdrom为CDROM类的一个对象,定义并实现这个类。 5.(必做)设计一个用于人事管理的People类。考虑到通用性,可以只抽象出所有人员都 具有的属性:number(编号),sex(性别) ,birthday(出生日期),id(身份证号)等等。其中“出生日期”定义为一个“日期”类内嵌子对象。用成员函数实现对人员函数的录入和显示。要求包括:编写构造函数和析构函数、拷贝构造函数、内联成员函数,类的组合。 要求:1-4题目中任选一个,5为必做题目; 掌握声明类的方法,学会为类添加成员变量和成员函数,掌握类的组合的使用。 项目 C++程序的结构 时数 2 性质 验证 内容: 1.编写程序,实现并测试客户机(Client)类。定义字符型静态数据成员ServerName[10],保存其服务器名称;整型静态数据成员ClientNum,记录定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。在头文件client.h中定义类,在文件client.cpp中实现,在文件test.cpp中测试这个类,观察相应的4 内容 成员变量的取值的变化情况。 要求 2.在实验4编写的人员类中设计适当的方法来实现类中数据的共享性,并采用多文件结构实现程序。 要求: 1.学习类的静态成员的使用; 2.掌握多文件结构在C++程序中的使用。 5 项目 继承和派生 时数 2 性质 验证
内容:1.设计并定义一个交通工具类,并通过该类派生出新的类,编写程序定义这些类并测试它; 2. 在实验4建立的People 类的基础上派生出Student(学生)类和Teacher 内容 (教师) 类,由Student类派生出Graduate(研究生)类,设计这些类的成员函要求 数和属性并编写程序测试这些类。 要求:1.学会定义和使用类的继承机制,定义派生类; 2.熟悉不同继承方式下对基类成员的访问控制。 项目 6 内容 课程信息和成绩信息的增加、修改、删除与查询 要求 要求:合理设计各类及界面。 项目 多态性 时数 2 性质 验证 小型学生管理系统的设计与实现1 时数 2 性质 验证 内容:设计学生类、课程类、成绩类及相应的成员函数。要求能实现学生的信息、内容: 1. 定义Point类,有坐标X和Y两个成员变量,对Point类重载++和――运算符,实现对坐标值的改变; 7 内容 要求 它们都run,stop等成员函数,编写相应的虚函数并测试。 要求:1.掌握运算符重载的使用方法; 2.学习使用虚函数实现动态联编。 项目 流类库与输入 / 输出 时数 2 性质 验证 2.定义一个车(Vehicle)类,有run,stop等成员函数,由此派生出自行车(bicycle)类、汽车(motocar)类,由bicycle类和motocar类派生出摩托车类,内容: 编写程序,以二进制方式打开制定的一个英文文本文件,统计各个字符出现的频率并在每一行前加行号。 8 内容 要求: 1.熟悉流类库中常用的类及其成员函数的用法; 要求 2.学习标准输入输出及格式控制; 3.学习对文件的应用方法。 项目 内容 小型学生管理系统的设计与实现2 时数 2 性质 综合 内容:在实验六的基础上,利用流类库机制实现文件存取。 要求: 将《C++程序设计》中学到的知识加以综合应用。 9 要求
八、实验报告要求:
实验报告内容应该主要包括如下内容:
(1)实验题目 (2)实验内容 (3)实验目的 (4)实验环境 (5)主要的数据结构描述 (6)实验结果 (7)实验总结 九、实验成绩评定:
实验成绩占总成绩的20%,共20分。根据每次实验的实际情况进行累计考核。
十、教材及参考书:
1. 郑莉、董渊等,《C++语言程序设计》(第4版)[M],北京:清华大学
出版社, 2010年7月第4版 。
2. 钱能,《C++程序设计》[M],北京:清华大学出版社, 2000 年7月 3. 郑莉、董渊,《C++语言程序设计习题与实验指导》[M],北京:清华大学出版社.2001年9月。