面向对象程序设计实验报告
面向对象程序设计C++实验报告书1

//取得计数器值 //给原值加 1 //给原值减 1
//显示计数
int main() {
Counter c; cout<<"number="; c.getvalue(); c.increment(); cout<<"increment="; c.print(); c.decrement(); cout<<"decrement="; c.print(); return 0; }
cout<<"给定的日期不正确,将以默认值初始化!"<<endl; setDate(1900,1,1); return ; } year=yr; month=mo; day=dy; } int Date::getDay(){ return day; } int Date::getMonth(){ return month; } int Date::getYear(){ return year; } void Date::print(){ cout<<year<<"年"<<month<<"月"<<day<<"日"<<endl; } bool Date::isLeapYear(){ if((year%4==0&&year%100!=0)||(year%400==0))return true; else return false; } int Date::monthDays(){
date.print(); //system("pause"); return 0; } 四、上机结果及分析 1、
《 面向对象程序设计》课程设计实验报告

《面向对象程序设计》课程设计实验报告指导教师小组成员:专业班级: 2010级计算机科学与技术专业开设时间:2011-2012(一)目录1.任务1 (2)1.1 任务介绍 (2)1.2 小组成员任务分配 (2)1.3.1设计思想及主要流程图 (2)1.3.1主要程序清单 (2)1.3.1 运行结果及分析 (4)1.3.2设计思想及主要流程图 (2)1.3.2主要程序清单 (2)1.3.2 运行结果及分析 (4)1.3.3设计思想及主要流程图 (2)1.3.3主要程序清单 (2)1.3.3 运行结果及分析 (4)2.任务2 (2)2.1 任务介绍 (2)2.2 小组成员任务分配 (2)2.3设计思想及主要流程图 (2)2.3主要程序清单 (2)2.3 运行结果及分析 (4)3收获、体会和建议 (4)任务1.按照要求设计类 1.根据输出设计类设计类就是根据数据封装的要求,抽象出适合的类。
有如下测试程序和测试程序的输出结果,要求设计类Welcome 。
void main() { Welcome we; Welcome you(we); you.Display();you.Set(“Thank you.”);cout<<you.Get()<<endl; you.talk(); you.Display();}测试程序的输出结果如右: 设计类Welcome 的原则 1)在头文件Cpp1.h 中声明类 2)在Cpp1.cpp 中实现类3)使用内联函数定义Display()函数2.使用类改写程序编写一个求方程02=++c bx ax 的根的程序,用三个函数分别求当ac b 42+大于零、等于零和小于零时方程的根。
要求从主函数输入a 、b 、c 的值并输出结果。
使用面向过程的解法一般是把变量设为double 型,适用库函数cmath 进行计算。
请注意:使用面向对象的方法解决这个问题,首先要从解一元二次方程出发,抽象一个代表一元二次方程的类。
面向对象程序设计课程实验报告

void print(const STACK*const p)
入口参数:无
出口参数:无
功能:打印p指向的栈元素
void destroySTACK(STACK*const p)
入口参数:
出口参数:
功能:销毁p指向的栈,释放
3。软件开发
在Codeblocks编译环境下,使用C++语言编写。
4。软件测试
测试结果见图1.3
图1。3
5。特点与不足
5。1技术特点
完成了实验的所有要求,没有错误的地方。
5.2不足和改进的建议
没有做人机交互界面,无法自由选择入栈的数据;同时注释较少,对于程序不了解的人可能需要花费更多时间去了解。
6。过程和体会
6。1遇到的主要问题和解决方法
输出结果数字与预计不同,检查后发现原因是变量初始值未设置.
void print(const STACK*const p);//打印p指向的栈元素
void destroySTACK(STACK*const p);//销毁p指向的栈,释放
1.2需求分析
本实验需要实现栈的功能的操作,如元素的进栈,连续进栈,出栈和连续出栈,所以需要设计两个栈,在完成初始化后直接在程序里给定栈内元素。
pop(pop(s2,y),z);
printf(”x= %d, y= %d, z= %d \n",x,y,z);
destroySTACK(s2);
destroySTACK(s1);
getchar();
return 0;
}
void initSTACK(STACK *const p, int m)//初始化p指向的栈:最多m个元素
面向对象程序设计实验报告

