面向对象程序设计教学大纲-计算机科学与软件学院

2024-06-06 版权声明 我要投稿

面向对象程序设计教学大纲-计算机科学与软件学院(精选13篇)

面向对象程序设计教学大纲-计算机科学与软件学院 篇1

Artificial Intelligence Principles and Applications

课程编号:30420082 学分数:2 开课单位:计算机技术与自动化学院

课内总时数:40 任课教师姓名及职称:刘文菊副教授、郭景讲师

开课学期: 第2学期 教学方式:讲授

一、教学要求及目的

人工智能是研究智能信息处理技术、开发具有智能特性的各类应用系统的核心技术。通过本课程的学习,要求学生了解人工智能的基本概念和原理,掌握常用的知识表示、逻辑推理和问题求解的方法,熟悉人工智能的发展学派和主要理论。为智能信息分析和构建专家系统、智能决策支持系统等各类智能系统奠定基础,并培养学生提高解决复杂问题的能力。

二、课程的主要内容

1.人工智能概述

人工智能的概念; 人工智能的产生和发展; 人工智能的内容和特点; 人工智能的研究和应用领域。2.知识表示方法

知识表示的概念;

谓词逻辑表示法; 产生式表示法; 语义网络表示法; 框架表示法; 面向对象表示法。3.推理方法

推理的基本概念;

确定性推理:推理方法及其分类、推理的控制策略、推理的逻辑基础; 不确定性推理:确定性因子法、主观Bayes法、证据理论、模糊推理。4.问题求解与搜索方法

状态空间搜索,状态图问题求解; 与或树搜索,与或树问题求解;

博弈树搜索,极大极小过程,-剪枝法。5.机器学习

机器学习的概念; 机械学习; 基于经验的学习; 基于事例的学习; 基于类比的学习; 基于神经网络的学习。6.人工智能应用--专家系统

专家系统的概念; 专家系统的结构;

专家系统的应用与发展概况; 产生式系统 专家系统设计举例。

7.人工智能的争论与展望

关于人工智能的争论; 人工智能对人类的影响; 对人工智能的展望。

三、课程教材及主要参考书

1.人工智能及其应用(第三版)研究生用书,蔡自兴编著,清华大学出版社,2006年5月 2.人工智能技术导论,廉师友编著,西安电子科技大学出版社,2002年第1版 3.人工智能原理及其应用,王万森编著,电子工业出版社,2000年9月

4.Artificial Intelligence A New Synthesis

Nils J.Nilsson

机械工业出版社 1999.9

四、预修课程

数理逻辑、离散数学、高级语言程序设计、数据结构与算法

五、适用专业、范围

面向对象程序设计教学大纲-计算机科学与软件学院 篇2

配电网线损是供电企业的一项重要经济指标,各级供电企业在生产营销中,都必须进行配电网线损的计算、统计、分析、考核工作,目的是降低电能损耗,节约能源,提高经济效益。农村配电网主要由10kV线路、配电变压器、0.4kV及以下线路组成。农村配电网降损一般采用无功补偿方式,作用在于消除配电网上感性无功功率和容性无功功率产生的无用消耗,从而达到有功功率最大限度出力的效果。

目前配电网线损的计算方法主要有均方根电流法、最大电流法、平均电流法、等值电阻法等,在原理上均采用了对计算网络和数据的等效和简化,假设网络各节点的负荷曲线形状、功率因数均与首端相同,忽略沿线的电压损失对能耗的影响[1]。这些近似的方法导致线损计算结果的准确性很难把握。随着配电网的发展,各种运行数据将逐渐齐备,使得利用潮流的方法计算各时刻的功率损失成为可能。为此,本文对农村配电网潮流计算方法中的前推回代法进行了改进,以支路网损为状态量,进行前推回代求解。改进前推回代法没有忽略沿线的电压损失对能耗的影响提高了线损的计算精度。

1 改进前推回代法

1.1 结点注入功率的确定

结点注入功率由以下数据组成:馈线出口处每 小时负荷功率、小电源节点每小时负荷功率、配电变压器节点高压侧每小时负荷功率、线路损耗功率和配电变压器损耗功率。

1.1.1 馈线出口处每小时负荷功率的确定

变电站每条馈线出口处都有电压、电流表和有功、无功电能表,通常电能表的准确级要高于电压、电流表,所以选择代表日的有功、无功电量作为分摊的基础。则

Pst=KstPs Qst=KstQs

Κst=UstΙst/t=124VstΙst

式中 Pst,Qst—馈线出口处代表日第t小时的有功、无功功率;

Ps,Qs—馈线出口处代表日的有功、无功电量;

Kst—馈线出口处第t小时的功率分配系数;

Ust,Ist—馈线出口处第t小时的电压、电流。

1.1.2 小电源节点每小时负荷功率的确定

配电网中经常有小电源节点(如小水电、小火电)存在,在其接入配电网处也装设有电压、电流、电能表来记录运行数据。其每小时的有功、无功负荷功率分别按下式计算,即

Pht=KhtPh,Qht=KhtQh

Κht=UhtΙht/t=124VhtΙht

式中 Ph,Qh—小电源h代表日的有功、无功电量;

Pht,Qht—小电源h代表日第t小时的有功、无功功率;

Kht—小电源h在第t小时的功率分配系数;

Uht,Iht—分别为小电源h代表日第t小时的电压、电流。

1.1.3 配电变压器节点高压侧小时负荷功率的确定

负荷功率公式如下

Ρit(k)=Κit(Ρst+h=1ΝhΡht-i=1ΝtΔΡit(k-1))

Qit(k)=Κit(Qst+h=1ΝhQht-i=1ΝtΔQit(k-1))

Κit=Sie/i=1ΝΤSie

式中 Pit(k),Qit(k)—分别为配电变压器i高压侧第t小时第k次迭代中的有功、无功负荷功率;

ΔPit(k-1),ΔQit(k-1)—分别为配电变压器i在第t小时第k-1次迭代中的有功、无功损耗功率;

Nt,Nh—分别为配电变压器台数、小电源个数;

Kit—配电变压器i的功率分配系数;

Sie—配电变压器i的额定容量。

1.1.4 线路损耗功率

线路损耗功率按下式计算,即

ΔΡ(k)=(Ρji2(k)+Qji2(k))RU2(k)

ΔQ(k)=(Ρji2(k)+Qji2(k))XU2(k)

式中 Pji(k),Qji(k)—分别为第k次迭代中支路ij末端(有功正向为i流到j)的有功、无功潮流;

ΔP(k),ΔQ(k)—分别为第k次迭代中线路(支路ij)的有功、无功损耗功率;

U(k)—第k次迭代中节点j的电压;

R,X—分别为线路的电阻、电抗。

1.1.5 配电变压器损耗功率

由于没有实时记录配电变压器低压侧负荷数据,且负荷功率是分配到配电变压器的高压侧的,所以不能将变压器等值为等效电路来处理。配电变压器损耗功率按下式计算,即

ΔPfe-it(k)=Pio(Uit(k)/Uei)2

ΔQfe-it(k)=Iio%SieUit(k)2/100Uei2

Sit(k)=(Pit(k)-ΔPfe-it(k))+j(Qit(k)-ΔQfe-it(k))

ΔPit(k)=ΔPfe-it(k)+PikSit(k)2Uei2/1000Vit(k)2Sie2

ΔQit(k)=ΔQfe-it(k)+Uik%Sit(k)2Uei2/100Uit(k)2Sie2

式中 Uei,Uit(k)—分别为变压器i的额定电压和第k次迭代中高压侧电压;

ΔPfe-it(k),ΔQfe-it(k)—分别为变压器i在第k次迭代中铁心损耗的有功、无功功率;

Sie,Sit(k)—分别为变压器i的额定容量、除去铁心损耗后的功率;

Pio,Pik—分别为变压器i的空载损耗、短路损耗;

Uik%,Iio%—分别为变压器i的阻抗电压、空载电流。

2 母线、分支和节点的编号方法

在配电网潮流计算中对网络支路和节点进行编号是十分必要的,简便有效的配电网节点、分支线编号原理,大大节省了计算机存储量和计算速度,更有利于程序的实现。配电网的辐射型结构,一般是由一条主馈线带有数条分支,各分支又带有各自的子分支,依次类推。因此,定义主馈线为第一层,从左向右依次定义主馈线上的各节点,然后定义离电源最近的节点的分支线及其上的节点。每一层最后一个节点号要比它的下一层的第一个节点号小1。此方法简便、有效,利于编程,对于任何复杂的辐射状配电网的网络编号都适用[2]。其具体编号方法可如图1所示。其中[]代表层数,( )代表支路号,数字代表节点号。

