《《面向对象程序设计》大纲.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计》大纲.docx(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象程序设计大纲 面向对象程序设计实验教案大纲 课程编号: 一、适用范围 大纲适用于计算机科学与技术专业本科教案使用。 二、课程名称 面向对象程序设计 三、学时数与学分 总学时:72 总学分:4 实验学时:20 实验学分:0.5 四、教案目的和基本要求 (一)目的:使学生熟悉C+的语法特性,理解面向对象程序设计的基本原理,包括类、对象、抽象、封装、继承和多态性等关键要素以及其关键语法特性;掌握用C+编写 面向对象程序的一般方法,培养学生创新意识和提高学生实践能力;初步掌握面向对象编程环境Visual C+的使用,学会调试、分析和自行编写C+程序,能进行简单的Windows 程序设计,为将来
2、使用或继续从事C+工程设计打下基础。 (二)基本要求:了解和熟悉Visual C+开发环境;学会上机调试程序,达到实验知 识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在 实验时输入程序、调试程序,直至运行结果正确为止,上机结束后,应整理出实验报告。 六、教材、讲义及参考书 (一)教材: 面向对象程序设计,谭浩强,清华大学出版社 (二)教参: C+程序设计教程,钱能,清华大学出版社. 七、实验成绩评定办法 考查:平时考核加期末机试。实验成绩占期末总成绩的30%。 平时考核:占实验成绩的50%,由以下两部分组成。 实验预习和表现、实验报告。 期末机试:占实验成绩的5
3、0%。 1实验预习和表现:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序,直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。 2、实验报告:学生实验后应按时完成实验报告。实验报告应包括以下内容:实验目的、实验要求,实验题目、程序清单、运行结果、实验小结。 3、期末机试:通过考试了解学生对基本理论掌握的程度和实际水平,教师出实验考试卷目,让学生在规定的时间完成。 八、实验教案大纲说明 本大纲共安排20 学时的实验,全部是必做题目。 九、实验工程实
4、验一、C+ 程序设计初步实验目的: 1.掌握重载函数的定义方法。 2.掌握引用的使用方法。 3.掌握new 和delete 的使用方法。实验内容: 1.编写一个函数,用引用的方法交换两个变量的值。 2.用函数重载的方法编写重载函数,分别比较两个整型数、两个长整型数以及三个整型数的大小,并返回较大者。 3.编写一个程序,用new 运算符分配5 个整型数的空间,从键盘读入数据存入此存储空间,然后输出到屏幕上,最后释放该存储空间。 实验二、类和对象实验目的: 1.掌握声明类的方法,类和类的成员的概念以及定义对象的方法。 2.初步掌握用类和对象编制基于对象的程序。 3.掌握类的构造函数和析构函数的概念
5、和使用方法。 4.掌握友元和静态成员的使用方法。 4.学习检查和调试基于对象的程序。实验内容: 1.分别给出如下的3 个文件: 含类定义的头文件student.h, class Student public:void display( ) 。 private:int num 。 char name20 。 char sex 。 。 包含成员函数定义的源文件student.cpp #include #include student.h using namespace std 。 void Student:display( ) coutnum:numendl 。 coutname:nameendl
6、 。coutsex:sexendl 。 包含主函数的源文件main.cpp 。 #include student.h void main( ) Student stud 。 stud.display() 。 请完善该程序,在类中增加一个对数据成员赋初值的成员函数set_value 。上机调试并运行。 2该程序运行有问题,请改正main 函数中的错误,使该程序的输出结果如下:Constructor called. Default constructor called. Area is 6 Area is 0 Area is 6 源程序文件清单如下:#include using namespace
7、 std 。 class RectAngle private: double ledge,sedge 。 public: RectAngle() coutDefault constructor called.n RectAngle(double l,double s) ledge=l 。sedge=s 。 coutConstructor called.n void Set(double l,double s) ledge=l 。sedge=s 。 void Area() coutArea is ledge*sedgeendl 。 void main() * found * RectAngle
8、Rect1(2,3) RectAngle Rect2(1) Rect2.ledge=0 。 Rect2.sedge=0 。 Rect2.Area() 。 Rect3.Area() 。 3. 有以下程序: #include class Date 。 class Time public: Time(int,int,int) 。 void display(Date &) 。 private: int hour 。 int minute 。 int sec 。 。 class Date public: Date(int,int,int) 。 friend void Time : display(Dat
9、e &) private: int month 。 int day 。 int year 。 。 Time: Time(int h,int m,int s) hour=h 。 minute=m 。 sec=s 。 Date : Date(int m,int d,int y) month=m 。 day=d 。 year=y 。 void Time : display(Date &d) coutd.month “/ ”d.day “/ ” couthour “:” minute “:” void main( ) Time t1(10,13,56) 。 Date d1(12,25,2022) 。
10、t1.display(d1) 。 分析和运行此程序,注意友元函数 Time:display 的作用。将程序中的 display 函数不放在 Time 类中,而 * found * RectAngle Rect3 。 Rect1.Area() 。 * found * d.yearendl 。 secendl 。 作为类外的普通函数,然后分别在Time 和Date 类中将display 声明为友元函数。在主函数中调用display 函数,display 函数分别引用Time 和Date 两个类的对象的私有数据,输出年、月、日和时、分、秒。修改后上机调试和运行。 4.商店销售某一商品,商店每天公布统
11、一的折扣(discount) 。同时允许销售人员在销售时灵活掌握售价(price) ,在此基础上,对一次购10 件以上者,还可以享受9.8 折优惠。现 已知当天 3 名销货员的销售情况为: 销货员号(num) 销货件数(quantity) 销货单价(price) 101 5 23.5 102 12 24.56 103 100 21.5 请编程序,计算出当日此商品的总销售款sum,以及每件商品的平均售价。要求用静态数 据成员和静态成员函数。 ( 提示:将折扣discount 、总销售款sum 和商品销售总件数n 声明为静态数据成员,再定义静态成员函数average( 求平均售价) 和displa
12、y( 输出结果) 。 实验三、运算符重载实验目的: 1.进一步了解运算符重载的概念和使用方法。 2.掌握几种常用的运算符重载的方法。 3.了解在Visual C+6.0 环境下进行运算符重载要注意的问题。 实验内容: 1.声明一个复数类Complex ,重载运算符“+”,使之能用于复数的加法运算。参加运算的两个运算量可以都是类对象,也可以其中有一个是整数,顺序任意。例如:c1+c2,i+c1 ,c1+i 均合法(设i 为整数,c1,c2 为复数)。 2?有两个矩阵a和b,均为2行3列,求两个矩阵之和。重载运算符+ ”,使之用于矩阵相加,如:c=a+b。 实验四、继承实验目的: 1?了解继承在面
13、向对象程序设计中的重要作用。 2 ?进一步理解继承与派生的概念。 3?掌握通过继承派生出一个新类的方法。 4.了解虚基类的作用和用法。 实验内容: 1?定义基类Student,含有私有数据成员num,name,sex,公有成员函数get_value ()用 于输入数据,display。用于输出数据。定义派生类Stude nt1 (从基类公有继承),含有私有 数据成员age,addr,设计派生类的成员函数,使程序运行时输入num,name,sex,age,addr 的值,程序应输出以上5 个数据的值。 2?修改上面的程序,基类数据成员为保护类型,派生类从基类保护继承,实现输入和输出5 个数据成员
14、的值。 3?分别声明Teacher (教师)类和Cadre (干部)类,采用多重继承方式由这两个类派 生出新类Teacher_Cadre (教师兼干部)。要求:在两个基类中都包含一部分相同名字的数据成员name (姓名),age (年龄)和成员函数display ()。在Teacher类中还包含数 据成员title (职称),在Cadre类中还包含数据成员post (职务),在Teacher_Cadre (教 师兼干部)中还包含数据成员wages (工资)。在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、职称,然后再用cout语句输出职务与工资。 实验五、多态性和虚函数