《C 程序设计》教学大纲第二版(精选7篇)
《C 程序设计》教学大纲第二版 第1篇
《面向对象C++程序设计》教学大纲 1 《C++程序设计》教学大纲第二版
一、本课程的地位、作用和任务
程序设计课程是大学生的基础课,也是第一门计算机课程(计算机文化基础已是中学教学大纲的要求),包括面向对象程序设计及最基本的数据结构和软件工程的知识。其任务是培养学生的面向对象的编程能力,也锻炼大学生的逻辑思维能力。这里选用C++语言为教学语言。
二、学时安排
本教程授课时数56学时,上机实验56学时(含课外上机),分为两个学期完成(这样教学效果明显优于一个学期完成)。鉴于学时有限,要求精讲多练。另有小型软件设计的实践环节(课程设计,短学期),16学时加上机实验32学时(含课外上机)。
三、教学基本内容 理论教学部分
整个教学过程应围绕面向对象C++程序设计的关键技术精讲多练:要求学生熟练应用多态(重载和超载),熟练应用模板,熟练应用派生,熟练应用聚合。习惯在构造函数中动态分配资源、在析构函数中释放资源和异常处理的方式。
正确处理编程细节与大局观:在第一学期的教学中对算法的描述,侧重于采用C++语言编程的细节的讲解。要求学生学会先分析算法,再画流程图,最后进行编程。特别是在“基本控制结构程序设计”和“函数” 的教学中要严格贯彻这一要求。教师在课堂教学时应多做控制台应用程序设计全过程演示。之后是过渡阶段,对编程的细节的讲授随教学推进而逐渐淡化,对程序的整体掌握的要求逐渐加强。建议在第二学期的教学中,算法表述的细节基本留给学生自己看,教师重点讲解脱离具体C++语言的算法本身的描述和程序整体的构造,使学生的编程能力上一个台阶。一方面提高学生的自学能力,另一方面引导学生的编程的大局观。
1.C++基础知识(4学时)
1)初识C++程序;
2)了解类型潜在的面向对象的特性——值集与操作集的封装
3)掌握基本数据类型和运算:关键字与标识符,基本数据类型,数组,枚举类型,运算符、表达式和优先级; 4)理解类型的相容性与不相容性; 5)标准输入输出简介。
2.基本控制结构程序设计(8学时)
1)了解算法的描述与程序设计三种基本结构;
2)掌握选择结构程序设计:if 语句,switch语句;
《面向对象C++程序设计》教学大纲 2 3)掌握循环结构程序设计: while语句,for语句,do„while语句; 4)掌握常用算法的应用:直接法,枚举法,递推法,迭代法,递归法(在函数部分);
5)应用结构化技术分解程序,设计、实现、测试和查错简单程序; 6)熟悉输入输出文本文件简单应用。
3.函数(6学时)
1)理解函数抽象机制:函数定义与函数的调用; 2)理解参数化机制(值调用),了解参数的传递过程; 3)了解函数的返回值及函数原型说明;
4)理解全局变量,局部变量,变量的存储类型与作用域,生命期与可见性;
5)掌握函数的递归调用,编写、测试、调试简单的递归函数; 6)了解函数重载,默认变元,内联函数;
4.类与对象(上)(4学时)
1)了解传统的结构化程序设计和面向对象程序设计的基本概念; 2)理解面向对象程序设计和封装、抽象的合理性;
3)掌握类定义、属性与行为、访问权限控制,对象的定义、使用及内存的安排,掌握类机制如何支持封装和信息隐藏;
4)理解构造函数与析构函数,掌握由构造函数建立类对象,由析构函数撤销类对象的机制;
5)掌握引用技术,理解值调用和引用调用在参数传递中的不同;
以上第一学期学习内容,共24学时,其中留有2学时机动。
(下)(3学时)
6)掌握函数重载技术与运算符重载技术 7)了解友元,静态数据成员;
5.数组与指针(4学时)
1)掌握数组与多维数组;
2)掌握指针与地址、指针与数组的对应关系,数组名,指针运算; 3)熟悉标准C++字符串与了解C风格字符串。4)了解向函数传递数组或指针的方法;
6.模板与数据结构(5学时)
1)熟悉函数模板与类模版;
2)线性表:掌握模板编写程序的方法,掌握顺序表在内存中的分配与使用;
3)掌握主要查找与排序的算法;
5)模板与类参数,理解类型参数和参数化类型(模板)。
7.动态内存分配与数据结构(6学时)
《面向对象C++程序设计》教学大纲 3 1)了解动态数据结构和静态数据结构实现的差异;
2)熟悉自由存储区内存分配、自由存储区与复制构造函数、深复制与浅复制;
3)掌握链表在内存中的分配,掌握链表的基本操作与使用,; 4)了解栈与队列及其基本操作;
8.类的继承与派生(6学时)
1)了解继承的概念,了解面向对象设计中继承和多态的合理性; 2)熟悉派生类的构造与析构;
4)掌握在对象中使用类层次和继承思想进行设计、实现和测试的方法; 5)区别运行时的多态性的实现,理解重载与同名覆盖的差异; 6)掌握虚函数与多态性。
7)熟悉实现运行时多态性的程序设计;
9.输入/输出流类库(4学时)
1)了解C++的基本流类体系; 2)掌握提取与插入运算符的重载
3)熟悉文件的输入/输出:文件的打开与关闭,文本文件与二进制文件。4)掌握在构造函数中通过文件建立对象,在析构函数中由文件保存对象的技术。
10.异常处理(2学时)
1)了解异常处理机制: try块,异常抛出throw,异常捕获catch; 2)理解栈展开与异常捕获的过程; 3)了解异常和继承;
4)会编写能响应执行中异常情况的代码。
以上第二学期教学内容,共32学时,留有2学时机动。
同步实验部分
以Visual C++ 6.0 集成开发环境下的控制台应用程序为背景,共26个(实际29个,3个选做)实验。对应精讲多练,实验安排比较丰富。实验一
Visual C++集成开发环境(IDE)入门 实验二
简单的C++程序设计 实验三
分支结构程序设计 实验四
循环结构程序设计
实验五
常用算法:枚举法 递推法 迭代法 实验六 文本文件简单应用 实验七 函数的基本概念 实验八 函数的递归算法
实验九 函数的重载和变量的作用域 实验十 类与对象的基本概念 实验十一
引用与复制构造函数 实验十二 运算符重载
《面向对象C++程序设计》教学大纲 4 实验十三 数组与多维数组 实验十四 指针与数组 实验十五 模板与线性表 实验十六 排序与查找 实验十七 模板与类参数
实验十八 动态内存分配与深复制 实验十九 链表及应用
实验二十 栈与队列的操作
实验二十一 继承与派生基本概念 实验二十二 虚函数与多态 实验二十三 纯虚函数
实验二十四 输入输出与重载 实验二十五 文件 实验二十六
异常处理
课程设计部分
要求采用事件驱动编程方法完成。课堂教学——Windows程序设计基础
1)API函数与传统的Windows编程; 2)MFC编程;
3)Windows对象和对象句柄; 4)MFC对象;
5)MFC的消息映射与命令传递; 6)文档/视图结构和序列化。
7)MFC编程操作,可安排学生提前自学为主,教师进行重点内容讲解和演示。要求内容简洁而不失完整性:由应用程序向导建立程序框架,由资源编辑器建立用户界面,由类向导建立成员变量、消息映射和处理函数,加上文档序列化和注册;使学生对MFC编程的关键步骤一目了然。
8)介绍研究型学习和管理及多媒体软件编制方法。9)实验
对话框与控件 4学时 文档-视图结构及图形与文本输出 4学时 序列化和文件操作 4学时 多文档与多重视图 4学时
课程设计
采用研究型学习方法,由学生分组在辅导教师(研究生)指导下自选题目,调研并自定内容,强调参与开发的全过程。
上机
16学时
四、说明——课程体系特点与教学:
第一,建立新的面向对象的C++教学体系。
强调类对象个性实现的关键技术——多态,包括重载(编译时的多态,《面向对象C++程序设计》教学大纲 5 包括函数与运算符重载)、层次结构中的同名覆盖与超载(运行时的多态)。在教学中尽早引入这些技术。引入的越早应用的机会越多。普遍使用这些技术是面向对象的C++的标志。
提倡完善的类对象封装,不仅封装数据和对数据的操作,而且封装资源(尤其是内存)的动态分配与释放,形成一个完备的子系统。在一个有层次结构的类体系中资源的动态分配与释放应该封装在成员对象中,如使用标准的string字符串类那样。
突出模板相关内容的教学。不是将模板作为一种语法现象,而是作为一个有力的工具用于本教材所涉及的全部数据结构基本知识。
介绍怎样在面向对象的程序设计中使用异常处理技术来处理一些很难查找甚至是无法避免的运行时错误和异常。
总之,不是泛泛介绍面向对象的C++的语法和框架,而是突出实用技术,包括完善的封装、派生、多态和模板,在构造函数中动态分配资源、在析构函数中释放资源和异常处理,这是面向对象的C++程序设计的精髓。
第二,强调算法,注意介绍有关独立于任何特定编程语言的算法概念和结构,即突出程序设计而不是语法。强调算法,不是忽视语法,而是不要繁琐的钻牛角尖的语法,我们要的是基本的常用的语法,但更多的是模仿。不是知道的语法越多,程序编得越好,而是自己动手编程越多,程序编得越好。
第三,培养面向对象程序设计能力。掌握怎样从客观事物中抽象出类来的方法。基础教学与实践教学相结合。在基础教学中采用Windows平台下的控制台方式(命令行方式)以突出编程能力的培养。在实践部分比较全面地学习标准的Windows图形界面编程。采用研究型学习进行课程设计。
该教学体系培养的学生所编的程序给人的第一影响应该是:这是规范的面向对象的程序。
对于需要计算机知识较多的专业,程序设计课程应考虑后续课程的需要。尤其是电气电子信息类专业的学生的后续课程中需要大量的面向过程的程序设计的基础知识,包括汇编语言的编程,单片机、嵌入式系统和DSP的C语言编程。面向对象的程序设计其实与面向过程的程序设计是密不可分的。在本课程中,算法的描述实际上是面向过程的,而面向对象是一种包装,它使程序的整体组织更合理,使用起来更方便。教学中应该合理地将两个方面有机地结合起来,即细节上算法的编程和程序总体上的把握并重。
在第一学期的教学中对算法的描述,必须侧重于采用C++语言编程的细节的讲解,即培养学生对算法的编程能力。要求学生学会先分析算法,再画流程图,最后进行编程。特别是在“基本控制结构程序设计”和“函数”这两章的教学中要严格贯彻这一要求。“类与对象”(上)是过渡阶段,对编程的细节的讲授随教学推进而逐渐淡化,对程序的整体掌握的要求逐渐加强,使学生的编程能力上一个台阶。
在第二学期的教学中,算法表述的细节基本留给学生自己看,教师重点讲解脱离具体C++语言的算法本身的描述和程序整体的构造。一方面提高学生的自学能力,另一方面引导学生的编程的大局观。
《C 程序设计》教学大纲第二版 第2篇
1.判断题
(1)×(2)√(3)√(4)×(5)×
(6)√ 2.选择题
(1)C(2)B(3)B(4)C(5)D
(6)C 3.编程题
using System;using System.Collections.Generic;using System.Linq;using System.Text;
namespace ConsoleApplication1 { class Program { static void Main(string[] args){ Console.WriteLine(“Hello C#”);} } }
第二章
1.判断下列符号哪些是合法的C#变量名称
北京 abc _xyz x_y 2.根据要求写出C#表达式(1)N%3==0 & N%5==0(2)(char)new Random().Next(67,74)(3)Math.Pow(x,3)*y/(x+y)(4)Math.Sqrt(b*b-4*a*c)3.判断题
(1)×(2)√(3)√(4)√(5)√
(6)×(7)√(8)√(9)√(10)×(11)√(12)× 4.选择题
(1)B(2)C(3)B(4)B
(5)C
(6)B(7)D(8)B(9)C(10)A 5.分析并写出下列程序运行结果(1)a=21,b=9,c=16
y=4(2)b=41(3)s=6(4)a[0]=28
a[1]=15
a[2]=39
a[3]=48
a[4]=39 6.程序填空
(1)① 3 ② a[i] ③ a[i] ④ a[5-i] ⑤ a[5-i](2)① i % 5 == 0 | i % 7 == 0 ② s+ i 7.编程题(1)static void Main(string[] args){ int s,i,j;for(i = 2;i < 1000;i++){ s = 0;for(j = 1;j < i;j++){ if(i % j == 0)s += j;} if(i == s)Console.WriteLine(“{0}”,i);} }(2)static void Main(string[] args){ int[,] a = {{2,5,18,4 },{3,4,9,2},{4,1,16,8},{5,2,14,6}};int i,j,k,max,maxj;for(i = 0;i < 4;i++){ max = a[i,0];maxj = 0;for(j = 1;j < 4;j++){ if(max < a[i,j]){max = a[i,j];maxj = j;} } for(k = 0;k < 4;k++){ if(a[k, maxj] < max)break;} if(k == 4)Console.WriteLine(“鞍点:第{0}行,第{1}列”,i+1,maxj+1);} }(3)
static void Main(string[] args){ int a = 20, b = 16,i=20;do { if(i % a == 0 & i % b == 0)break;i++;} while(true);Console.WriteLine(“最小公倍数:{0}”,i);i = 16;do { if(a % i == 0 & b % i == 0)break;i--;} while(true);Console.WriteLine(“最大公约数:{0}”,i);}(4)
static void Main(string[] args){ int i, j,k;float s = 1.0f;for(i = 2;i < 11;i++){ k=1;for(j = 2;j <= i;j++)k += j;s += 1.0f / k;} Console.WriteLine(“s={0}”,s);}(5)
static void Main(string[] args){ String s = “a,b2>4[AG6p(”;int i, n1=0,n2=0,n3=0,n4=0;for(i=0;i
static void Main(string[] args){ int i,s = 1;for(i = 0;i < 5;i++){ s = 2 *(s + 1);} Console.WriteLine(“小猴子第一天摘了{0}个桃子”,s);}
说明:由最后一天往前推算。后一天吃了前一天桃子数量的一半多1个,剩余桃子数量是前一天桃子数量的一半减1,则,前一天的桃子数量是后一天的桃子数量加1的2倍。
第三章
1.判断题
(1)√(2)×(3)√
(4)√(5)√(6)×(7)√(8)×(9)×
(10)√
(11)√(12)√(13)√(14)×(15)√(16)√(17)×(18)√(19)√(20)×(21)×(22)√(23)√(24)√(25)×(26)×(27)× 2.选择题
(1)C(2)B(3)C(4)D
(5)C
(6)B(7)D(8)C(9)A(10)A(11)B(12)A(13)D(14)B
(15)C
3.分析下列程序的运行结果(1)s=32,s1=32,s2=34
x=11,y=21(2)x1=3,x2=4
y1=1,y2=4 4.编程题(1)
class Student { public string studentid;public string studentname;private string birthplace;private DateTime birthdate;public Student(string id, string name){ studentid = id;studentname = name;} public string StudentId { get { return studentid;} set { studentid = value;} } public string StudentName { get { return studentname;} set { studentname = value;} } public string BirthPlace { get { return birthplace;} set { birthplace = value;} } public DateTime BirthDate { get { return birthdate;} set { birthdate = value;} } public int Age { get { return DateTime.Now.Year1, p1.yp1.x)*(p2.xp1.y)*(p2.yv2;if(radioButton3.Checked ==true)v = v1 * v2;if(radioButton4.Checked ==true){ if(v2!= 0)v = v1 / v2;} textBox3.Text = v.ToString();} 3.利用4.6节知识,参考图4-29设计具有菜单、工具栏和状态栏的Windows窗口应用程序。
第五章
1.判断题
(1)√(2)×(3)√(4)√(5)×
(6)√(7)×
2.选择题
(1)A(2)无答案,应该是TextReader(3)A(4)C
(5)A(6)C 3.编程题
创建Windows窗口用于程序,在窗口上放置一个Button控件,名称为button1,编写其Click事件处理方法:
private void button1_Click(object sender, EventArgs e){ int i, j;int[,] a=new int[3,3];int[,] b = new int[3, 3];int[,] c = new int[3, 3];string s1;string[] ss;FileStream fs = new FileStream(@“d:data1.txt”,FileMode.Open);StreamReader sr=new StreamReader(fs,Encoding.Default);StreamWriter sw;BinaryWriter bw;for(i = 0;i < 3;i++){ s1 = sr.ReadLine();ss = s1.Split();for(j = 0;j < 3;j++){ a[i, j] = int.Parse(ss[j]);} } for(i = 0;i < 3;i++){ s1 = sr.ReadLine();ss = s1.Split();for(j = 0;j < 3;j++){ b[i, j] = int.Parse(ss[j]);} } sr.Close();fs.Close();for(i = 0;i < 3;i++)for(j = 0;j < 3;j++)c[i, j] = a[i, j] + b[i, j];SaveFileDialog sfd = new SaveFileDialog();sfd.Filter = “文本文件(*.txt)|*.txt”;if(sfd.ShowDialog()== DialogResult.OK){ fs = new FileStream(sfd.FileName, FileMode.OpenOrCreate);sw = new StreamWriter(fs,Encoding.Default);for(i = 0;i < 3;i++){ for(j = 0;j < 3;j++){ sw.Write(c[i, j]);sw.Write(“ ”);} sw.Write(“n”);} sw.Close();fs.Close();} sfd.Filter = “二进制文件(*.bin)|*.bin”;if(sfd.ShowDialog()== DialogResult.OK){ fs = new FileStream(sfd.FileName, FileMode.OpenOrCreate);bw = new BinaryWriter(fs);for(i = 0;i < 3;i++)for(j = 0;j < 3;j++)bw.Write(c[i, j]);bw.Close();fs.Close();} } 说明:data1.txt文件中共9行整数,每行3个整数,每个数据之间以一个空格隔开。
第六章
1.判断题
(1)√(2)×(3)×(4)×(5)√
(6)√(7)√(8)×(9)×(10)√
2.选择题
(1)C(2)D(3)C(4)A
(5)B(6)C(7)B(8)D 3.编程题
创建Windows窗口应用程序,在窗口上放置一个toolStrip控件,并在其中添加两个组合框,名称分别为toolStripComboBox1和toolStripComboBox2,给toolStripComboBox1添加选项:短划线、点划线、双点划线、虚线、实线,给toolStripComboBox2添加选项:1、2、3、4。给窗口添加如下私有字段:
private Graphics g1;private DashStyle dashstyle=DashStyle.Solid;private float penwidth=1;private Pen pen1;private bool beDraw = false;private Point p1, p2;编写comboBox1和comboBox2的SelectedIndexChanged事件处理方法:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e){ dashstyle =(DashStyle)comboBox1.SelectedIndex;}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e){ penwidth =float.Parse(comboBox2.Text);} 编写Form3的Load、MouseDown、MouseMove和MouseUp以及工具栏上两个组合框的SelectedIndexChanged事件处理方法:
private void Form3_Load(object sender, EventArgs e){ toolStripComboBox1.SelectedIndex = toolStripComboBox1.Items.Count-1;toolStripComboBox2.SelectedIndex = 0;} private void Form3_MouseDown(object sender, MouseEventArgs e){ pen1 = new Pen(Color.Red, penwidth);pen1.DashStyle = dashstyle;beDraw = true;p1 = e.Location;g1 = this.CreateGraphics();} private void Form3_MouseMove(object sender, MouseEventArgs e){ if(beDraw == true){ p2 = e.Location;g1.DrawLine(pen1, p1, p2);p1 = p2;} } private void Form3_MouseUp(object sender, MouseEventArgs e){ beDraw = false;} private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e){ dashstyle =(DashStyle)toolStripComboBox1.SelectedIndex;} private void toolStripComboBox2_SelectedIndexChanged(object sender, EventArgs e){ penwidth = float.Parse(toolStripComboBox2.Text);}
第七章
1.判断题
(1)√(2)×(3)×(4)×(5)√
(6)×(7)√(8)×(9)√(10)×(11)√(12)×(13)√(14)√(15)√(16)√
2.选择题
(1)A(2)D(3)C(4)A
(5)D(6)B(7)C(8)D(9)B(10)C(11)C 12)C 13)A 14)B 15)D 16)D 3.编程题
(1)创建Windows窗口应用程序,在窗口上放置两个Button控件,名称分别为button1和button2,再放置一个ComboBox控件和DataGridView控件,名称分别为comboBox1和dataGridView1。
编写button1的Click事件处理方法:
private void button1_Click(object sender, EventArgs e){ OleDbConnection con = new OleDbConnection();OleDbCommand com = new OleDbCommand();con.ConnectionString =@“Provider=microsoft.jet.oledb.4.0;data source=d:aaa.mdb”;con.Open();com.CommandType = CommandType.Text;com.CommandText = “select * from Score where score>80”;com.Connection = con;OleDbDataReader dr = com.ExecuteReader();comboBox1.Items.Clear();while(dr.Read()== true){ if(dr.IsDBNull(dr.GetOrdinal(“StudentID”))== false)
comboBox1.Items.Add(dr[“StudentID”]);} } 说明:为了使用ADO.NET的OLEDB访问方式,需要添加下列引用:
using System.Data.OleDb;(2)界面与(1)相同。
编写button2的Click事件处理方法:
《C 程序设计》教学大纲第二版 第3篇
由教育部于2007年7月颁布的《大学英语课程教学要求》明确指出, “大学英语是以外语教学理论为指导, 以英语语言知识与应用技能、跨文化交际和学习策略为主要内容, 并集多种教学模式和教学手段为一体的教学体系。”2013年2月上海市教委发布了《上海市大学英语教学参考框架》 (试行) , 指出大学英语教学是培养学生的“人文素质修养, 提升他们跨文化交流、沟通和合作, 以及参与国际竞争的能力。”2013年8月全国大学英语四六级考试委员会决定从2013年12月份的考试起, 四、六级考试的试卷结构和测试题型将进行局部调整。在翻译部分, 原单句汉译英调整为段落汉译英, 其内容涉及中国的历史、文化、经济、社会发展等。
从上可知, 在大学英语教学中开展文化教学的必要性和重要性。大学英语教师作为跨文化大学英语教学的直接实施者必须重视培养大学英语学习者的跨文化意识, 努力提高他们的跨文化交际能力。但是目前学界对大学英语教学中跨文化交际能力培养的探讨中“抽象研究和纯理论研究多, 实证性研究和具体性研究少”。 (孔德亮, 栾述文2012) 为了切实有效地提高大学英语学习者的跨文化交际能力, 实行语言和文化并举的教学策略。本文拟从大学英语跨文化教学的现状出发, 基于对国内主流大学英语教材《全新版大学英语》 (第二版) 《综合教程》 (以下简称《综合教程》) 跨文化教学视角的考查, 以具体教学内容为例提出跨文化大学英语教学的实施方法。
二、跨文化交际与大学英语教学
(一) 跨文化交际概述
跨文化交际是指来自不同文化背景的个人之间的交际。它作为一门交叉学科产生于上世纪六十年代的美国。跨文化交际研究的基本内容有: (1) 世界观和价值观研究 (2) 言语行为中的文化特征研究 (3) 非言语交际研究。 (陈俊森等2000:5-8, Samovar等, 2000:51) 跨文化交际并不是指要求人们放弃本民族的文化而一味地按照异文化的规约进行交际。事实上, 跨文化交际要求人们“具有较好的本民族和异文化的背景知识, 具有双重文化或多重文化的理解能力。” (陈俊森等2000:234)
(二) 跨文化大学英语教学
交际以语言为基础, 而语言又是文化的重要载体, 交际、语言和文化三者相辅相成。因此, 在大学英语教学中, 我们不能只强调语音、语法、词汇等语言要素而忽视语言的交际性和文化属性。大学英语教学应该是跨文化外语教学, 是“以文化内容为基础, 文化主题为主线, 语言内容为暗线, 文化学习过程为依据, 语言学习和文化学习互为目的和手段”的外语教学。 (张红玲2007:210) 因此, 大学英语教学应该以提高学生的跨文化交际能力为最终目标。
学界对跨文化大学英语教学有了广泛的认同, 认为要通过增强教师的跨文化意识, 创设真实的跨文化氛围, 开设跨文化类英语选修课, 充分利用网络资源等途径来提高学生的跨文化交际能力。但是目前的研究成果理论化太强, 应用性不够。为了切实有效地提高大学英语学习者的跨文化交际能力, 下面我们从《综合教程》入手, 以跨文化交际视角分析该教材并在此基础上提出跨文化大学英语教学的实施方法。
三、跨文化交际视角下的《综合教程》
《综合教程》是普通高等教育“十一五”国家级规划教材和教育部推荐使用大学外语类教材。它“充分考虑对学生的文化素质培养和国际化知识的传授”, 在指导学生深入学习课文的基础上, “从词、句、语篇等角度进行听、说、读、写、译多方面的语言操练, 着重培养学生的英语语言能力和综合应用能力。”该教程共有四册64篇课文, 以折中主义的教学法为指导, 采用“基于主题的从输入 (听/读) 到输出 (说/写) 综合训练的教学路子。” (李荫华2010) 该教程为跨文化大学英语教学提供了丰富的语言文化素材, 能从多方面增强学生的跨文化意识, 提高学生的跨文化交际能力。下面我们以跨文化交际研究的基本内容为框架, 分析《综合教程》中的跨文化交际知识。
(一) 世界观和价值观
在跨文化交际研究中, 世界观是指“一种文化对上帝、人性、自然、存在问题、宇宙、生命、失望、疾病以及其他影响人们怎样感知世界的哲学问题的价值取向”。 (Samovar等, 2000:89) 《综合教程》64篇课文几乎涵盖了西方文化世界观中的重大哲学问题。比如, 第一册第二单元课文A (All the Cabbie Had Was a Letter) 的主题友谊、第四册第一单元课文A (The Icy Defender) 有关自然的强大力量、第一册第八单元对教育问题的探讨、第二册第五单元对生命的讴歌、第三册第六单元课文A (The Last Leaf) 描述的疾病给人带来的失望等分别对人性、自然、存在问题、生命、失望和疾病等哲学问题进行了一定的阐释。
所谓价值观, 就是人们判断事物好坏和衡量是非的标准, 是一种文化或某个社会的根基。价值观是一个抽象的概念, 由行为模式来体现。《综合教程》收入了大量能反映西方文化主流价值观的语言材料。第二册第二单元就是以价值观为主题专门探讨了美国人的财富观。第二册第三单元则讨论了以代沟为代表的家庭观念。第一册第四单元 (美国梦) 、第二册第一单元 (学习方式) 、第二册第六单元 (男女平等) 、第三册第一单元 (生活方式) 和第三册第二单元 (民权思想) 都从不同角度勾勒出了西方文化 (尤其是美国文化) 的主流价值观面貌。
(二) 言语行为中的文化特征
在言语行为上表现出的文化特征是跨文化交际所面临的最困难、最持久的问题之一。不同文化之间的差异反映到语言上就是语言差异。在语言三大要素 (语音、语法和词汇) 中, 词汇最能反映文化差异。在跨文化大学英语词汇教学中要让学生充分学习英语词汇的文化蕴涵, 充分理解英汉词语文化差异, 以提高其跨文化沟通的能力。
《综合教程》四册教材的课文大多选自美国出版物, 语言风格主要属于美国英语。但是, 在生词表中该教材标注出了美国英语和英国英语在发音和拼写上的差异。在语言与文化的关系方面, 第二册第二单元Text A (The Glorious Messiness of English) 回顾了英语的历史, 指出英语对其他文化的“兼容并包”性植根于西方自由的思想。对于课文中出现的文化词汇, 教程在注释部分都给出了较为详细的解释。为了克服英汉语言差异给英语学习带来的困难, 每课课文后面都附有近义词辨析方面的讲解和练习。大学英语教师可以“运用英语词汇学研究中的词义组成、语义场和英语词汇变体等理论来指导教学, 注重词汇文化内涵的讲解, 以提高学生的英语运用能力和达到增强学生跨文化交际能力的目的。” (凌乐祥2013) 比如, 在讲解statesman一词时, 教师可以把它与politician进行内涵意义对比, 指出statesman表“忠诚的”内涵意义和politician表“欺诈”的内涵意义, 进而用汉语的“政治家”和“政客”来比较学习两个英文单词截然不同的文化内涵意义。
(三) 非言语交际
非言语交际不仅仅是体态语, 而是肢体语言、身体特征、服饰、物品摆设、时间和空间观念等等因素的总称。第四册第五单元课文A (A Friend in Need) 和课文B (Nameless Faces) 都是以不要“以貌取人”为主题。在时间观念上, 第四册第六单元两篇课文指出了现代西方社会生活节奏日益加快, 人们觉得时间不够用和喜欢忙得团团转的症结所在。
四、跨文化大学英语教学实施方法
下面我们将以《全新版大学英语》 (第二版) 综合教程为例, 结合跨文化交际研究的基本内容来阐释跨文化大学英语教学实施的具体方法。
(一) 比较中西方的文化价值观
跨文化大学英语教学不能只是介绍和讲解西方文化, 还应有意识地引导学生进行中西文化比较, 这才能体现出跨文化交际的真正内涵。在《综合教程》第二册第八单元 (Protecting Our Environment) 和第四册第一单元 (Fighting with the Forces of Nature) 的课文主题导入或总结时可以引入在人与自然的关系上中西文化之间截然不同的看法。西方文化认为人是自然的主宰, 自然是人征服的对象, 人可以依靠科学技术不断地改造自然。中国文化却认为人与自然是和谐的关系, 人不是去尽力改造自然, 而是适应自然并利用自然为人类服务。 (陈俊森等2000:9) 相信, 通过文化价值观的比较, 学生更能理解两篇课文的主题思想。
(二) 讲解英语词汇的关联意义
根据国内外语言学家对词义的划分, 词汇意义可分为概念意义和关联意义。概念意义指词在词典中的释义, 这也是《综合教程》里对英语词汇的双语释义。词的关联意义则包括词的内涵意义、文体意义、情感意义和搭配意义。大学英语教师不能过分强调英语词汇的概念意义 (词典释义) , 因为这会让学生觉得所学英语词汇是一组僵化的符号, 无法运用于跨文化交际。
比如dragon (龙) 一词, 在汉语里的“龙”是高贵和吉祥的象征, 我们也自称是“龙的传人”;而在英语中dragon只是表示看守宝藏的怪物 (monster) 而已。这就要求我们在进行跨文化交流时, 不要想当然地把dragon用来表达“中国龙”或“高贵吉祥”的内涵意义。在教学过程中, 要提醒学生不能只依据词的概念意义就盲目使用, 一定要考虑言语交际的场合是否恰当。比如俚语buck虽表示美元, 但不能代替dollar用于正式场合。此外, 在日常生活等非正式场合下, 我们不宜多用具有正式文体意义的语汇 (如dwell) , 而改用相应的普通词 (live) 来代替。
汉语释义相近的英语单词可能有着不同的情感意义。例如, 同表“外来”之意的foreign和alien, 前者是褒义词, 而后者则是贬义词;又如表示“裸体的”naked是中性词, 而nude是贬义词。英语中有一些词由于它们与其他词的固定搭配关系而产生了区别性特征, 这就是它们的搭配意义。因此, 在跨文化交际时, 我们不能通过汉语思维来随意组合词汇, 否则会丧失词汇的搭配意义而达不到跨文化交际的目的。例如, pretty girl和handsome boy两个短语中的形容词不能互换使用;tremble with fear (害怕得发抖) 和quiver with excitement (激动得发抖) 两个固定搭配中的动词也不能互换。 (汪榕培2005:107-127)
(三) 剖析非言语交际中的文化习惯
《综合教程》里有关非言语交际主题的课文并不多, 主要集中在第四册第五单元和第六单元。除了在这两个单元里比较中西文化非言语交际习惯之外, 我们还可以从语篇上来挖掘相关的非言语交际习惯。譬如第三册第一单元Text A (Mr.Doherty Builds His Dream Life) 的第二段和第三段的段落中心句都在段首。作者喜欢把中心句放在段首, 段落的其他部分都是对中心句的诠释, 这和英语人士喜欢直线的思维方式和缜密的逻辑是分不开。通过剖析作者的行文习惯, 加上中英文行文习惯的比较, 学生可以真正理解英语人士的交流方式, 从而切实提高他 (她) 们的跨文化沟通能力。
五、结语
在英语是国际通用语的大背景下, 大学英语教学应该从传统的纯语言教学走向跨文化教学。大学英语教师应该在加深对中国传统文化的理解基础之上, 积极引导学生洞察西方文化的特征, 尽可能地让学生参与跨文化交流, 努力把他 (她) 们塑造成具有多重文化能力且善于开展跨文化交际的国际型人才。
摘要:大学英语教学从本质上讲就是跨文化外语教学。为了培养学生的跨文化意识和提高学生的跨文化交际能力, 本文以跨文化交际研究的基本内容为理论框架, 在分析《全新版大学英语》 (第二版) 《综合教程》的跨文化交际知识的基础上, 以具体的教学内容为例提出了跨文化大学英语教学的实施方法。
关键词:大学英语教学,跨文化交际能力,跨文化大学英语教学方法
参考文献
[1]Samovar L.A.&Porter R.E.Communication Between Cultures (5th Ed.) [M].Beijing:Peking University Press, 2004.
[2]陈俊森, 樊葳葳.外国文化与跨文化交际[M].武汉:华中理工大学出版社, 2000.
[3]教育部高等教育司.大学英语课程教学要求[M].北京:高等教育出版社, 2007.
[4]孔德亮, 栾述文.大学英语跨文化教学的模式构建——研究现状与理论思考[J].外语界, 2012 (2) .
[5]李荫华总主编.全新版大学英语 (第二版) (综合教程) [C].上海:上海外语教育出版社, 2010.
[6]凌乐祥.英语词汇学视阙下的跨文化大学英语词汇教学[J].教书育人:高教论坛, 2013 (10) .
[7]汪榕培.英语词汇学教程[M].上海:上海外语教育出版社, 2005.
投资管理(第二版)教学大纲 第4篇
第一编
概论
第一编包括四章:投资学概述、投资环境、投资机制和投资监管。
第1章:投资学概述主要阐述投资学的基本概念和定义,说明投资主体和投资客体的基本特性等。第2章:投资环境介绍了投资环境的分类和作用,微观和宏观投资环境的特性及其对投资市场的影响。第3章:投资机制系统讲述了投资机制的意义和分类,以及社会经济制度的基本状况。第4章:投资监管阐述了投资监管在现代投资市场中的重要性及相应的投资体制和投资手段。
第二编
投资种类与证券市场
第二编包括五章:实业投资、金融投资概论、金融投资方式、证券市场、证券交易程序和方式。第5章:实业投资主要说明实业投资的类型和主要内容,以及如何进行投资项目评估。第6章:金融投资概述是对金融投资有一个总括的介绍。第7章:金融投资方式主要介绍了金融投资的几种投资方式。
第8章:证券市场介绍了证券市场的定义和结构、证券发行业务、证券市场的类型、管理体制、管理内容和方法,以及世界主要证券市场。
第9章:证券交易程序和方式主要介绍了证券交易的基本程序、证券委托交易、现货交易、信用交易、期货交易和期权交易等交易方式。
第三编
证券评估
第三编包括五章:债券价值评估、股票价值评估、证券投资基金价值评估、可转换证券和认股权证价值评估、企业整体价值的评估。
第10章:债券价值评估主要介绍了债券收益率的计算和分析、债券价值评估及债券风险的分析。第11章:股票价值评估介绍了股票价值的分析方法,股票平均数与股票指数的含义,以及影响股票价格的主要因素。第12章:证券投资基金价值评估主要介绍了证券投资基金的风险种类、衡量风险程度的方法、证券投资基金的评级指标、影响证券投资基金收益的因素、了解当前在我国主要使用的基金评级体系。
第13章:可转换证券和认股权证价值评估主要介绍了可转换证券和认股权证的意义、特征及其价值评估方法。
第14章:企业整体价值的评估主要介绍了从多个方面对企业整体价值进行的评估,具体包括的评估内容及可以采取的方法。
第四编
证券投资理论
第四编包括四章:有效市场理论、投资组合理论、资本资产定价理论、资本结构理论。
第15章:有效市场理论主要介绍了有效市场的含义,有效市场理论的主要内容、三种有效形式的市场效率、各自的特点及有效市场假设的检验方法。
第16章:投资组合理论主要介绍了投资组合理论的发展过程,不同证券组合的投资收益与风险及有效投资组合的选择原理。
第17章:资本资产定价理论主要介绍了资本资产定价模型、证券特征线、套利定价模型。第18章:资本结构理论主要介绍了企业资本结构、企业价值与资本成本三者之间的关系,早期的三种资本结构理论、MM理论的命题及米勒理论、权衡理论、代理理论、信息不对称理论等现代资本结构理论。
第五编
投资决策
第五编包括四章:投资基础分析、投资风险、投资人策略、投资技术分析。
第19章:投资基础分析主要从宏观经济分析、微观经济分析和公司分析这三个层次对投资对象价值进行分析。
第20章:投资风险主要介绍了投资风险的一般种类、风险管理的基本手段、衡量与控制投资风险的方法,以及金融投资风险和机构投资风险。
第21章:投资人策略主要从投资计划策略、投资心理策略、投资管理策略、投资市场策略和投资风险策略这五个方面进行论述。
第22章:投资技术分析先介绍了技术分析的理论、对象和方法,然后从图形分析和市场指标分析这两个方面进行详细阐述。
第六编
国际投资
第六编包括三章:国际投资概述、国际直接投资、国际证券投资。
第23章:国际投资概述主要介绍了国际投资与国际资本流动、国际投资效应分析、国际投资环境、国际投资风险和国际投资管理政策。
第24章:国际直接投资介绍了国际直接投资的可行性决策的特点、程序和方式,国际直接投资的两种主要方式:国际独资企业和国际合资、合作企业。
第25章:国际证券投资主要介绍了国际证券投资概述和国际证券投资决策程序。详细介绍了国际证券投资的两种方式:国际证券投资和国际股票投资。
课时安排
第一编:概论 7课时(10%)
第二编:投资种类与证券市场 11课时(15%)第三编:证券评估 20课时(28%)第四编:证券投资理论 16课时(22%)第五编:投资决策 14课时(19%)第六编:国际投资 4课时(6%)第1章:投资学概述 2课时 第2章:投资环境 2课时 第3章:投资机制 1.5课时 第4章:投资监管 1.5课时 第5章:实业投资 2课时 第6章:金融投资概述 2课时 第7章:金融投资方式 3课时 第8章:证券市场 2课时
第9章:证券交易程序和方式 2课时 第10章:债券价值评估 4课时 第11章:股票价值评估 4课时
第12章:证券投资基金价值评估 4课时 第13章:可转换证券和认股权证价值评估 4课时 第14章:企业整体价值的评估 4课时 第15章:有效市场理论 4课时 第16章:投资组合理论 4课时 第17章:资本资产定价理论 4课时 第18章:资本结构理论 4课时 第19章:投资基础分析 4课时 第20章:投资风险 3课时 第21章:投资人策略 2课时 第22章:投资技术分析 5课时 第23章:国际投资概述 2课时 第24章:国际直接投资 1课时 第25章:国际证券投资 1课时 课时总计 72课时
《C 程序设计》教学大纲第二版 第5篇
第一讲 教师职业和教师职业道德
一、教师职业劳动的特点
(一)教育劳动的复杂性(理解的重点)(1)教育劳动对象的多样性;(2)教育劳动内容的丰富性;(3)教育劳动过程的往复性;
(4)教育劳动对象、内容、过程的发展性。
(二)教育劳动的创造性
(三)教育劳动的协作性
(四)教育劳动的示范性(理解的重点)
二、道德与教师职业道德
(一)道德的涵义、特征和功能
涵义:道德是由一定社会经济关系决定的,依靠社会舆论、传统习惯和人们的内心信念来评价和维系的,用以调整人们相互之间以及个人与社会集体之间利益关系的行为规范和品质的总和。
特征:
作为社会规范的特征(和法律、纪律比较):“软”(非强制、不成文)、“广”(调整的范围和内容广泛)、“深”(自觉自律的内在要求,深入到思想和灵魂);
作为个人品质的特征(和政治、心理、个性等品质比较):“情”(道德就是人之常情、就是怜悯之心、同情之心、恻隐之心,就是相互关心、友爱、帮助,这和政治品质的原则性、坚定性,心理品质的成熟性,个性品质鲜明性、独立性是不同的,人们所说的情商主要就是指道德)、“稳”(即稳定性,如道德与传统的内在联系,从小看大等,道德也许是人类文化系统中最具有惰性的文化因子,以此保持社会文化发展的连续性)、“俗”(世俗、通俗,相对于政治的原则性、宏大性和宗教追求超凡脱俗的神圣性而言的,道德具有日常性、平常性、生活性、细微性,从小事看精神)。
功能:
社会功能:认识功能、调节功能、稳定功能、教育功能等。
个体功能:如启智功能、协调(人际关系)功能、保健(心理)功能、慰藉(情感)功能、导向(人生或价值)功能、升华(价值)功能等。
(二)教师职业道德的含义与根据 所谓教师职业道德,指的是教师在其职业活动中,调节和处理各种关系所应遵循的基本的行为规范和行动准则,以及由此而形成的道德品质。
教师职业道德产生的根据是教师职业活动的内在要求。教师职业如果没有道德要求,就无法完成它的职业使命和实现它的职业职能,可以从以下三个方面来理解这一点:
第一,从教师职业的特点看,教师职业是一个与人打交道的职业。教师职业劳动的主要对象是学生,除此以外,教师与教师之间、教师与学校领导之间,都是人与人的关系,而只要有人和人的关系的地方,就必然有道德。
第二,教师的技术规范和道德规范是相互重叠的。同其他职业行为规范一样,教师的行为规范也可分为技术规范和道德规范两种。技术规范侧重于职业操作的方式、程序等等,反映的是职业活动中人与物的关系;而道德规范反映的是职业活动中人与人的关系。由于教师劳动的对象是人,这就使得教师的两类职业行为规范即技术规范和道德规范相互重叠。比如,板书工整、仪态端庄等等,就既是教师的技术规范,又是教师的职业道德规范。
第三,从教师的行为方式看,教师行为活动的职业意义与道德意义是交织在一起的。或者说,教师的“做事”与“做人”、教书与育人是联系在一起的。教师的人格(道德品质、境界等)本身就是最重要、最有效的劳动工具。
第二讲 教师职业道德的基本要求
教师职业道德的要求从抽象性、普遍性程度上分为两个层次,一是基本原则,二是主要规范。
一、教师职业道德的基本原则
教师职业道德的基本原则是贯穿于教师职业活动的各个方面、场合、关系,具有普遍指导意义、最能体现本职业特点的最基本的道德要求。确立职业道德原则的依据有两点:一是普遍的适用性;二是典型的职业性。在常见的几个原则的提法中(如集体主义、人道主义、教书育人、热爱教育事业、乐教敬业等,最符合这两点要求的是乐教敬业)。
乐教敬业的含义和意义:
含义:乐教敬业既是教师职业道德的基本原则,也是教师的一种从业境界。作为教师职业道德的原则,乐教指的是以一种积极愉悦的心态对待教育教学活动,敬业指的是把教师职业活动当作神圣的事业予以全身心的投入。从理论逻辑上看,乐教和敬业本身是有着内在联系的,只有乐教,才能真正做到敬业,即持久一贯,或可持续的、能够不断地产生自我激励的敬业态度和敬业行为,敬业是乐教的体现,乐教是敬业的内驱力。从实践上看,把乐教和敬业联系在一起,也提高了它的可接受性和可推广性。(邓小平关于只讲奉献的两个可以,两个不行的论断)
意义:乐教敬业把教师对职业的责任感和自豪感,谋生动机和事业追求,学生成长和自身发展,奉献精神和价值实现统一起来。
乐教敬业作为教师职业道德的基本原则,体现在或适用于教师职业劳动的各种职业伦理关系和职业活动领域。比如,在师生关系中,乐教敬业就体现在教书育人、因材施教等具体规范中; 在同事关系中,体现在相互尊重、团结协作等规范要求中;在对职业本身的态度上,表现为严谨治学,锐意改革,提高教育教学效果,注重教学、科研质量等等。
二、教师职业道德的主要规范
相对于原则,规范是适用于教师职业劳动的具体伦理关系和场合的道德要求。所以,规范是很多的。我们可以从教师职业活动涉及的基本伦理关系来考察教师职业道德的主要规范。
教师与学生关系的道德规范:学生为本,师生关系的正确定位;教书育人,促进学生全面发展;因材施教,发展学生良好个性;诲人不倦,恪守教师职业职责;公正执教,维护教师职业形象;廉洁从教,抵制行业不正之风;为人师表,言教身教协调一致。
教师与教师关系的道德规范:相互尊重,相互学习,团结协作,形成合力。教师与领导关系的道德规范:尊重领导、服从管理;关心集体、顾全大局;积极参与、献计献策。
教师与社会的道德规范:
1.教师与学生家长的道德规范,尊重家长,沟通情况,争取家长在教育上的配合和支持;指导家庭教育,形成学校和家庭在教育上的良性互动;一视同仁,公平公正地处理与家长和学生的关系。
2.教师与社区的道德规范:模范服从社区的规范和管理,主动争取社区对教育的支持,积极参与和支持社区教育,为社区提供所需要的智力和教育服务。
3.教师与教育协作单位之间的道德规范:教育学生尊重协作单位的特点和要求,服从管理,争取良好协作;加强与学生的指导,坚持对学生负责和对协作单位负责相统一,提高社会实践的效果。
4.教师在从事社会服务中的道德规范:服从学校管理,促进本职工作、讲求诚信服务,保证服务质量;增强整体意识,注重社会效益、规范服务行为,维护教师形象。
三、教师职业道德的基本范畴(参见教材第六章)
(一)教师义务、教师良心与教师公正的含义
(二)教师威信、教师德性与教师人格的含义
第三讲 教师的人生观和职业道德修养
人生观又称为人生价值观,是人们对人生的根本看法和态度。它的核心问题有两个:人为什么要活着?人应当怎样活着?前者回答的是人生的目的和意义,后者回答的是人生的态度和活法。
一、教师的人生目的和理想
(一)人生目的的类别
由于人生目的是指导和支配各种具体活动目的的总的目的,所以,在类别上是有限的,我们可以根据现实生活中存在着的人生目的的主要类型做出概括和区分;
从目的的意向性(强度)上看,可以分为追求人生和自然人生;
从目的的指向上看,可以分为奋斗型人生(指向目标)和欣赏型人生(注重过程);
从目的的开阔性、层次性上看,可以分为自我(取向)人生和社会(取向)人生;
从目的的内容上看,可以分为俗欲人生(以物质性追求为主)和雅趣人生(以精神性追求为主); 需要说明的是,人生目的的上述分类是出于认识和研究的需要,现实生活中存在的人生目的实际上很少有单纯的某一类型,而是呈现出交叉、融合、过渡的混合状态。不同人生目的的现实区别,是哪一种类型占主导的相对意义上的区分。这种人生目的的融合和混合状态,不仅是客观的,也是合理的。
人生目的的选择主要应该看作是个人的事,每个人都有选择自己生活目的的自由,社会应该为这一人生中最重要的选择提供宽松的环境。当然,也要有一个最低限度,即不能是反社会和反人类的。
(二)教师的人生目的与职业目的
教师的人生目的很自然地是与自己的职业相关联的,或者说,在一定程度上,教师的人生目的体现为职业目的。
在现实生活中教师的职业目的和动机大体上包含以下这些因素:
谋生因素:当教师是为了谋生,它和从事其它职业一样,不过是一个饭碗,饭碗的价值主要有两点:一是大小(工资高低),二是含金量(牢固程度)。谋生在社会发展的现阶段,是绝大多数人职业活动的基本动机和目的,能够得到广泛的社会认同和理解。
兴趣和个性因素:当教师是因为兴趣,或者说是喜欢。喜欢教师,无非是喜欢教师的工作方式、环境、对象等,包括教师职业的稳定性、生活方式的规则性,人际交往的主导性和对象的固定化等等,兴趣和个性因素是一个十分人性化、理想化的因素,因兴趣而工作,就不会是一个负担,而是一个享受,兴趣能够使人全身心投入,也容易创造职业成就。
地位或声望因素:职业的社会地位和声望也是影响到人们职业选择的一个重要因素。教师的社会地位和职业形象或声望从世界范围内看都是较高的,属于为数不多的被人们羡慕和地位显赫的职业之一。
使命因素:当教师是出于一种社会责任感,出于对教育作用的深切理解和重视,出于教育下一代,提高民族素质的强烈愿望等等。这是最高尚、最令人尊敬的职业动机和目的,也是动力最大,最容易创造出职业成就的从业因素。
从与人生目的的联系上看,职业的谋生目的往往是与物欲人生相联系的,而职业的兴趣目的往往是与欣赏型人生和雅趣人生相联系的,职业的使命目的则是受社会人生的目的观支配的。
(三)人生目的与人生意义
从纯自然、纯客观的眼光看,人的生命是没有人以外的目的和意义的。目的和意义都是人赋予的。所以,对人生究竟有什么目的和意义的问题,除了行为人自己,任何别人都是无法回答的。意义源于目的,目的是意义的前提。因为:目的的确立使我们的生命活动有了方向感、归依感;目的的追求使我们有了充实感、期待感;目的的实现使我们有了满足感、成功感、成就感。所以这些人生的积极、肯定的感受和体验都是生命意义的构成和表现,没有这些,就谈不上人生的意义。
(四)人生理想与教师的职业理想
理想是在现实基础上形成的对未来奋斗目标的向往和追求,以及经这一追求和奋斗而实现的超越于既定现实的更为美好的状态或境界。人生的理想从内容上可以分为生活理想、职业理想、道德理想、社会理想等。职业理想是人生理想的组成部分。所谓职业理想,是指个人所希望从事的职业和在这一职业活动中希望达到的水平、成就或境界。对教师来说,职业已经确定,职业理想就主要表现为在教师这一职业中所希望达到的成就和境界。
二、教师的人生态度和人生价值
(一)人生态度和教师的人生态度
态度是人在一定情感体验的基础上对事物所持有的反应、评价和行为倾向。人生态度是在一定生活体验的基础上所产生的对人生较为稳定的反应、评价和行为选择倾向。由于这一倾向具有相对稳定性和一贯性,因而,人生态度往往成为一个人对人对事的反应模式和精神风貌。
可以把人生态度从不同的角度用三分法分为三种典型类型。如从行为的动力倾向上分为积极型、消极型和逍遥型,从情感表现上分为乐观型、悲观型和达观型,从动机倾向上分为社会型、自私型和公私兼顾或合理利己型等。
教师应该确立积极乐观的人生态度。积极乐观人生态度的意义。
(二)人生价值和教师的人生价值
(关于价值、人生价值概念的涵义和人生价值的分类参见教材第七章第二节)
教师的人生价值主要是通过教育价值来表现和实现的。教育价值就是培养人、提高人的素质的价值。教师作为一个个体,其价值的外在形式表现是获得的各种荣誉、称号等等,其价值存在的真正根基是在学生的心目中。学生是教师职业劳动的对象,其劳动的成效最终要在学生身上体现出来,学生是对一个老师人生价值最权威的评价者,老师在学生心目中的良好形象是一座超越时空,永不磨灭的价值丰碑。
人们常用“桃李满天下”来比喻老师的价值,这个比喻生动形象,但有局限,“满”仅仅是一个数量的概念,没有表现出质的含义。其实,教师的价值主要不是表现在教了多少学生,而是教出了什么样的学生,他们是不是把自己取得的成绩或成就和老师的劳动联系在一起,若干年以后,还有多少学生能够惦记着、想念着,感谢着自己的老师。一个受到学生广泛尊敬,能够被学生长期惦记着、怀念着、感谢着的老师是一个真正实现了自己的人生价值的老师。
三、教师的人生意义和幸福
人生意义和人生价值的联系和区别参见教材第七章第三节。
教师的人生意义是指教师职业活动对教师个人生命存在及其活动合理性的肯定,是教师职业劳动乐趣的泉源和自我发展的可能性根据。
关于教师的快乐和幸福,可组织课堂讨论,讨论题可设计为:教师职业劳动的快乐和幸福可能有哪些?你个人将会从哪些方面体验和感受到教师的快乐和幸福?
四、教师的职业道德修养
教师职业道德修养的目标和境界。
可以从不同的视角对修养的目标和境界做出不同层次的划分。如从处理教书和育人的关系上,可以分为“教而不育”、“重教轻育”、“教、育并重”(教书育人)三个层次;从对教师职业劳动的主观感受上,可以分为“厌教敷业”、“从教执业”、“乐教敬业”三个层次;从对教师职业道德遵守的程度上,可以分为“以教谋私”(不遵守)、“依法执教”(基本遵守,守住教师职业道德的底线)、“为人师表”(模范遵守)
对大多数人来说,从广泛性要求上,职业道德修养的最低目标是要守住教师职业道德的底线,走出最底境界,提升到中间层次,在此基础上逐步往最高层次努力。对少数先进分子来说,要用最高层次要求自己,成为教师职业道德的楷模。
《C 程序设计》教学大纲第二版 第6篇
1.(1)机器语言是计算机直接理解执行的语言,由一系列(二进制)指令组成,其助符构成了汇编语言;接近人的自然语言习惯的程序设计语言为高级语言。
(2)结构化程序设计方法主要内容有:自顶向下,逐步求精;面向对象方法将现实世界中的客观事物描述成具有属性和行为的对象,抽象出共同属性和行为,形成类。
(3)C++程序开发通常要经过5个阶段,包括:编辑,编译,连接,运行,调试。首先是编辑阶段,任务是编辑源程序,C++源程序文件通常带有.cpp扩展名。接着,使用编译器对源程序进行编译,将源程序翻译为机器语言代码(目标代码),过程分为词法分析、语法分析、代码生成3个步骤。
在此之前,预编译器会自动执行源程序中的预处理指令,完成将其他源程序文件包括到要编译的文件中,以及执行各种文字替换等。
连接器的功能就是将目标代码同缺失函数的代码连接起来,将这个“漏洞”补上,生成可执行文件。程序运行时,可执行文件由操作系统装入内存,然后CPU从内存中取出程序执行。若程序运行进程中出现了错误,还在需要对程序进行调试。
(4)对象与对象之间通过消息进行相互通信。
(5)类是具有相同属性和行为的一组对象的抽象;任何一个对象都是某个类的一个实例。
(6)多态性是指在一般类中定义 的属性或行为,被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。(7)面向对象的软件开发过程主要包括面向对象的方法分析、面向对象的设计、面向对象的编程、面向对象的测试和面向对象的维护。
(8)泛型程序设计是指在程序设计时,将数据类型参数化,编写具有通用性和可重用的程序。(9)# include
(10)C++中使用cin作为标准输入流对象,通常代表键盘,与提取操作符>>连用;使用cout作为标准输出流对象,通常代表显示设备,与<<连用。
2.(1)叙述机器语言、汇编语言、高级语言的特点。
机器语言是计算机直接执行的语言,由二进制的0和1构成的一系列指令组成;
汇编语言是机器语言的助记符;
高级语言是接近人的自然语言习惯的编程语言,通过编译变成机器语言。(2)结构化的语言与面向对象的语言是截然分开的吗?
不是截然分开的,面向对象的程序设计中也包含过程,含有结构化的思想。(3)C编写的程序不加修改就可以在C++编译器中编译。
(5)C++程序通过编译变成带扩展名.obj的目标文件;再通过连接变成带扩展名.exe的可执行文件。(6)如果要求不使用include包含头文件,有什么办法使程序正常编译运行?
在相应的文件夹(子目录)中,找到需要包含的头文件,将头文件复制到包含处。
3.(2)C++语言程序能够在不同操作系统下编译、运行,说明C++具有良好的移植性。(可以说C++语言完全兼容C语言,但是在这不能说C++语言程序能兼容不同的操作系统;对于计算机硬件,一般使用“兼容”一词,对于程序使用“移植”)。(3)#include语句在程序运行前就执行了。(4)C++程序运行时总是起始于main();(5)用C++写程序时一个语句可分几行写。(6)面向对象编程方法有:对象、继承、类等。
1.2习题2解答 1.(1)C++的基本数据类型可分为5大类:逻辑型(或布尔型)、字符型、整形、实型、空值型。分别用关键字bool,char,int,float/double,void 定义。长度分别为1,1,4,4/8,不定字节。整型、字符型的默认符号修饰为signed。(2)十进制数值、八进制数值、十六进制数值的前缀分别为1~9, 0, 0x(或0X)。(3)一个整数值的数据类型为int,一个带小数点的数据类型为double。
(4)C++预定义的常用转义序中,在输出流中用于换行、空格的转义序列分别为n,t。(5)布尔型数值只有两个;true, false。在C++的算术运算式中,分别当作1,0。
(6)字符由单引号’’括起来,字符串由双引号“”括起来。字符只能有1个字符字符串可以有多个字符。空串的表示方法为“”(或“ ”)。(7)标识符以英文字母,下划线开头。
(8)定义变量的同时赋初值的方法有赋值运算符=,括号。定义常变量初值的方法有赋值运算符=,括号。
(9)关系运算符操作数的类型可以是任何基本数据类型,对其中的实数类型不能进行直接比较(if(a
(-10)与||表达式按从左到右的顺序进行计算,以连接的表达式,如果左边的计算结果为false(或0),右边的计算不需要进行,就能得到整个逻辑表达式的结果:false;以||连接的表达式,如果左边的计算结果为true(或非0),就能得到整个逻辑表达式的结果:true。
(11)>>运算符将一个数右移n位,相当于将该数除以2,<<运算符将一个数左移n位,相当于将该数乘以2。(12)所有含赋值运算的运算符左边要求是左值。
(13)前置++、――的优先级高于后置++、――。
(14)按操作数数目分,运算符的优先级从高到低排列为单目、双目、三目,按运算符的性分,优先级从高到低排列为算术、移位、关系、按位、逻辑。
(15)在表达式中会产生副作用的运算符有++、--、各类赋值。2.1.3
习题3解答
1.(1)if语句中的表达式可以是任意表达式(关系表达式、逻辑表达式、算术表达式、常量)。1.4习题4解答
1.(1)一个C++程序就是由一个个函数组成的即使是最简单的程序也有一个main()函数。
(2)函数执行过程中通过return语句将函数值返回,当一个函数不需要返回值,此时需要使用void作为类型名。(3)在C++中,如果函数定义在后,调用在先,需要进行函数原型声明,告诉编译器函数的(返回)类型,函数名,形式参数。其格式和定义函数时的函数头的形式基本相同,它必须以分号 ;结尾。(4)函数调过程的3个步骤为:函数调用(或参数传递),函数体执行,返回。(5)函数参数传递过程的实质是将实参值通过堆栈一一传送给实参。(实参传给实叁?)(6)递归程序分两个阶段执行调用,回代。
(7)带inline关键字定义的函数为内联函数,在编译时将函数体展开到所有调用处。内联函数的好处是节省执行时间开销。
(8)函数名相同,但对应形参表不同的一组函数称为重载函数,参数表不同是指参数个数、类型不同。
(9)确定对重载函数中函数进行绑定的优先次序为精确匹配,对实参的类型向高类型转换后的匹配,实参类型向低类型及相容类型转换后的匹配。
(10)当既存在重载函数、又有函数模板,函数调用优先绑定重载函数,只有不能精确匹配重载函数时,才实例化类模板。
n
N(11)内联函数的展开、重载函数的绑定、类模板的实例化与绑定均在编译阶段进行。(12)在C++中,函数不允许嵌套定义,允许嵌套调用。
2.(1)void fun(void)的定义是正确的,double fun(int x;int y)和int fun();和double fun(int x,y)这都是不正确的(定义是不能以;结尾的)。(2)函数int fun(int x, int y)的声明形式可以是int fun(int, int)和int fun(int y,int x);和int fun(int i,int j);(int fun(int x, int y)是不正确的因为函数的声明必须以;结尾)。(3)C++语言中规定函数的返回值的类型是由定义该函数时所指定的数据类型所决定。(5)在C++中默认的形参值应该先从右边的形参开始向左边依次设置。(6)重载函数参数个数相同时,参数类型必须不同。
(7)系统在调用重载函数时,依据的是函数名称、实参个数、实参类型。(8)
(9)为了取代C中带参数的宏,在C++ 中使用内联函数。(10)函数模板定义的头部template
1.(-1)enum weekday {sun,mon,tue,wed=d,thu,fri,sat};
weekday workday =mon;
cout< 输出:5(怎么加的?) (2)在C++中,引用数组元素时,其数组下标的数据类型允许是整形常量、整形表达式等非浮点型表达式。(整型表达式实际上包含了整型常量) (3)设有数组定义:char array[]=”China”;则数组array所占的空间为6个字节(’’)。(4)若:int a[][3] = {1,2,3,4,5,6,7}; 则a 数组高维的大小为:3。(-6)若二维数组a有m 列,则在a[i][j]前的元素个数为(i*m+j); 1.6习题六解答(1)从变量的定义位置分,可分为全局变量与局部变量。其中,局部变量定义在函数或复合语句中,供函数或复合语句中使用。 (2)变量的存储类型分为auto,extern,register,static。当声明一个静态(static)变量,它既具有局部变量的性质,又具有全局变量的性质。 (3)C++程序的内存分为4个区:全局数据区,代码区,栈区,堆区。全局变量,静态变量,字符串常量存放在全局数据区,所有在函数和代码存放在代码区,为运行函数而分配的函数参数,局部变量,返回地址存放在栈区。动态分配的内存在堆区。 (4)全局变量,静态变量具有静态生存期;局部变量生存期为动态。 (5)函数原型中形参标识符的作用域为为函数原型,函数的形参与函数体作用域为块作用域;函数,全局变量与常量有文件作用域。(6)C++源程序中以#开头,以换行符结尾的行称为预处理命令。预处理命令编译前由预处理器执行。 (7)可以通过3种方法使用名字空间,个别使用声明方式,全局声明方式,全局声明个别成员。 2.(1)在C++中,函数默认的存储类别为:auto。 (2)函数的形式参数是局部变量,在一个函数体内定义的变量只在本函数范围内有效,在函数的复合语句中定义的变量在此复合语句中有效。 (3)# define PI 3.14 预处理命令必须以#开头,凡是以#开头的都是预处理命令行,在程序执行前执行预处理命令。 (4)动态分配的内存要用delete释放,局部auto变量分配的内存在函数调用结束时释放,全局变量的内存在程序结束时释放。 1.7 习题7解答 1.(1)类的私有成员只能被该类的成员函数或友元函数访问。 (2)类的数据成员不能在定义的时候初始化,而应该通过构造函数初始化。(3)类成员默认的访问方式是private.(4)类的公有成员函数的集合是该类给外界提供的接口。 (5)类的公有成员可以被类作用域内的任何对象访问。 (6)为了能够访问到某个类的私有成员,必须在该类中声明该类的友元。(7)类的静态成员为该类的所有对象所共享。 (8)每个对象都有一个指向自身的指针,称为this指针,通过使用它来确定其自身的地址。(9)运算符new自动建立一个大小合适的对象并返回一个具有正确类型的指针。(-10)C++禁止非const成员函数访问const对象。 (-11)定义类的动态对象数组时,系统只能够自调用该类的构造函数对其进行初始化。(――12)C++中语句const char* const p=”hello”;所定义的指针p和它所指的内容都不能被以改变。 (――13)假定AB为一个类,则语句 AB(AB& x);为该类拷贝构造函数原型说明。 (14)在C++中访问一个对象的成员所用的运算符是.,访问一个指针所指向的对象的成员所用的运算符是->。(15)析构函数在对象的生存期结束时被自动调用,全局对象和静态对象的析构函数在程序运行结束时调用。 (16)设p是指向一个类的动态对象的指针变量,则执行 delete P;语句时,将自动调用该类的析构函数。 2.(1)数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是类。 (2)类的实例化就是创建类的对象。 (-3)已知p是一个指向类Sample数据成员m的指针,s是类Sample的一个对象。如果要给m赋值为5:s.*p=5;(4)类与对象的关系和数据类型与变量的关系是相似的,一个对象只能属于一个具体的类。(5)封装要求对象就具有明确的功能,它使得一个对象可以像一个部件一样用在各种程序中。 (6)内联函数是在编译时(而不是运行时)将该函数的目标代码插入到每一个调用该函数的地方。 (7)类中的函数成员可以在类体中定义,也可以在类体之外定义。(8)C++中的对象并不是C语言中的结构体变量,它是一个状态和操作(或方法)的封装体,对象之间的信息传递是通过消息进行的。 (9)在建立类的对象时只为每个对象分配用于保存数据成员的内存 3.(1)类和数据类型有何关联? 类相当于一种包含函数的自定义数据类型,它不占内存空间,是一个抽象的“虚”体,使用已定义的类建立对象就像用数据类型定义变量一样。对象建立后,对象占据内存,变成了一个“实”体。类与对象的关系就像数据类型与变量的的关系一样。其实,一个变量就是一个简单的不含成员函数的数据对象。(2)类和对象的内存分配关系? 为节省内存,编译器在创建对象时,只为各对象分配用于保存各对象数据成员初始化的值,并不为各对象的成员函数分配单独的内存空间,而是共享类的成员函数定义,即类中成员函数的定义为该类的所有对象所共享,这是C++编译器创建对象的一种方法,实际应用中,我们仍将对象理解为由数据成员和函数成员两部分组成。 (3)什么是浅拷贝?什么是深拷贝?二者有何异同? 构造函数用于建立对象时给对象赋初值以初始化新建立的对象。如果有一个现存的对象,在建立新对象时希望利用现存对象作为新对象的初值,即用一个已存在的对象去初始化一个新建立的对象。C++提供的拷贝构造函数用于在建立新对象时将已存在的对象的数据成员值复制给新,以初始化新对象。拷贝构造函数在用类的一个对象去初始化该类的另一个对象时调用,以下3种情况相当于用一个已存在的对象去初始化新建立的对象,因此,调用拷贝构造函数: ① 当用类的一个对象去初始化该类的另一个对象时。② 如果函数的形参是类的对象,调用函数时,将对象作为函数实参传递给函数的形参时。③ 如果函数的返回值是类的对象,函数执行完成,将返回值返回时。 原因在于默认的拷贝构造函数实现的只能是浅拷贝,即直接将原对象的数据成员值依次复制给新对象中对应的数据成员,并没有为新对象另外分配内存资源。这样,如果对象的数据成员是指针,两个指针对象实际上指向的是同一块内存空间。 当类的数据成员中有指针类型时,我们就必须定义一个特定的拷贝构造函数,该拷贝构造函数不仅可以实现原对象和新对象之间的数据成员的复制,而且可以为新的对象分配单独的内存资源,这就是深拷贝构造函数。 (4)什么是this指针? 它的作用是什么? 一个类的成员函数中,有时希望引用调用它的对象,对此,C++采用隐含的this指针来实现。this指针是一个系统预定义的特殊指针,指向当前对象,表示当前对象的地址。系统利用this指针明确指出成员函数当前操作的数据成员所属的对象。实际上,当一个对象调用其成员函数时,编译器先将该对象的地址赋给this指针,然后调用成员函数,这样成员函数对对象的数据成员进行操作时,就隐含使用了this指针。 一般而言,通常不直接使用this指针来引用对象的成员,但在某些少数情况下,可以使用this指针,如重载某些运算符以实现对象的连续赋值等。 This指针不是调用对象的名称,而是指向调用对象的指针的名称。This的值不能改变,它总是指向当前调用对象。 (5)C++中静态成员有何作用?它有何特点? C++提供了静态成员,用以解决同一个类的不同对象之间数据成员和函数的共享问题。 静态成员的特点是:不管这个类创建了多少个对象,其静态成员在内存中只保留一份副本,这个副本为该类的所有对象所共享。 面向对象方法中还有类属性(class attribute)的概念,类属性是描述类的所有对象的共同特征的一个数据项,对于任何对象实像实例,它的属性值是相同的,C++通过静态数据成员来实现类属性。 (6)友元关联有何性质? ①友元关联是不能传递的,不能被继承。如B类是A类的友元,C类是B类的友元,C类和A类之间如果没有声明,就没有任何友元关系,不能进行数据共享。 ②友元关系是单向的,不具有交换性,如果声明B类是A类的友元,B类的成员函数就可以访问A类的私有和保护数据,但A类的成员函数却不能访问B类的私有和保护数据。(7)在C++程序设计中,友元关系的优点和缺点是什么? 友元概念的引入,提高了数据的共享性,加强了函数与函数之间、类与类之间的相互联系,大大提高了程序的效率,这是友元的优点,但友元也破坏了数据隐蔽和数据封装,导致程序的可维护性变差,给程序的重用和扩充埋下了深深的隐患,这是友元的缺点。(8)如何实现不同对象的内存空间的分配和释放? 当类被实例化成对象后,不同类别的对象占据不同类型的内存,其规律与普通变量相同: ① 类的全局对象占有数据段的内存。② 类的局部对象内存分配在栈中。 ③ 函数调用时为实参建立的临时对象内存分配在栈中。④ 使用动态内存分配语句new建立的动态对象,内存在堆中分配。 虽然类(对象)是由数据成员与成员函数组成。但是,程序运行时,系统只为各对象的数据成员分配单独内存空间,而该类的所有对象则共享类的成员函数定义以及为成员函数分配的空间。对象的内存空间分配有下列规则: ① 对象的数据成员与成员函数占据不同的内存空间,数据成员的内存空间与对象的② ③ 存储类别相关,成员函数的内存空间在代码段中。 一个类所有对象的数据成员拥有各自的内存空间。 一个类所有对象的成员函数为该类的所有对象共享,在内存中,只有一个副本随着对象的生命周期的结束,对象所占的空间就会释放,各类对象内存空间释放时间与方法如下: a. 全局对象的数据成员占有的内存空间在程序结束时释放。 b. 局部对象与实参对象数据成员的内存空间在函数调用结束时释放。c. 动态对象数据成员的内存空间要使用delete语句释放。 d. 对象的成员函数的内存空间在该类的所有对象生命周期结束时自动释放。 1.8 习题8解答1.(1)C++程序设计的关键之一是利用继承实现软件重用,有效地缩短程序的开发时间。 (2)基类的对象可以作为派生类的对象使用,这称为类型兼容(或赋值兼容)。 (3)在C++中,三种派生方式的说明符号为public, private, protected, 如果不加说明,则默认的派生方式为private。 (4)当私有派生时,基类的的公有成员成为派生类的私有成员;保护成员成为派生类的私有成员;私有成员成为派生类的不可访问成员。 (5)相互关联的各个类之间的关系主要分为组成关联和继承关联。 (6)在派生类中不能直接访问基类的私有成员否则破坏了基类的封装性。(-7)保护成员具有双重角色,对派生类的成员函数而言,它是公有成员,但对所在类之外定义的其它函数而言则是私有成员。 (-8)多继承时,多个基类中的同名的成员在派生类中由于标识符不唯一而出现二义性。在派生类中采用成员名限定或重定义具有二义性的成员来消除该问题。 (9)C++提供的多继承机制允许一个派生类继承多个基类。 2.(1)一个派生类可以作为另外一个派生类的基类;派生类至少有一个基类;派生类的成员除了它自己的成员外,还包含了它的基类的成员。 (2)在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则是完全相同的。(3)友元关系是不能继承的。 (4)派生类一般都是公有派生;对基类成员的访问必须是无二义性的;赋值兼容规则也是适用于多重继承的场合。(5)基类的保护成员在公有派生中仍然是保护的;基类的保护成员在私有派生中却是私有的;对基类成员的访问必须是无二义性的。 (6)在公有派生的情况下,派生类中定义的成员函数只能访问原基类中的公有成员和保护成员。 (7)每个派生类的构造函数都要为虚基类构造函数提供实参;多继承时有可能出现对基类成员访问的二义性问题;建立派生类对象时,虚基类数的构造函数会首先被调用。 (8)在一个派生类对象结束其生命周期时先调用基类的析构函数后调用派生类的析构函数。 (9)当保护继承时,基类的公有成员和保护成员在派生类中成为保护成员,不能通过派生类的对象来直接访问。(10)若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的私有成员。(11)设置虚基类的目的是消除二义性。 (12)继承具有传递性,即当基类本身也是某个类的派生类时,底层的派生类也会自动继承间接基类的成员。(13)在派生类构造函数的初始化列表中不能包含派生类中一般数据成员的初始化。 (14)在公有派生情况下,派生类的对象可以赋给基类的对象;派生类的对象可以初始化基类的引用;派生类的对象的地址可以赋给指向基类的指针。 3.(1)派生类如何实现对基类私有成员的访问? 无论使用哪一种继承方式,基类的私有成员都不允许外部函数直接访问,也不允许派生的成员函数直接访问,但是可以通过基类的公有成员函数间接访问该类的私有成员。(2)什么是赋值兼容?它会带来什么问题? 类型兼容是指在公有派生的情况下,一个派生类对象可以作为基类的对象来使用。类型兼容又称为类型赋值值兼容或类型适应。 在C++中,类型兼容主要指以下3种情况: ① 派生类对象可以赋值给基类对象; ② 派生类对象可以初始化基类的引用; ③ 派生类对象的地址可以赋给指向基类的指针; 由于派生类对象中包含基类子对象,所以这种引用方式是安全的,但是这种方法只能引用从基类继承的成员。如果试图通过基类指针引用那些只有在派生类中才有的成员,编译器将会报告语法错误。 (3)多重继承时,构造函数和析构函数的执行顺序是如何实现的? 多得继承时,构造函数的执行顺序是:先执行基类的构造函数,再执行对象成员的构造函数,最后执行派生类的构造函数。 在多个基类之间则严格按照派生类声明时从左到右的顺序来执行各基类的构造函数,而析构函数的执行顺序则正好与构造函数的执行顺序相反。 (4)继承与组合之间的区别和联系是什么? 继承描述的是一般类与特殊类的关系,类与类之间体现的是”is a kind of”,即如果在逻辑上A是B的一种,允许A继承B的功能和属性。例如汽车(automobile)是交通工具(vehicle)的一种,小汽车(car)是汽车的一种。那么类automobile可以从类vehicle派生,类car 可以从类automobile派生。 组合描述的是整体与部分的关系,类与类之间体现的是”is a part of ”,如果在逻辑上A是B的一部分,则允许A和其他数据成员组合为B。例如:发动机、车轮、电池、车门、方向盘、底盘都是小汽车的一部分,它们组合成汽车,而不能说汽车是发动机的一种。 在C++中,类的继承与类的组合很相似,继承和组合既有区别,也有联系,主要表现在描述的关系不同。某些比较复杂的类,既需要使用继承,也需要使用组合,二者一起使用。 在某些情况下,继承与组合的实现还可以互换。在多继承时,一个派生类有多个直接基类,派生类实际上是所有基类属性和行为的组合。派生类是对基类的扩充,派生类的成员一部分是从基类中来,因此派生类组合了基类。既然这样,派生类也可以通过组合类实现。什么时候用继承,什么时候使用组合,要根据问题中类与类之间的具体关系,顺其自然,权衡考虑。 (5)什么是虚基类?它有什么作用? 在多继承中,当派生类的部分或全部直接基类又是从另一个共同基类派生而来时,这些直接基类中从上一级共同基类继承来的成员就拥有相同的名称。在派生类的对象中,同名数据成员在内存中同时拥有多个副本,同一个成员函数会有多个映射,出现二义性,因此,C++将共同基类设置为虚基类。虚基类使得从不同的路径继承过来的同名数据成员在内存中只有一个副本,同一个函数也只有一个映射。这样不公解决了二义性的问题,也节省了内存,避免了数据不一致的问题。1.9习题9解答 1.(1)将一个函数调用链接上相应函数体的代码,这一过程称为联编(绑定)。(2)C++支持两种多态性:静态多态性和动态多态性。 (3)在编译时就确定的函数调用称为静态联编,它通过使用重载函数实现。(4)在运行时才确定的函数调用称为动态联编,它通过继承和虚函数来实现。(5)虚函数的声明方法是在函数原型前加上关键字virtual。(6)C++的静态多态性是通过重载函数实现的。 (7)C++的动态多态性是通过虚函数实现的。 (8)当通过基类指针使用虚函数时,C++会在与对象关联的派生类中正确地选择重定义的函数。 (9)如果一个类包含一个或多个纯虚函数,则该称为抽象类。 (10)若以非成员函数形式,为类Bounce重载!运算符,其操作结果为bool型数据,则该运算符重载函数的原型是:friend bool operate!(Bounce);2.(1)在C++中::运算符不能被重载。 (2)运算符重载不能改变运算数的个数、优先级、结合性和语法结构。 (3)如果表达式++i*k中的++和*都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可表示为operator*(operator++(i),k).。 (4)5.0+2.0和2+5两个表达式中的+的意义不相同。(5)有的运算符只能作为成员函数重载。 (6)已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const。 这是运算符-的重载运算符函数;这是一个成员函数;这个函数不改变类的任何数据成员的值。(7)在表达式x+y*z中,+是作为成员函数重载的运算符,*是作为非成员函数重载的运算符。 Operator+有一个参数,operator*有两个参数; (8)在C++中,对象之间的相互通信通过调用成员函数来实现。 (9)Franction operator +(Franction,Franction);Franction &operator =(Franction&,Franction);Franction &operator +=(Franction&, Franction)以上是重载为非成员函数的运算符函数原型。(10)当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中都是虚函数。 (11)纯虚函数是一个在基类中说明的虚函数,它在该基类中没有定义,但要求在任何派生类都必须定义自己的版本。(12)Virtual void vf()=0;这个基类中的成员函数表示纯虚函数。(13)如果一个类至少有一个纯虚函数,那么就称该类为抽象类。 (14)纯虚函数是一种特殊的虚函数,它没有具体的定义;抽象类是指具有纯虚函数的类;抽象类只能作为基类来使用,其纯虚函数的定义同派生类给出。 (15)抽象类的特性――不能定义其对象。 (16)抽象类至少应该含有一个纯虚函数。 (17)类B是类A的公有派生类,类A和类B中都定义了虚函数 fun(), p是一个指向类A对象的指针,则p->A:::func()将调用类A中的函数func()。 (18)在C++中,用于实现运行时多态性的是虚函数。(19)Class A{ Public: Virtual void func1(){} void func2(){} };Class B: public A{ Public: Void func1(){cout<<”class B func1”< (20)抽象类中的成员函数都是虚函数。 (21)如果派生类没有实现基类的一个纯虚函数,则该派生类是一个抽象类。1.10 习题10解答 1.(1)模板是面向对象技术提高软件开发效率的重要手段,是C++语言的重要特征。 (2)类模板是能根据不同参数建立不同类型成员的类。 (3)STL中体现了泛型化程序设计的相思,它提倡使用现有的模板程序代码开发应用程序,是一种代码重用技术。(4)STL(Standard Template Library)是C++提供的标准模板库,它可以实现高效的泛型程序设计。 (5)STL容器包括顺序容器和关联容器利用容器适配器可以将顺序容器转换为新的容器。 (6)顺序容器(sequence container)以逻辑线性排列方式存储一个元素序列,在容器类型中的对象在逻辑上跑旱船认为是在连续的存储空间中存储的。 (7)关联容器(associate container)中的数据元素不存储在顺序的线性数据结构中,它们提供了一个关键字(key)到值的关联映射。 (8)容器适配器就是将某个底层顺序容器转换为另一种容器。即以顺序容器作为数据存储结构,交将其转换为一种某种特定操作特性的新容器。 (9)在STL中,迭代器如同一个特殊的指针(用以指向容器中某个位置的数据元素)。 (10)在STL中函数对象在STL中被广泛用作算法中子操作的参数,使算法变得更加通用。2.(1)类模板的使用实际上是将类模板实例化成一个类。 (2)类模板的模板参数能作为数据成员的类型;可作为成员函数的返回类型;可作为成员函数的参数类型。(3)类模板的实例化在编译时进行。(4)类模板的参数可以有多个。(5)类模板实例化时的实参值可以是0个。当类模板的模板参数均给出了初值时,类模板实例化时可以没有实例。(6)类模板的定义:template Template 正确的实例化方式为:Tclass 1.1习题11解答 1.(1)标准输入流对象为cin,与>>(提取操作符)连用,用于输入;cout为标准输出流对象,与<<(插入操作符)连用,用于输出。 (2)用标准输入流对象cin与提取操作>>连用进行输入时,将空格与换行当作分隔符,使用getline()成员函数进行输入时可以指定输入分隔符。 (3)头文件iostream中定义了4个标准流对象cin, cout, cerr, clog。 (4)每一个输入/输出流对象都维护一个格式状态字,用它表示汉对象当前的格式状态并控制流的格式。C++提供了使用操纵符与格式状态字,来控制流的格式的方法。 (5)格式控制的成员函数通过流对象调用;操纵符直接用在流中,但使用函数形式的操纵符要包含iomanip头文件。(6)在ios类中,除了提供控制数据流格式标志、操纵符、成员函数,还提供了流的错误侦测函数与错误状态位,用于标识流的状态,常用的错误侦测函数有good(), eof(), fail(), bad()对应的错误状态位为goodbit, eof, bit, failbit, badbit。(7)文件输入是指从文件向内读入数据;文件输出则指从内存向文件输出数据。文件的输入输出首先要建立输入文件流,与打开的文件连接;然后从文件流中读入数据到内存;最后关闭文件流。在打开文件、对文件读写时要使用是否成功的判断来保证文件操作的正确。 (8)文本文件是存储ASSCII码字符的文件,文本文件的输入可用>>(提取操作符)从输入文件流中提取字符实现。文本文件的输出可用<<(插入操作符)将字符插入到输出文件流来实现。 (9)二进制文件是指含ASCII码字符外的数据的文件。二进制文件的输入输出分别采用read()、write()成员函数,这两个成员函数第一个参数的类型分别为char *, const char *, 如果实参类型不符,分别采用reinterpret_cast 1.12习题12解答 1.(1)s0是一个string类串,定义串s1的方法有:string s1(s0,0,3);、string s1(“ABC”,0,3);、string s1=”ABC”;、string s1(3,’A’);(2)若char *s0=”12345”, 则有:string s1=s0;string s1(s0);string s1(s0,0,3);(3)求string类串S长度的表达式为:S.length();(4)S为string类对象,则S.size();sizeod(S);S.length();的编译不会出错。 (5)S、T为string类对象,则S=T;S[1]=T[1];S+=T;的编译不会出错。 (6)string s=(“ABCDEF”);char *q =”123456”;string::iterator p=s.begin();则有:p=q;*(p+1)=*(q+1);q[1]=p[1]; 1.13 习题13解答 1.(1)运行错属于异常;硬件故障也可当异常抛出;只要是编程者认为是异常的都可以当异常抛出; (2)throw语句必须在try语句块中直接运行或通过调用函数运行;一个程序中可以有try 语句而没有throw语句;throw语句抛出的异常可以不被捕获。 (3)函数声明 float fun(int a, int b)throw(),表明函数不抛出任何类型异常。(4)catch(….)语句可捕获所有类型的异常;一个try语句可以有多个catch()语句;程序中try语句与catch语句是一个整体,缺一不可。 •文章要求1.字数800-2000字, 必须是作者实隨修工作经验总结;2.文章需介绍设备的型号、参数以及故_现象, 并从设备工作原理角度进行分析, 找出故障原因, 说明故障排除的方法;3.电路分析部分需附上电路图, 务必保证电路图淸晰, 符合印刷要求;4.文章未在除《中国医疗设备》杂志以外的国内外刊物上正式发表过;5.文章中涉及的设备使用年限不得超过8年。•入选办法《中国医疗设备》杂志社将统一组织专家逬行案例审核, 合格者将入选《中国医疗设备维修技术指南》 (第二版) 。•时间安排1.截稿时间:2015年8月1曰2.稿件评审时间:2015年8月1曰~2015年9月15曰3.出版时间:2015年12月•联系方式1.联系人:《中国医疗设备》编辑部B寸冬2.联系电话:010-57065632传真:010-570656993.案例收稿邮箱:cmd_wxzn@126.corrr (注:投S时清务必附上您的联系电话与煎WS址) 《C 程序设计》教学大纲第二版 第7篇