综合实验报告面向对象程序设计专业名称:班级:___姓名:学号:信息科学与工程学院二零一三年七月目录第一题 01.1题目概述 01.2设计思路 01.3设计说明与调试分析 (1)1.4编码实现 (1)1.5程序运行结果 (3)第二题 (3)2.1题目概述 (3)2.2设计思路 (4)2.3设计说明与调试分析 (4)2.4编码实现 (4)2.5程序运行结果 (6)设计心得: (6)参考文献: (6)第一题1.1题目概述用抽象类设计计算二维平面图形面积的程序,在基类TDshape中设计纯虚函数area()和printName(),area()用于计算机几何图形的面积,printName()用于打印输出几何图形的类名,如Triangle类的对象就打印输出“Triangle”。
每个具体形状的类则从抽象类TDshape 派生,各自需要定义其独有的数据成员和成员函数,并且定义area()和printName()的具体实现代码,如图5-9所示。
要求编写以TDshape为接口的函数,借以访问具体类如Triangle和Rectangle类的成员函数area(),printName()。
1.2设计思路用虚构函数写出基类TDshape,之后创建派生类Trangle、Rectangle,每个派生类都定义double width,height,之后定义area(),printName,每个里面都有cout函数,同时每个派生类都有set和get函数,分别用来给width,height赋值和返回width,height的数值。
1.3设计说明与调试分析见代码。
1.4编码实现#include<iostream>using namespace std;class TDshape{public:virtual void area()=0;virtual void printName()=0;};class Triangle:public TDshape{ //公有继承TDshapeprivate:double width,height; //定义私有成员width,height public:void setWidth(double w){width=w; //赋值给width}void setHeight(double h){height=h; //赋值给height}double getWidth(){return width; //返回width的值}double getHeight(){return height; //返回height的值}void printName(){cout<<"该图形是三角形。
面向对象程序设计实验报告1

实验一
实验名称:实验一Visual C++环境
实验目的:
⒈熟悉VC++的集成开发环境,学习运行一个C++程序的步骤。
y=fun(x);
if(y==0)
cout<<"they input num is sushu"<<endl;
else
cout<<"they input num is not sushu"<iostream.h>
#include<math.h>
float fun(float a,float b,float c,float d)
return 0;
3. #include<iostream.h>
void main()
{inta,b,c,d,e;
double score;
a=b=c=d=0;
cin>>score;
while(score>=0)
{
if(score>=90)
a++;
else
if(score>=80)
b++;
else
if(score>=70)
do{
*p=*(--p);
}while( p>s+n);
(*p)=c;
}
return s;
}
int main()
面向对象程序设计实验报告

