实验二 面向对象的程序设计
- 格式:doc
- 大小:32.00 KB
- 文档页数:3
《面向对象程序设计》课程教学大纲一课程说明1.课程基本情况课程名称:Java程序设计英文名称:Java Programming课程编号:2413223开课专业:计算机科学与技术开课学期:5学分/周学时:4/4课程类型:专业限选2.课程性质(本课程在该专业的地位作用)面向对象的程序设计是基于数据的,尽管数据和动作在软件的结构中最终都会发挥作用,但是从软件系统的整个生命周期来看,在一定程度上功能是易变的,而数据是相对稳定的。
面向对象的程序设计抓住软件系统中相对稳定的因素,即数据,采用数据抽象和信息隐蔽的技术,减少了程序变化所带来的冲击和影响。
并且,面向对象程序设计鼓励对现有代码的复用,而且使代码复用成为可能。
另外,面向对象程序设计中的继承、多态及封装性,使得软件系统的构造有了技术准则的指导,使软件系统的质量得到进一步的提高。
3.本课程的教学目的和任务Java 不依赖平台的特点使得它受到广泛的关注,Java已成为网络时代最重要的编程语言之一。
目前,Java语言不仅是一门正在被广泛使用的编程语言,而且已成为软件设计开发者应当掌握的一门基础语言,因为很多新的技术领域都涉及到了Java语言,国内外许多大学已将Java语言列入了本科教学计划,掌握Java 已经成为共识。
《Java程序设计》是软件工程专业、计算机科学与技术等相关专业的一门重要的程序设计语言课程。
通过本课程的学习,要求学生达到:理解Java 的平台无关、面向对象、多线程等特性;掌握Java语言的面向对象的程序设计方法;掌握Java中的网络编程、多线程程序设计、GUI设计等编程技巧;培养学生应用Java解决和处理实际问题的思维方法与基本能力。
4.本课程与相关课程的关系、教材体系特点及具体要求先修课程:《计算机应用基础》、《C语言程序设计》。
后续课程:《专业课程实践训练》、《Java语言课程设计》。
其他课程:《JSP》、《Java 网络编》、《J2EE》。
面向对象程序设计课程描述一、课程概述面向对象程序设计是计算机科学中的一个重要分支,它是一种编程范式,通过把数据和操作封装在对象中,实现程序的模块化和复用。
本课程旨在帮助学生掌握面向对象程序设计的基本概念、原则和技术,并能够运用所学知识设计、实现和维护高质量的面向对象程序。
二、课程内容1. 面向对象基础介绍面向对象编程的基本概念,包括类、对象、继承、多态等。
讲解如何使用类定义数据类型,并通过封装、继承和多态等机制来实现代码复用和灵活性。
2. 面向对象设计原则介绍常见的面向对象设计原则,包括单一职责原则、开放封闭原则、里氏替换原则等。
讲解如何根据这些原则进行系统架构设计和代码编写。
3. 面向对象分析与设计介绍面向对象分析与设计方法,包括UML建模语言和常用建模工具。
讲解如何使用UML图形化表示系统需求和结构,并通过UML类图来描述系统组成部分及其相互关系。
4. 面向对象编程语言介绍面向对象编程语言的特点和常见语言的使用,包括Java、C++、Python等。
讲解如何使用这些语言实现面向对象程序设计,并介绍常用的开发工具和框架。
5. 面向对象设计模式介绍常见的面向对象设计模式,包括工厂模式、单例模式、观察者模式等。
讲解如何根据不同场景选择合适的设计模式,并通过实例演示如何应用。
三、教学方法1. 理论讲授老师将通过课堂讲解和PPT展示,系统全面地介绍课程内容和案例分析,帮助学生理解相关概念和原理。
2. 实践操作课程中将安排一定量的编程实践环节,帮助学生巩固所学知识并提高编程能力。
实践环节将涉及到面向对象程序设计的各个方面,包括类定义、封装、继承、多态等。
3. 课程项目本课程将安排一个小型项目作为期末考核,要求学生运用所学知识完成一个具有一定规模和复杂度的面向对象程序,并在最后一次课堂上进行演示和评分。
四、评分方式1. 平时成绩包括课堂出勤、作业完成情况、实验报告等,占总成绩的30%。
2. 期中考试考察学生对课程内容的掌握程度,占总成绩的30%。
《面向对象程序设计》教学大纲课程名称:面向对象程序设计英文名称: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学时)要求:定义类,该类至少应包括静态数据成员和静态成员函数,要求通过本实验掌握定义类的基本方法。
面向对象程序设计(C++)教学大纲(电子信息工程专业四年制本科)一、课程基本信息二、课程性质、地位和任务面向对象程序设计(C++)是电子信息工程专业的一门专业基础课。
本课程主要介绍C++语言的基本概念、基本语法和编程方法,面向对象的程序设计方法,以及Visual C++ 6集成开发环境。
通过本课程的学习学生应该熟悉和掌握Visual C++语言的面向对象的重要特征:如类、对象、继承、封装和多态性。
本课程的教学任务是使学生掌握一门高级程序设计语言,使学生最终能够阅读、分析、编写C++程序。
掌握面向对象程序设计的基本概念与方法,进而学会利用C++语言解决一般应用问题,为以后的学习和工作打下坚实的基础。
三、课程教学基本要求通过对本课程的学习,应使学生达到下列基本要求:1.了解C++语言的基本概念、基本语法和编程方法,同时重点介绍面向对象的特征;2.掌握类、对象、继承、封装和多态性;3.理解C++语言对C语言的扩充以及类和对象、友元、继承与派生、多态性和虚函数、C++语言的输入输出流库、异常处理、Windows编程基础和MFC编程基础、对话框和控件、菜单和文档/视图结构、图形设备接口。
四、课程学时分配建议(续表)五、课程教学内容与教学要求(一)绪论教学内容:面向对象方法的起源,面向过程程序设计与面向对象程序设计之间的区别,面向对象的基本概念和面向对象系统的特性,面向对象的系统开发方法。
教学重点:面向对象的基本概念和面向对象的系统开发方法。
教学难点:面向对象系统的特性。
教学要求:了解面向对象方法的起源以及结构化程序设计与面向对象程序设计之间的区别;理解面向对象的基本概念和面向对象系统的特性;掌握对象、类、消息、方法等概念;掌握抽象性、封装性、继承性和多态性的概念;了解面向对象程序设计语言的发展;了解面向对象的系统开发方法。
习题与作业:1.什么是面向对象程序设计?它与传统的结构化程序设计有什么不同?2.面向对象程序设计语言有哪几类?3.面向对象系统有哪些特性,分别加以解释?(二)C++语言对C语言的扩充教学内容:C++语言的特点,C++语言的文件扩展名,注释符,名字空间(namespace)。
1.什么是结构化程序设计方法?这种方法有哪些优点和缺点?【解答】结构化程序设计方法是指20世纪60年代开始出现的高级语言程序设计方法,由于采用了数据结构化、语句结构化、数据抽象和过程抽象等概念,使程序设计在符合客观事物与逻辑的基础上更进了一步。
结构化程序设计的思路是:自顶向下、逐步求精。
程序结构由具有一定功能的若干独立的基本模块(单元)组成,各模块之间形成一个树状结构,模块之间的关系比较简单,其功能相对独立,模块化通过子程序的方式实现。
结构化程序设计方法使高级语言程序设计开始变得普及,并促进了计算机技术的深入应用。
虽然结构化程序设计方法采用了功能抽象、模块分解与组合,以及自顶向下、逐步求精的方法,能有效地将各种复杂的任务分解为一系列相对容易实现的子任务,有利于软件开发和维护;但与面向对象程序设计方法相比,结构化程序设计存在的主要问题是,程序的数据和对数据的操作相互分离,若数据结构改变,程序的大部分甚至所有相关的处理过程都要进行修改。
因此,对于开发大型程序具有一定的难度,软件的可重用性差,维护工作量大,不完全符合人类认识世界的客观规律。
2.面向对象程序设计有哪些重要特点?【解答】软件设计的目的是为了解决日常生活中存在的各种实际问题,面向对象程序设计与以往各种程序设计方法的根本区别是程序设计的思维方法的不同。
它主要具有如下重要特点:(1)面向对象程序设计实现了较直接地描述客观世界中存在的事物(即对象)及事物之间的相互关系,它所强调的基本原则是直接面对客观事物本身进行抽象,并在此基础上进行软件开发,将人类的思维方式与表达方式直接应用在软件设计中。
(2)面向对象的程序设计将客观事物看作具有属性和行为的对象,通过对客观事物进行抽象来寻找同一类对象的共同属性(静态特征)和行为(动态特征),并在此基础上形成类。
(3)面向对象的程序设计将数据和对数据的操作封装在一起,提高了数据的安全性和隐蔽性。
第1章面向对象程序设计概述3(4)面向对象的程序设计通过类的继承与派生机制以及多态性特性,提高了软件代码的可重用性,因而大大缩减了软件开发的相关费用及软件开发周期,并有效地提高了软件产品的质量。
《面向对象程序设计(双语)》课程实验教学大纲课程名称:面向对象程序设计(C++)英文名称:Object Oriented Programming (C++)课程编号:03874 实验课性质:专业主干,非独立设课课程负责人:杨勇开放实验项目数:9大纲主撰人:丁菊玲大纲审核人:杨勇一、学时、学分课程总学时:64 实验学时:32课程总学分:4 实验学分:二、适用专业及年级计算机科学与技术专业、信息管理与信息系统专业、信息与计算科学专业,二年级三、实验教学目的与基本要求面向对象程序设计C++实验是《面向对象程序设计(C++)》(双语)课程中重要的教学环节,通过实验教学来进一步巩固和补充课堂讲授的知识。
本课程实验是教学同步实验,必须与所属课程教学同步进行才能获得良好效果。
通过同步上机实验,使学生深入领会C++语言的功能和作用,理解程序的编译、运行机理,加深对C++语言面向对象本质的认识。
要求熟练运用C++语言编写程序,掌握调试运行程序的方法,从而具备较好的程序设计能力和解决问题的能力,并积累一定的实验经验,为今后在专业领域中用计算机解决问题打下扎实基础。
主要培养学生以下能力:掌握在Visual C++集成开发环境下编辑、编译、链接和运行一个C++程序的基本方法。
掌握面向对象程序设计的思想,区别传统的过程式程序设计思想,能够使用面向对象的程序设计思想解决实际问题。
独立完成每个程序设计上机实验,并能够灵活运用各种调试命令修改源程序中可能出现的逻辑错误。
撰写简明扼要、文理通顺、图表清晰、分析科学的实验总结报告。
四、主要仪器设备及消耗品硬件设备:计算机、因特网。
软件环境:Windows系列操作系统, C++语言编译环境:Visual C++软件,Office系列软件,如Word、PowerPoint等。
六、考核方式(1)实验成果由于本课程的成果主要是各种程序和相关文档等,因此对本课程实验的成果有如下要求:①实验程序设计完整;能正确回答指导教师提出的相关问题(随机进行)。
实验报告 实践报告□课程名称:面向对象程序设计基础R实验、实践名称:面向对象程序设计基础R 实验、实践地点:逸夫楼201专业班级:软件1601 学号:学生姓名:指导教师:宋春花2017年4月17 日// 实验1-2.cpp : 定义控制台应用程序的入口点。
//#include"stdafx.h"#include "iostream"using namespace std;const double pi = 3.14;class Circle {public:double area() { return x*x*pi; }Circle(double a) :x(a) { }private:double x;};class Rectangle {public:Rectangle(double x,double y):len(x),wid(y){}//写出矩形类的构造函数double area() { return len*wid; }//写出计算矩形面积函数private:double len, wid;};class Square {public:Square(double x) :len(x) { }//写出正方形类的构造函数double area() { return len*len; }//写出计算正方形面积函数private:double len;};3. #include"stdafx.h"#include"iostream"using namespace std;class Complex{public:Complex(double a,double b):real(a),image(b){};Complex(Complex &c);void Dispaly();private :double real;double image;};Complex::Complex(Complex & c){real = c.real;image = c.image;}void Complex::Dispaly(){cout <<"(" <<real << "+" << image << "i"<<")"<< endl;}int main(){Complex c1(20,40);Complex c2(0, 0);Complex c3(c1);c1.Dispaly();c2.Dispaly();c3.Dispaly();system("pause");}4. #include"stdafx.h"#include"iostream"#include"math.h"using namespace std;class Rectangle{protected:double Left,Top,Right,Bottom;public:Rectangle(double a,double b,double c,double d):Left(a),Top(b),Right(c),Bottom(d){};void Show(Rectangle &d);double Diagonal(Rectangle &c);};double Rectangle::Diagonal(Rectangle &c){double x=c.Right-c.Left;double y=c.Top-c.Bottom;double d=sqrt((x*x+y*y));return d;}void Rectangle::Show(Rectangle &d){cout<<"左上角 "<<"("<<Left<<","<<Top<<")"<<endl;cout<<"右下角 "<<"("<<Right<<","<<Bottom<<")"<<endl; cout<<"斜角线长度¨¨"<<d.Diagonal(d)<<endl;}int main(){Rectangle *r1=new Rectangle(10,10,20,20);r1->Show(*r1);delete r1;system("pause");return 0;}stu4.StudentInformation ();Student stu5(1999,"王小明",77.);stu5.StudentInformation ();Student::Output ();system("pause");return 0;}Student::Student (int no_,char *name_,double score_){ no=no_;strcpy(name,name_);score=score_;totalNumber++;totalScore+=score;if (score>highestScore)highestScore=score;if (score<lowestScore)lowestScore=score;}void Student::StudentInformation (){ cout<<"学号"<<no<<" "<<"姓名 "<<name<<" "<<"成绩:"<<score<<endl;}void Student::Output (){ cout<<"学总数 "<<totalNumber<<" "<<"总成绩 "<<totalScore<<" "<<endl;cout<<"平均成绩"<<totalScore/totalNumber<<" "<<"最高成绩 "<<highestScore<<" "<<"最低成绩"<<lowestScore<<" "<<endl;}{wage = pay;}void HourlyWorker::setHours(int hour){hours = hour;}double HourlyWorker::earnings(){return wage*hours;}void HourlyWorker::print(){cout <<"计时员编号:"<< number <<"计时员月薪"<< wage*hours << endl;}PieceWorker::PieceWorker(int nu_, const char*name_, double pay, int piece):Employee(nu_,name_), wagePerPiece(pay), quantity(piece){}void PieceWorker::setWage(double pay){wagePerPiece = pay;}void PieceWorker::setQuantity(int piece){quantity = piece;}double PieceWorker::earnings(){return wagePerPiece*quantity;}void PieceWorker::print(){cout <<"计件员编号"<< number <<"计件员计件薪"<< wagePerPiece*quantity << endl;}。
实验二 面向对象的程序设计
(2课时)
一、实验目的
1) 熟悉类的定义和使用。
2) 掌握创建对象的方法。
3) 掌握只读字段的声明及使用。
4) 学习定义和使用带参数构造函数。
5) 熟悉访问权限控制符。
6) 掌握属性的定义和使用。
7) 掌握关键字this。
8) 理解继承的概念,学会定义和使用派生类。
9) 学会定义和使用接口。
10) 掌握继承过程中的方法重写,区分它与方法隐藏、方法重载的不同。
11) 掌握多态。
12) 熟悉关键字base。
二、实验要求
1) 程序结构清晰、语句完整,包含有头文件和main函数;
2) 格式正确,语句采用缩进格式;
3) 设计子函数实现题目要求的功能;
4) 编译、连接通过,熟练使用命令键;
5) 运行结果正确,输入输出有提示,格式美观。
三、实验设备、材料和工具
1) 奔腾2计算机或以上机型
2) C#.NET2008
四、实验内容和步骤
实验内容:
1、创建一个描述图书信息的类并测试。类中应保存有图书的书号、标题、作者、出版社、价格
等信息。
步骤:
1) 定义图书类Book,Book类中包含isbn(书号)、title(标题)、author(作者)、press(出版
社)、price(价格)等私有字段。由于对一本书来说,书号是唯一的,因此,isbn字段应声
明为只读的。
2) 为Book类中的每个字段定义相应的属性,由于isbn字段只读的,其相应属性也应该是只读
的。
3) 为Book类定义两个构造函数,其中,一个构造函数将所有字段都初始化为用户指定的值,
另一个构造函数只要求用户指定有关书号的信息,它将调用上一个构造函数初始化对象,初
始化时,价格取0,除书号的其他信息取“未知”。
4) 为Book类定义方法Show,Show方法用于显示图书的所有信息。
5) 编写Main方法测试Book类,Main方法中分别使用上述两个构造函数创建Book对象。
2、根据几何图形的组合与继承关系定义用于描述点、直线、三角形、四边形、正方形、圆等几何图
形的类(或结构)。要求首先定义一个几何图形接口描述所有几何图形的共有特性,上述几何图形都
必须现实该接口,并且其中用于描述点的类型最好定义为结构。
步骤:
1) 定义几何图形接口Shape。Shape接口中包含属性Color,用于读取和设置几何图形的颜色;包
含方法Draw、Erase、Move,用于绘制、擦拭、移动几何图形。由于属性Color的类型无法用
基本数据类型准确描述,程序中还需要另外定义一个表示颜色的枚举类型CColor(实验上,.NET
框架类库中定义有一个Color结构,它可以更好地表示颜色,你们可以直接使用它)。
2) 定义点结构Point实现Shape接口。Point结构中除实现Shape接口的所有成员外,还必须包
含两个int型私有字段x、y及相应属性,它们用于表示点的坐标。另外,还应为Point结构
定义构造函数,并重写方法ToString。
3) 定义直线类Line实现Shape接口。Line类中除实现Shape接口的所有成员外,还必须包含两
个Point型私有字段point1、point2及相应属性,它们用于表示直线两个顶点的坐标。另外,
还应为Line类定义构造函数,并重写方法ToString。
4) 定义三角形类Triange实现Shape接口。Triangle类中除实现Shape接口的所有成员外,还必
须包含三个Point型私有字段及相应属性,它们用于表示三角形三个顶点的坐标。另外,还应
为triangle类定义方法Area(求面积)和构造函数,并重写方法ToString。
5) 定义四边形类Quadrilateral实现Shape接口。Quadrilateral类中除实现Shape接口中的所
有成员外,还必须包含四个Point型私有字段及相应属性,它们用于表示四边形四个顶点的坐
标。另外,还应为Quadrilateral类定义方法Area(求面积)和构造函数,并重写方法ToString。
由于程序后面还需要在Quadrilateral类的基础上派生出正方形类,因此,实现Shape接口时,
应该将方法Draw、Erase、Move声明为虚拟的,另外,重写方法ToString时,不妨将它声明
为密封的。
6) 定义圆类Circle实现Shape接口。Circle类中除实现Shape接口的所有成员外,还必须包含
一个Point型私有字段、一个int型私有字段及相应属性,它们分别用于表示圆的圆心坐标及
半径;另外,还应为Circle类定义Area(求面积)和构造函数,并重写方法ToString。
7) 定义正方形类Square继承Quadrilateral类。Square类中应重写方法Draw、Erase、Move并
定义构造函数。
8) 定义Main方法测试上面定义的类。
3、编写一个实现复数加法程序。
写出实验步骤,并编写调试程序。
五、实验报告要求
1. 实验前需填写好实验的名称和实验目的;
2. 根据实验内容初步设计好程序,并从理论上排除错误;
3. 针对程序的健壮性准备好测试数据;
4. 结果分析中如实填写运行后的结果,并记录调试过程中产生的重要问题和解决方法。
六、根据实验过程填写程序和实验结果
实验1程序:class Book{
private readonly string isbn; MainORANGEMainrea());
("圆是{0}",circle);
();
("圆的面积是{0}",((Circle)circle).Area());
("正方形是{0}",square);
();
("正方形的面积是{0}",((Square)square).Area());
();
();
}
}
结果:
调试过程中产生的重要问题和解决方法:
完成预编程: 调试过程: 实验成绩等级:
N0: 1 时间: 月 日 教师签名: