内蒙古科技大学面向对象的程序设计实验4 类和对象(一)
C#实验四类与对象
实训五、在C#中实现面向对象编程一、实训目的:通过本章的学习,主要把握以下内容:•理解C# 的类和对象•使用C# 构造函数和析构函数•使用C# 访问修饰符•使用方法•在C#中使用方法的重写•理解属性及其不同的类型、实现•理解和使用索引器三、实验目的与要求(1)加深理解面向对象编程的概念,如类、对象、实例化等;(2)熟悉掌握类的声明格式,特别是类的成员定义、构造函数、初始化对象等。
(3)数量掌握方法的声明,理解并学会使用方法的参数传递,方法的重载等。
四、实训内容:(1)定义一个描述学生基本情况的类,数据成员包括姓名,学号,C#、英语和数学成绩。
成员函数包括输出数据、置姓名和学号、置三门课的成绩,求出总成绩和平均成绩。
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ClassStudent{class Program{class Student{public string Sname;public string Sno;public int Csharp;public int English;public int Math;public void display(){Console.WriteLine("大䨮家¨°好?!ê?我¨°是º? {0}分¤? ,ê?学¡ì号?是º? {1} ,ê?我¨°的Ì?C#成¨¦绩¡§ {2}分¤? 我¨°的Ì?英®¡é语®?成¨¦绩¡§ {3}分¤? 我¨°的Ì?数ºy学¡ì成¨¦绩¡§ {4}分¤? ", this.Sname, this.Sno, this.Csharp, this.English, this.Math);//this.我¨°自Á?己o的Ì?****}public void GiveSname(string name){this.Sname = name;}public void GiveSno(string Sno){this.Sno = Sno;}public void GiveCsharp(int Csharp){this.Csharp = Csharp;}public void GiveEnglish(int English){this.English = English;}public void GiveMath(int Math){this.Math = Math;}public double Avg(int c, int e, int m){double avg = (c + e + m) / 3.0;return avg;}public double Count(int c, int e, int m){double con = (c + e + m);return con;}}static void Main(string[] args){double a, c;Student s = new Student();Console.WriteLine("姓?名?:êo");String Sname = Console.ReadLine();s.GiveSname(Sname);Console.WriteLine("学¡ì号?:êo");String Sno = Console.ReadLine();s.GiveSno(Sno);Console.WriteLine("C#成¨¦绩¡§:êo");int Csharp = Convert.ToInt16(Console.ReadLine());s.GiveCsharp(Csharp);Console.WriteLine("英®¡é语®?成¨¦绩¡§:êo");int English = Convert.ToInt16(Console.ReadLine());s.GiveEnglish(English);Console.WriteLine("数ºy学¡ì成¨¦绩¡§:êo");int Math = Convert.ToInt16(Console.ReadLine());s.GiveMath(Math);s.display();Console.WriteLine("我¨°的Ì?平?均¨´分¤?是º? {0}分¤? ,ê?我¨°的Ì?总Á¨¹分¤?是º? {1}分¤? ", a = s.Avg(Csharp, English, Math), c = s.Count(Csharp, English, Math));}}}(2)定义一个人员类CPerson,包括数据成员:姓名、编号、性别和用于输入输出的成员函数。
C++语言程序设计实验4(类和对象)
是:用初始对象的每个数据成员的值,初始化将要建立的对象的对应数据成员。
构造函数和拷贝构造函数的声明格式如下:
class 类名
{
public: 类名(形参); 类名(类名 &对象名);
//构造函数 //拷贝构造函数
... ...
}; 类名::类名()
//构造函数的实现
{ 函数体;
} 类名::类名(类名 &对象名)
6. 本章小结
本章主要介绍了面向对象的基本概念、类和对象的声明、构造函数、析构函数、内联成 员函数、拷贝构造函数、类的组合。
类是面向对象程序设计中最重要、最基本的概念,也是学习面向对象方法时遇到的第 1 个难点。类是对逻辑上相关的函数和数据的封装,是对问题的抽象描述。
要理解类与对象,必须要结合实例来学习,读者可以思考:除了书中列出的例子,现实 世 界 中 还 有 哪 些 有 形 或 无 形 的 事 务 可 以 被 抽 象 为 程 序 中 的 类 ,每 个 类 又 存 在 哪 些 对 象( 实 体 )。 这样可以对类的概念了解的快一些。
本章开始的每章的最后有一个实例——人员信息管理程序,这个例子贯穿后续各章,利 用每章介绍的只是不断丰富程序的功能,建议课后仔细阅读、体会,并尝试修改、补充程序 的功能。
另外,本章中还介绍了利用 UML 语言表示类与对象的方法,以后各章还将进一步介绍 用 UML 语言表示类之间的关系,但这远不是 UML 语言的全部,这方面的内容也不是初学者 学习的重点,读者可以不必深究,了解一下就可以了。如果有需要,可以另外学习软件工程 的课程。
面向对象的程序设计目的是:实现软件设计的产业化。主要观点是认为自然界是由实体 (对象)所组成。程序设计的出发点是:使用面向对象的观点来描述模仿并处理现实问题。 他要求:高度概括、分类、抽象。
实验4(类与对象)
void Increment(); //给原值加1
void Decrement(); //给原值减1
int GetValue(); //获取计算结果
void Print(); //输出计算结果
};
*10、定义一个字符串处理类CString,此类具有两个数据成员:字符串的内容(contents)和长度(length),并实现字符串的一系列操作,如显示字符串、计算字符串的长度、给现有字符串后添加字符串、给字符串赋值、查找字符窜中字符和子串等功能。
}
void main()
{
time_t x;
x=time(NULL);
time_data ob(x);
ob.show();
return;
}
9、下面是一个计算器类的定义,请完成该类的实现,并在主函数中实现18、19、20等的加1;减1;显示计算结果。
class Counter{
int value;
public:
class time_data
{
private:
time_t systime;
public:
time_data(time_t t);
void show();
};
time_data::time_data(time_t t)
{
systime=t;
}
void time_data::show()
{
cout<<ctime(&systime)<<endl;
{
cout<<"Price="<<Price<<" "<<"Count"<<Count<<" Total="<<Total<<endl;
C实验报告第四章类与对象
C++实验报告实验4 类与对象一、实验目的1、掌握类的声明和使用2、掌握类的声明和对象的声明3、复习具有不同访问属性的成员的访问方式4、观察构造函数和析构函数的执行过程5、学习类的组合使用方法6、使用DEBUG调试功能观察程序流程,跟踪观察类的构造函数、析构函数、成员函数的执行顺序二、实验任务1、声明一个CPU类,包含等级rank、频率frequency、电压voltage等属性,有两个公有成员函数run、stop。
其中,rank为枚举类型CPU-Rank,声明为enum CPU-Rank{P1=1,P2,P3,P4,P5,P6,P7}, frequency为MHz的整数型,voltage为浮点型的电压值。
观察构造函数好析构函数的调用顺序。
2、声明一个简单的Computer类,有数据成员芯片cpu、内存ram、光驱cdrom 等,有两个公有成员函数run、stop。
cpu为CPU类的一个对象,ram为RAM 类的一个对象,cdrom为CDROM类的一个对象,声明并实现这个类。
3、设计一个用于人事管理的People类。
考虑到通用性,这里只抽象出所有类型人员都具有的属性:number编号、sex性别、birthday出生日期、id身份证号等。
其中出生日期声明为一个日期类内嵌子对象。
用成员函数实现对人员信息的录入和显示。
要求包括:构造函数和析构函数、拷贝构造函数、内嵌成员函数、组合。
三、实验内容任务1:首先声明枚举类型,在这里出现了知识性错误,不清楚具体应如何声明,经查询相关书籍,知道应在类外进行声明。
初次用类来进行编程,在概念上是有一些混乱的,例如构造函数和析构函数的调用顺序等。
在用debug单步调试后,明白其中道理。
源程序:b.c.d.3、执行对象的run()和stop()4、调用析构函数所遇问题:1、枚举类型的定义不知如何书写,不能准确理解枚举的意义,从而,导致开始便出现错误。
2、创建带参数的对象则调用带参数的构造函数,结果清晰明了,不用刻意添加默认构造函数。
C#程序设计基础与实践第4章 类和对象
4.1
类及类的实例
4.2
类的成员
4.3
异常处理
4.4
程序解析
4.5
实验指导
4.1 类及类的实例
C#程序设计的基本单位是类。 类是逻辑上相关的方法与数据的封装, 是待处理问题的描述。 程序中的类可用于抽象地描述具有共同 属性和行为的一类事物,事物的共同属性表 示类中的数据成员,而它们的共同行为表示 类中的方法。
4.2 类的成员
在类的定义中,可有多种成员:字段、构造 函数、析构函数、方法和属性等。 ● 字段是类定义中的数据,可以是变量、常量或 者只读变量。类所模拟的客观事物的各种特征就 是由类定义中的各个字段来分别描述的。 ● 构造函数与类同名,主要用于在以类来创建对 象时,完成字段的初始化工作。
● 析构函数是由内存回收机制自动调用的,主 要用于释放对象所占用的内存。 ● 方法是操作类中数据的代码段。例如,类中 某些字段的输出、计算以及各种各样的其他操 作,都需要编写相应的方法来处理。类所模拟 的客观事物的各种行为就是由类定义中的各个 方法来分别实现的。 ● 属性借助于访问器来读出或写入字段的值, 可以提供修改字段的方法。
2.默认构造函数
每个类中至少要有一个构造函数,如果 在类的声明中没有提供构造函数,则编译器 生成默认的构造函数。 这个构造函数没有任何参数,使用默认 值来初始化对象字段。 数字型初始化成0/0.0,string类型初始 化成null,char类型初始化成'\0'。
3.构造函数的重载
如果同一个类中包含多个这样的方法,它 们的方法名相同但参数不同(参数个数、顺序 不同或某些参数的数据类型不同),则称为方 法重载。 调用这些方法时,C#系统自动按照不同的 参数表来选择合适的方法。
内蒙古科技大学面向对象的程序设计实验4 类和对象(一)
内蒙古科技大学面向对象的程序设计实验报告一、实验目的(1) 掌握声明类的方法,类和类的成员的概念以及定义对象的方法。
(2) 初步掌握用类和对象编制基于对象的程序。
(3) 学习检查和调试基于对象的程序。
二、实验环境编译器:Visual C++ 6.0.操作系统:Windows 7 旗舰版三、实验内容2.1练习(一):1. 新建一个项目。
2. 输入以下程序:#include <iostream>using namespace std;class Time{public: int hour; int minute; int sec;};int main(){Time t1;cin >> t1.hour;cin >> t1.minute;cin >> t1.sec;cout << t1.hour << “:”<< t1.minute << “:” << t1.sec <<endl;return 0;}3. 按要求编写程序,生成后执行,并分析输出的信息。
按要求改写程序:1. 将数据成员改为私有的;2. 将输入输出的功能改为由成员函数实现;3. 在类体内定义成员函数。
4. 编译和运行程序。
请分析什么成员应指定为公用的?什么成员应指定为私有的?什么函数最好放在类中定义?什么函数最好放在类外定义?2.2练习(二):1. 新建一个项目。
2. 在项目中,添加头文件student.h,并输入以下代码。
class Student{public:void display();private:int num; char name[20];char sex;};3. 在项目中,添加源文件student.cpp,包含成员函数定义。
#include <iostream>#include “student.h”void Student::display(){cout << “num:” << num << endl;cout << “name:” << name << endl;cout << “sex:” << sex << endl;}4. 在包含主函数的源文件main.cpp,添加如下代码。
实验四 类和对象
C++面向对象程序设计实验报告格式--------2012.10.25一、实验项目实验三类和对象二、实验目的1、掌握类和对象的基本概念,掌握类和对象的定义方法。
2、掌握类声名和定义的格式,理解类成员的访问权限。
3、掌握类成员的三种访问方式:通过对象访问,通过指向对象的指针访问,通过对象的引用访问。
4、掌握类成员函数的重载,掌握带默认参数的类成员函数定义三、实验内容1、定义Tdate日期类类有三个私有的数据成员:年,月,日类有公有的成员函数,设置日期函数,判定是否为润年的函数,打印日期函数。
在main()主函数中定义类的对象,指向对象的指针,对象的引用,通过三种方式调用个成员函数并分别输出结果。
-----------------------------2、定义Time时间类类有三个私有的数据成员:时,分,秒类有公有的成员函数,打印时间函数,设置时间函数,成员函数带默认参数在main()主函数中定义类的对象,指向对象的指针,对象的引用,通过三种方式调用个成员函数并分别输出结果。
--------------------------------3、定义Point直角坐标系内的点类类有两个私有的数据成员:横坐标和纵坐标类有公有的成员函数,设置坐标植函数(成员函数带默认参数,默认为坐标原点),打印坐标点函数,获取横坐标函数,获取纵坐标函数,定义成员函数实现坐标的移动。
在main()主函数中定义类的对象,指向对象的指针,对象的引用,通过三种方式调用个成员函数并分别输出结果。
----------------------------------四、实验结果分析与体会实验结果1、#include<iostream.h>class Date{public:void setdate(int a,int b,int c){year=a;mouth=b;day=c;}int prn();void print();private:int year,mouth,day;};int Date::prn(){return year%400==0||year%4==0&&year%400!=0; }void Date::print(){cout<<year<<'/'<<mouth<<'/'<<day<<endl;}void main(){Date d1,d2,&rd=d1,*pd=&d2;d1.setdate(2003,1,1);d2.setdate(2012,1,1);cout<<d1.prn()<<','<<d2.prn()<<endl;cout<<rd.prn()<<','<<pd->prn()<<endl;d1.print();rd.print();pd->print();}2、#include<iostream.h>class Date{public:void setdate(int a,int b,int c){year=a;mouth=b;day=c;}Date (int a=0,int b=0,int c=0){year=a;mouth=b;day=c;}void print();private:int year,mouth,day;};void Date::print(){cout<<year<<'-'<<mouth<<'-'<<day<<endl;}void main(){Date d1(2),d2(2,50),d3(2,50,50),&rd=d1,*pd=&d2;d1.setdate(16,54,55);rd.setdate(16,54,55);d2.setdate(23,12,24);pd->setdate(23,12,24);rd.print();d3.print();}3、#include<iostream.h>#include<windows.h>class Point{public:void setpoint(float a=0,float b=0);void print();float getx(){return x;}float gety(){return y;}void yd(int c=0,int d=0);private:float x,y;};void Point::setpoint(float a,float b){x=a;y=b;}void Point::print(){cout<<"x="<<x<<','<<"y="<<y<<endl; }void Point::yd(int c,int d){x+=c;y+=d;}void main(){Point p1,p2,&rp=p1,*p=&p2;p1.setpoint(3);p2.setpoint(3,5);rp.print();p->print();p1.yd(3,8);p->yd(-1,0);rp.print();p->print();}实验体会无。
[实验报告]类和对象
[实验报告]类和对象
一、实验目的
通过本次实验,了解抽象的一种程序设计概念“类”和“对象”,理解类之间的继承与多态性,以及封装对对象的各种属性和行为,实现软件对象模型与真实世界对象间的映射。
二、实验内容
1.定义类与对象
(1)类是代表一类实体的抽象。
它包含了一个共同拥有的结构和行为。
类是面向对象程序设计的基本元素。
(2)对象是一个实例。
它拥有一个特定于其类型的属性,并表现出对应的行为。
对象是程序中实际的可操作的元素。
2.类的成员
(1)类的成员可以是变量,函数,常量等等。
(2)变量:类的成员变量可以存储数据成员和提供给类的方法,这些变量被称为实例变量;类变量存储类及其对象的信息。
(3)函数:类的成员函数用于封装一定的行为或对对象的设置,它可以访问实例变量和类变量的值,以及实现一定的功能。
多态性是指一个类可以根据不同环境要求而采用不同的行为。
接口就是把数据和逻辑封装在一起的内部接口。
实验4对象和类
实验四类与对象的应用实施时间:2010-11-2(周二)实验类型:验证一、实验目的1.掌握面向对象的基本概念和类的定义方法。
2.掌握类成员的访问权限以及访问类成员的方法。
3.掌握构造函数与析构函数的定义及使用方法。
二、预备知识:1.类的声明形式为:class 类名{public:公有数据和函数//允许程序中的所有函数访问private:私有数据和函数//除该类的成员函数外其他函数无法访问protected:受保护数据和函数//允许该类的派生类中的成员函数访问};·完整的类应由类的定义头文件*.hpp和类的实现文件*.cpp构成,这样结构清晰整洁。
·应注意:必须在实现文件*.cpp开始包含头文件*.hpp,此定义才有效。
·通常在类定义中,成员函数仅作声明。
函数定义通常在类的说明之后进行,其格式如下:返回值类型类名::函数名(参数表){……}//函数体“::”称为作用域解析运算符,它指出该函数是属于哪一个类的成员函数。
2.对象:类的对象是该类的某一特定实体,即类类型的变量。
•声明形式:类名对象名;•对象初始化:C++建立和初始化对象的过程专门由该类的构造函数来完成。
3.对象使用规则:只要在对象名后加点操作符,再加上成员数据或成员函数名就可以了。
但是这些成员必须是公有的成员,只有公有成员才能在对象的外面对它进行访问。
4. C++规定:•与类同名的成员函数称为该类的“构造函数(constructor)”。
•构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象初始化为一个特定的状态。
•在对象创建时由系统自动调用。
•如果程序中未声明,则系统自动产生出一个默认形式的构造函数。
但是默认形式的构造函数并不做任何初始化工作,所以在建立该类的对象时不能确保有一个确定的初始状态。
•可重载构造函数以便用各种方法初始化类的对象。
注意:构造函数的名字必须与类名相同,并且在定义构造函数时不能指定返回类型,函数体中也不允许返回值,但可以有无值返回语句“return”。
实验四C#面向对象程序基础
实验四C#面向对象程序基础(一)一、实验目的1.理解C#语言是如何体现面向对象编程基本思想。
2.掌握类对象的定义。
3.了解类的封装方法,以及如何创建类和对象。
4.了解成员变量和成员方法的特性。
5.掌握静态成员的用法。
6.加深理解面向对象编程的概念,如类、对象、实例化等;二、实验要求1. 分析程序,上机验证结果。
2. 写出程序,并调试程序,要给出测试数据和实验结果。
3. 整理上机步骤,总结经验和体会。
4. 完成实验日志和上交程序。
三、作业提交1. 建立以自己名字命名的文件夹,文件夹中包含两个文件夹,名字各为:实验成果,实验流程。
2. 实验成果文件夹中保存实验过程中的解决方案、项目等文件。
3.实验流程中存放撰写实验流程的word文档。
四、实验内容题目一:定义一个圆类,计算圆的面积和周长,并应用该类。
题目二:求n!的值,用递归的方法求n!(n>=0)。
】实验步骤:1)定义递归方法fac,计算整数n的阶乘,方法中需要递归调用自身。
2)在Main方法中读入整数n的值。
3)在Main方法中调用fac方法,求出整数n的阶乘。
4)Main方法中输出计算结果。
题目三:给三个整数排序并求其和及平均值定义一个方法,给三个整数按从小到大的顺序排序并求其和及平均值。
其中,三个待求整数及排序后的结果由引用参数传递;其和由输出参数传递;平均值由返回值返回。
在Main()方法中实现三个待求整数的输入及结果的输出。
实验步骤:1)定义方法Sort,给三个整数按从小到大的顺序排序并求其和及平均值。
其中,三个待求整数及排序后的结果由引用参数传递,其和由输出参数传递,平均值由返回值返回。
2)在Main方法中读入待求的三个正整数。
3)在Main方法中调用方法Sort给三个整数排序并求其总和及平均值。
4)在Main方法中输出结果。
题目四:程序阅读假设某银行共发出M张储蓄卡,每张储蓄卡拥有唯一的卡号,每天每张储蓄卡至多支持储蓄卡持有者的N笔“存款”或“取款”业务。
《面向对象程序设计》实验指导书 (1-6个实验,含参考代码)要点
面向对象程序设计实验指导书(适用:电子信息11级)彭召意陶立新编写计算机与通信学院2014.9目录实验一 C++基础的应用 (1)实验二类和对象的应用 (3)实验三类的构造函数、析构函数的应用 (4)实验四友员和运算符重载 (5)实验五类的继承与派生 (6)实验六类的多态性与虚函数 (7)附录:各实验的程序代码 (8)实验一 C++基础的应用(实验课时:2 实验性质:设计)实验名称: C++基础的应用实验目的: (1)进一步学习VC++6.0开发环境及程序调试方法。
(2)练习C++函数的定义及使用;(3)练习C++数组的定义及使用;(4)练习C++指针的定义及使用;(5)练习C++结构体的定义及使用;(6)练习多文件的程序的编译和运行方法;实验设备:(1)硬件:个人微机(配置不低于:CPU为P4,主频1.6G,内存256MB,硬盘40GB);(2)软件:操作系统为WindowsXP(或2000、server2003等),工具软件为Visual C++6.0。
实验内容: (1)熟悉Visual C++6.0编译系统的常用功能,特别是debug调试功能;(2)编程1:编写一个程序c1.cpp,用来求2个或3个整数的最大数。
要求:用重载函数的方法来求最大数;函数原型:int max( int a, int b) 和int max( int a, int b,int c)。
(3)编程2:编写一个程序c2.cpp,求:a!+ b! + c!的值。
要求:使用递归函数。
主程序和函数分开到两个源程序文件中,分别进行编译后,再运行;(4)编程3:有一个3*4的矩阵,要求编程求出其中值最大的那个元素的值,以及其所在的行号和列号;(5)编程4:建立一个动态链表并进行输出和删除管理。
链表的每个节点为学生信息,包括:学号,姓名,性别,下一学生信息的指针。
程序的工作:(a)建立三个学生信息的节点,然后顺序输出该三个学生信息;(b)删除中间的节点,再顺序输出学生信息。
《面向对象程序设计》实验指导书(新)
《面向对象程序设计》实验指导书(新)《面向对象程序设计》实验指导书一、课程教学与实验教学计划学时比:48/16二、适用专业:信息管理与信息系统三、实验目的基本要求能够充分理解面向对象程序设计的思想和应用方法。
能够使用面向对象编程语言进行相应的程序设计和开发。
理解面向对象的基本思想、概念和特性以及面向对象的分析、建模、设计技术与方法。
掌握C++语言基本构成、类与对象、消息传递与函数、函数与运算符重载、继承性、多态性与虚拟函数、数据封装和隐藏及Windows 程序设计基础。
通过实验动手实践,使学生能够掌握面向对象程序设计的特征和基本思想,以及相应的具体实现和Windows程序设计基础知识。
四、实验内容实验一:循环控制(一)实验目的要求:熟悉VC++集成开发环境,学习使用控制台应用程序;创建工程,建立可执行文件并执行,观察结果。
掌握变量的声明和定义方法,掌握循环语句和条件语句的定义、作用和使用方法。
(二)实验设备:1.服务器;2.交换机;3.计算机。
(三)实验内容:1.编程求1!+2!+3!+4!+…+12!。
2.编程求所有的3位数素数,且该数是对称的。
所谓“对称”是指一个数,倒过来还是该数。
例如,375不是对称数,因为倒过来变成了573。
实验二:递归函数(一)实验目的要求:掌握函数的概念和使用方法,掌握递归函数的概念和使用方法。
(二)实验设备:1.服务器;2.交换机;3.计算机。
(三)实验内容:1.用递归函数来求1!+2!+3!+…+12!。
2.用递归的方法建立一个函数int fibonacci(int n),求Fibonacci数列中第n个数的值。
实验三:用气泡法排序(一)实验目的要求:掌握文件读写的方法,掌握递归函数的概念和使用方法。
(二)实验设备:1.服务器;2.交换机;3.计算机。
(三)实验内容:建立一个文件,文件中包含一系列数,用这些数构成一个数组,并按照数值,为这个数组从小到大排序,把排序结果输出到另一个文件中。
C++程序设计实验报告-类与对象
private: CPU_rank rank; int frequency; float voltage;
public: CPU (CPU_rank r,int f,float v) { rank=r; frequency=f; voltage=v; cout<<"构造了一个 cpu!"<<endl; } ~CPU(){ cout<<"析构了一个 cpu!"<<endl;} CPU_rank getrank() const{ return rank;} void setrank(CPU_rank r){ rank=r;} void run(){cout<<"cpu 开始运行!"<<endl;} void stop(){cout<<"cpu 停止运行!"<<endl;}
private: CPU_Rank rank; int frequency;
float voltage; public:
CPU(CPU_Rank r,int f,float v) {
rank=r; frequency=f; voltage=v; cout<<"构造了一个 CPU!"<<endl; } ~CPU() { cout<<"析构了一个 CPU!"<<endl; } CPU_Rank GetRank() const { return rank; } int GetFrequency() const { return frequency; } float GetVoltage() const { return voltage; } void SetRank(CPU_Rank r) { rank=r; } void SetFrequency(int f) { frequency=f; } void Setvoltage(float v) { voltage=v; } void Run(){ cout<<"CPU 开始运行!"<<endl; } void Stop(){ cout<<"CPU 停止运行!"<<endl; } }; int main() { CPU a(P6,300,2.8); a.Run(); a.Stop(); return 0; } 运行结果:
面向对象程序设计实验目的及内容
5个实验选3个填入实验报告实验名称:类和对象实验目的:1.掌握类的定义和使用方法,掌握类对象的声明和使用方法。
2.掌握对象的初始化和赋值的方法。
3.了解成员函数的特性、友元。
4.静态成员的使用方法。
5.理解和掌握this指针的用法。
6.理解和掌握const类型数据的使用。
实验内容:定义一个描述学生(Student)基本情况的类,数据成员包括姓名(name)、学号(num)、数学成绩(mathScore)、英语成绩(englishScore)、人数(count)、数学总成绩(mathTotalScore)和英语总成绩(englishTotalScore)。
其中姓名定义为长度为18的字符数组,其它数据成员类型为整型,数学总成绩、英语总成绩和人数为静态数据成员,函数成员包括构造函数、显示基本数据函数(ShowBase)和显示静态数据函数(ShowStatic),其中构造函数由已知参数姓名(nm)、学号(nu)、数学成绩(math)和英语成绩(english)构造对象,显示基本数据函数用于显示学生的姓名、学号、数学成绩、英语成绩,显示静态数据函数为静态成员函数,用于显示人数,数学总成绩,英语总成绩;要求所有数据成员为private访问权限,所有成员函数为public访问权限,在主函数中定义若干个学生对象,分别显示学生基本信息,以及显示学生人数,数学总成绩与英语总成绩。
实验名称:继承与派生实验目的:1.熟练掌握类的继承,能够定义和使用类的继承关系。
2.掌握派生类的声明与实现方法。
3.掌握类构造函数的初始化列表与作用域分辨符的使用方法。
4.理解虚基类在解决二义性问题中的作用。
实验内容:定义Staff(员工)类,由Staff分别派生出Saleman(销售员)类和Manager(经理)类,再由Saleman(销售员)类和Manager(经理)类采用多重继承方式派生出新类SaleManager (销售经理)类,各类之间的继承关系如图1.2所示。
面向对象程序设计实验报告
面向对象程序设计实验报告面向对象程序设计实验报告一、引言面向对象程序设计(Object-Oriented Programming,简称OOP)是一种广泛应用于软件开发的编程范式。
本实验旨在通过实践,加深对面向对象程序设计的理解,并掌握其基本概念和技巧。
二、实验目的1. 理解面向对象程序设计的基本概念和思想;2. 掌握类、对象、继承、封装、多态等面向对象的核心概念;3. 运用面向对象的思想设计和实现一个简单的程序。
三、实验过程1. 设计类和对象在本次实验中,我们选择实现一个简单的学生管理系统。
首先,我们需要设计一个学生类(Student),包括学生的姓名、年龄、学号等属性,并定义相关的方法,如获取学生信息、修改学生信息等。
然后,我们创建多个学生对象,模拟学生管理系统中的多个学生。
2. 继承和多态为了进一步理解继承和多态的概念,我们可以设计一个教师类(Teacher),继承自学生类。
教师类除了继承学生类的属性和方法外,还可以定义自己特有的属性和方法。
通过创建教师对象,我们可以看到继承和多态的效果。
3. 封装和访问控制在面向对象程序设计中,封装是一个重要的概念。
我们可以将学生类的属性设置为私有(private),并通过公有(public)的方法来访问和修改属性。
这样做的好处是可以保护属性的安全性,同时提供统一的接口供外部使用。
四、实验结果通过实验,我们成功地实现了一个简单的学生管理系统。
我们可以创建学生对象,并通过调用相关方法来获取和修改学生的信息。
同时,我们还实现了教师类,通过继承和多态的特性,我们可以灵活地使用学生和教师对象。
五、实验总结通过本次实验,我们深入了解了面向对象程序设计的基本概念和思想。
通过设计和实现一个简单的程序,我们掌握了类、对象、继承、封装、多态等核心概念,并学会了如何运用这些概念来设计和实现面向对象的程序。
面向对象程序设计具有很多优点,如代码的可重用性、可维护性、可扩展性等。
通过合理地设计类和对象,我们可以更好地组织和管理代码,提高开发效率和代码质量。
内蒙古科技大学面向对象的程序设计实验2C++程序设计初步
内蒙古科技大学面向对象的程序设计实验2C++程序设计初步内蒙古科技大学面向对象的程序设计实验报告一、实验目的1) 掌握简单的C++程序的编写和调试方法。
2) 掌握C++程序中使用最多的语句——赋值语句和输入输出的使用方法。
3) 掌握结构化程序的3种基本结构(顺序结构、选择结构、循环结构)在C++中的实现。
二、实验环境编译器:Visual C++ 6.0.操作系统:Windows 7 旗舰版三、实验内容一、实验目的1. 掌握简单的C++程序的编写和调试方法。
2. 掌握C++程序中使用最多的语句——赋值语句和输入输出的使用方法。
3. 掌握结构化程序的3种基本结构(顺序结构、选择结构、循环结构)在C++中的实现。
二、实验内容2.1 练习(一):1. 新建一个项目。
2. 一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如,6的因子为1,2,3,而6=1+2+3,因此6是“完数”。
编程序找出1000之内的所有完数,并按下面格式输出其因子:6,its factors are 1,2,33. 按要求编写程序,生成后执行,并分析输出的信息。
2.2练习(二):1. 新建一个项目。
2. 要求输出以下图案*************************3. 生成后执行程序,查看输出的图像是否与要求的相符合。
2.3练习(三):1. 新建一个项目。
2. 两个乒乓球队进行比赛,各出3人.甲队为A, B, C 3人,乙队为X, Y, Z 3人.已抽签决定比赛名单。
有人向队员打听比赛的名单, A说他不和X比, C说他不和X, Z比, 请编程序找出3对赛手的名单。
3. 按要求编写程序,生成后执行,并分析输出的信息。
提示:需要读者注意程序的输出格式。
例如本程序的输出格式为:A--Z B--X C--Y。
7. 单步调试。
在“调试”菜单中选择“逐过程”,会执行黄色箭头当前指向的代码行,并将黄色箭头指向下一个要执行的代码行“sum = a + b”。
实验四 类和对象(二)
课程名称:面向对象程序设计实验内容:实验四类和对象(二)学院:专业班级:姓名:学号:指导教师:实验日期:实验地点:一、实验目的1、掌握对象数组及对象指针的定义与使用方法。
2、掌握静态成员的使用。
3、了解this指针的工作方式。
4、理解友元与友元函数的作用,掌握其使用方法。
二、实验步骤1、编写一个程序,已有若干学生的数据,包括学号、姓名、成绩,要求输出这些学生的数据并计算出学生总人数和平均成绩(要求将学生人数和总成绩用静态数据成员表示,使用一个静态成员函数aver()返回平均成绩)。
程序如下:写出实验步骤、调试记录和实验结果:2、建立一个对象数组,内放5个学生类的数据(包括学号、姓名、成绩),设置一个友元函数max,用对象的引用作函数的参数,在max函数中找出5个学生中成绩最高者,并输出其学号、姓名和成绩。
程序如下:写出实验步骤、调试记录和实验结果:3、定义一个日期类Date,包括year,month,day,并设置构造函数实现数据成员的初始化,以及show()函数实现日期的输出。
定义人员类Person,包括姓名name,性别sex以及出生日期birthday,其中birthday是Date类的对象成员,定义人员类的成员函数包括:构造函数,完成人员信息输出的函数show(),用于计算人员年龄的函数age()。
并在主函数进行测试。
程序如下:写出实验步骤、调试记录和实验结果:三、分析与总结写出实验后的学习体会。
这次实验使我们基本掌握了对象数组及对象指针的定义与使用方法,知道了静态成员的使用,了解this指针的工作方式,同时也理解了友元与友元函数的作用,掌握其使用方法。
这次实验中定义的类和成员函数都较多,同时也考验了我们的细致和耐心。
多多的实践才能对我们的学习有所帮助。
四、教师评阅意见签名:日期:。
《C++面向对象程序设计》_第4章 类和对象
《面向对象程序设计》, 潘欣裕,苏州科技大学
• 关键字class与struct的不同:class中,成员缺省情况是private。 struct中,成员缺省情况是public。要使类真正成为一个封装体, 成为易用的面向对象程序的基本构件,则须在其成员上施加适当 的访问控制。施加访问控制的原则是:暴露接口隐藏细节。
《面向对象程序设计》, 潘欣裕,苏州科技大学
• 从上面的程序可以看出,当需求发生变化的时候,对
程序的修改还是比较大的,这也就是说程序的可扩展
性不好。一个扩展性好的程序,应该以尽可能少的修 改来适应需求的变化。下面我们将年、月、日等数据
封装在一起,通过结构体来实现前面的例子。
《面向对象程序设计》, 潘欣裕,苏州科技大学
• C++的关键字private用于隐藏(hide)类的数据成员和成员函数。 • C++的关键字public用于暴露(expose)类的数据成员和成员函数。 • C++还有一个关键字protected,被声明为protected的成员,对于类 外来说,它作用和private类似,该成员会被隐藏,类外是不能访 问的。但是,对于该类的派生类来说,它和private成员就不同了。 在派生类中不能访问基类的private成员,但可以访问基类的 protected成员。通常一个类中若有protected成员,这就意味着该类 要当做基类来用,否则是没必要声明为protected,声明为private就 行了。
4.7 指向类的成员的指针 4.8 成员对象和封闭类 4.9 常成员和常对象 4.10 引用成员 4.11 友元 4.12 局部类和嵌套类 4.13 C语言实现类的封装
《面向对象程序设计》, 潘欣裕,苏州科技大学
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内蒙古科技大学面向对象的程序设计实验报告一、实验目的(1) 掌握声明类的方法,类和类的成员的概念以及定义对象的方法。
(2) 初步掌握用类和对象编制基于对象的程序。
(3) 学习检查和调试基于对象的程序。
二、实验环境编译器:Visual C++ 6.0.操作系统:Windows 7 旗舰版三、实验内容2.1练习(一):1. 新建一个项目。
2. 输入以下程序:#include <iostream>using namespace std;class Time{public: int hour; int minute; int sec;};int main(){Time t1;cin >> t1.hour;cin >> t1.minute;cin >> t1.sec;cout << t1.hour << “:”<< t1.minute << “:” << t1.sec <<endl;return 0;}3. 按要求编写程序,生成后执行,并分析输出的信息。
按要求改写程序:1. 将数据成员改为私有的;2. 将输入输出的功能改为由成员函数实现;3. 在类体内定义成员函数。
4. 编译和运行程序。
请分析什么成员应指定为公用的?什么成员应指定为私有的?什么函数最好放在类中定义?什么函数最好放在类外定义?2.2练习(二):1. 新建一个项目。
2. 在项目中,添加头文件student.h,并输入以下代码。
class Student{public:void display();private:int num; char name[20];char sex;};3. 在项目中,添加源文件student.cpp,包含成员函数定义。
#include <iostream>#include “student.h”void Student::display(){cout << “num:” << num << endl;cout << “name:” << name << endl;cout << “sex:” << sex << endl;}4. 在包含主函数的源文件main.cpp,添加如下代码。
#include <iostream>#include “student.h”int main(){Student stud;stud.display();return 0;}5. 请完善该程序,在类中添加一个对数据成员赋初值的成员函数set_value。
6. 按要求编写程序,生成后执行,并分析输出的信息。
2.3练习(三):1. 新建一个项目。
2. 需要求3个长方柱的体积,请编写一个基于对象的程序。
数据成员包括length(长)、width(宽)、height(高)。
要求用成员函数实现以下功能:1) 由键盘分别输入3个长方柱的长、宽、高;2) 计算长方柱的体积;3) 输出3个长方柱的体积。
3. 按要求编写程序,生成后执行,并分析输出的信息。
四、实验过程练习1实验代码如下:运行结果如下:运行结果无误,已将源代码中的函数功能包含至成员函数练习2工作区如下文件分别如下main.cppstudent.cppstudent.h运行结果如下练习3实验代码如下:运行结果如下五、实验总结实验源代码:练习(4.1)#include <iostream>using namespace std;class Time{private:int hour; int minute; int sec;public:Time(int h=0,int m=0,int s=0){hour=h;minute=m;sec=s;cout<<"构造函数已调用;"<<endl;}~Time(){cout<<"析构函数已调用;"<<endl;}void display(){cout << hour <<":"<< minute <<":" << sec <<endl;}void Set_value(){cout<<"输入创建对象的数据信息:依次输入hour,minute,sec"<<endl;cin>>hour>>minute>>sec;}};int main(){Time t1;t1.Set_value();t1.display();return 0;}练习(4.2)Student.hclass Student{public:Student(int n=0,char *na="noname",char s=’M’){cout<<"调用构造函数"<<endl;num=n;strcpy(name,na);sex=s;}void set_value();void display();private:int num;char name[20];char sex;};Student.cpp#include <iostream.h>#include <string.h>#include "student.h"void Student::display(){cout << "调用成员函数display"<<endl;cout << "num:" << num << endl;cout << "name:"<< name << endl;cout << "sex:" <<((sex==’M’||sex==’m’) ? "Man":"Woman")<< endl; }void Student::set_value(){cout << "调用成员函数set_value"<<endl;cout<<"请依次输入num,name,sex:"<<endl;cin>>num>>name>>sex;}Main.h#include <iostream.h>#include <string.h>#include "student.h"int main(){Student stud;stud.set_value();stud.display();return 0;}练习(4.3)#include<iostream.h>#include<string.h>class Cuboid{int length;int width;int height;public:Cuboid(int l=0,int w=0,int h=0){length=l;width=w;height=h;}void SetData();void volume();};void Cuboid::SetData(){cout<<"请输入长方体的长,宽,高:"<<endl;cin>>length>>width>>height;}void Cuboid::volume(){int volume;volume=length*width*height;cout<<"体积为"<<volume<<endl;}void main(){Cuboid C1,C2,C3;C1.SetData();C1.volume();C2.SetData();C2.volume();C3.SetData();C3.volume();}六、参考文献参考的资料:C++面向对象程序设计。