面向对象程序设计实验 下载本文

{ }

CPerson ps(23,\张三\ps.Print();

问题一:以上程序存在三个错误,在不改变主函数内容的前提下,试改正该程序。

#include #include using namespace std; class CPerson {

public: void Print(); CPerson(int m,string n) { age=m; name=n; } private: int age; string name; };

void CPerson::Print() { cout<<\}

void main() { CPerson ps(23,\张三\ ps.Print(); }

3.2.2 程序设计

1.设计实现一个CPoint类,满足以下要求: a. 该类包含两个整型成员变量x(横坐标)和y(纵坐标),以及一个输出函数Print()用来输出横坐标和纵坐标,要求不可以在类的外部直接访问成员变量;

8

b.可以采用没有参数的构造函数初始化对象,此时的成员变量采用默认值0; c.可以采用直接输入参数的方式来初始化该类的成员变量;

#include #include using namespace std; class CPoint{ public: void print(); CPoint(){x=0;y=0;} point(int x1,int y1); int GetX() {return x;} int GetY() {return y;} private: int x; int y; };

void CPoint::print() { cout<

CPoint::point(int x1,int y1) { x=x1; y=y1; }

void main() { CPoint p; CPoint(); p.print(); p.point(1,2); p.print(); p.GetX(); p.GetX(); }

9

3.3思考题

1.设计一个CStudent(学生)类,并使CStudent类具有以下特点: a.有学生姓名、学号、程序设计、信号处理、数据结构三门课程的成绩; b.全部信息由键盘输入; c.通过成员函数统计学生平均成绩,当课程数量增加时,成员函数无须修改仍可以求取平均成绩; d.输出学生的基本信息、各科成绩与平均成绩; e.学生对象用链表存储; f.统计不及格学生人数。

#include #include #include #define N 3 #define M 3 class CStudent {

public: void setstudent(char *name,char *sn,float score[N]); void showstudent(); private: char Sname[10]; char Sno[8]; float Score[3]; float Avg; float Sum; int count; };

void CStudent :: setstudent(char *name,char *sn,float score[N]) { int i; float Sum=0.0; int count=0; strcpy(Sname,name); strcpy(Sno,sn); for(i=0;i

10

count++; } for(i=0;i<3;i++) { Sum=Sum+Score[i]; } Avg=Sum/count; }

void CStudent ::showstudent() { int i; cout<

void main() { int i,j,k=0; char name[10],no[8]; float score[N]; for(j=1;j<=M;j++) {

cout<<\ \ cin>>name; cout<<\ \ cin>>no; cout<<\ \ for(i=0;i>score[i]; CStudent S1; cout<<\ cout<

S1.setstudent(name,no,score); S1.showstudent(); if(score[i]<60) k++;

11