面向对象程序设计教学大纲西北民族大学数学与计算机科学学院
制定的时间:二〇一二年五月
面向对象程序设计教学大纲
一、课程基本资料
主讲教师:曹永春、蔡正琦、顿毅杰
主教材:《C++面向对象程序设计》中国铁道出版社,陈维兴、林小茶编著,第2版,2009
辅助教材:
1.《C++编程思想》机械工业出版社,美Bruce Eckel,Chuck Alliso著,刘宗田,袁兆山,潘秋菱等译; 第1版,2011年
2. 《C++程序设计教程》机械工业出版社,美H.M.Deitel P.J.deitel 薛万鹏等译,2000年
3.《C++程序设计语言》,机械工业出版社,美Bjarne Stroustrup 著,裘宗燕译,2005年
4.《C++面向对象程序设计习题解析与上机指导》清华大学出版社,陈维兴主编,第2版,2009年
实验教材及参考书:
同上
课程性质:学科选修课
学分:4分
课时:72学时,其中理论课54学时,上机实验18学时
先修课程:计算机导论、C语言程序设计
课程结构:多媒体教学,课堂讨论、课内实验、课后作业
评价方案:(考核依据、评分的办法、权重的分布)
?平时成绩:10% 课堂表现(课堂提问、考勤、作业等)
?实验成绩:20%(实验报告、实验考试)
?期中成绩:20%(闭卷考试)
.期末成绩:50%(闭卷考试)
参考书目:
名称编著者出版社出版年月《C++编程思想》刘宗田,袁兆山,潘
机械工业出版社2011年
秋菱等译
机械工业出版社2000年
《C++程序设计教程》H.M.Deitel, P.J.deitel
著,薛万鹏等译
《C++程序设计语言》Bjarne Stroustrup
机械工业出版社2005年
著,裘宗燕译
陈维兴主编清华大学出版社2009年
《C++面向对象程序设计
习题解析与上机指导》
推荐刊物:
1、《计算机学报》
2.《软件学报》
3.《程序员杂志》
4.《码农周刊》
5.《快乐码农》
相关网站:
1. 中国计算机学会https://www.doczj.com/doc/468541183.html,/sites/ccf/
2. 计算机爱好者协会https://www.doczj.com/doc/468541183.html,/forum.php
3.C语言中文网https://www.doczj.com/doc/468541183.html,/cpp
5.中国悠悠期刊网https://www.doczj.com/doc/468541183.html,/
6. 中国知网https://www.doczj.com/doc/468541183.html,/
文献
1.谭浩强.C程序设计.第4版.北京:清华大学出版社,2010
2.陈伟兴,林小茶.C++面向对象程序设计.北京:清华大学出版社,2000
3.陈伟兴,陈昕.C++面向对象程序设计习题解析与上机指导. 北京:清华大学出版
社,2003.
4.Ravi Sethi.Programing Languaes:concepts and constracts.Addison-Wesley Publishing
Company,1996.
5.Ronaad J.Norman ,Object-Oriented Systems and Ddesign,199
6.
6.郑莉,董源.C++语言程序设计.第2版.北京:清华大学出版社,2001.
7.王燕.面向对象的理论与C++实践.北京:清华大学出版社,1997.
8.张海藩,牟永敏.面向对象程序设计实用教程. 北京:清华大学出版社,2001.
9.张国峰.C++语言及其程序设计教程. 北京:电子工业出版社,1997.
二、教学目标、组织形式、考核要求
素质、知识和能力目标目标要求及相
应的课程
教与学的
方法
评定的方法
一、思想道德与职业素质目标
1.遵纪守法,树立科学的世界观、人生观、价值观和社会主义荣辱观。
2.具有良好的思想品德、人文社会科学素养、社会公德和职业道德。
3.了解与信息技术相关的职业和行业的政策和法律、法规,具有较强的法制意识和素养。
4.树立终身学习观念,认识到持续自我完善的重要性,不断追求卓越。
5.具备良好的科学态度、团队协作精神和创新意识。7.具有健全的人格、健康的体魄,较强的国防意识。4.树立终身学习观
念,认识到持续自
我完善的重要性,
不断追求卓越。
5.具备良好的科学
态度、团队协作精
神和创新意识。
1、课外兴趣开
发;
2、阅读相关资
料;
3、关注技
术领域新发展。
提交的作品
或报告
二、知识目标
1.具有一定的人文社会科学知识。
2.掌握与专业相关的数学、自然科学知识以及一定的经济学和管理学知识。
3.掌握电工和电子技术必要的基本理论、基本知识和基本技能。
4.掌握计算机的系统与结构、基本组成原理和内部工作机制。
5.掌握计算机程序
设计的基础知识
和基本方法。
1.通过课堂授课
(理论授课、课
堂演示、课外作
业);
2.课内实验
1.理论考试;
2.课堂提问、
讨论与课外
作业;
3.实验考试;
4.教师听课
意见反馈。
5.掌握计算机程序设计的基础知识和基本方法。
6.掌握操作系统基本知识、原理,具备操作系统设计和应用的知识。
7.掌握计算机网络及应用知识,具备网络系统设计和网络应用的知识。
8.掌握信息处理的基本理论、基本方法,具备息管理系统设计和开发的知识。
9.掌握数据结构及算法设计与分析的基本知识、基本方法及在相关领域中的实际应用。
10.掌握以系统性的、规范化的、可定量的过程化方法去开发和维护软件系统。
11.掌握计算机图形图像处理的基本知识、基本技术和方法。
12.掌握嵌入式的相关知识和方法。
三、能力目标
1.具有运用工程工作所需的相关数学、自然科学以及经济和管理知识的能力。
2.掌握计算机学科的基本思维方法,并能运用工程基础知识和本专业的基本理论知识解决问题的能力。
3.掌握设计和实施工程实验的方法,具备一定的工程实践能力。
4.掌握基本的创新方法,具有综合运用专业知识和技术手段进行系统开发的能力。
5.掌握文献检索、资料查询及运用现代信息技术获取相关信息的基本方法。
6.具有一定的组织管理能力、表达能力和人际交往能力以及在团队中发挥作用的能力。
7.对终身学习有正确的认识,具有不断学习和适应发展的能力。
8.具有一定的外语应用能力,具有阅读本专业外文文献的能力。2.掌握计算机学科
的基本思维方法,
并能运用工程基
础知识和本专业
的基本理论知识
解决问题的能力。
5.掌握文献检索、
资料查询及运用
现代信息技术获
取相关信息的基
本方法。
7.对终身学习有正
确的认识,具有不
断学习和适应发
展的能力。
1.通过课堂授课
(理论授课、课
堂演示、课外作
业);
2.课内实验
1.理论考试;
2.课堂提问、
讨论与课外
作业;
3.实验考试。
三、学习建议与要求
1.做好课前预习,查阅相关知识。
2.课间认真听讲,对教师讲解内容融会贯通,举一反三。
3.认真完成课后作业。
4.在讨论和提问中巩固理论知识,学习编程思维。
四、教学内容概要
学时分配
各章节内容理论实验总时数面向对象程序设计概述 3 3
C++基础7 2 9
类和对象(一) 11 2 13
类和对象(二) 8 2 10
继承与派生类 6 2 8
多态性与虚函数 6 2 8
运算符重载 5 2 7
模板 3 2 5
C++的输入和输出 5 4 9
合计54 18 72
五、正文
第一章面向对象程序设计概述
教学要点:
面向对象的基本概念和典型的语言
教学时数:3学时
教学内容:
2.1什么是面向对象程序设计
2.1.1新的程序设计范型
2.1.2面向对象程序设计的基本概念
2.1.3 面向对象程序设计的基本特征
2.2什么要使用面向对象程序设计
2.2.1传统程序设计方法的局限性
2.2.2 面向对象程序设计的主要优点
2.3面向对象程序设计的语言
2.3.1面向对象程序设计语言的发展概况
2.3.2几种典型的面向对象程序设计语言
授课方式:多媒体教学,课堂讨论、课内实验、课后作业
考核要求:
领会和理解面向对象程序设计的4个基本概念:对象、类、消息和方法,理解面向对象程序设计的4个基本特征,了解几种典型的面向对象程序设计语言。
第二章C++基础
教学要点:
了解C++的产生和特点,理解C++程序的结构特性,C++程序的编辑、编译、连接和运行操作,掌握C++在非面向对象方面的扩充。
教学时数:7学时
教学内容:
2.1C++的产生和特点
2.1.1C++的产生
2.1.2C++的特点
2.2C++程序的结构特性
2.2.1一个简单的C++示例程序
2.2.2 C++程序的结构特性
2.2.3 C++程序的编辑、编译和运行
2.3C++程序的编辑、编译、连接和运行
2.4C++在非面向对象方面的扩充
2.4.1注释与续行
2.4.2输入输出流
2.4.3灵活的变量说明
2.4.4结构、联合和枚举名
2.4.5函数原型
2.4.6 const 修饰符
2.4.7 void 型指针
2.4.8 内联函数
2.4.9带有缺省参数值的函数
2.4.10函数重载
2.4.11作用域标识符::
2.4.12无名联合
2.4.13强制类型转换
2.4.14 new 和delete
2.4.15引用
授课方式:多媒体教学,课堂讨论、课内实验、课后作业
考核要求:
了解C++的结构特性,熟练掌握并能综合应用C++在非面向对象方面扩充的应用内容。
第三章类和对象(一)
教学要点:
理解类和对象的概念,熟练掌握类和对象的定义、构成和使用。重点掌握类成员的访问属性及其使用和构造函数的定义和应用。
教学时数:11学时
教学内容:
3.1类的构成
3.1.1从结构到类
3.1.2类的构成
3.2成员函数的定义
3.3对象的定义和使用
3.3.1类与对象的关系
3.3.2对象的定义
3.3.3对象中成员的访问
3.3.4类的作用域和类成员的访问属性
3.3.5对象赋值语句
3.4构造函数与析构函数
3.4.1构造函数
3.4.2成员初始化表
3.4.3带默认参数的构造函数
3.4.4析构函数
3.4.5默认的构造函数和默认的析构函数
3.4.6重载构造函数
3.4.7拷贝构造函数
3.4.8浅拷贝和深拷贝
授课方式:多媒体教学,课堂讨论、课内实验、课后作业
考核要求:
类的构成,对象的定义及使用、成员函数、构造函数与析构函数等内容的相关知识及面向对象初步的编程方法。
第四章类和对象(二)
教学要点:
进一步理解和掌握类和对象的相关内容,包括this指针的概念、对象数组、对象指针、string类、友元、静态成员以及类的组合、共享数据的保护等内容。
教学时数:8学时
教学内容:
4.1自引用指针this
4.2对象数组与对象指针
4.2.1对象数组
4.2.2对象指针
4.2.3 string类
4.3向函数传递对象
4.3.1使用对象作为函数参数
4.3.2使用对象指针作为函数参数
4.3.3使用对象引用作为函数参数
4.4静态成员
4.4.1静态数据成员
4.4.2静态成员函数
4.4.3通过普通指针访问静态成员
4.5友元
4.5.1友元函数
4.5.2友元类
4.6类的组合
4.7共享数据的保护
4.7.1常引用
4.7.2常对象
4.7.3常对象成员
4.8C++程序的多文件组成
授课方式:多媒体教学,课堂讨论、课内实验、课后作业
考核要求:
领会并能应用this指针、掌握对象数组的定义及初始化方式、对象指针的概念及应用、静态成员的作用及定义和使用方式,友元函数和友元类的定义和使用,类的组合编程及对象成员的初始化方法等概念和编程方法。
第五章继承与派生类
教学要点:
熟练掌握派生类定义方式和基类成员在派生类中的访问规则、掌握派生类的构造函数和析构函数的执行顺序和构造规则、理解多继承和虚基类的概念,并能应用于编程、深入理解赋值兼容规则。
教学时数:6学时
教学内容:
5.1继承与派生类的概念
5.1.1为什么要使用继承
5.1.2派生类的声明
5.1.3基类成员在派生类中的访问属性
5.1.4派生类对基类成员的访问规则
5.2派生类的构造函数和析构函数
5.2.1派生类构造函数和析构函数的调用顺序
5.2.2派生类构造函数和析构函数的构造规则
5.3调整基类成员在派生类中的访问属性的其它方法
5.3.1同名成员
5.3.2访问声明
5.4多继承
5.4.1多继承的声明
5.4.2多继承的构造函数与析构函数
5.4.3虚基类
5.4.4赋值兼容规则
授课方式:多媒体教学,课堂讨论、课内实验、课后作业
考核要求:
熟练掌握派生类定义方式和基类成员在派生类中的访问规则、掌握派生类的构造函数和析构函数的执行顺序和构造规则、理解多继承和虚基类的概念,并能应用于编程、深入理解赋值兼容规则。
第六章多态性与虚函数
教学要点:
理解多态性概念,区分编译时的多态和运行时的多态及在C++中的实现方法、重点学习C++中实现运行时多态的方法虚函数,掌握虚函数的作用和定义方法并能够熟练使用,理解纯虚函数和抽象类的概念及定义和使用。
教学时数:6学时
教学内容:
6.1多态性概述
6.2虚函数
6.2.1虚函数的引入
6.2.2虚函数的作用和定义
6.2.3虚函数与重载函数的关系
6.2.4多继承与虚函数
6.2.5虚函数举例
6.3纯虚函数和抽象类
6.3.1纯虚函数
6.3.2抽象类
授课方式:多媒体教学,课堂讨论、课内实验、课后作业
考核要求:
深入理解多态性概念,掌握虚函数的作用和定义方法并能够熟练使用,理解纯虚函数和抽象类的概念及定义和使用。
第七章运算符重载
教学要点:
理解运算符重载的含义,掌握运算符重载函数的定义和使用方式,区别友元运算符重载和成员运算符重载两种运算符重载函数的定义方法及相应的调用方法、了解几种常见运算符含义及重载方式、掌握标准类型间的转换。
教学时数:5学时
教学内容:
7.1运算符重载
7.2运算符重载函数的两种形式
7.2.1友元运算符重载函数
7.2.2成员运算符重载函数
7.2.3运算符重载应该注意的几个问题
7.3几个常用运算符的重载
7.3.1单目运算符“++”和“——”的重载
7.3.2赋值运算符“=”的重载
7.4重载插入运算符和提取运算符
7.4.1重载插入运算符
7.4.2重载提取运算符
7.5类型转换
7.5.1标准类型间的转换
授课方式:多媒体教学,课堂讨论、课内实验、课后作业
考核要求:
理解运算符重载的含义,掌握运算符重载函数的定义和使用方式,区别友元运算符重载和成员运算符重载两种运算符重载函数的定义方法及相应的调用方法、了解几种常见运算符含义及重载方式、掌握标准类型间的转换。
第八章模板
教学要点:
理解模版的概念,掌握函数模板及其声明方法,掌握模板函数及其生成方法,学习类模板的声明与使用方法,区分函数模板和类模板的定义及使用。
教学时数:3学时
教学内容:
8.1模板的概念
8.2函数模板与模板函数
8.2.1函数模板的声明
8.2.2函数模板的使用
8.3类模板与模板类
8.4程序举例
授课方式:多媒体教学,课堂讨论、课内实验、课后作业
考核要求:
理解模版的概念,掌握函数模板及其声明方法,掌握模板函数及其生成方法,学习类模板的声明与使用方法。
第九章C++的输入和输出
教学要点:
熟悉流及流类库的作用,熟练掌握流类库中常用的类及其成员函数的使用方法,掌握重载“<<”和“>>”的方法。掌握文本文件的打开、关闭及输入输出方法和二进制文件的打开、关闭及输入输出方法。
教学时数:5学时
教学内容
9.1C++为何建立自己的输入输出系统
9.2C++流库及其基本结构
9.2.1 C++的流
9.2.2预定义的流对象
9.2.3输入输出流的成员函数
9.3预定义类型输入输出的格式控制
9.3.1用流成员函数进行输入输出格式控制
9.3.2使用预定义的操纵符进行输入输出格式控制
9.3.3使用用户自定义的操纵符进行输入输出格式控制
9.4文件的输入输出
9.4.1文件的概述
9.4.2文件的打开与关闭
9.4.3文件的读写
9.4.4二进制文件的读写
9.4.5程序举例
授课方式:多媒体教学,课堂讨论、课内实验、课后作业
考核要求:
流类库中常用的类及其成员函数的使用方法,掌握控制输出宽度的函数width()和setw(),掌握函数setionsflags()和resetonflags(),会设置和恢复对齐方式、精度、大小写、进制等。掌握文本文件的打开、关闭及输入输出方法和二进制文件的打开、关闭及输入输出方法。
《面向对象程序设计》课程实验教学大纲
1.实验课名称:面向对象程序设计
2.实验课性质:本课程是计算机科学与技术专业的专业选修课
3.实验教学目的与基本要求:
《面向对象程序设计》是一门实践性很强的专业基础课。开设本实验的目的是使学生掌握C++面向对象程序设计的基本知识和编程方法。结合实际教学过程,通过实验操作让学生进一步加深对所学知识的深入理解和综合应用能力。通过上机编程练习,让学生学会面向对象程序设计的方法与技术,同时培养学生的面向对象程序设计的思想。
4.适用专业:计算机科学与技术专业(本科)
5. 采用教材:主编:陈维兴
教材名称:《C++面向对象程序设计》
出版社:中国铁道出版社
出版日期:2009年
6.学时学分:
(1)课程总学时:72 (2)课程总学分:4
(3)实验课总学时:18 (4)实验课总学分:1
7. 实验项目名称和学时分配
序号 实验项目名称
学时数
项目类别 项目类型 1 C++基础练习 2 设计 必做 2 C++简单程序设计练习 2 设计 必做 3 类与对象(一) 2 设计 必做 4 类与对象(二) 2 设计 必做 5 派生类与继承 2 设计 必做 6 虚函数与多态性 2 设计 必做 7 函数模板与类模板 2 设计 选做 8 输入输出的格式控制 2 设计 必做 9 文件的输入与输出 2 设计 必做 10
综合练习
4
综合
选做
8. 单项实验的内容和要求
实验一 C++基础知识
【实验内容】
① 编写一个简单程序,输出“welcome you”,并给程序加一行注释
“Fist c++ program”;
② 编写一个完整的包含求解
54x 2x 2++的值,x 为整数,并用主函数调用该函数;
③ 利用重载函数,重载上面的函数,x 为浮点数;
④ 编写一个程序,对一个整数数组求和,结果使用内部变量sum 存储,同时对整数中的奇数求和,结果使用内部变量sum 存储,在主程序中将两个结果输出。本题要求体会和理解作用域运算符的概念和基本使用方法;
⑤编写一个程序动态分配一个浮点空间,输入一个数到该空间中,计算以
该书为半径的圆的面积并在屏幕上显示,最后释放该空间,请使用new、delete 运算符;
【实验要求】
①认真阅读和掌握和本实验相关的教材内容;
②按要求编写程序;
③上机运行程序;
④保存和打印出程序的运行结果,并结合程序进行分析;
⑤将最终程序报盘。
实验二C++简单程序设计练习
【实验内容】
①编程要求3~100之间的所有素数;
②编程列出斐波那契(Fibonacci)数列的前20项。分别用迭代和数组方法
编程;
③输入100个素数,从小到大排列并输出。
【实验要求】
①认真阅读和掌握和本实验相关的教材内容;
②按要求编写程序;
③上机运行程序;
④保存和打印出程序的运行结果,并结合程序进行分析;
⑤将最终程序报盘。
实验三类与对象(一)
【实验内容】
①定义一个时间类,时间类中有3个私有数据成员(Hour、Minute、second)
和两个公有成员函数(SetTime和Print_time).SetTime根据传递的3个参
数为对象设置时间;Print_Time负责将对象表示的时间显示输出。一个时
间类的对象,设置时间为9点20分30秒并显示该时间。
②使用构造函数代替上面的SetTime成员函数,并在主函数中使用构造函数
设置时间为10点40分50秒,并显示该时间;
③重载时间类的构造函数(不带参数)使市、分、秒均为0;
④在时间类的析构函数中输出“Good Bye!”;
⑤定义拷贝构造函数并调用;
⑥定义一个类Stock,记录一支股票交易的基本信息,信息包括交易日序号
(表示本月的第几个交易日,用整数表示)、当日最高价、当日最低价、当日开盘价和当日收盘价。尽量发挥想象力,为该类设计成员函数;
⑦在主函数中建立两个股票对象,分别存储该股票昨天和今天两天的信息,
以当日收盘价计算该股票今天的涨幅。
【实验要求】
①认真阅读和掌握和本实验相关的教材内容;
②按要求编写程序;
③上机运行程序;
④保存和打印出程序的运行结果,并结合程序进行分析;
⑤将最终程序报盘。
实验四类与对象(二)
【实验内容】
①使用实验3中的股票类Stock,定义一个对象数组存放连续5个交易日的
股票信息。编写一个主函数,计算两个Stock对象(前后两日)的当日收盘价计算当日涨幅。用指针引用对象数组中的两个对象。在主函数中调用该函数计算从第2个交易日开始每天的涨幅;
②在Stock类中定义一个静态数据成员,记录当前Stock对象的数量;
③设计一个成员函数Assign_Stock为对象赋值,其中的形式参数是对另一
个Stock对象的引用,使用this指针避免对自己的赋值,在主函数中显示用Assign_Stock赋值的对象;
第1章习题答案 名词解释 抽象:抽象(Abstract)就是忽略事物中与当前目标无关的非本质特征,而强调与当前目标有关的本质特征,从而找出事物的共性,并把具有共性的事物划为一类。面向对象方法中的抽象,是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。 封装:面向对象方法中的封装就是把将抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。 消息:消息是面向对象程序设计用来描述对象之间通信的机制。一个消息就是一个对象要求另一个对象实施某种操作的一个请求。 填空题 (1) 面向过程的结构化程序设计方法面向对象程序设计方法 (2) 顺序选择循环 (3) 程序=数据结构+算法程序=对象+消息 (4) 过程类 (5) 抽象性封装性继承性多态性 选择题 (1) B (2) C (3) D (4) C (5) D (6) A (7) A (8) B C (9) A D 判断题 (1) t (2) f (3) f (4)f (5) t (6) f (7) f (8) t 简答题 (1) 结构化程序设计方法着眼于系统要实现的功能,从系统的输入和输出出发,分析系统要做哪些事情,进而考虑如何做这些事情,自顶向下地对系统的功能进行分解,来建立系统的功能结构和相应的程序模块结构,有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。 随着程序规模与复杂性的增长,这种面向过程的结构化程序设计方法存在明显的不足之处。首先是数据安全性问题,由于数据被每个模块所共用,因此是不安全的,一旦出错,很难查明原因。其次是可维护性及可重用性差,它把数据结构和算法分离为相互独立的实体,一旦数据结构需要改变时,常常要涉及整个程序,修改工作量极大并容易产生新的错误。每一种相对于老问题的新方法都要带来额外的开销。另外,图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。 (2) 面向对象的程序设计方法中,将程序设计为一组相互协作的对象(Object)而不是一组相互协作的函数。在程序中,属性用数据表示,用来描述对象静态特征;行为用程序代码实现,用来描述对象动态特征。可见,在面向对象的程序设计方法中,对象是数据结构和算法的封装体。对象之间存在各种联系,它们之间通过消息进行通信。程序可表示为: 程序=对象+消息 在面向对象程序设计中,它着重于类的设计。类正是面向对象语言的基本程序模块,通过类的设计,来完成实体的建模任务。类通过一个简单的外部接口,与外界发生关系。一个类中的操作不会处理到另一个类中的数据,这样程序模块的独立性、数据的安全性就有了良好的保障。程序的执行取决于事件发生的顺序,由顺序产生的消息来驱动程序的执行。不必预先确定消息产生的顺序,更符合客观世界的实际。并且面向对象程序设计方法提供了软件重用、解决大问题和复杂问题的有效途径,具有抽象性、封装性、继承性和多态性等特点。
简答题 1、传统的结构化程序设计的优点和缺点是什么? 优点: (1)这种程序设计方法力求算法描述准确。 (2)对每一子过程模块容易进行程序正确性证明。 缺点: (1)这种程序设计方法本质上是面向“过程”的,而“过程”和“操作”又是不稳定和多变的,因此不能直接反映人类求解问题的思路。 (2)程序代码可重用性差。程序中除少数标准库函数外,每设计一个程序时,程序员几乎从零做起。即使重用代码,通常也是通过拷贝或编辑重新生成一份。 (3)维护程序的一致性困难。该种方法将数据与对数据进行处理的程序代码分离。 2、什么是对象? 每个对象都具有属性(Attribute)和方法(Method)这两方面的特征。对象的属性描述了对象的状态和特征,对象的方法说明了对象的行为和功能,并且对象的属性值只应由这个对象的方法来读取和修改,两者结合在一起就构成了对象的完整描述。 3、什么是消息? 在面向对象的程序设计中,由于对象描述了客观实体,它们之间的联系通过对象间的联系来反映。当一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,而收到请求的对象会响应这个请求并完成指定的服务。这种向对象发出的服务请求就称为消息。4、什么是多态性? 所谓多态性是指当程序中的其他部分发出同样的消息时,按照接收消息对象的不同能够自动执行类中相应的方法。其好处是,用户不必知道某个对象所属的类就可以执行多态行为,从而为程序设计带来更大方便。 5、什么是面向对象的程序设计方法? 这种方法将设计目标从模拟现实世界的行为转向了模拟现实世界中存在的对象及其各自的行为。 在OOP中,将“对象”作为系统中最基本的运行实体,整个程序即由各种不同类型的对象组成,各对象既是一个独立的实体,又可通过消息相互作用,对象中的方法决定要向哪个对象发消息、发什么消息以及收到消息时如何进行处理等。 6、面向对象方法的特点是什么? (1)OOP以“对象”或“数据”为中心。由于对象自然地反映了应用领域的模块性,因此具有相对稳定性,可以被用作一个组件去构成更复杂的应用,又由于对象一般封装的是某一实际需求的各种成分,因此,某一对象的改变对整个系统几乎没有影响。 (2)引入了“类”(class)的概念。类与类以层次结构组织,属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层所有类描述的全部性质,OOP中称这种机制为继承。 (3)OOP方法的模块性与继承性,保证了新的应用程序设计可在原有对象的数据类型和功能的基础上通过重用、扩展和细化来进行,而不必从头做起或复制原有代码,这样,大大减少了重新编写新代码的工作量,同时降低了程序设计过程中出错的可能性,达到了事半功倍的效果。 7、面向对象的程序设计方法与结构化程序设计方法的比较 (1)传统的结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,且当代码量增加时维护数据和代码的一致性困难。
《广告设计》课程教学大纲 课程名称:广告设计 英文名称:Advertising Design 课程类别:专业限选课 课程性质:选修课 总学时:32 讲课学时:20 实验(实践)学时:12 学分:2 适用对象:工业设计 先修课程:色彩静物、设计素描、字体与标志设计、计算机辅助图形图像处理 一、编写说明 (一)制定大纲的依据 遵循大庆石油学院“工业设计”专业的教学大纲。 (二)课程简介 广告设计课程是为培养从事广告设计与实施的应用性人才而设。已成为现代人生活中必不可少的一部分,是现代社会经济活动中重要的组成部分。同时也是一种视觉传递艺术,以形象作为诉求的主导因素,用视觉阐述观点。 (三)课程的地位与作用 广告已成为现代人生活中必不可少的一部分,是现代社会经济活动中重要的组成部分。它是介于社会学、美学与市场营销学边缘的综合性科学,既是一门科学也是一门艺术,随着商品经济的发展将发挥越来越重要的作用。 (四)课程性质、目的和任务 《广告设计》是广告设计与制作专业的主要课程,它以图文为主要内容传递信息,通过此课程可以广泛了解观众的视觉心理欣赏习惯,视觉表述的艺术形式,深入地研究媒体艺术和传播行为,解决视觉美学与创造性思维的问题,并根据市场的发展,要求学生了解广告的运作过程。即从市场调研、企划、创意、媒介流程和国际及本土化广告公司的发展趋势等角度研究如何成为一个全面发展的广告人的问题。 (五)与其他课程的联系 广告设计是以“字体设计”、“版式设计”、“图形创意”、“广告学”等专业基础课为基础。 本课程结束后为学生学习“企业形象设计”、“招贴设计”等打下良好的专业基础。 (六)对先修课的要求 熟练掌握“字体与标志设计”、“计算机辅助图形图像处理”中相关知识。
1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。