3 配电网线损计算的软件程序设计

作为农村配电自动化的一部分,理论线损的计算已普遍应用软件实现,进行线损计算时,首先录入运行数据和网络结构数据,包括:馈线出口处24h电流、电压和有功、无功电量;小电源24h正点电流和有功、无功电量;各支路末端的有功、无功功率;全月供电量、代表日供电量、全月天数;配变容量、短路损耗、空载损耗等;线路各段距离、导线型号单位长度电阻、单位长度电抗等。

配电网线损计算程序框图如图2所示。

线损的计算结果分为线路损耗、变压器损耗和总损耗3大部分。此界面显示的计算结果可以进行打印或保存,以作为分析配电网无功优化、重构的数据依据。

线损计算结果界面如图3所示。

4 结论

本文对配电网的理论线损计算方法进行了分析,对传统的前推回代法提出了改进方法,提高了计算精度。同时,利用改进前推回代法设计了理论线损计算软件系统,可以方便地计算出农村配电网中结点和支路的理论线损信息,制定降低线损的措施。

参考文献

[1]罗毅芳,刘巍,师流忠,等.电网线损理论计算与分析系统的研制[J].中国电力,1997,30(9):37-39.

面向对象程序设计教学大纲-计算机科学与软件学院 篇3

关键词:教改 任务驱动 面向对象编程技术

中图分类号:G642 文献标识码:A 文章编号:1673-9795(2012)12(b)-0007-01

1 现状与背景

面向对象的设计方法是20世纪80年代发展起来的一种程序设计方法。面向对象的方法就是将数据以及数据的操作方法放在一起,作为一个项目依存、不可分离的整体—— 对象。对同类型对象抽象出其共性,形成类。类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信[1]。相对与结构化的程序设计思想,面向对象的程序模块间的关系更为简单,模块的独立性,安全性有了很好的保障。但是,很多学生在先学了结构化的程序设计之后,再来学习面向对象的一些概念就显得难以理解。封装,继承,多态,对象,这样的概念显得很抽象。目前,《面向对象编程技术》课程教学是老师单一授课后布置一些小习题让学生进行练习,这种教学模式过分的强调教师的主导作用,学生缺乏主观能动性,自主学习能力没有得到锻炼。加上刚刚接触面向对象这些抽象的概念,普遍有畏难和厌倦的情绪。为此,本文将以“任务驱动”为导向的课程教学及实践的方法对本门课程进行改革。

2 “任务驱动”教学

2.1 “任务驱动”模式

“任务驱动”教学模式是以任务为核心,通过分析该模式中的学生这一主体,设计合适的任务,引导学生去完成该任务,最后,针对完成的情况进行总结分析和评价。主要有以下几部分构成[2,4]:(1)学生能力的分析。“任务驱动”教学模式中学生是主体,是任务的主动实施者。对学生能力的分析,有利于教师设计出更符合学生特点及能力的任务,更好的提供帮助和指导,设计适合学生任务与学习资源。对学生的分析可以使用摸底考试、问卷调查、查看以往课程成绩和与之前的授课老师进行沟通等方法来实现。(2)学习任务的设计。“任务驱动”教学模式设计中的任务是学习的核心,以任务驱动学习,以任务帮助学生进行知识与能力的转化。设计合适的任务是教学设计模式的核心和重点,它为学生提供了明确目标、任务。设计任务时要考虑到任务所涵盖的知识点要合宜,任务的难度要符合学生的主体水平,任务的解决方式要是多样化的。(3)学习资源的设计。为了能帮助学生顺利的解决问题,老师需要为学生准备必要的预备知识。因此在任务的设计中,需要详细考虑到学生要完成该项任务需要哪些学习资源,可引导学生通过网络获得,或是学习查找开发软件自带的MSDN,以此来提高学生自主解决问题的能力。(4)分析总结。适时地总结可有效的帮助学生将所学知识系统化。总结应为知识体系串讲,简明扼要,避免限制学生思维。(5)评价。评价意味着根据某些标准对学习者进行鉴定或价值判断[5]。评价通常包括形成性评价和总结性评价。形成性评价是指在教学过程中,在学生完成任务的过程中及时进行检测和评价以便之后更好的完成。总结性评价是指在整个教学任务完成以后,学生任务完成以后对其进行相应的评价。在此教改模式中,形成性评价比总结性评价更有实际意义。

2.2 内容以及目标

“任务驱动”教学就是根据教学目标以及教学内容的需要,通过设置具体的案例,引导学生分析,参与讨论,以及表达的过程,从而提高学生分析问题解决问题的能力[3]。学生在对案例的解决过程中,不仅动手能力提高,同时,也加深了对那些抽象概念的理解。避免了那种“从概念到概念”的填鸭式教学。面向对象的编程技术这门课程的特点就是理论性和抽象性比较强,采用此方法就可以更好的完成教学工作,提高学生的能力。

2.3 主要解决的问题以及特色

引入此方法之前,课程教学一般做一些概念的解释,配合几个简单的例题,实验课程再让学生完成相应的题目。这样知识点相对零散,对于综合起来的题目,很多学生分析起来就显得力不从心。此次改革教学的探索中,我们的任务就只有一个,一个比较大的案例,通过不断学习新的概念,不断的来丰富我们的案例,将新学的概念一一融入,最后形成一个完整的任务案例。这样学生对面向对象的所有概念有了一个整体统筹的理解。例如,我们在整个过程中主要设置的任务是“某公司人员信息管理”,从最开始简单类的设计,到后面静态数据的添加,继承的设置,多态的设计,一一来丰富我們的这个例子!概念讲解结束了,我们的整个程序也差不多完成了,比起单一零碎的例题,这种方式更容易让学生理解全局的概念。

3 考核方式的改革

传统的考核方式都是最总结性的事后评价方式,如期末的笔试。此次的教改中我们将在学习过程中增加形成性评价,将任务的完成情况作为考核的一个标准,同时,将期末的笔试考核也进行了相应的改革,不是传统零碎概念的考查,而是一个一个具体任务的解读。

4 成果

笔者将此方法引入到教学方法中,对两届学生的成绩进行了比较,发现效果比较显著。2009级软件班的学生采用的是传统的教学方法,通过率78%,2010级软件班学生的通过率有了明显的提高,通过率达到了90%。在我们的课堂交流中,学生也普遍反映自己的动手能力有了很大的提高,在实践中对概念的理解更加透彻了。

5 结语

改革不但要有坚实的理论基础,还要在此基础上结合自身的特点来进行实践。本文中的“任务驱动”教学方式有着完整的理论支持,笔者再结合独立学院的学生的特点进行相应的实践。在这次教改中取得了良好的效果,当然在教学改革的这条道路我们还有很长的路要走。

参考文献

[1]郑莉,董渊,张瑞丰.C++语言程序设计[M].北京:清华大学出版社,2009.

[2]蔡韶华,詹泽慧,叶惠文.计算机基础课程的任务驱动的教学设计与实践现代教育技术[J].2008(12):119-122.

[3]杨晓燕.案例驱动的计算机网络课程教学改革探索[J].教改纵横,2007(18):91-92,95.

[4]何克抗.信息技术与课程整合深层次整合的理论与方法[J].中国信息界,2006(4):64-73.

《面向对象程序设计》教学大纲 篇4

课程名称:面向对象程序设计 英文名称:Object Oriented Programming)学分:2 总学时:36 实验(上机)学时: 8 开课专业:电子商务专业

一、本课程的性质、目的和培养目标

面向对象程序设计是电子商务专业的限定选修课程。面向对象程序设计是当今最为流行的程序设计方法,本课程以C++语言为核心,全面概述面向对象程序设计的基本概念和基本技术。主要内容包括:理解和掌握面向对象程序设计的基本思想和技术,掌握C++中的引用和函数重载、类与对象、静态成员与友元、运算符重载、继承与派生类、多态与虚函数等重要概念和技术。通过教学要求学生基本掌握面向对象的程序设计方法,认识C++是如何支持面向对象程序设计的,培养、训练学生运用面向对象技术进行程序设计的能力。

二、预修课程

计算机语言与程序设计

三、课程内容及学时分配

第一章 从C语言到C++语言

