实验 3 面向对象程序设计
- 格式:doc
- 大小:94.50 KB
- 文档页数:18
内蒙古科技大学面向对象的程序设计实验报告一、实验目的(1)掌握定义函数的方法、函数实参与形参的对应关系以及“值传递”的方式。
(2)掌握引用做函数参数的方法。
(3)理解和使用函数重载以及带默认参数的函数。
二、实验环境编译器:Visual C++ 6.0.操作系统:Windows 7旗舰版三、实验内容2.1 练习(一):通过下面的步骤实现函数功能:1. 写一个判别素数的子函数prime,在主函数输入一个整数,输出是否为素数的信息。
2. 按要求编写程序,生成后执行,并分析输出的信息。
要求:使用cin语句分别输入以下测试数据:17,34,2,1,0。
分别运行并检查结果是否正确。
2.2 练习(二):1.设计一个函数:exchange(float x, float y, float z),当调用exchange(a,b,c)时,将a的内容赋值给b,b的内容赋值给c,c的内容赋值给a,要求采用引用的方式来实现。
2. 使用函数重载的方法定义两个重名函数,分别求出整形数平面间两点间距离和双精度平面间两点间距离,如果没有输入第二点的坐标则采用函数缺省参数的方法默认为圆点(0,0)。
四、实验过程练习3-1.1运行结果如下运行结果为34,0,1不是素数,17和2是素数,与实际情况无误,运行结果正确练习3-2.1代码截图如下原设置a=1.1 b=22.2 c=333.3变化之后a=333.3 b=1.1 c=22.2运行结果无误练习3-2.2源代码截图如下测试数据结果如下五、实验总结实验源代码:练习(一)#include<iostream.h> void prime(int x);void main(){int n;while(1){cout<<"请输入n:";cin>>n;prime(n);}}void prime(int x){if(x==0||x==1)cout<<x<<" is no prime"<<endl;else{int i=2;while(i<x){if(x%i==0)break;i++;}if(i==x)cout<<x<<" is prime"<<endl;elsecout<<x<<" is no prime"<<endl;}}练习(二)#include<iostream.h>void exchange(float &x,float &y,float &z); void main(){float a=1.1,b=22.2,c=333.3;cout<<"调用exchange之前"<<endl;cout<<"a:"<<a<<endl;cout<<"b:"<<b<<endl;cout<<"c:"<<c<<endl;exchange(a,b,c);cout<<"调用exchange之后"<<endl;cout<<"a:"<<a<<endl;cout<<"b:"<<b<<endl;cout<<"c:"<<c<<endl;}void exchange(float &x,float &y,float &z) {float cache;cache=y;y=x;x=z;z=cache;}练习(三)#include <iostream.h>#include <math.h>int distance(int x1,int y1,int x2=0,int y2=0){cout<<"调用int distance"<<endl;int dis=sqrt((int)(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));return dis;}double distance(double x11,double y11,double x22=0.0,double y22=0.0) {cout<<"调用double distance"<<endl;double dis=sqrt((int)(x11-x22)*(x11-x22)+(y11-y22)*(y11-y22));return dis;}void main(){int x1,y1,x2=0,y2=0;int i;double x11,y11,x22,y22;char c;cout<<"请输入整形平面第一点的横坐标与纵坐标:"<<endl;cin>>x1>>y1;cout<<"是否输入整形平面第二点的横坐标与纵坐标? ’Y’确定,否则跳过"<<endl;cin>>c;if(c==’Y’||c==’y’){cout<<"请输入整形平面第二点的横坐标与纵坐标:"<<endl;cin>>x2>>y2;}cout<<endl;cout<<"请输入双精度平面第一点的横坐标与纵坐标:"<<endl;cin>>x11>>y11;cout<<"是否输入双精度平面第二点的横坐标与纵坐标? ’Y’确定,否则跳过"<<endl;cin>>c;if(c==’Y’||c==’y’){。
《面向对象程序设计》教案一、教案简介本教案旨在帮助学生掌握面向对象程序设计的基本概念、原理和方法,培养学生的编程能力和软件开发思维。
通过本课程的学习,学生将能够熟练运用面向对象的编程语言,如Java或C++,进行软件开发和设计。
二、教学目标1. 了解面向对象程序设计的基本概念,如类、对象、封装、继承和多态等。
2. 掌握面向对象程序设计的基本原则,如单一职责原则、开闭原则、里氏替换原则等。
3. 学会使用面向对象的编程语言进行程序设计和开发。
4. 培养学生的软件开发思维和团队协作能力。
三、教学内容1. 面向对象程序设计的基本概念1.1 类与对象1.2 封装1.3 继承1.4 多态2. 面向对象程序设计的基本原则2.1 单一职责原则2.2 开闭原则2.3 里氏替换原则2.4 接口隔离原则2.5 依赖倒置原则3. 面向对象的编程语言3.1 Java3.2 C++4. 面向对象的设计模式4.1 创建型模式4.2 结构型模式4.3 行为型模式四、教学方法1. 讲授法:讲解面向对象程序设计的基本概念、原理和编程方法。
2. 案例分析法:分析实际项目中的面向对象设计案例,让学生理解并掌握面向对象的设计思想。
3. 实践操作法:让学生通过编写代码,亲身体验面向对象程序设计的流程和方法。
4. 小组讨论法:分组进行讨论,培养学生的团队协作能力和解决问题的能力。
五、教学评价1. 课堂参与度:评估学生在课堂上的发言和提问情况,了解学生的学习兴趣和积极性。
2. 课后作业:布置相关的编程作业,检查学生对面向对象程序设计知识的掌握程度。
3. 项目实践:评估学生在团队项目中的表现,包括代码质量、设计思路和团队协作能力。
4. 期末考试:全面测试学生对面向对象程序设计知识的掌握情况。
六、教学资源1. 教材:推荐《Java面向对象程序设计》、《C++ Primer》等经典教材。
2. 在线资源:提供相关的在线教程、视频课程和编程练习平台,如慕课网、Coursera、LeetCode等。
实验 3 面向对象程序设计一、实验目的理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP方式进行程序设计的方法,了解类的继承性和多态性的作用。
二、实验要求1.编写一个体现面向对象思想的程序。
2.编写一个创建对象和使用对象的方法的程序。
3.编写一个显示当前日期和时间的程序。
4.编写不同成员变量修饰方法的程序。
5.编写不同成员方法修饰方法的程序。
6.编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序。
7.编写体现类的多态性(成员方法重载、构造方法重载)的程序。
三、实验内容(一)创建Applet 应用小程序1.创建一个Applet 应用程序P3_1.java 文件。
(1)程序功能:建立一个Applet 小程序,使其可以进行简单的加法运算。
该程序要包含类、接口、属性、方法、事件等面向对象的基本元素。
(2)程序源代码如下。
import java.awt.*;import java.awt.event.*;import java.applet.Applet;public class P3_1 extends Applet implements ActionListener {Label label1=new Label("+");Label label2=new Label("=");TextField field1=new TextField(6);TextField field2=new TextField(6);TextField field3=new TextField(6);Button button1=new Button("相加");public void init() { // 初始化add(field1);add(label1);add(field2);add(label2);add(field3);add(button1);button1.addActionListener(this);}public void actionPerformed(ActionEvent e) { // 处理按钮事件int x=Integer.parseInt(field1.getText())+Integer.parseInt(field2.getText());field3.setText(Integer.toString(x)); // 数值转换为字符串}}2.编写一个浏览Applet 应用程序的页面文件P3_1.HTML,源代码如。
20155313实验三《Java⾯向对象程序设计》实验报告⼀、实验内容XP基础XP核⼼实践相关⼯具⼆、实验要求1.没有Linux基础的同学建议先学习《Linux基础⼊门(新版)》《Vim编辑器》课程2.完成实验、撰写实验报告,实验报告以博客⽅式发表在博客园,注意实验报告重点是运⾏结果,遇到的问题(⼯具查找,安装,使⽤,程序的编辑,调试,运⾏等)、解决办法(空洞的⽅法如“查⽹络”、“问同学”、“看书”等⼀律得0分)以及分析(从中可以得到什么启⽰,有什么收获,教训等)。
报告可以参考范飞龙⽼师的指导3.严禁抄袭,有该⾏为者实验成绩归零,并附加其他惩罚措施。
三、实验步骤1. 在IDEA中使⽤⼯具(Code->Reformate Code)把下⾯代码重新格式化,再研究⼀下Code菜单,找出⼀项让⾃⼰感觉最好⽤的功能。
提交截图,加上⾃⼰学号⽔印。
public class CodeStandard {public static void main(String [] args){StringBuffer buffer = new StringBuffer();buffer.append('S');buffer.append("tringBuffer");System.out.println(buffer.charAt(1));System.out.println(buffer.capacity());System.out.println(buffer.indexOf("tring"));System.out.println("buffer = " + buffer.toString());if(buffer.capacity()<20)buffer.append("1234567");for(int i=0; i<buffer.length();i++)System.out.println(buffer.charAt(i));}}2. 在码云上把⾃⼰的学习搭档加⼊⾃⼰的项⽬中,确认搭档的项⽬加⼊⾃⼰后,下载搭档实验⼆的Complex代码,加⼊不少于三个JUnit单元测试⽤例,测试成功后git add .; git commit -m "⾃⼰学号添加内容";git push;提交搭档项⽬git log的截图,包含上⾯git commit的信息,并加上⾃⼰的学号⽔印信息。
《python语言实训》面向对象程序设计实验一、实验目的1、掌握面向对象程序设计的思想。
2、掌握类的定义。
3、掌握对象的创建和使用。
4、掌握属性和方法的访问控制、★△类属性和实例属性、类的方法。
5、掌握继承、多重继承、多态。
6、掌握程序流程控制语句、函数与模块、数据结构等知识内容与面向对象程序设计的综合应用。
二、实验内容1、对象的创建和使用,在Python中,用赋值的方式创建类的实例,创建对象后,通过实例对象访问这个类的属性和方法。
2、从面向过程到面向对象,面向过程程序设计采用自顶向下的方法,分析出解决问题所需要的步骤,将程序分解为若干个功能模块,每个功能模块用函数来实现。
3、定义属性、定义方法、创建实例对象、调用属性和方法。
4、构造方法,在生成对象时调用,可以用来进行一些属性初始化操作,不需要显示去调用,系统会默认去执行。
5、类方法、实例方法和静态方法,方法的访问控制使用。
6、类与对象的应用、属性与方法的应用。
7、类中内置的方法、类方法、实例方法、静态方法。
8、继承与多态的应用、面向对象程序设计案例的应用。
9、Python程序控制结构、数据结构、函数与模块与面向对象程序设计方法的综合案例。
三、主要实验设备及器材1、计算机终端1套(配备Windous10系统或Windows7系统,英特尔i5及以上的处理器,4G以上内存,256G硬盘)。
2、多媒体教学设备1套。
3、网络设备套件1套。
4、Python软件、PyCharm软件、Anaconda软件等Python软件1套。
四、实验步骤(1)演示性实验教师利用多媒体等设备,对本章节的知识在Python语言的相关软件上进行演练。
(2)验证性实验学生指对Python的语言对象有了一定了解,并提出自己的相关问题,然后学生利用实验室的电脑设备解决问题。
(3)设计性实验设计程序以解决金融工程中的计量分析问题。
2、实验步骤(1)Python的Car对象的创建。
(2)在精灵宝可梦游戏中创建小火龙角色,对给出的各个属性进行迭代和私有化。
《面向对象程序设计》实验报告
学号姓名班级
实验编号实验三指导教师王鹤实验时间2015.10.26 一、实验名称
构造函数的重载
二、实验目的及要求
1.掌握类和对象的区别
2.掌握构造函数的使用
3.掌握构造函数的重载
三、实验内容(格式要求:编码一律使用小五号字体,分两栏)
1.创建一个类,为该类定义三个构造函数,分别执行下列操作:1)传递两个整数值并找出其中较大的一个值
2)传递三个double值并求出其乘积
3)传递两个字符串值并检查其是否相同
4)在main方法中测试构造函数的调用
2.编写Addition类,该类中应包含一组实现两数相加运算的重载方法。
实现加法运算的方法,应接受两个参数(即加数和被加数),方法将两个参数进行加法运算后,返回相加结果。
考虑可能针对不同的数据类型进行计算,重载一组方法,包括整型、长整型、浮点型、双精度浮点型、还有字符串。
在main方法中创建Addition类的实例,分别调用重载方法测试其效果。
3.使用初始化参数的方式输入用户名和密码,在程序运行之前必须先判断输入的参数个数是否合法,如果不合法,必须提示用户的程序执行错误,并退出程序,如果用户已经正确地输入了参数,则可以进行用户名及密码的验证。
如果信息正确则显示“欢迎***光临!”,否则显示“错误的用户名及密码”。
四、实验心得(请总结你在本次实验中获得的经验,字数100字左右,五号字宋体,如有雷同实验结果以零分计)。
实验三:面向对象程序设计编程(8学时)1. 实验特点:方法、重载、继承、多态编程。
类型:验证类别:专业基础计划学时:6学时每组人数:1人2. 实验目的与要求:理解类、对象、构造函数、析构函数;掌握方法法定义、重载、继承、的概念及应用;掌握全局变量、局部变、静态变量的概念和使用方法;理解封装和数据隐藏。
3. 主要仪器设备:计算机4. 实验内容提要:阅读教材面向对象程序设计实例并上机调试分析程序结果。
上机题目:(1)调试构造函数Pen()例题(2)调试构造函数重载Pen()例题(3)使用重载方法求5和5.65的平方。
要求:在主程序中调用重载方法,求一个整数(5)的平方值,返回整数;再调用重载方法,求一个双精度数(5.65)的平方值,返回双精度数。
(4)编写一个控制台程序,完成下列功能并输出结果:①创建一个类Test1,用无参数的构造函数输出该类的类名;②增加一个重载的构造函数,带有一个string类型的参数,在此构造函数中将传递的字符串打印出来;③在Main方法中创建属于Test1类的一个对象,不传递参数;④在Main方法中创建属于Test1类的另一个对象,传递一个字符串“This is a string”;(5)编写一个控制台程序,完成下列功能并输出结果:①创建一个类A,在A中编写一个可以被重写的带int类型参数的方法MyMethod,并在该方法中输出传递的整型值加10后的结果;②再创建一个类B,使其继承自类A,然后重写A中的MyMethod方法,将A中接收的整型值加50,并输出结果;③在Main方法中分别创建类A和类B的对象,并分别调用MyMethod方法;(6)利用委托实现:当用户输入一个字符’1’时,调用两个整数相加的方法,计算两整数之和;当用户输入一个字符’2’时,调用两个整数相减的方法,计算两整数之差。
5. 实验操作要点:事先阅读程序,上机时调试、修改程序,对输出的运行结果进行分析。
6.注意事项: 掌握构造函数、继承和方法重载、多态性、委托的定义和使用方法。
实验三:面向对象的程序设计(二)实验目的:1.掌握类的继承、方法覆盖和变量的隐藏。
2.理解父类与子类的关系及创建方法。
3.掌握子类对象创建过程中与父类构造函数的关系。
4.了解抽象类与抽象方法。
5.掌握多态的实现机理及方法。
6.掌握接口的定义和使用7.了解接口的设计方法8.掌握包的定义和使用实验步骤:一. 继承类的访问修饰符练习1. 定义一个父类,有不同访问级别的成员变量和方法;2. 源代码如下:3. 再定义一个子类,继承上面的父类,访问父类的成员变量和成员方法。
4. 子类源代码如下:5. 分析上面main方法的每一步中,哪些成员变量和方法可以访问,哪些不能访问?填写下面表格中的预测结果,可以访问的填“Y”,不可以访问的填“N”。
表4-1-1 实验结果6. 编写上述代码,编译运行代码,查看程序执行结果,并填写表4-1-1中的验证结果。
二. 成员变量的隐藏和方法覆盖练习1. 以下程序具有继承、成员的覆盖与隐藏的概念。
2. 源代码如下:3. 编写上述代码,编译运行代码,查看程序执行结果。
●子类Son中隐藏了父类Father哪个变量?覆盖了哪个方法?●根据上述程序,分析方法重载与方法覆盖的区别。
三.类的多态性的练习1.下面源代码演示了多态的各种特性。
2. 源代码如下:3. 编写上述代码,编译运行代码,查看程序执行结果。
●分析上述代码中的who.var和who.staticVar、who.method()和who.staticMethod()的输出结果有什么不同?为什么存在这种现象?● 分析以下代码,编译时会有什么问题?为什么?●分析以下代码,如何能让who访问Sub类的成员?●分析以下代码,运行会有什么问题?为什么?四.接口相关练习1. 定义一个rec_Area_Peri接口,里面有两个方法getArea()和getPerimeter(),分别表示“计算面积”和“计算周长”;再定义一个Rectangle类,实现接口rec_Area_Peri。
《面向对象程序设计实验》实验一、Java实验环境的建立(2学时)1、目的要求(1)掌握Java编程环境的搭建过程;(2)掌握Jcreator pro软件的使用方法;(3)能使用Java doc文档。
2、实验内容(1)下载并安装JDK1.6,配置JDK环境变量;(2)下载Javadoc压缩包并解压在JDK安装路径下;(3)下载Jcreator pro 4.0并安装和配置使用环境;(4)使用实验环境运行书中实例代码,在屏幕上输出“Hello Java”字符串。
①Java application程序代码如下:public class HelloJava{public static void main(String args[]){ System.out.println("Hello Java!"); }}②Java applet程序代码如下:import java.awt.*;public class Hello extends java.applet.Applet{public void paint(Graphics g){ g.drawString("Hello!",30,30); }}3、仪器与材料:计算机实验二、Java语言程序设计训练(2学时)1、目的要求(1)输入、输出操作实现原理和方法;(2)掌握程序流程控制的实现方法;(3)掌握数组的定义和操作方法。
2、实验内容(1)计算Result=1!+2!+3!+...+10!。
public class Test3 {public static void main(String[] args) {int sum = 0, fact, n, i;for (n = 1; n <= 10; n++) {fact = 1;for (i = 1; i <= n; i++)fact *= i;sum += fact;}System.out.println("sum=" + sum);}}(2)计算1---50之间所有素数的和。