资源描述
上机考试题
(1)定义一个学生成绩类Score,描述学生成绩的私有数据成员为学号(No)、姓名(Name[8])、数学(Math)、物理(Phi)、数据结构(Data)、平均分(ave)。定义能输入学生成绩的公有成员函数Write(),能计算学生平均分的公有成员函数Average(),能显示学生成绩的公有成员函数Display()。在主函数中用Score类定义学生成绩对象数组s[3]。用Write()输入学生成绩,用Average()计算每个学生的平均分,最后用Display()显示每个学生的成绩。
实验数据:
No Name Math Phi Data Ave
1001 Zhou 80 70 60
1002 Chen 90 80 85
1003 Wang 70 75 89
(2)建立一个存放素数的类Prime,具体要求如下。
①私有数据成员。
int a[25]:存放指定范围内的所有素数。
int n1,n2:存放指定范围的下限和上限
int num:存放素数的个数。
②公有成员函数
Prime(int m1,int m2):构造函数,用参数m1、m2初始化n1、n2,同时初始化num。
void primef():求指定范围内的所有素数,把它们依次存放在数组a中。并将求出的素数个数赋给num。
void show():显示求出的素数的个数及所有的素数,每行输出5个素数。
③在主函数中定义一个Prime类的对象p(100,200),通过p调用成员函数完成求素数及输出素数的工作。
课后习题
(1)定义一个复数类Complex,复数的实部Real与虚部Image定义为私有数据成员。用复数类定义复数对象c1、c2、c3,用默认构造函数将c1初始化为c1=20+40i ,将c2初始化为c2=0+0i,用拷贝构造函数将c3初始化为c3=20+40i。用公有成员函数Dispaly()显示复数c1、c2与c3 的内容。
(2)定义一个矩形类Rectangle,矩形的左上角(Left,Top)与右下角坐标(Right,Bottom)定义为保护数据成员。用公有成员函数Diagonal()计算出矩形对角线的长度,公有成员函数Show()显示矩形左上角与右下角坐标及对角线长度。在主函数中用new运算符动态建立矩形对象r1,初值为(10,10,20,20)。然后调用Show()显示矩形左上角与右下角坐标及对角线长度。最后用delete运算符回收为矩形动态分配的存储空间。
2.#include<iostream>
#include<math.h>
using namespace std;
class Prime //声明Prime类
{
private:
int a[25];
int n1,n2;
int num;
public:
Prime(int m1,int m2):n1(m1),n2(m2),num(0){} //定义构造函数并对参数初始化
void primef(); //筛选素数并统计
void show(); //输出素数
};
void Prime::primef()
{
bool k; //定义bool类型的参数
for(int i=n1; i<=n2;i++)
{
k=true;
for(int j=2;j<=sqrt(i);j++)
if(i%j==0)
{
k=false;
break;
}
if(k) a[num++]=i;
}
}
void Prime::show()
{
for(int i=0;i<num;i++)
{
if(i%5==0) cout<<endl;
cout<<a[i]<<' ';
}
cout<<endl;
}
void main()
{
Prime p(100,200);
p.primef();
p.show();
}
1.#include<iostream>
using namespace std;
class Complex //定义Complex类
{
public:
Complex(){real=0;image=0;} //定义无参构造函数
Complex(double r,double i){real=r;image=i;} //定义有参构造函数
Complex(Complex &c) //定义拷贝构造函数
{
real=c.real;
image=c.image;
}
void Display(); //声明输出函数
private:
double real;
double image;
};
void Complex::Display()
{
cout<<real<<"+"<<image<<"i"<<endl;
}
int main()
{
Complex c1(20,40),c2,c3(c1); //定义复数对象
c1.Display();
c2.Display();
c3.Display();
return 0;
}
2.#include<iostream.h>
#include<math.h>
class Rectangle //定义矩形类
{
protected:
float left;
float top;
float right;
float bottom;
public:
Rectangle(float l,float t,float r,float b){left=l;top=t;right=r;bottom=b;}
Rectangle(Rectangle &r){left=0;top=0;right=0;bottom=0;}
double Diagonal(); //声明计算对角线长函数
void Show(); //声明输出函数
};
double Rectangle::Diagonal()
{
return sqrt((left-right)*(left-right)+(top-bottom)*(top-bottom));
}
void Rectangle::Show()
{
cout<<"(left,top):("<<left<<","<<top<<")"<<endl;
cout<<"(right,bottom):("<<right<<","<<bottom<<")"<<endl;
cout<<"Diagonal="<<Diagonal()<<endl;
}
int main()
{
Rectangle *r1=new Rectangle(10,10,20,20); //用new运算符动态建立矩形对象r1
r1->Diagonal();
r1->Show();
delete r1;
return 0;
}
展开阅读全文