1.C++语言出现的历史背景(OOP思想概述)2.C++中的注释、常量和输入输出 3.C++中的变量定义与作用域 4.C++中的函数 5.C++中的指针与引用

本章学时数:4,本章习题数:4 第二章 类与对象 1.类 2.对象

3.构造函数和析构函数 4.对象及其应用 5.对象的生存期 6.再论程序结构 7.面向对象程序设计

本章学时数:6,本章习题数:6 第三章 静态成员与友元 1.拷贝构造函数 2.静态数据成员 3.静态成员函数 4.友元函数

本章学时数:6,本章习题数:6 第四章 运算符重载 1.运算符重载的概念 2.运算符重载举例

本章学时数:4,本章习题数:4 第五章 继承与多态 1.继承的概念 2.单继承 3.多态与虚函数

4.类的分解(类的层次设计)5.抽象类与纯虚函数

本章学时数:6,本章习题数:6 第六章 I/O流库简介 1.C++流库的结构 2.输入与输出 3.格式控制 4.文件

本章学时数:2,本章习题数:2

四、实验(上机)内容和建议学时分配 实验1(4学时)

要求:定义类,该类至少应包括静态数据成员和静态成员函数,要求通过本实验掌握定义类的基本方法。实验2(4学时)

要求:通过本实验掌握函数重载、友元函数、继承、虚函数等的基本使用方法。

五、教材和参考书目

1.《C++语言基础教程》,吕凤翥编著,清华大学出版社,1999 2.《C++程序设计教程》,钱

能主编,清华大学出版社,1999 3.《The C++ Programming Language》(Third Edition),Bjarne Stroustrup,Addison-Wesley,1997

六、课外学习要求

要求课前预习下一次课的讲课内容,课后复习本次课的讲课内容并通过相应的作业加以消化。

七、考核方式

面向对象程序设计教学大纲-计算机科学与软件学院 篇5

学分:4

实验学时:16

实验个数: 6个实验学分:1分 课程性质:专业必修课适用专业:计算机类专业 教材及参考书:《C++语言程序设计(第四版)》,郑莉、董渊编著,北京:清华大学出版社,2011 大纲执笔人:杨军

大纲审定人:

一、实验课的性质与任务

本课程实验大纲是面向计算机专业学生开设的《C++程序设计》实验课计划指导大纲,是依据《面向对象程序设计》课程教学计划指导大纲编制。本课程主要讲述了利用C++进行程序设计的思想和方法,既有面向过程和面向对象的程序设计的理论知识,又包括极强的实践应用能力的培养。本实验大纲力求结合该课程教学计划大纲的相应内容,由浅入深的指导学生了解和掌握如何利用C++程序设计语言进行程序设计,提高学生的动手能力,做到理论和实践相结合,培养学生理解,分析程序,编写,调试程序的能力,使之能把程序设计应用到今后的专业学习中。

二、实验目的与要求 1.实验目的

通过本课程的学习,使学生掌握面向过程的程序设计思想和编程思路,初步掌握面向对象的程序设计思想,学会调试程序,能独立编写实用的小型程序。2.实验要求

学生应该自始至终贯彻课程中所介绍的程序设计风格,养成良好的编程习惯; 应独立完成所布置习题。为保证尽量在统一安排的上机时间内编译运行通过程序,学生应事先设计好程序。

三、实验项目及内容提要

面向对象程序设计实验课程(071016)

序号

实验编号

实验名称

学时

必做

选做

学分数 实验类型

内容提要

基本操作

验证

综合设计 1

类与对象

函数重载,类的设计与使用 2 2

C++程序的结构

作用域与生存期,静态成员

3

数组、指针与字符串 √

√ 三种常见编程元素的使用

4

继承与派生 √

派生类的设计与使用

5 多态性 √

运算符重载、动态多态

6

模板和文件 √

模板,异常处理机制的设计

四、实验内容安排: 实验一类与对象

(设计性实验

4学时)目的要求:

掌握类的定义和使用;掌握类对象的声明;练习具有不同访问属性的成员的访问方式;观察构造函数和析构函数的执行过程; 学习类组合使用方法;

使用VC++的debug调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序。实验内容:

编写重载函数Max1可分别求取两个整数,三个整数,两个双精度数,三个双精度数的最大值。

写一个函数,具有一个引用作为形参参数,在函数中改变引用变量的值,观察实参变量的变化。

定义一个CPU类,包含等级(Rank)、频率(frequency)、电压(voltage)等属性,有两个公有成员函数run、stop。其中,rank为枚举类型CPU__Rank,定义为enum CPU_Rank{P1=1,P2,P3,P4,P5,P6,P7},frequency为单位是MHz的整型数,voltage为浮点型的电压值。观察构造函数和析构函数的调用顺序。定义一个简单的Computer类,有数据成员芯片(cpu)、内存(ram)、光驱(cdrom)等等,有两个公有成员函数run、stop。cpu为CPU类的一个对象,ram为RAM类的一个对象,cdrom为CDROM类的一个对象,定义并实现这个类,为以上的类编写构造和析构函数,观察组合类和内嵌类的构造函数和析构函数的调用顺序。

为题目2)的类编写复制构造函数,在主函数中利用复制构造的方式创建新的对象,观察对象的状态。

思考并回答以下概念:函数重载,引用,类,对象,数据成员,函数成员,访问属性,构造函数,析构函数,类的组合,内嵌对象,初始化列表,复制构造函数。主要仪器设备及软件:PC+Windows 2000+VC 6.0 实验二

C++程序的结构(设计性实验

2学时)目的要求:

观察程序运行中变量的作用域、生存期和可见性; 学习类的静态成员的使用;

学习多文件结构在C++程序中的使用。实验内容:

实现客户机(CLIENT)类。定义字符型静态数据成员ServerName,保存其服务器名称;整型静态数据成员ClientNum,记录已定义的客户数量;定义静态函数ChangeServerName()改变服务器名称。

利用多文件结构实现题目1),在头文件client.h中定义类,在文件client.cpp中实现该类,在文件test.cpp 中测试这个类,观察相应的成员变量取值的变化情况,要求ClientNum能够实时记录客户机对象的数量。

思考并回答以下概念:类的静态数据成员,类的静态函数成员,多文件结构,文件包含。主要仪器设备及软件:Windows 2000+VC 6.0 实验三数组、指针与字符串实验(设计性实验

4学时)目的要求:

学习使用数组;学习字符串数据的组织和处理;学习标准C++库的使用; 掌握指针的使用方法;练习通过debug观察指针的内容及其所指的对象的内容;练习通过动态内存分配实现动态数组,并体会指针在其中的作用; 分别使用字符数组和标准C++库练习处理字符串的方法。实验内容:

编写一个类用于处理3×3矩阵转置,测试转置的效果,输出转置前后的矩阵。

定义一个具有构造函数和析构函数的类,如实验一的CPU类,定义一个CPU的对象数组,观察构造函数的析构函数的调用过程。利用动态内存分配的方式重新完成题目2)。

使用系统提供的string类定义字符串对象并初始化,实现从原始字符串中提取一个子串。选做:定义一个Point(二维点类)的对象数组,利用该数组实现直线的线性拟合。选做:定义一个动态数组类。

思考并回答:数组,指针,对象数组,动态内存分配,默认构造函数,标准类库,字符串类 string,线性拟合。

3.主要仪器设备及软件:Windows 2000+VC 6.0 实验四继承与派生

(设计性实验

2学时)目的要求:

学习定义和使用类的继承关系,定义派生类;熟悉不同继承方式下对基类成员的访问控制; 学习利用虚基类解决二义性问题。实验内容:

定义一个基类Animal,有私有整型成员变量age,构造其派生类dog,在其成员函数SetAge(int n)中直接给age赋值,看看会有什么问题,把 age改为公有成员变量,还会有问题吗?编程试试看。

定义一个基类BaseClass,有整型成员变量Number,构造其派生类DerivedClass,定义该派生类的对象,观察构造函数和析构函数的执行情况。

定义一个车(vehicle)基类,具有MaxSpeed、Weight等成员变量,Run、Stop等成员函数,由此派生出自行车(bicycle)类,汽车(motorcar)类。自行车(bicycle)类有高度(Height)等属性,汽车(motorcycle)类有座位数(SeatNum)等属性。从bicycle和motorcycle派生出摩托车(Motorcar)类,在继承过程中,注意把vehicle设置为虚基类。如果不把vehicle 设置为虚基类,会有什么问?编程实验及分析原因。