.,面向对象程序设计实验报告班级:计算机科学与技术11-5学号:0505(姓名:高冉冉日期:2012/7/2\题目3:1.问题描述:假设有图书类Book,包括书名、出版社名称、作者姓名、图书定价等数据成员。
编程序完成Book类的设计,从键盘读入10本图书的各项数据,并将这10本图书的相关数据写入磁盘文件中,然后从中读出各图书数据,计算所有图书的总价值,并显示每本图书的详细信息,每本图书的信息显示在一行上。
2.实现代码:#include <iostream>·#include<fstream>#include<iomanip>#include<>using namespace std;class Book{private:char bookName[20];etPrice();-ioFile<<book[i];}();("G: \\ ",ios::in|ios::binary);cout<<endl<<endl;cout<<" --------下面是10本书的信息--------"<<endl<<endl;cout<<setiosflags(ios::left)<<setw(20)<<"书名"<<setw(20)<<"出版社"<<setw(20)<<"作者"<<setw(10)<<"定价"<<endl;for(i=0;i<10;i++) //从文件中读入书的信息并输出\{ioFile>>book[i];cout<<book[i];}cout<<endl<<"所有图书的总价值是:"<<sum<<endl;();return 0;}3.程序测试(运行结果):4.总结:通过这个题目,我对文件的读入、写入加深了了解。
《面向对象程序设计基础R》实验指导和实验报告(2017年)
实验报告 实践报告□课程名称:面向对象程序设计基础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;}。
面向对象程序设计实验报告
面向对象程序设计实验报告实验报告(1)2015.6【实验作者】学号:姓名:班级:教学站:【实验名称】实验一:熟悉C++程序的风格和C++程序的上机全过程【实验目的】1.熟悉C++程序的风格,熟悉实验环境。
2.练习C++程序的输入、修改、编译、连接与运行的全过程。
3.本实验有4个程序【实验内容】1. 习题2.2下面是一个C程序,改写它,使它采用C++风格的I/O语句。
(1)该程序做什么工作?输入两个整数,求两个整数的大于1 的最小公约数[(另外请教下毛老师:如果最小公约数与最小数相等时,我觉得也有可能这个数是两个数的大于1 的最小公约数)即7与14的公约数为1,7按题意的话,要大于1,那么7也是这两个数的最小公约数,但程序不认为它们具有公约数]。
(2)该程序中那几个数是由键盘输入的?那几个数是输出的?那几个数是临时变量?a与b 由键盘输入;d 是输出的;a,b,d,min 都是临时变量。
(3)用C++风格的I/O语句是什么?#include <iostream.h> cout<<与cin>>(4)写出该程序的算法(用流程图表示)框图1:(5)该程序你有否上机编译、连接、运行通过。
有上机编译连接并运行通过,但有些疑问!2. 习题 2.20分析下面程序的输出结果:(1)该程序做什么工作?利用引用函数改变一个变量的值。
(2)该程序有几个函数?其中f函数是什么函数?其功能是什么?一个函数,F函数是一个引用返回值的函数,并且该函数参数也为一个引用,函数功能是送入一个对变量引用,将变量+10后送回。
成为对返回值的引用。
(3)写出该程序的算法(用流程图表示)框图2:(4)该程序你有否上机编译、连接、运行通过。
该程序有上机编译并连接运行通过。
3. 习题2.23 建立一个被称为sroot( )的函数,返回其参数的二次根。
重载sroot( )三次,让它分别返回整数、长整数与双精度数的二次根(为了实际计算二次根,可以使用标准库函数sqrt( ))。
面向对象程序设计实验报告
面向对象程序设计实验报告题目1:1.问题描述:建立一个二维坐标系的类TwoCoor,用x、y表示坐标值,实现两坐标点的加、减运算,计算两坐标点间的距离,并重载输入/输出坐标点的坐标值。
2.实现代码:#include<iostream>#include<math.h>using std::ostream;using std::istream;using namespace std;class TwoCoor{private:double x,y; //x,y分别为横纵坐标 public:TwoCoor(double x1=0,double y1=0):x(x1),y(y1){}TwoCoor sum(TwoCoor &a1,TwoCoor &a2)//实现两坐标的加运算 {TwoCoor c;c.x=a1.x+a2.x;c.y=a1.y+a2.y;return c;}TwoCoor subtract(TwoCoor &a1,TwoCoor &a2)//实现两坐标的减运算 {TwoCoor c;c.x=a1.x-a2.x;c.y=a1.y-a2.y;return c;}double distance(TwoCoor &a1,TwoCoor &a2)//计算两坐标的距离 {double d; //距离为dd=sqrt((a1.x-a2.x)*(a1.x-a2.x)+(a1.y-a2.y)*(a1.y-a2.y));return d;}friend ostream &operator<<(ostream &os,TwoCoor &a);friend istream &operator>>(istream &is,TwoCoor &a);};ostream &operator<<(ostream &os,TwoCoor &a){os<<"("<<a.x<<","<<a.y<<")"<<endl;return os;}istream &operator>>(istream &is,TwoCoor &a){is>>a.x>>a.y;return is;}int main(){TwoCoor a,b; //定义TwoCoor类的对象a,b cout<<"-------下面请输入数据-------"<<endl<<endl;cout<<"请分别输入TwoCoor类对象a的坐标值x,y"<<endl; cin>>a;cout<<"请分别输入TwoCoor类对象b的坐标值x,y"<<endl; cin>>b;cout<<endl<<"-------下面输出数据-------"<<endl<<endl; cout<<"a的坐标为:";cout<<a;cout<<"b的坐标为:";cout<<b;cout<<"a+b为:";TwoCoor c=a.sum(a,b);cout<<c;cout<<"a-b为:";TwoCoor d=a.subtract(a,b);cout<<d;cout<<"a点与b点的距离为:";cout<<a.distance(a,b)<<endl;return 0;}。
面向对象程序设计综合性实验报告
面向对象程序设计实验报告实验题目:成绩分析程序专业年级:姓名:学号:一、设计思路打开程序后,生成一个JFrame窗口,在用户选择打开成绩单(文本文件成绩单或者对象文件成绩单)后,在JFrame生成一系列统计数据,包括基本的数据统计、柱形通体图、扇形统计图以及成绩表格。
选择清除数据后程序恢复初始状态。
二、窗口布局(备注:以下的显示效果字体均设置为“迷你简丫丫”)程序主窗口内容面板主窗口的布局为边界布局,北部为菜单栏,南部为状态栏(JPanel,用于显示打开的文件以及显示人数),中部为内容显示面板(Content.java,在未打开文件时只含一个JLabel用来显示程序名,打开文件后JLabel会被移除)。
内容面板(Content.java)如上图所示,为边界布局,右边面板显示成绩表格以及搜索栏,左边面板显示成绩的统计结果。
左边面板左边面板为边界布局,上部分为JPanel,用于显示统计内容,为卡片布局,含有3个面板,一个面板显示数据分析,一个面板显示柱形统计图,一个面板显示扇形统计图。
下部分为添加了3个按钮,用于卡片布局面板的切换。
右边面板右边面板为JPanel,布局为边界布局,上部分为输入框,为JPanel,下部分用于显示成绩表格,为滚动面板。
三、关键功能实现1、主窗体主窗体(实现代码MainFrame.java)通过JFrame设置setUndecorated()为false不显示边框。
主窗体不显示边框的同时,关闭按钮以及拖动功能也变得无法实现,于是在主窗体的右上角添加关闭按钮,点击关闭按钮实现了程序退出的功能。
在主窗体添加鼠标事件,实现鼠标点击主窗体的任意位置实现主窗体的拖动功能。
主窗体添加了背景以及程序图标。
背景以JLabel的方式添加,JLabel 放置在最底层,避免覆盖其他面板。
2、菜单栏菜单栏放置在主窗体的北部,含有文件和帮助两个菜单,文件菜单包含打开文本文件、另存为文本文件、打开对象文件、另存为对象文件、清除数据以及退出菜单项,帮助包含说明和关于菜单项。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计实验报告实验一C++基础1.1实验目的1.了解并熟悉开发环境,学会调试程序;2.熟悉C++中简单的标准输入输出函数的使用方法;3.理解const修饰符的作用并学会应用;4.理解内联函数的优缺点并学会其使用场合;5.理解并学会函数重载;6.理解并熟练掌握使用new和delete来分配内存;7.理解并熟练掌握引用的使用方法。
1.2实验内容1.2.1程序阅读1.理解下面的程序并运行,然后回答问题。
#include<iostream.h>int max_def(int x,int y){return(x>y?x:y);}int max_def(int x,int y,int z){int temp=0;return(temp=(x>y?x:y))>z?temp:z;}double max_def(double x,double y){return(x>y?x:y);}int main(){int x1=0;int x2=0;double d1=0.0;double d2=0.0;x1=max_def(5,6);x2=max_def(2,3,4);d1=max_def(2.1,5.6);d2=max_def(12.3,3.4,7.8);-------------------------------------------------------①cout<<"x1="<<x1<<endl;cout<<"x2="<<x2<<endl;cout<<"d1="<<d1<<endl;cout<<"d2="<<d2<<endl;--------------------------------------------------------②return 1;}问题一:上述程序的输出结果是什么?答:输出结果为问题二:①处调用的是哪个函数?答:①处调用的是double max_def(double x,double y)函数问题三:②处的输出结果为什么是d2=12,而不是d2=12.3?答:因为调用的int max_def(int x,int y,int z)函数返回值为整型。
2.理解下面的程序并运行,然后回答问题。
#include<iostream.h>int main(){int*p1=new int;------------------------------------------------------①int*p2=new int(0);-------------------------------------------------------②char*p3=new char[10];----------------------------------------------------③return 1;}问题一:①、②、③处动态申请内存分别代表什么意思?答:①处:定义一个整型指针动态分配一个整型空间将首地址赋给p1;②处:定义一个整型指针动态分配一个整型空间,并赋值为0;③处:定义一个字符型指针动态分配具有10个数组元素的字符数组空间,将首地址赋给p3。
问题二:该程序存在什么不合理的地方?答:程序结束时没有释放分配的存储空间。
3. 理解下面的程序并运行,然后回答问题。
#include<iostream.h>void swap(int a,int b){int temp=a;a=b;b=temp;}void swap(int*a,int*b){int temp=*a;*a=*b;*b=temp;}int main(){int i=5;int j=10;cout<<"Before swap:i="<<i<<",j="<<j<<endl;swap(i,j);cout<<"After the first swap:i="<<i<<",j="<<j<<endl;swap(&i,&j);cout<<"After the second swap:i="<<i<<",j="<<j<<endl;return 1;}问题一:输出结果是什么?答:问题二:①处函数调用不能实现两个数的交换,而②可以,原因是什么?答:①处调用的函数形参为整型变量,是值传递,形参的改变不影响实参;②处调用的函数形参为指针,是址传递,形参的改变会导致实参的改变。
问题三:②处调用的是哪个函数?答:调用的函数是void swap(int*a,int*b)。
实验二类和对象——类的构建2.1 实验目的1.类的定义;2.类对象的使用;3.类成员变量的定义和使用;4.类成员函数的定义和使用;5.理解类的作用域;6.理解类的声明;7.理解类中成员的访问属性;2.2 实验内容2.2.1程序阅读1. 理解下面的程序并运行,然后回答后面的问题。
#include<iostream.h>class CDate{public:void Set(int m,int d,int y){month=m;day=d;year=y;}int IsLeapYear(){return (year%4==0 && year%100!=0)||(year%400==0);}void Print(){cout<<month<<"/"<<day<<"/"<<year<<endl;}private:int month;int day;int year;};void main(){CDate a;a.Set(10,15,2007);a.Print();}问题一:以上程序为什么不能通过编译?如何改正?答:因为Set函数被设为私有main函数中无法调用,应在set函数前加public。
问题二:类中的成员函数和成员变量分别属于哪种访问权限?答:数据成员为私有,Print为公有;set原为私有,改正后为公有。
问题三:①处语句的意思是什么?答:将类定义一个对象a。
2.理解下面的程序并运行,然后回答问题。
. #include<iostream.h>int month;//全局变量int day;int year;void Set(int m,int d,int y){::month=m;::day=d;::year=y;}class CDate{public:void Set(int m,int d,int y){::Set(m,d,y);}void Print(){cout<<month<<"/"<<day<<"/"<<year<<endl;}private:int month;int day;int year;};void main(){CDate a;a.Set(10,15,2007);a.Print();}问题一:①处是在给成员变量赋值还是全局变量赋值,如果去掉域作用符::,程序是否还能正确运行?答:全局变量,不能。
问题二:②处调用的哪个函数,如果去掉域作用符::,程序是否还能正确运行?答:调用全局set函数;不能。
问题三:程序的输出结果是?答:实验三类和对象——构造函数与析构函数3.1实验目的1.理解this指针的作用和用法;2.掌握构造函数的定义和作用;3.掌握构造函数的使用;4.掌握拷贝构造函数的定义和使用;5.掌握构造函数的重载;6.掌握析构函数的定义和使用。
3.2实验内容3.2.1程序阅读1.理解下面的程序并运行,然后回答问题。
#include<iostream.h>class CPoint{public:void Set(int x,int y);void Print();private:int x;int y;};void CPoint::Set(int x,int y){x=x;y=y;}void CPoint::Print(){cout<<"x="<<x<<",y="<<y<<endl;}void main(){CPoint pt;pt.Set(10,20);pt.Print();}问题一:以上程序编译能通过吗?如果不能,原因是什么?答:能通过编译。
问题二:以上程序的运行结构是否正确,如果不正确,分析为什么,如何改正?答:运行结构不正确,因为Set函数中,x=x,参数x覆盖数据成员,使得数据成员并没有被赋值。
2.理解下面的程序并运行,然后回答后面的问题。
include<iostream.h>class CPerson{public:void Print();private:CPerson();private:int age;char*name;};CPerson::CPerson(){}void CPerson::Print(){cout<<"name="<<name<<",age="<<age<<endl;}void main(){CPerson ps(23,"张三");ps.Print();}问题一:以上程序存在三个错误,在不改变主函数内容的前提下,试改正该程序。
答:第一处错误是:在程序头应添加#include<string.h>文件,第二处错误是:构造函数没有参数,应添加为(int i,char j),第三处错误是:构造函数没有函数体。
改正后的程序为:#include<iostream.h>#include<string.h>class CPerson{public:void Print();CPerson(int i ,char *j);public:int age;char *name;};CPerson::CPerson(int i,char *j){age=i;name=j;}void CPerson::Print(){cout<<"name="<<name<<",age="<<age<<endl;}void main(){CPerson ps(23,"张三");ps.Print();}实验四类和对象—对象传递与静态成员4.1 实验目的1. 静态成员(静态数据成员、静态成员函数)的作用与使用时的注意事项2.掌友元(友元函数、友元类)的作用和使用;3. 理解常类型。