实验:类和对象1
C++语言程序设计实验4(类和对象)
是:用初始对象的每个数据成员的值,初始化将要建立的对象的对应数据成员。
构造函数和拷贝构造函数的声明格式如下:
class 类名
{
public: 类名(形参); 类名(类名 &对象名);
//构造函数 //拷贝构造函数
... ...
}; 类名::类名()
//构造函数的实现
{ 函数体;
} 类名::类名(类名 &对象名)
6. 本章小结
本章主要介绍了面向对象的基本概念、类和对象的声明、构造函数、析构函数、内联成 员函数、拷贝构造函数、类的组合。
类是面向对象程序设计中最重要、最基本的概念,也是学习面向对象方法时遇到的第 1 个难点。类是对逻辑上相关的函数和数据的封装,是对问题的抽象描述。
要理解类与对象,必须要结合实例来学习,读者可以思考:除了书中列出的例子,现实 世 界 中 还 有 哪 些 有 形 或 无 形 的 事 务 可 以 被 抽 象 为 程 序 中 的 类 ,每 个 类 又 存 在 哪 些 对 象( 实 体 )。 这样可以对类的概念了解的快一些。
本章开始的每章的最后有一个实例——人员信息管理程序,这个例子贯穿后续各章,利 用每章介绍的只是不断丰富程序的功能,建议课后仔细阅读、体会,并尝试修改、补充程序 的功能。
另外,本章中还介绍了利用 UML 语言表示类与对象的方法,以后各章还将进一步介绍 用 UML 语言表示类之间的关系,但这远不是 UML 语言的全部,这方面的内容也不是初学者 学习的重点,读者可以不必深究,了解一下就可以了。如果有需要,可以另外学习软件工程 的课程。
面向对象的程序设计目的是:实现软件设计的产业化。主要观点是认为自然界是由实体 (对象)所组成。程序设计的出发点是:使用面向对象的观点来描述模仿并处理现实问题。 他要求:高度概括、分类、抽象。
实验报告(二)
北京信息科技大学信息管理学院实验报告课程名称java程序设计实验项目实验二类和对象实验仪器PC、jdk、jcreator专业_______ _________班级/学号________ ___学生姓名_______ __________实验日期实验地点成绩_______________________指导教师_____李春强_____________return p;}int getPower(int q){return q;}}Lab2_2:public class TV {void play(){System.out.println("正在播放动物世界");}}public class Family {TV homeTV;void buyTV(TV tv){tv=this.homeTV;System.out.println("购买一台电视");}}public class MainClass {public static void main(String args[]){ TV haierTV=new TV();Family zhangsanFamily =new Family();zhangsanFamily.buyTV(haierTV);haierTV.play();}}Lab2_3:public class Land {public static void main(String args[]){ Village.WaterAmount=200;System.out.println("水井中有水"+Village.WaterAmount+"升");Village v1=new Village();Village v2=new Village();int m=50;System.out.println("v1从水井中取水"+m+"升");v1.WaterAmount-=m;System.out.println("v2发现水井中有水"+Village.WaterAmount+"升");System.out.println("v2从水井中取水"+m+"升");v2.WaterAmount-=m;System.out.println("v1发现水井中有水"+Village.WaterAmount+"升");}}public class Village {public static int WaterAmount;}Lab2_4:import wukong.xiyou.*;public class SunRise{public static void main(String args[]){SquraEquation sq=new SquraEquation();sq.getRoot(100);System.out.println("此数的平方根为"+"sq.getRoot()");}}package java.wukong.xiyou;public class SquraEquation{public double getRoot(double num){ return Math.sqrt(num);}}1.实验名称、实验目的、实验内容、实验要求由教师确定,实验前由教师事先填好,然后作为实验报告模版供学生使用;2.实验准备由学生在实验或上机之前填写,教师应该在实验前检查;3.实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等;4.实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;5.源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。
合肥工业大学程序设计基础实验报告
合肥工业大学程序设计基础实验报告姓名:班级: 计算机科学与技术学号:合肥工业大学计算机与信息学院1实验七类与对象1(实验目的要求(1) 掌握类的定义和实现。
(2) 掌握对象创建及使用的基本方法。
2(实验设备硬件环境:微型计算机软件环境:操作系统: Windows语言环境: Visual C++3(预习要求学习教材有关类的定义与实现、对象创建与应用等有关内容,对实验基本要求应在上机实验前仔细阅读,程序应事先编制完成,上机时录入调试,同时还应设计相应的测试用例集,检查程序的正确性、可靠性、完备性和容错能力。
4(实验内容(1)下面程序定义了一个以hours, minutes和seconds作为数据成员的Time 类。
设计了成员函数将两个Time对象相加(即时间相加),并进行相应的检查,查看增加的分钟数及秒数是否大于59。
如果秒数大于59,则分钟数向前递增1。
类似地,如果分钟数大于59,则小时数向前增1。
#include <iostream>using namespace std;class Time{private:int hours, minutes, seconds;public:void get_time(){2cin>>hours>>minutes>>seconds;}void display_time(){cout<<hours<<':'<<minutes<<':'<<seconds<<endl;}void add_time(Time & t1, Time & t2){hours=t1.hours+t2.hours;minutes=t1.minutes+t2.minutes;seconds=t1.seconds+t2.seconds;if(seconds>=60){seconds-=60;minutes++;}if(minutes>=60){minutes-=60;hours++;}}};void main(){Time one, two, three;cout<<"\nEnter the first time(hours minutes seconds):"; one.get_time();cout<<"\nEnter the second time(hours minutes seconds):"; two.get_time();three.add_time(one,two);cout<<"the result is:"<<endl;three.display_time();}[基本要求], 上机录入、调试上面程序。
实验一 类与对象的创建(报告)
课程名称
C++程序设计A2
班级
1420561
实验日期
2015.3.24
姓名
刘翔翔
学号
21
实验成绩
实验名称
实验一类与对象的创建
实验目的及要求
1.掌握类的定义,根据具体需求设计类。
2.深入理解C++中类的封装性。
3.会根据类创建各种对象。
4.掌握对象的各种成员的使用方法。
实
验
环
境
Visual Studio 2010
实
验
内
容
1.Time函数
改写程序,要求:
①将数据成员改为私有的;
②将输入和输出的功能改为由成员函数实现;
③在类体内定义成员函数。
然后编译和运行程序。请分析什么成员应指定为公用的?什么成员应指定为私有的?什么函数最好放在类中定义?什么函数最好在类外定义?
2.Sudent函数
请完善该程序,在类中增加一个对数据成员赋初值的成员函数set_value。上机调试并运行。
3.Date函数
(1)用下面的格式输出日期:
(2)日/月/年
(3)可运行在当前日上加一天操作(4)设置日期。算 Nhomakorabea法
描
述
及
实
验
步
骤
1.Time函数
算法描述:由类实现时间的输入输出。
步骤:建一个简单的项目,定义实现Time类,调用time类,实现输出输出时间。
实
验
结
果
1.Time函数
c++实验
#include"Rectangle.h"
using namespace std;
int main(){
Rectangle rect;
rect.initRectangle(2,3,20,10);
rect.move(3,2);
cout<<"The data of rect (x,y,w,h):"<<endl;
4、作业4-13:定义一个Circle类,由数据成员radius(半径),成员函数getArea(),计算圆的面积,构造一个Circle的对象进行测试。
上机十类的继承(一)
1.运行书P256,例7-1。体会公有继承的使用。
2.运行书P259,例7-2。体会私有继承的使用。
3.定义一个Document类,有数据成员name,从Document派生出Book类,增加数据成员pageCount。
return Point(x+p.x,y+p.y,z+p.z);
}
Point operator--(){
--x;
--y;
--z;
return *this;
}
bool operator ==(const Point &p1){
if(x==p1.x&&y==p1.y&&z==p1.z)
return true;
cout<<rect.getX()<<","
<<rect.getY()<<","
<<rect.getW()<<","
面向对象程序设计(C++)实验一--类和对象
实验一类和对象一、实验目的:掌握类的设计和对象的创建及相关知识点如对象数组、类聚合、友元函数、静态成员。
二、实验内容:1、设计圆类,求两个圆的位置关系;2、设计圆类和直线类,求直线与圆的位置关系;3、设计学生类,求某班学生成绩的最高分、最低分及平均分;4、设计部门类和教师类,其中部门类成员为教师类的子对象;5、设计家庭银行账户类,其中账户资金为静态数据成员,为家庭成员共享;6、设计复数类,友元函数实现复数的加减。
三、实验过程:1、根据实验题目确定需要设计哪些类、各类中包含哪些数据成员和函数成员,设计各成员的访问权限,设计数据成员的数据类型,设计函数成员的函数原型;2、给出类设计的程序实现,特别要注意重载构造函数的实现;3、在主函数中完成题目中的逻辑,一般情况下需要创建相关类的对象,通过对象对成员函数的调用或者通过对象指针对成员函数的调用完成相应的功能。
四、参考程序代码:1、设计圆类,求两个圆的位置关系#include <iostream>#include <math.h>using namespace std;class Circle{private:float a,b,r;public:Circle(float c,float d,float e){a=c;b=d; r=e;}friend void position(Circle &,Circle &);};void position(Circle &c1,Circle &c2){float n,m,p;p=sqrt((c1.a-c2.a)*(c1.a-c2.a)+(c1.b-c2.b)*(c1.b-c2.b)); n=fabs(c1.r-c2.r);m=c1.r+c2.r;if(p>m)cout << "相离";if(p==m)cout << "相切";if(p<m)cout << "相交";}int main(){float a,b,c,d,e,f;cin >> a >> b >> c >> d >> e >> f ;Circle c1(a,b,c),c2(d,e,f);position(c1,c2);return 0;}运行结果:2、设计圆类和直线类,求直线与圆的位置关系#include<iostream>#include<math.h>using namespace std;class Circle//圆类{private:float x,y,r;public:Circle(float a,float b,float c) {x=a;y=b;r=c;}float getx(){return x;}float gety(){return y;}float getr(){return r;}};class Line//直线类{private:float a,b,c;public:Line(float x,float y,float z){a=x;b=y;c=z;}void position(Circle c1){float d=fabs(a*c1.getx()+b*c1.gety()+c)/sqrt(a*a+b*b) ;//圆心到直线的距离if(d<c1.getr())cout << "相交";if((d-c1.getr())<0.000001)cout << "相切";cout << "相离";}};int main(){Line l1(3,3,4);//创建直线对象Circle c1(-23,3,7);//创建圆对象l1.position(c1);return 0;}运行结果:3、设计学生类,求某班学生成绩的最高分、最低分及平均分#include <iostream>#include <string.h>using namespace std;class Student{private:char name[20],xuehao[20];float math;public:Student(){}Student(char *na,char *xu,float ma):math(ma) {strcpy(name,na);strcpy(xuehao,xu);}void set(char *na,char *xu,float ma){math=ma;strcpy(name,na);strcpy(xuehao,xu);}char *get_name(){return name;}char *get_xuehao(){return xuehao;float get_math(){return math;}};void max_min(Student stu[],int n){Student max,min;max=min=stu[0];for(int i;i<n;i++){if(stu[i].get_math()>max.get_math())max=stu[i];if(stu[i].get_math()<min.get_math())min=stu[i];}cout << "学生成绩最高:" << max.get_name() << "," << max.get_xuehao() << "," << max.get_math() << endl;cout << "学生成绩最低:" << min.get_name() << "," << min.get_xuehao() << "," << min.get_math() << endl;}void ave(Student stu[],int n){float sum=0;for(int i=0;i<n;i++){sum=sum+stu[i].get_math();cout << "ave=" << sum/n;}int main(){char na[20],xu[20];float ma;Student stu[20];int n;cout << "请输入学生总人数"; cin >> n;for(int i=0;i<n;i++){cin >> na >> xu >> ma ; stu[i].set(na,xu,ma); }max_min(stu,n);ave(stu,n);return 0;}运行结果:4、设计部门类和教师类,其中部门类成员为教师类的子对象#include <iostream>#include <string.h>using namespace std;class Department{private:int dep_num;char dep_master[20];char dep_name[20];public:Department(){}Department(int num,char *ma,char *na){dep_num=num;strcpy(dep_master,ma);strcpy(dep_name,na);}void show(){cout << dep_num << "," << dep_master << "," << dep_name ; }};class Teacher{private:char name[20];char haoma[20];Department dep;public:Teacher(char *n,char *nu,int num,char *ma,char *na):dep(num,ma,na) {strcpy(name,n);strcpy(haoma,nu);}void show(){dep.show();cout << "," << name << "," << haoma << endl;}};int main(){Teacher hp("wanghai","12345",6,"kiki","computer");hp.show();return 0;}运行结果:5、设计家庭银行账户类,其中账户为静态数据成员,为家庭成员共享#include <iostream>#include <string.h>using namespace std;class Familymember//家庭成员类{private:char membername[10];//成员名public:static float account;//共享账户资金 Familymember(char *name);static void save(float money);//存钱 static void pay(float money);//支出 static void show(); //显示账户余额};float Familymember::account=0;Familymember::Familymember(char *name) {strcpy(membername,name);}void Familymember:: save(float money) {account= account+money;}void Familymember:: pay(float money){account= account-money;}void Familymember:: show(){cout<<account<<endl;}int main()//主函数{ Familymember husband("wang"),wife("Li"); husband.save(10000);wife.pay(3000);wife.save(5000);wife.show();husband. show();}运行结果:6、设计复数类,友元函数实现复数的加减#include <iostream>using namespace std;class Fushu{private:float ss,xs;public:Fushu(){}Fushu(float a,float b){ss=a;xs=b;}friend Fushu jiafa(Fushu &f1,Fushu &f2){return Fushu((f1.ss+f2.ss),(f1.xs+f2.xs)); }friend Fushu jian(Fushu &f1,Fushu &f2){return Fushu((f1.ss-f2.ss),(f1.xs-f2.xs)); }void show(){cout << ss << " + " << xs << "i" << endl; }};int main(){Fushu f1(2,3),f2(4,5);Fushu f3,f4;f3=jiafa(f1,f2);f4=jian(f1,f2);f3.show();f4.show();return 0;}运行结果:。
类与对象实验报告
类与对象实验报告类与对象实验报告引言:类与对象是面向对象编程的基本概念,通过定义类和创建对象,可以实现对数据和行为的封装,使程序更加模块化和可扩展。
本实验旨在通过实际操作,加深对类与对象的理解,并掌握其基本用法。
实验过程:1. 定义类:在实验开始前,我们首先需要定义一个类。
类是对象的抽象描述,包含了对象的属性和方法。
以汽车为例,我们可以定义一个Car类,其中包含品牌、颜色和速度等属性,以及启动、加速和刹车等方法。
2. 创建对象:在定义了Car类之后,我们可以通过创建对象来实例化该类。
通过使用new关键字,我们可以创建多个汽车对象,每个对象都拥有独立的属性和方法。
例如,我们可以创建一个名为myCar的对象,它是Car类的一个实例。
3. 访问对象的属性和方法:创建了对象之后,我们可以通过点运算符来访问对象的属性和方法。
例如,通过myCar.brand可以获取myCar对象的品牌属性,通过myCar.start()可以调用myCar对象的启动方法。
这样,我们可以通过对象来操作和管理数据,使代码更加清晰和可读。
4. 对象之间的交互:在实际编程中,对象之间经常需要进行交互。
通过在类中定义方法,我们可以实现对象之间的数据传递和信息交流。
例如,我们可以定义一个方法来获取其他汽车对象的速度,并根据这些速度进行比较和判断。
实验结果:通过实验,我们深入了解了类与对象的概念和用法。
通过定义类和创建对象,我们可以更好地组织和管理代码,提高程序的可维护性和可扩展性。
通过访问对象的属性和方法,我们可以实现对数据和行为的封装,使代码更加模块化和易于理解。
通过对象之间的交互,我们可以实现数据的共享和协作,提高程序的效率和灵活性。
实验总结:类与对象是面向对象编程的核心概念,掌握了类与对象的基本用法对于开发高质量的程序至关重要。
通过本次实验,我们加深了对类与对象的理解,并通过实际操作掌握了其基本用法。
在以后的编程过程中,我们可以更加灵活地运用类与对象,提高代码的可读性和可维护性。
[实验报告]类和对象
[实验报告]类和对象
一、实验目的
通过本次实验,了解抽象的一种程序设计概念“类”和“对象”,理解类之间的继承与多态性,以及封装对对象的各种属性和行为,实现软件对象模型与真实世界对象间的映射。
二、实验内容
1.定义类与对象
(1)类是代表一类实体的抽象。
它包含了一个共同拥有的结构和行为。
类是面向对象程序设计的基本元素。
(2)对象是一个实例。
它拥有一个特定于其类型的属性,并表现出对应的行为。
对象是程序中实际的可操作的元素。
2.类的成员
(1)类的成员可以是变量,函数,常量等等。
(2)变量:类的成员变量可以存储数据成员和提供给类的方法,这些变量被称为实例变量;类变量存储类及其对象的信息。
(3)函数:类的成员函数用于封装一定的行为或对对象的设置,它可以访问实例变量和类变量的值,以及实现一定的功能。
多态性是指一个类可以根据不同环境要求而采用不同的行为。
接口就是把数据和逻辑封装在一起的内部接口。
Java类与对象实验报告
实验报告一、实验项目:类与对象二、实验目的:1。
学会使用类来封装对象的属性和功能2. 掌握类变量与实例变量,以及类方法与实例方法的区别3。
掌握使用package和import语三、实验器材:计算机、Java编程软件JCreator四、实验原理(或仪器装置图):1. 类与对象类是组成Java程序的基本要素。
类封装了一类对象的状态和方法。
类是用来定义对象的模板。
类声明class 类名{类体}对象的声明一般格式为:类的名字对象名字;定义对象引用后,用new运算符完成对象的创建工作,分配存储空间,并对其初始化。
变量名=new 类名([构造方法实参表]);对象的使用访问成员的基本语法形式如下:对象名。
变量成员名对象名.方法成员名([实际参数表])2.成员变量和局部变量成员变量格式:[修饰符] 变量类型变量名[=初值];成员方法:格式:[修饰符]返回值的数据类型方法名(参数1,参数2,…){语句序列;return[表达式];}类中定义的变量是成员变量,而方法中定义的变量是局部变量。
3. 构造方法构造方法是一种特殊的方法,创建对象时被自动调用.与一般的方法不同,它没有返回值类型的说明,方法体中也不可以用return语句带回返回值。
构造方法的方法名与类名相同在构造方法中可以通过this关键字调用该类中其他的构造方法。
4。
包包是Java语言中有效地管理类的一个机制。
①通过关键字package声明包语句。
package 语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包.package语句的一般格式为:package 包名;②import 语句:使用import 语句可以引入包中的类。
五、实验步骤及数据记录:1.定义一个圆柱体类Cylinder,并创建相应的对象,然后计算圆柱体的底面积与体积。
class Cylinder{double radius;int height;double pi=3.14;void area(){System。
c++程序设计类和对象实验总结
一、实验目的在本次C++程序设计实验中,主要目的是通过对类和对象的学习和掌握,进一步加深对C++程序设计语言的理解和应用。
通过具体的实验操作,提高学生的编程能力和解决问题的能力,培养学生的动手能力和团队协作精神。
二、实验内容1. 掌握类的概念和基本语法,包括类的定义、成员变量、成员函数等;2. 熟悉对象的概念和使用方法,了解对象的初始化和销毁;3. 学习类的继承和派生的知识,掌握继承与派生的语法和使用;4. 能够独立编写包含类和对象的程序,实现各种功能;5. 通过实践项目,提高自己的编程水平,锻炼解决问题的能力。
三、实验过程在实验过程中,首先我们需要了解类和对象的概念,理解类的定义和对象的创建方法。
编写简单的程序进行练习,例如创建一个包含学生信息的类,并实例化对象,调用成员函数来输出学生信息。
也需要深入学习类的继承和派生的知识,理解基类和派生类的关系,掌握虚函数的概念和使用方法。
在实验中,我们编写了多个实例程序来练习类的继承和派生,加深了对这一知识点的理解。
在实验过程中,我们还遇到了一些问题,例如在使用多重继承时需要特别注意类的构造和析构顺序,以及在使用虚函数时需要注意动态绑定的原理等。
通过解决这些问题,我们不断提高了自己的编程水平,加深了对C++语言的理解。
四、实验总结通过本次实验,我们深刻理解了类和对象的概念,掌握了类的定义和对象的创建方法。
在实验中,我们编写了多个功能丰富的程序,包括学生信息管理系统、图形类的继承等。
这些程序不仅巩固了所学的知识,也让我们感受到了编程的乐趣。
通过与同学的讨论和交流,我们也学到了很多新的知识和技巧。
本次实验对我们的帮助很大,让我们更深入地理解了C++程序设计语言,提高了我们的编程水平。
希望在以后的学习和实践中,能够进一步加深对类和对象的理解,不断提高自己的编程能力。
在本次的C++程序设计实验中,我们深入学习了类和对象的概念,并通过实际的编程练习加深了对C++程序设计语言的理解和应用。
上机实践2 类与对象.
上机实践2 类与对象实验1 学生类1.相关知识点:Java语言和其他面向对象语言一样,引入了类的概念,类是用来创建对象的模板,它包含被创建对象的属性和功能。
Java程序设计的基本单位是类(class),Java的源文件就是由若干个书写形式互相独立的类构成。
因此,要学习Java编程,就必须学会怎样去写类,即怎样用java的语法去表述一类事物共有的属性和功能。
类有两种基本的成员:变量和方法,变量用来刻画对象的属性,方法用来体现对象的功能跟,即方法使用某种算法操作变量来实现一个具体的功能。
2.实验要求:(1) 定义一个Java类来表示学生信息,类名为Student ,包含属性有:int类型的id(学号)、String类型的name(姓名)、double类型的grade(成绩)和int类型的age(年龄)。
(2)编写一个StudentTest类来创建并使用一个或多个Student对象,要求输出:学号姓名成绩年龄1 张三89 202 李四98 21(3) 修改学生类,将各个属性改为private类型的,然后添加相应的get和set方法用来获得和设置属性,然后修改StudentTest类通过get和set方法获得和设置属性。
(4)为学生类添加带参数的构造函数以便用户初始化对象的数据。
实验2 教材p61第10题实验3 三角形、梯形、和圆形的类封装1.实验目的:使用类封装对象的属性和功能2.实验要求:编写一个java类,该程序有3个类:Trangle、Lader和Circle,分别用来刻画“三角形”、“梯形”、“圆形”具体要求如下:●Trangle类具有类型为double的三个边,以及周长,面积属性,Trangle类具有返回周长、面积以及修改三个边的功能,另外Trangle类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形●Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能。
实验三 类和对象
[1]定义两个成员变量height和width,表示矩形的长和宽,类型为整型
[2]定义一个getArea方法,返回矩形的面积
[3]定义一个getPerimeter方法,返回矩形的周长
[4]在main函数中,利用输入的2个参数分别作为矩形的长和宽,调用getArea和getPermeter方法,计算并返回矩形的面积和周长
[3]定义一个getD方法,有一个类型为MyPoint的对象参数,功能为返回当前对象和参数对象这两个坐标点的距离,返回值为double类型
[4]编写测试的main方法,调用getD计算两个点之间的距离
输入:
输入2行数据,总共4个有理数。每2个数据一组,表示一个点的x和y坐标,每行的2个数据用空格隔开。例如:
x_1=test.nextDouble();
y_1=test.nextDouble();
MyPoint mypoint_4=new MyPoint(x_1,y_1);
System.out.println("请输入第二个点的坐标,中间用空格隔开:");
x_2=test.nextDouble();
y_2=test.nextDouble();
Rectangle juxing=new Rectangle();
System.out.println("请输入矩形的长和宽,用空格隔开:");
height=rectangle.nextDouble();
width=rectangle.nextDouble();
rectangle.close();
Area=juxing.getArea(height, width);
C++面向对象类与对象实验报告图书管理系统
{c.borrow(c);}
else
{c.retore(c);}
}
};
inti;
voidBook::set()//定义成员函数
{
cin>>i;
Book::price=10;
Book::number=100;
Book::sum=1000;
}
intBook::borrow(Bookc)
{
c.number=c.number-1;c.sum=c.sum-1;
c.display();
实验环境
WindowXp,VisualC++6.0
ok类,在该类定义中包括:
(1)数据成员:bookname(书名)、price(价格)和number(数量)。
(2)成员函数:display()显示图书的情况;borrow()将存书数量减1,并显示当前存书数量;restored()将存书数量加1,并显示当前存书数量。
cout<<"书的总库存是:"<<Book::sum<<endl;
}
voidmain()
{
Bookc;//定义类
cout<<"书的名字:"<<""<<"输的号码:"<<endl;
cout<<"数学"<<""<<"1"<<endl;
cout<<"语文"<<""<<"2"<<endl;
C语言实验报告
C语⾔实验报告上机要求:禁⽌玩游戏、看视频及从事与课程⽆关的活动。
实验内容按照指导书内容填写,可以把⾃⼰上机编写的程序、遇到的问题、解决办法写上(得到⾼分的条件)。
在有输⼊输出的程序部分,应该写上输⼊输出的结果,以表⽰程序能正确⼯作。
实验⼀编程环境的使⽤⼀、⽬的和要求1.了解编程环境的使⽤。
2.学会处理简单的错误,观察运⾏结果。
3.掌握基本的输⼊输出。
⼆、实验原理VisualC++6.0是⼀个集成的开发环境,包括编辑、编译连接和调试。
编写程序的主要过程是:建⽴⼯作区、建⽴⼯程、添加源⽂件、输⼊程序、运⾏程序、改正出现的错误直到有正确的输出结果。
三、实验内容及步骤1.编程环境的使⽤。
(1)打开VisualC++6.0开发环境。
(2)单击“⽂件-〉新建”菜单命令,显⽰出“新建”对话框(如图1-3)。
在新建对话框单击“⼯程”标签,选中Win32 Console Application项,然后在⼯程框中键⼊控制台应⽤程序项⽬名称,并且选中空⼯程。
(3)添加C++源⽂件,输⼊⽂件名。
(4)打开编辑窗⼝,输⼊程序,保存。
(5)编译运⾏程序,找到其错误位置,改正错误。
2.编写如下程序,从键盘读⼊两个整数,计算它们的和差积商,将结果输出在屏幕上。
3.编写如下程序,从键盘读⼊两个字符,并输出在屏幕上。
四、思考问题1.如何使⽤不同的数据类型。
2.如何处理输⼊输出。
3.如何查找程序中的错误?实验⼆选择结构⼀、⽬的和要求1. 掌握if ...else 及其嵌套的⽤法。
2. 掌握switch 的⽤法。
⼆、实验原理if 语句是专门⽤来实现选择结构的语句,是根据⼀个条件满⾜与否来决定是否执⾏某条语句或从两个语句中选择⼀个语句执⾏。
if-else 语句的⼀般格式为:if (表达式1) 语句1else if (表达式2)语句2……else if (表达式n )语句nelse 语句n+1当程序中有多个条件判断时,若使⽤if 语句可能使嵌套太多,降低了程序的可读性,switch 语句能很好的解决这个问题。
实验三:类与对象(bo)
实验三Java类与对象【实验目的】1)理解面向过程与面向对象区别2)理解面向对象的三大特征3)掌握类声明的方法4)掌握构造方法5)掌握对象的创建方法与创建机制6)掌握成员变量、类变量和局部变量区别7)掌握成员方法与类方法区别8)掌握函数的重载9)掌握4种访问修饰符的区别【实验环境】JDK1.6+Eclpise3.2【实验准备】1)复习课件中理论知识2)练习课堂所讲的例子【实验内容】1、创建猴子类。
具体要求如下:1)编写一个类Monkey,用来表示猴子类;2)给Monkey类确定添加4个属性:3个实例成员变量(名字、体重、年龄)、1个静态成员变量(爱好:默认值为:吃香蕉);3)添加默认构造方法和有参构造方法(3个参数,分别给名字、体重和年龄赋初始值)4)编写展示猴子能够爬树(climbTree)的方法――提供两个参数传入:分别代码猴子的名字(name)和爬树的高度(height)(方法内只需打印猴子的”名字+会爬树,能爬+高度”)5)测试:在main方法中创建两个猴子对象monkey1(皮蛋、50、3)和monkey2(兰兰、45、2),monkey1使用默认构造方法创建,monkey2使用有参构造方法创建。
分别打印出monkey1和monkey2的名字、体重、年龄和爱好。
并调用monkey1和monkey2的爬树方法。
2、创建矩形Rectangle类。
具体要求如下:1)创建一个Rectangle类;2)创建属性:两个double成员变量:width和height。
3)创建方法:计算矩形的周长getLength()和面积getArea()。
4)测试:创建Rectangle对象,并给两个成员变量赋值,调用周长和面积的方法,输出周长和面积。
【实验过程及结果】实验代码及结果:1. package arp;public class Monkey {//创建类// 4个属性(成员变量)private String name;private int weight;private int age;private static String love="吃香蕉";public Monkey(){}//有参构造方法public Monkey(String name,int weight,int age) {=name;this.weight=weight;this.age=age;}//爬树public void climbTree(String name,int height){System.out.println(name+"会爬树,能爬"+height+"米");}//测试public static void main(String [] args){Monkey monkey2=new Monkey();="猪猪";monkey2.weight=50;monkey2.age=3;Monkey monkey3=new Monkey("猫猫",45,2);System.out.println(+"体重为"+monkey2.weight +"年龄为:"+monkey2.age+"爱好为:"+monkey2.love);System.out.println(+"体重为:"+monkey3.weight+"年龄为:"+monkey3.age+"爱好为:"+monkey3.love);monkey2.climbTree(,100);monkey3.climbTree(,88);}}2. package arp;//创建类public class Rectangle {//两个成员变量private double width;private double height;//计算周长public double getLength(){return (this.width+this.height)*2;}//计算面积public double getArea(){return this.width*this.height;}public static void main(String[] args) {Rectangle rectangle =new Rectangle();rectangle.width=100;rectangle.height=50;System.out.println("周长为:"+rectangle.getLength());System.out.println("面积为:"+rectangle.getArea());}}【实验感想】本次实验态度鲜明的提出了面向对象和面向过程的区别以及面向对象的三大特征,并由此引入了类的声明,对象的创建方法等实质性问题,在上机练习中通过创建相应的类,给我留下了对于类和对象的深刻认识,对于这些新接触的知识还要在进一步的学习中去感悟和理解它所包含的实在的东西。
面向对象程序设计实验报告
面向对象程序设计实验报告面向对象程序设计实验报告一、引言面向对象程序设计(Object-Oriented Programming,简称OOP)是一种广泛应用于软件开发的编程范式。
本实验旨在通过实践,加深对面向对象程序设计的理解,并掌握其基本概念和技巧。
二、实验目的1. 理解面向对象程序设计的基本概念和思想;2. 掌握类、对象、继承、封装、多态等面向对象的核心概念;3. 运用面向对象的思想设计和实现一个简单的程序。
三、实验过程1. 设计类和对象在本次实验中,我们选择实现一个简单的学生管理系统。
首先,我们需要设计一个学生类(Student),包括学生的姓名、年龄、学号等属性,并定义相关的方法,如获取学生信息、修改学生信息等。
然后,我们创建多个学生对象,模拟学生管理系统中的多个学生。
2. 继承和多态为了进一步理解继承和多态的概念,我们可以设计一个教师类(Teacher),继承自学生类。
教师类除了继承学生类的属性和方法外,还可以定义自己特有的属性和方法。
通过创建教师对象,我们可以看到继承和多态的效果。
3. 封装和访问控制在面向对象程序设计中,封装是一个重要的概念。
我们可以将学生类的属性设置为私有(private),并通过公有(public)的方法来访问和修改属性。
这样做的好处是可以保护属性的安全性,同时提供统一的接口供外部使用。
四、实验结果通过实验,我们成功地实现了一个简单的学生管理系统。
我们可以创建学生对象,并通过调用相关方法来获取和修改学生的信息。
同时,我们还实现了教师类,通过继承和多态的特性,我们可以灵活地使用学生和教师对象。
五、实验总结通过本次实验,我们深入了解了面向对象程序设计的基本概念和思想。
通过设计和实现一个简单的程序,我们掌握了类、对象、继承、封装、多态等核心概念,并学会了如何运用这些概念来设计和实现面向对象的程序。
面向对象程序设计具有很多优点,如代码的可重用性、可维护性、可扩展性等。
通过合理地设计类和对象,我们可以更好地组织和管理代码,提高开发效率和代码质量。
C++实验指导书
C++程序设计实验指导书实验一C++程序的运行环境和运行(2学时)实验名称:C++程序的运行环境和运行实验目的:1、熟悉C与C++的编程区别;2、熟悉C++的函数重载。
实验要求:求两个数的平方和。
要求如下:1、有int,float和long型的数据各3个;2、重载SumSqure函数求两个相同类型变量的平方和。
实验步骤:1、添加头文件#include <iostream>和名字空间using namespace std。
若要使用cin和cout标准输入输出流,则必须添加上述两个内容。
2、构建重载SumSqure函数。
SumSqure函数的功能是对输入的两个同类型形参a,b求其平方和,并将结果返回。
对于输入和返回的不同类型int,float,long,其函数内部实现代码是一样的,所以可利用函数的重载写出三个SumSqure函数。
3、main函数中的赋值。
定义int,float,long三种类型的数据,分别调用SumSqure函数,测试其结果。
4、调用SumSqure函数。
注意SumSqure函数重载的调用,根据SumSqure函数的定义可知:实参必须是同一种类型的变量才能调用不同的SumSqure,针对不同类型求平方和。
实验名称:类与对象(一)实验目的:1、掌握类的设计;2、掌握对象的创建;3、实现一个简单的成员函数设计。
实验要求:求3个长方体的体积,编写一个基于对象的程序,数据成员包括lenth,width,height。
要求用成员函数实现以下功能:1、由键盘分别输入3个长方体的长、宽、高;2、计算长方体的体积;3、输出3个长方体的体积。
实验步骤:1、建立三个文件,分别存储长方体类的声明头文件,长方体类的定义文件和main函数测试文件。
注意:类的头文件和类的定义实现文件的命名要一致!2、头文件信息:头文件长方体类的声明中,类成员变量有:lenth,width,height;类成员函数有:V olumeCalculation(), InputData()。
java程序设计课程--实验报告-实验05
(d)完成赋值语句,使change2包含与change1相同的字符,但是所有字符“O”全部要用“*”替换。
(e)完成赋值语句,将colledge和town两个字符串连接起来,并把值赋给change3(使用String类的concat方法)。
phraseLength = phrase.length();
middleIndex = phraseLength/2;
//get the substring for each half of the phrase
firstHalf = phrase.substring(0,middleIndex);
int phraseLength;//number of characters in the phrase String
int middleIndex;//index of the middle character in the String
String firstHalf;//first half of the phrase string
3.声明两个新的字符串类型变量city和state。添加语句,提示用户输入他们的籍贯所在的city和state,并使用Scanner类读入该信息。然后使用String类创建并打印一个新字符串,包含state名(全部大写),city名(全部小写),state名(全部大写)。如下例所示:
NORTH CAROLINAlilesvilleNORTH CAROLINA
//Get the lengths of the sides as input
System.out.print("Please enter the lengths of the two sides of" + "a right triangle(separate by a blank space):");
C实验2类和对象(1)
实验2 类和对象(1)班级学号姓名成绩一、实验目的1.掌握类的概念、类的定义格式、类与结构的关系、类的成员属性和类的封装性;2.掌握类对象的定义,对象的初始化;3.理解类的成员的访问控制的含义,公有、私有和保护成员的区别;4.掌握构造函数和析构函数的含义与作用、定义方式和实现,能够根据要求正确定义和重载构造函数。
能够根据给定的要求定义类并实现类的成员函数;二、实验内容1.分析找出以下程序中的错误,说明错误原因,给出修改方案使之能正确运行。
#include<iostream.h>class one{ int a1,a2;public:one(int x1=0, x2=0);};void main(){one data(2,3);cout<<data.a1<<endl;cout<<data.a2<<endl;}2.分析以下程序的错误原因,给出修改方案使之能正确运行。
#include <iostream.h>class Amplifier{float invol,outvol;public:Amplifier(float vin,float vout){invol=vin;outvol=vout;}float gain();};Amplifier::float gain() { return outvol/invol; }void main(){ Amplifier amp(5.0,10.0);cout<<"\n\nThe gain is =>"<<gain()<<endl;}3.定义盒子Box类,要求具有以下成员:可设置盒子形状;可计算盒子体积;可计算盒子的表面积。
4.定义计数器类Counter。
要求具有以下成员:计数器值;可进行增值和减值记数;可提供记数值。
5.编写一个程序计算两个给定的长方形的周长和面积。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:类和对象
【实验目的】
1.理解对象和类,掌握类的定义及如何创建一个对象;
2.掌握构造方法的运用;
3.掌握方法的定义和参数传递;
4. 掌握类的继承机制。
【实验准备】
一、复习配套教材相关章节的内容;
二、预习本次实验;
【实验内容】
1.编写一个程序,显示水果的定购行情。
定义一个带有参数的构造方法,这些参数用于存放产品名,数量和价格。
在主程序中输出三种不同的水果。
package avage;
public class text {
String name;
int agr;
double page;
public text(){
}
public text(String name,int agr,double page){
=name;
this.agr=agr;
this.page=page;
}
public void evagre(){
System.out.println("水果名为:"+);
System.out.println("水果数量:"+this.agr);
System.out.println("水果单价:"+this.page);
}
}
public class text1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
text s=new text();
="苹果";
s.agr =10;
s.page=1.0;
s.evagre();
text c=new text();
="香蕉";
s.agr =10;
s.page=1.0;
s.evagre();
text d=new text();
="橘子";
s.agr =10;
s.page=1.0;
s.evagre();
2. 编写一个学生类,封装学生的学号、姓名、成绩等信息。
再编写一个主类,
主类中有一个打印学生信息的方法,该方法接受学生类对象为参数,并依次输出学生信息;main( ) 方法中生成学生类对象,并调用打印方法输出学生信息。
package avage;
public class Student {
private String name;
private int classId;
private int avge;
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public int getClassId() {
return classId;
}
public void setClassId(int classId) {
this.classId = classId;
}
public int getAvge() {
return avge;
}
public void setAvge(int avge) {
this.avge = avge;
}
public void studentInfoemation(String name,int classId,int avge){ System.out.println("姓名:"+name);
System.out.println("班级:"+classId);
System.out.println("成绩:"+avge);
}
}
public class text1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Student student = new Student();
student.studentInfoemation("whb", 310111, 80);
3、编写一个程序,用于创建一个名字Employee的父类和两个名为Manager和
Director的子类。
Employee类包含3个属性和一个方法,属性为name,basic和address,方法名为show,用于显示这些属性值。
Manager类有一个名为department 的属性,Director类有一个名为transport的附加属性。
创建Manager和Director 的类并显示其详细信息。
package avage;
public class Employee {
String name;
String basic;
String address;
public void show(){
System.out.println(name);
System.out.println(basic);
System.out.println(address);
}
}
public class Manager extends Employee {
String department;
public void showIf(){
System.out.println(department);
}
}
public class Director extends Employee {
String transport;
public void showf(){
System.out.println(transport);
}
}
Manager manager = new Manager();
="whb";
manager.basic="hhhh";
manager.show();
manager.department="ffff";
manager.showIf();
Director director=new Director();
="haoyun";
director.basic="jjj";
director.show();
director.transport="lll";
director.showf();
4、编写一个程序,用于重写父类Addition中名为add()的方法,该方法没有实质性的操作,仅输出一条信息。
add()方法在NumberAddition类中将两个整数相加,而在TextConcatenation类则连接两个String字符串。
创建主类测试两个子类中的add()方法。
【总结与体会】。