思考并回答:继承,派生,子类对基类成员的访问权限,继承方式,继承时的构造函数和析构函数的调用顺序,虚基类

主要仪器设备及软件:PC+Windows 2000+VC 6.0 实验五多态和运算符重载(设计性实验

2学时)目的要求:

掌握运算符重载的方法;学习使用虚函数实现动态多态性。实验内容: 定义Point类,有坐标x,y两个私有成员变量;对Point类重载“+”(相加)、“-”(相减)和“==”(相等)运算符,实现对坐标的改变,要求用友元函数和成员函数两种方法实现。对Point类重载<<运算符,以使得代码 Point p;cout<

定义一个车(vehicle)基类,有虚函数Run、Stop等成员函数,由此派生出自行车(bicycle)类、汽车(motorcar)类,它们都有Run、Stop等成员函数。在主函数中用不同的方法调用Run、Stop成员函数,观察这些函数的执行结果,思考如何实现动态多态性,如果Run、Stop没有被定义为虚函数,执行结果会怎样,把结果和分析写入实验报告。选做,利用类完成求函数的积分(参考教材)。

思考并回答:多态,实现多态性的方法,虚函数,运算符重载,前++,后++,实现运算符重载的方式。

主要仪器设备及软件:PC+Windows 2000+VC 6.0 实验六模板和文件

(设计性实验

2学时)目的要求:

理解模板的作用和语法。

学习掌握C++文件处理类的基本用法。实验内容:

使用函数模板实现一个求3个数最大值的函数,并完成测试。

编写程序,用二进制方式打开指定的一个文件,在每一行前加行号。选做,练习使用STL中的vector模板类。选做,定义一个异常类CException,有成员函数Reason(),用来显示异常的类型。在子函数中触发异常,在主程序中处理异常,观察程序的执行过程。思考并回答:模板,函数模板,类模板,文件,文件读写,文件流类,文件操作方式,文件存储方式; STL,容器,异常处理。

3.主要仪器设备及软件:PC+Windows 2000+VC 6.0

五实验报告的格式(本部分要求各学院设计成表格作为教学大纲附件)

实验完毕,应用专门的实验报告本,根据预习和实验中的现象及数据记录等,及时而认真地写出实验报告。实验报告一般包括以下内容: 实验(序号)实验名称

(一)实验目的

(二)仪器工具及材料列出实验中所使用的主要仪器工具及材料。

(三)内容及程序应简明扼要地写出实验步骤流程。

(四)结果及分析应用文字、表格、图形等形式将数据表示出来。根据实验要求对数据进行分析和误差处理。

(五)问题讨论结合有关理论对实验中的现象、产生的误差等进行讨论和分析,以提高自己的分析问题、解决问题的能力,并提出应注意的事项,也为以后的科学研究打下一定的基础。

六、考核方式、方法及实验成绩评定方法

1、考核方式、方法:

面向对象程序设计实验课成绩占面向对象程序设计总成绩的15%,即共15分。考核方法为采用实验课随堂检查学生完成情况及现场提问让学生回答,根据学生完成情况及答辩情况给分次给出平时成绩,共5分。学生在完成实验后应将自己的实验过程,结果,经验写入实验报告并提交实验报告,实验报告成绩占10分,根据学生实验报告的书写质量及实验出勤情况打出。

2、实验成绩评定方法:

评定各级成绩时,可参考以下标准:

(一)优秀(很好)14-15 能正确理解实验的目的要求,能独立、顺利而正确地完成各项实验操作,会分析和处理实验中遇到的问题,能掌握所学的各项实验技能,能较好地完成实验报告及其它各项实验作业,有一定创造精神和能力。有良好的实验工作作风和习惯。

(二)良好(较好)13-14 能理解实验的目的和要求,能认真而正确地完成各项实验操作,能分析和处理实验中遇到的一些问题。能掌握所学实验技能的绝大部分,对难点较大的操作完成有困难。能一般完成实验报告和其它实验作业。有较好的实验习惯和工作作风。

(三)中等(一般)11-12 能粗浅理解实验目的要求,能认真努力进行各项实验操作,但技巧较差。能分析和处理实验中一些较容易的问题,掌握实验技能的大部分。有30%掌握得不好。能一般完成各项实验作业和报告。处理问题缺乏条理。工作作风较好。能认真遵守各项规章制度。学习努力。

(四)及格(较差)8-9 只能机械地了解实验内容,能一般性地按实验步骤完成实验操作,能完成60%所学的实验技能,有些虽作但不准确。遇到问题常常缺乏解决的办法,在别人启发下能作些简单处理,但效果不理想。能一般完成实验报告,能认真遵守实验室各项规章制度,工作中有小的习惯性毛病(如工作无计划,处理问题缺乏条理)。

(五)不及格(很差)0-7 盲目地操作,只掌握50%的所学实验技能。有些实验虽能作,但一般效果不好,操作不正确。工作忙乱无条理。一般能遵守实验室规章制度,但常有小的错误。实验报告较多的时候有结果,遇到问题时说不明原因,在教师指导下也较难完成各项实验作业。或有些小聪明但不努力,不求上进。

七、实验主要应配套仪器设备及台(套)数(以一个实验教学班40人为标准)序号

仪器设备名称

数量

备注

计算机

40台

C++开发工具软件

1套

网络版

八、主要教材及参考书

面向对象程序设计教学大纲-计算机科学与软件学院 篇6

面向对象分析与设计试题B卷

一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。每小题 1 分,共 20 分)3.下列不属于面向对象技术的基本特征的是()。

A.封装性

B.模块性

C.多态性

D.继承性

4.面向对象程序设计将描述事物的数据与()封装在一起,作为一个相互依存、不可分割的整体来处理。

A.信息

B.数据隐藏

C.对数据的操作

D.数据抽象

5.关于面向对象方法的优点,下列不正确的叙述是()。

A.与人类习惯的思维方法比较一致

B.可重用性好

C.以数据操作为中心

D.可维护性好 8.下列不属于类的成员函数的是()。

A.构造函数

B.析构函数

C.友元函数

D.拷贝构造函数

9.继承机制的作用是()。

A.信息隐藏

B.数据封装

C.派生新类

D.数据抽象

14.()是从用户使用系统的角度描述系统功能的图形表达方法。

A.类图

B.对象图

C.序列图

D.用例图

15.()是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。

A.对象图

B.组件图

C.类图

D.配置图

16.()描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。

A.对象图

B.协作图

C.状态图

D.序列图

17.()就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统中软件和硬件的物理架构。

A.组件图

B.协作图

C.状态图

D.配置图

18.在用UML进行数据库的分析与设计过程中,()就是进行数据库的需求分析,使用用例图、类图、顺序图、活动图等建立业务模型。

A.逻辑数据模型设计

B 业务Use Case模型设计

C.物理数据模型设计

D.物理实现设计

19.使用UML进行关系数据库的()时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

A.业务Use Case模型设计

B.逻辑数据模型设计 C.物理数据模型设计

C.物理实现设计 20.UML的动态建模表示包含()种图。

A.9

B.5

C.4

D.2

二、填空题(每空 1 分,共 20 分)1.面向对象开发方法一改过去传统的以_______________为基础的______________的结构化分析与设计方法,它模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列_______的集合,其______________又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的______,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与____________在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的________、________、_________等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服____________。因此,它已成为成熟的广为采用的软件开发方法。

2.对象是客观实体的抽象表示,是由__________________________和________________________两部分组成。而______是对具有相同属性和行为的一组对象的抽象描述。因此,它可作为一种用户自定义类型和创建对象的样板,而按照这种样板所创建的一个个具体对象就是类的___________。通过________关系又可形成一种类层次结构。

3.UML中用于描述系统的静态建模的视图称为静态视图,包括________、_________、_________、__________和__________。

四.简答题(每空4分,共 20 分)1.简述面向对象软件开发方法的优点。2.简述面向对象技术的三大机制。3.简述OOA模型的层次结构。

4.简述OOD模型的总体结构,并画图表示。

5.应用UML进行系统分析和设计所需建立视图有那几种?

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

五.试用UML对教学管理系统及相关的数据库系统进行分析和设计。学生选课系统一般包括(1)选课管理功能;(2)成绩管理功能。试完成下列工作:(1)建立系统静态结构模型—画出系统用例图和类图;(10分)(2)建立系统动态结构模型—画出系统序列图和协作图;(10分)(3)建立关系数据库逻辑模型。(10分)

面向对象分析与设计试题参考答案

一、单项选择题(每小题 1 分,共 20 分)

1.D

2.C

3.B

4.C

5.C 6.D

7.D

8.C

9.C

10.D 11.B 12.B 13.B

14.D

15.C 16.D 17.D 18.B

19.B

20.C

二、填空题(每空 1 分,共 20 分)

1.功能分析, 面向过程, 对象,面向对象的设计, 概念,解空间,封装, 继承, 多态, 软件危机 2.描述对象属性的数据,四.简答题

1.简述面向对象技术发展的动因。

答:为了超越程序复杂性障碍,克服软件危机,人们提出了面向对象软件开发方法。面向对象开发方法一改过去传统的以功能分析为基础的面向过程的结构化分析与设计方法,面向对象开发方法模拟人们理解和处理客观世界的方式来分析问题,把系统视为一系列对象的集合,其面向对象的设计又将分析的结果映射到某种面向对象实现工具的结构上,使映射过程有着比较直接的对应关系,使分析者、设计者和编程者都可使用相同的概念,从而使面向对象的软件开发能比较自然地模拟客观世界的活动,使问题描述空间与解空间在结构上尽可能一致。因此,采用面向对象方法可以更有效地开发大型软件系统。面向对象方法的封装、继承、多态等机制不仅支持软件复用,而且使软件维护工作可靠有效,可实现软件系统的柔性制造,更好地克服软件危机。因此,它已成为成熟的广为采用的软件开发方法。请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

2.简述面向对象技术的三大机制。答:(1)封装性(encapsulation)

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” , 类,实例,继承

3.用例图、类图、对象图、包图、构件图、配置图 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

所谓封装就是把对象的属性和行为结合成一个独立的单位,使外界不能直接访问或修改这些数据和代码,外界只能通过对象提供的接口函数来改变或获取对象的属性数据,这就实现了消息隐蔽。(2)继承性

如果在一个已定义的类上,增加一些特殊属性或操作,可以形成一个新的类,这个类不仅继承了前一个类的全部特征,而且具有新的特性,因此可看作前一个类的特例,是对前一个类的继承。前一个类称为父类,新产生的类叫做子类。通过继承关系可形成一种类层次结构,叫做继承结构。(3)多态性

在类层次结构的不同类中,可用相同的函数名实现功能不同的函数。3.简述OOA模型的层次结构。

答:OOA模型采用五层次结构,它们分别是:(1)对象-类层

划分待开发系统及其环境信息的基本构造单位,标出反映问题域的对象和类,并用符号进行规范的描述,用信息提供者熟悉的术语为对象和类命名。(2)属性层

定义对象和某些结构中的数据单元,继承结构中所有类的公共属性可放于通用类中。标识对象类必需的属性并放在合适的继承层次上,属性的特殊限制和实例连接关系也应标识出来。(3)服务层

表示对象的服务或行为,即是要定义类上的操作。(4)结构层

标识现实世界中对象之间的关系。当一个对象是另一个对象的一部分时,用“整体-部分”关系表示;当一个类属于另一个类时,用类之间继承关系表示。(5)主题层

可将相关类或对象划分为一个主题。4.简述OOD模型的总体结构,并画图表示。OOD体系结构的各个部分内容:(1)问题论域部分,在OOA模型的基础上,细化分析结果,设计一组构成底层应用模型的类和对象。

(2)人机交互部分:设计用户界面模型,该用户界面模型中的类和对象提供实现人机交互操作的接口函数。用户界面设计包括 菜单设计、窗口设计、输入/输出界面设计等等。

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

(3)任务管理部分:建立一些类,用以负责处理操作系统级的并发问题、中断、调度以及其它与特定平台有关的问题。

(4)数据管理部分:提供数据管理系统中存储和检索对象的基本结构,包括对永久性数据的访问和管理。数据管理设计包括:

— 数据存放设计:数据存放设计选择数据存放的方式(文件存放、关系数据库表格存放或面向对象的数据库存放)。

— 设计相应的操作。为每个需要存储的对象和类增加用于存储管理的属性和操作,在类和对象的定义中加以描述。

class & object layer(类及对象层)attribute layer(类及对象层)service layer(服务层)问题论域部分人机交互部分任务管理部分数据管理部分类边界实例边界实例连接属性消息服务struct layer(结构层)subject layer(主题层)主题图1.5 OOD模型的总体结构5.(1)系统用例图如下

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

查询课程信息老师老师查询学生成绩选课注册学生学生查询课程成绩管理老师信息学生成绩管理管理学生信息管理员管理课程信息管理开设课程管理员成绩统计(b)成绩管理的用例图(a)选课管理的用例图

对象类图如下:

教师编号姓名地址电话1..*0..*课程课程名描述学时加入课程()1..*0..*学生编号姓名地址电话开设课程课程名授课日期授课时间地点指定老师()学生满否()选修课程学生名课程名学期增加记录()选课统计()(a)选课对象类图开设课程课程名授课日期授课时间地点指定老师()学生满否()学生成绩登记学生名学期课程名成绩加入成绩()打印()(b)成绩管理对象类图成绩统计学期课程名成绩按课程统计()按学生统计()打印()

请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品” 请大家帮忙把这句话设为QQ签名,“淘热门 , 精选淘宝热门商品”

(2)把需要持久存储的数据实体类及其联系,映射成为如下关系数据库表:

学生(学生号、姓名、出生日期、性别、籍贯、地址、电话、入学时间、专业、班级备注)教师(教师号、姓名、出生日期、性别、籍贯、地址、电话、职称、专长、备注)课程(课程号、课程名、描述、学分、学时、性质、备注)

开设课程(课程号、学期、授课日期、授课时间、地点、选修人数、备注)

面向对象程序设计教学大纲-计算机科学与软件学院 篇7

一、教学过程中存在的主要问题

(1) 学生基础知识掌握不牢固。《面向对象程序设计》课程内容需要用到程序设计中数组、函数、动态内存分配等知识点。部分学生在学习面向过程程序设计时没掌握好这些知识点。进而对构造函数、析构函数、面向对象多态性等内容理解存在困难。另外, 部分学生动手能力较差。上机碰到程序语法错误或逻辑错误, 不知道如何进行调试, 长久之后对课程的学习失去了信心。

(2) 学生难理解面向对象程序设计思想及相关概念。面向对象程序设计强调在大型软件开发过程中如何管理数据、函数, 实现数据封装、代码重用、函数多态性等功能。由于学生缺乏大型软件开发经验, 对面向过程程序设计在大型软件开发中产生的大量数据不好管理、程序难以维护及扩充等问题认识不足。

(3) 理论概念偏多, 学生学习积极性不高。面向对象程序设计强调思想理念, 理论性较强, 不像网页、动画制作那样生动具体。学生感觉面向对象程序设计不过是一些理论和代码的堆砌, 觉得课程内容枯燥难懂, 学习积极性不高。

二、教学方法探讨

(1) 适当采用案例教学。案例教学法是在计算机课程教学中非常有用的一种教学方法。对课程中的某些内容, 精选一些合适的有趣的实例, 先让学生对所学知识有一个感性的认识, 进而提高学生的学习兴趣。首先展示给学生看, 让学生对所学内容有一个直观的认识, 激发他们的好奇心和求知欲。然后通过分析实例的组成和实现方法, 进而引出该实例中用到的知识点, 再举一反三, 进一步讨论、归纳, 对实例进行完善和扩展, 最后达到学生对知识的快速掌握和使用。

(2) 采用分层次教学法, 在每次课的课堂教学过程中, 采用“现实抽象、创建模型、实战演习, 总结提高”模式, 实现分层次教学。

我们发现学生编程能力有较大差异, 我们设计主题作业以锻炼学生动手能力, 鼓励学生积极编写实用程序为目的, 同时激发他们钻研问题的兴趣。实训项目按难度设置成难度高、中和低三个等级, 以适合不同阶段层次的同学的主动参与。

(3) 拓展创新式教学法。面向对象程序设计有很多种竞赛或职业认证, 可以组成课外创新工作室或学习小组, 聘请有经验的老师作为技能指导, 组织学生考取相关IT证书和参加各类大赛, 积极拓展第二课堂, 以培养学生研究性和创新性学习能力。对于学习兴趣高、成绩良好, 善于思考的同学, 积极引导他们参加到创新小组中, 在教师指导下, 跟踪面向对象程序设计新技术发展动态, 选择自己感兴趣的方面进行深入研究。这样能够积极培养学生研究性和创新性学习能力, 也可以带动其他学生的学习积极性和主动参与性。

三、结束语

本文研究目标旨在改革现有的面向对象程序设计课程教学内容与模式, 总结教学经验, 找出一套适合高职高专院校, 《面向对象程序设计》课程最佳教学方法与教学效果。以培养高素质的创新型人才为出发点, 切实提高学生的思考能力和动手实践能力。

参考文献

[1]孙玉红.案例教学法在“面向对象程序设计”课程中的运用[J].电脑知识与技术.2011, 07

[2]蒋明亮.面向对象程序设计课程实践教学改革研究[J].教学园地.2009, l

面向对象程序设计教学大纲-计算机科学与软件学院 篇8

面向对象程序设计(ObjectOrientedProgramming,OOP)是信息管理与信息系统专业学生必修的专业基础课,在整个教学体系中的地位非常重要,学生在学习该课程后能充分掌握面向对象程序设计思想和方法,是该课程教学改革的理想目标。

一、相关概念

(一)面向对象程序设计

OOP 是一种计算机编程架构,它具备软件工程的灵活性、重用性和扩展性。OOP 不仅具有丰富的理论知识,同时具有很强的实践性,坚持在真实的项目中锻炼编程能力,才能理解其精髓,进而活学活用。

(二)项目教学法

项目教学法以学生为教学中心,是学生在教师的指导下处理项目,提高自身能力的教学方法。其优势在实践性较强的 OOP 课程中体现得淋漓尽致。具体实施时,教师化身为顾问,主要的作用是引导学生把课堂所学用在实践过程中,理论联系实际,进而提高动手能力 ;学生是项目的具体操作者,知识水平和发现问题、解决问题能力均能得到提高。

二、改革的必要性

OOP 是一门实践性很强的课程,如果不进行实践教学,学生不能全面掌握其核心思想。原因主要有以下两方面 :

(一)难理解

由于面向对象概念较抽象,是基于现实世界的特点,对系统的复杂性进行概括、抽象和分类,对象是 OOP 的核心,是将代码和数据封装起来的具有某些特性的具体事物的抽象。从学生角度来看,以知识点为中心的讲解教学方式理论性太强,不好理解,甚至有部分学生自始至终也无法掌握OOP 的重要概念,不能满足课程考核要求。

(二)理论教学多

教师上课采用多媒体教学,这种方式基本上是教师在课堂上唱独角戏,把理论和方法灌输给学生,学生被动地学习,只是把教师讲的内容在大脑中形成记忆,没有自己独立思考的过程,不利于培养学生的创造能力。

三、项目教学法的改革要点

项目教学法设计了完整的软件项目教学背景,克服了传统教学中注重理论知识忽视应用实践的缺点。学生在慢慢了解、逐渐熟悉软件项目开发的过程中,能够理解应用,学习和掌握各种知识并训练相关技能。

(一)项目题目的设定

教师在进行项目教学引导时需要策略,创设学习的资源,协调学习合作环境。教学项目题目的选取是其中的关键问题,选题最好能与软件公司进行交流或合作,应具备针对性和实用性,能体现出学生综合能力的运用,并且可以进行客观评价。首先,项目题目应尽可能覆盖教学大纲的多项知识点 ;其次,应该构建具有完整项目的项目案例库,项目题目应有不同的难易度和适当的工程工作量,适应所教班级的不同学生的实际水平;最后,项目题目应尽量贴近大学生的生活,并可以用一些标准,如软件是否易用、是否有良好的用户交互性等进行公平、准确的评价。

(二)互动增强

传统的教学环节中,老师和同学的交流仅限于课间十分钟或者课下较短时间的交流,交流时间少,沟通的`问题也只是教学内容中个别的知识点。而在项目教学法中,沟通渠道是多向的,老师与学生之间沟通的宽度和广度都加大了。另外,即使在同一课堂上听讲,不同的学生在学习动机、学习心理、学习兴趣和学习能力等方面仍然会有一些差别。

(三)角色换位

在项目教学法中,学生居于教学活动中的主要地位,应该是项目的积极参与者,首先要认真阅读选定的真实项目材料,和同一个项目的同学讨论,甚至就项目问题的不同理解与同组同学展开争辩。其次在真实项目实战场景下,经过认真的独立思考和判断动手编写程序。学生的自学能力和实践能力得到提升,并主动构建自己的知识体系。居于教学活动中从属地位的是教师,教师不再是整个课程的中心。教师对整个教学活动按照工程项目的需要加以指导,做适当的示范,只是项目的指导者或者说是项目进度的推动者,引导学生进行深入学习。

面向对象程序设计教学大纲-计算机科学与软件学院 篇9

面向对象方法把数据和行为看成同等重要,它是一种以数据为主线,把数据和对数据的操作紧密地结合起来的方法。面向对象方法学具有下述4个要点。

(1)把对象(object)作为融合了数据及在数据上的操作行为的统一的软件构件。面向对象程序是由对象组成的,程序中任何元素都是对象,复杂对象由比较简单的对象组合而成。

(2)把所有对象都划分成类(class)。每个类都定义了一组数据和一组操作,类是对具有相同数据和相同操作的一组相似对象的定义。

(3)按照父类(或称为基类)与子类(或称为派生类)的关系,把若干个相关类组成一个层次结构的系统(也称为类等级)。在类等级中,下层派生类自动拥有上层基类中定义的数据和操作,这种现象称为继承。

(4)对象彼此间仅能通过发送消息互相联系。

也就是说,对象的所有私有信息都被封装在该对象内,不能从外界直接访问,这就是通常所说的封装性。

2. 面向对象方法学的优点是:(1)与人类习惯的思维方法一致(2)稳定性好(3)可重用性好

(4)较易开发大型软件产品(5)可维护性好

3. 对象的概念,对象的特点?

对象是封装了数据结构及可以施加在这些数据结构上的操作的封装体,这个封装体有可以惟一地标识它的名字,而且向外界提供一组服务(即公有的操作)。特点:

① 以数据为中心。不设置与数据无关的操作;

② Object主动处理而不被动地等待被处理,外部只能通过message请求操作;

③ 实现了数据封装。具有黑盒性:外部操作时,无须知道该object内部的数据结构及算法; ④ 具有并行性:不同object各自独立地处理自身数据,彼此间仅通过传递message完成通信;

⑤ 模块独立性好:内聚强(①)、耦合松(③ ④)

4. 类、实例、消息、方法、属性、封装、继承、多态性、重载的定义。

类:是对具有相同数据和相同操作的一组相似对象的定义。

实例:是由某个特定的类所描述的一个具体的对象。

消息:是要求某个对象执行在定义它的那个类中所定义的某个操作的规格说明。

方法:是对象所能执行的操作,也就是类中所定义的服务。

属性:是类中所定义的数据。

5. 模型的概念,面向对象建模的概念。要建立哪些模型?

所谓模型,就是为了理解事物而对事物做出的一种抽象,是对事物一种无歧义的书面描述。建立三种模型:

① 描述系统数据结构的对象模型(object model).② 描述系统控制结构的动态模型(dynamic model).③ 描述系统功能的功能模型(function model).6. 对象模型是表示静态的、结构化的系统的数据性质。类图是描述类及类与类之间的静态关系。包括定义类、定义属性、定义服务。7. 表示关系的符号:类与类之间通常有关联(Association)、泛化(Generalization)、聚合(Aggregation)、组合(Composition)、依赖(Dependency)等关系。

8. 动态模型表示瞬时的、行为化的系统的“控制”性质,它规定了对象模型中的对象的合法变化序列

关联 泛化 聚合 组合 依赖

9.Association

Generalization

Aggregation

Composition

Dependency

动态模型三要素:

① 事件(event):引发 object 状态改变的控制信息(瞬时)。② 状态(status):即 object 的 attributes 所处的情形(可持续)。③ 行为(action): Object 要达到某种 status 所做的操作(耗时)。10.功能模型表示变化的系统的“功能”性质,它指明了系统应该“做什么”,因此更直接地反映了用户对目标系统的需求。功能模型由一组数据流图组成。

在面向对象方法学中,数据流图远不如在结构分析、设计方法中那样重要。11.UML提供的用例图也是进行需求分析和建立功能模型的强有力工具。在UML中把用用例图建立起来的系统模型称为用例模型。

面向对象程序设计教学大纲-计算机科学与软件学院 篇10

面向对象是一种非常重要的软件设计方法, 是计算机领域对现实世界进行分析和抽象的有效方法, 是计算机软件设计发展到一定阶段的必然产物。随着软件规模的日益增加, 面向对象程序设计相对与传统的面向过程的程序设计方法有易于维护、重用性好、开发效率高以及易扩展等优点。C++是在C语言基础上衍生出的一种高级编程语言, C++不仅支持面向对象编程且完全兼容C语言, 因此“C++面向对象程序设计”课程在电子信息工程专业的本科教学阶段发挥着重要的作用。

1 教学现状及分析

1.1 教学对象及课程设置

作者长期从事电子信息工程专业计算机类课程的教学工作, 本节以我校 (武汉科技大学) 电子信息工程专业为例说明本课程的基本情况。

“C++面向对象程序设计”作为电子信息工程专业的选修课程, 总课时为48学时, 其中课堂教学为40学时, 实践课时为8学时。“C++面向对象程序设计”课程安排在本科阶段的第六学期, 此时电子信息工程专业学生已完成了“计算机应用基础”、“C语言程序设计”以及“数据结构”等先修课程的学习, 且“微机原理及应用”等专业课程也以C语言作为其主要设计语言, 同时考虑本课程是一门非限选课, 故而选修该课程的学生在学习本课程时已具备相当的C语言基础, 面向过程的程序设计方法也较为熟悉。

1.2 存在的问题

在实际教学过程中, “C++面向对象程序设计”的课程教学往往存在以下几个问题:

第一, 教师在教学过程中往往将重点放在了“C++”上, 重点讲解“C++”的语法及使用方法, 把本课程当成了一门纯粹的计算机语言类课程来教学, 忽略了“面向对象”这一关键问题的讲解。

第二, 理论教学与实践教学比例失调, 过分注重概念及知识点的传授而忽略了实践环节, 从而导致学生虽然能较好地应付试卷的考查, 但设计程序、编写程序以及调试程序的动手能力较差。

第三, 考核环节多以试卷考查为主, 对实践考查不够重视, 不利于引导学生自发培养其综合应用能力。

2 理论与实践教学改革

2.1 课堂教学改革探索

2.1.1 突出面向对象目标

在学习“C++面向对象程序设计”课程之前, 学生已经完成了“C语言程序设计”的学习, 而C++语言延续了C语言的主要语法特性, 两者的语法差异不大, 因此将“C++面向对象程序设计”课程当成一门纯粹的C++语言教学的课程来讲授, 而忽略了培养学生面向对象的程序设计思想, 显然是舍本逐末。故而, 在本课程教学过程中, 教师应贯彻以“面向对象”为主导, 注重对比学生熟悉的面向过程的程序设计方法说明面向对象特性, 如封装性、继承性和多态性等的应用背景, 原理及其优点等;而后介绍如何利用C++加以实现这些特性, 期间对新概念, 新语法做简要的介绍, 如此才能培养学生面向对象的思维方式, 体现本课程的教学目的。

2.1.2 多种教学方式相结合

“C++面向对象程序设计”是一门实用性很强的工程性课程, 本课程的每个知识点都有其提出的应用背景。因此在课堂教学过程中, 教师需转变传统单向、平铺直叙、灌输式的教学方法, 进而利用启发式教学方法, 引导学生思考、理解所学知识, 主动探索解决问题的方法, 培养其分析问题、解决问题的能力, 将教师从知识传授者转变为科学发现过程中的引导者[1]。

此外, 在平时教学中应引导、鼓励学生查阅资料或通过网络收集、学习知识。C++作为一种主流面向对象设计语言, 网络上众多资深软件设计人员总结、归纳了丰富的经验和各种解决实际问题的方法, 这些经验、方法对于初学本课程的学生加深对知识点的理解、提高其综合素质裨益匪浅。

2.1.3 多种教学手段向结合

多媒体教学方法是目前广泛应用的教学手段之一, 一方面可以减少教师板书时间, 提高教学效率, 另一方面其直观性亦得到广大学生的认可。为更直观地展示、说明课程内容, 激发学生的学习兴趣, 多媒体课件中应减少文字性描述, 取而代之的是图表及动画等多种可视化元素。实践表明, 可视化呈现方式比枯燥的文字表述方式更为直接, 生动, 更能吸引学生的注意力, 教学效果更好。

在讲授基本原理、方法的同时, 教师也应该多使用现场编程、现场调试以及现场运行的实际演示方法对重要知识点进行验证。一方面可以带领学生完成验证性实验的工作, 另一方面可面对面的传授学生编写程序以及调试程序的方法和技巧, 为学生在实践教学环节中的学习奠定基础。

2.2 实践教学改革探索

面向对象程序设计是针对开发较大规模的程序而提出来的, 目的是提高软件开发效率[2]。正因如此, 学生只有具备相当丰富的实践经验才能深入理解面向对象对象程序设计思想, 理解C++语言各项设定的应用背景以及C语言的不足和C++的优点。

C++面向对象程序设计课程的实践教学包含四个实验, 共八个学时, 这显然是不够的, 为了进一步加强实践教学环节, 提高学生面向对象编程能力, 可从以下两个方面对时间教学进行了改革:

首先, 充分利用计划实验课时安排一些精心设计的小型设计性实验, 为学生体会面向对象程序设计方法创造更多的机会。而验证性实验主要依靠教师在课堂上通过实际演示来加以说明, 同时将一些较为重要的验证性实验布置为课后作业, 再利用课堂讨论的方式加深学生对基础知识的了解。

其次, 为了给学生创造更多的实践机会, 在教学过程中可布置一些综合性软件开发课题, 鼓励学生以分组的形式在课后进行讨论、设计和分工协作利用一段较长的时间加以实现, 并组织课堂讨论, 一方面汇报开发进度和经验总结, 另一方面也可与其它小组同学进行交流。

3 考核方式改革

在对课堂教学和实践教学进行改革的同时, 有必要对“C++面向对象程序设计”课程的考核方式进行改革。大学计算机教育应是以计算机应用能力培养为核心的教育[4], 因此本课程考核方式上的改革的重点在于改变传统的试卷考核方式, 推广以实践为主的考核方式。受到传统试卷考核形式的制约, 试卷考核往往突出考查学生对基本知识点和语法的掌握情况, 从而无法突出提高学生面向对象程序设计能力的教学主旨。在实际教学中, 可以利用实验和综合性课程设计两种形式考查学生的综合素质, 既可考查学生对C++基本语法的掌握情况又可考查学生利用面向对象进行程序设计的能力, 一举两得。至于验收方式则可采用程序验收、汇报演讲和文档报告相结合的方式综合考查学生软件设计能力。

4 结束

本文从理论教学、实践教学以及考核方式三个方面对“C++面向对象程序设计”课程的教学改革进行了探索, 并在电子信息工程专业该课程的教学工作中加以实践, 效果良好。为了进一步提高该课程的教学质量, 提升电信专业学生利用C++进行面向对象程序设计的能力, 我们将继续对教学的各个环节进行探索和改革, 以期获得更大的进步。

参考文献

[1]邢长友, 陈鸣, 许博, 等.面向创新人才培养的计算机网络教学改革[J].计算机教育, 2013 (1) :49-52.

面向对象程序设计心得体会 篇11

这次课程设计让我收获到很多,上个学期我们也有过课程设计,但是我们都是从网上下一个程序,连带着报告,看一遍程序,修改修改报告,然后就直接去答辩,都是糊弄糊弄就过去了,自己根本就没有付出过努力,到现在,那个程序的内容是什么全忘光了。但是这次的课程设计,虽然老师您的要求十分严格,但是却是让我切实体会到了自己动手的快乐。要我们自己设计一个管理系统,从定题目,到开始写代码,全部都是自己来。我在开始课程设计前的两周就开始考虑我课设的时候应该做什么内容,想做一般同学都能想到的学生管理系统,但是就怕会有类似的不敢做,冥思苦想了好久,最后才定下的备忘录管理系统,其实所有的管理系统的本质都是一样的,增,删,改,查,但是,这些东看似简单,做起来却难。像我在做增加的时候,就遇到了问题,最后通过老师的调试,才发现原来是我在开始定义字段名的时候就弄错了。我们其他人也一样,中间遇到的问题,也及时的请教同学和老师,原来在寝室,我们都是开着电脑上qq,水人人,看视频,但是当课程设计开始的时候,我们这个寝室都在那做这个管理系统,谁谁谁的查询不好使了,我们也都停下来帮她,当我们都不解决不了的时候,我们就和学得好的男生开语音,让他们教我们,帮我们解决,再解决不了的,我们就来找老师,在机房里大家一起努力,攻克难关。有些时候,困扰我们很长时间的,可能就是一个小小的逗号,或者是被忽略的空格,这些都是我们上课的时候没有注意的,没有好好听课的地方,都在课设的时候碰到了,我在做自己的课程设计的时候,我也经常出错,经常忘了一些细节的东西,比如登陆窗体的时候,忘记了在program.cs里把Form1改成LoginForm,我一直在调试,但是始终出现的是主窗体,登陆窗体始终出不来,最后才想起来忘了这个小步骤,但是这也让我明白,上课的点滴小事,也是非常重要的,除了上课认真听讲之外,下课了还得很认真的看代码,把代码的意思弄明白,渐渐的,像数据库里的表怎么设计,怎么连接数据库,按钮怎么设置,还有很多我都能掌握,所以感觉这次课程设计带给我很多的,课程设计不仅是检查一个人知识掌握了多少,其实更重要的实检测你的实践能力,以及看你是否细心、是否有缜密的思维,所以,我们要在课设的时候加强锻炼,磨练自己,使自己有更高的提高。

面向对象程序设计教学大纲-计算机科学与软件学院 篇12

2014~2015学年第一学期基本结束,“面向对象的程序设计基础”课程的教学任务圆满完成。下面对本学期教学情况进行总结。

1.授课班级为14软件一班、14软件二班两个班级,平均每班授课学时96,两个班总课时量为192。

2.两个班级整体良好。积极努力、勤于思考,学习气氛比较浓厚;上课过程均未出现迟到早退现象。课堂秩序良好,和教师积极互动,发言踊跃,课堂气氛较活跃。

3.本学期两个班施行“翻转课堂”的教学模式,以任务链为载体,同学们通过完任务而掌握相关的知识点,该教学模式可以充分的锻炼同学们自主学习和结对学习的能力,教学效果很明显,教学质量得到了提高。整个学期的学习过程中,通过教师参与检查,学习内容及进度基本按照学期授课计划进行,作业按照作业计划基本完成,完成情况良好,而且部分同学的进度超前。期中考试以测试同学们的一些经典例题的基本程序思想为主,由于大部分题目同学们练习过,所以基本所有同学基本到达测试目的。

4.期末考试以测试同学们的基本知识和经典程序的设计为目的,因为面向对象的程序编写需要编译和运行,采用上机考试。考试成绩偏低,分析原因可能是因为同学们的注意力在解决问题上,对于问题相关的知识点没有系统的掌握,在以后的教学中一定要加强。

5.总评成绩的评定:出勤情况占5%,课堂表现占10%,平时作业占20%,阶段测试占20%,期末考试成绩占45%的比例完成。结果符合要求:85分以上占27%,84~75分占33%,74~60分占33%,60分以下占7%。

6.存在的问题:班风还有待进一步建立和加强。

李志芳

面向对象程序设计教学大纲-计算机科学与软件学院 篇13

1、《面向对象C++程序设计》课程教学改革的背景

传统的C++教学存在许多问题, 主要包括以下两个方面:

(1) 从内容来看, 课程的教学内容几乎包括了所有C++中所有的知识点, 而且C++对C语言的内容完全兼容, 因此教学内容较多, 语法比较复杂, 由于教学学时有限, 只是照顾了学生宽知识的需要, 而没有真正在几个重要的关键技术上让学生理解透彻。

(2) 在教学模式上, 基本上是采用知识点驱动, 按照知识点之间的先后顺序, 先进行知识点的讲解, 然后用小案例来帮助学生理解和消化, 主要是考查学生在有参照的情况下, 编写程序的能力, 学生独立编程能力较差。

2、教学改革主要内容

2.1 教学内容改革

我们本着“理论够用、精讲多练、突出实践”的原则, 引入“基于工作过程的课程观”, 课程内容以职业需求来确定, 删繁就简, 突出实用性和实践性。我们对课程内容做了如下改革:

(1) 阶段式教学:

课程教学内容在设计时采用循序渐进、层层深入、滚动发展、螺旋式上升的思路, 将课程划分为四个主要阶段。即基础知识阶段、初级应用能力阶段、高级应用能力阶段、综合应用能力阶段。

(2) 精选核心能力点:

分析出每个阶段的核心能力点, 由能力点推出知识点, 并设计一个大的案例, 覆盖本阶段的知识点。

(3) 突出关键技术, 强调程序设计思想:

根据当前实际大型软件项目开发的需要, 突出异常处理、模板相关内容的教学。不是将模板作为一种语法现象, 而是作为一个有力的工具用于教材所涉及的全部实例, 使用模板类来代替传统的C++中定义的类。采用流程图, 即突出程序设计而不是语法。强调算法和设计, 一些过于细节化的内容尽可能少讲, 重点在基本的常用语法, 便于学生掌握要点、重点。在面向对象设计部分时, 通过流行的U M L描述C++类, 给学生以直观地了解。

2.2 教学方式手段改革

在C++教学中, 为了便于学生知识的掌握, 提高学生综合素质, 把课堂教学延伸到软件开发实践中, 根据课程特点, 采用以下方式进行教学:

(1) 课堂教学采用三点式教学法。

“三点式教学法”是深刻总结我国高等教育的经验, 合理借鉴国外高等教育的先进经验提出的。基本内容是老师精讲一点, 师生互动一点, 学生动手做一点。从教学的操作层面讲, “三点式教学法”彻底打破了“满堂灌”的授课方法, 形成全新的授课模式

(2) 案例驱动教学, 以实例为引导, 从而让学生掌握算法和语法的使用

(3) 运用多媒体教室进行直观教学, 利用网络资源作为课堂教学的有益补充

使用多媒体教学可以达到以下效果: (1) 在用电子教案进行讲解时, 使用多媒体技术, 做到图文声并茂, 可以大大激发学生的学习兴趣。 (2) 演示程序的调试与运行过程, 真正实现了“用计算机教计算机”, 使教学更具直观性和互动性, 同时大大加快了授课的速度。

为了提高学习率, 学校提供了较好的学生上网条件, 开通了校园网, 并创办了学生专业发展协会和CCUI工作室。

(4) 采用“多层次、逐层递进”的实践教学:分为课堂练习、随堂实验、课程设计、项目实践4个层次, 举一反三, 加强实践能力培养。采用合作与竞争的分组学习方式, 研究型学习法

2.3 考试方式的改革

针对C++语言课程既有理论性, 又有实践性的特点, 我们变单一考核为复合考核。考核包括平时考核, 平时主要考核学生的实践编程能力有机考、作业、出勤、学习态度、学生自评与互评等。并通过学生的自评与互评来考核学生在小组中分工协作的能力。期末考核为机考和笔试结合, 机考重点考查学生对C++语言基础知识的掌握程度, 笔试则侧重于学生解决实际问题的编程能力和读程序能力。

3、课程教学改革应用效果

通过改革C++语言课程的教学内容和方法, 学生在学习本课程的过程有了较大的兴趣。学生实践动手能力提高显著, 主要表现在学生的编码和调试程序等职业技能。

4、结论

C++语言课程作为计算机专业的一门专业基础课, 其在教学内容及方法手段的改革, 使学生不仅学习了C++语言的基本理论, 还学会了如何用C++语言编写程序来解决实际问题, 更重要的是学生能用所学知识拓展其他课程的学习、社会服务等领域。

摘要:本文提出在教学过程中, 采用三点式教学法, 案例驱动教学、多媒体教学、研究型学习法, 培养学生对面向对象C++程序设计课程的兴趣及正确的思维模式, 加强实训和项目设计, 注重教学过程的设计, 从而提高学生的综合素质。

关键词:三点式教学法,案例驱动教学,实践教学,教学过程

参考文献

[1]钟频, 侯进军.提高计算机高级语言学习能力的方法与建议[J].现代教育技术.2006, (3) .

[2]杨利华, 李娟, 雷承春.浅谈《高级语言程序设计》课程教学中的几点体会[J].电脑知识与技术.2006, (14) .

[3]吴明哲, 黄世阳, 何嘉益等.Flash5网页高手ActionScript程序设计篇[M].北京:中国铁道出版社.2001.

上一篇:做最美八中人演讲稿下一篇:幼儿园小班安全教案《乘车安全》及教学反思