山东科技大学面向对象程序设计c++答案
更新时间:2023-09-12 00:57:01 阅读量: 教育文库 文档下载
- Java面向对象程序设计推荐度:
- 相关推荐
Problem A: 平面上的点——Point类 (IV)Description
在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定。现在我们封装一个“Point类”来实现平面上的点的操作。 根据“append.cc”,完成Point类的构造方法和show()、showCounter()、showSumOfPoint()方法;实现showPoint()函数。 接口描述:
showPoint()函数:按输出格式输出Point对象,调用Point::show()方法实现。
Point::show()方法:按输出格式输出Point对象。Point::showCounter()方法:按格式输出当前程序中Point对象的计数。
Point::showSumOfPoint()方法:按格式输出程序运行至当前存在过的Point对象总数。 Input
输入多行,每行为一组坐标“x,y”,表示点的x坐标和y坐标,x和y的值都在double数据范围内。 Output
对每个Point对象,调用show()方法输出其值,或者用showPoint()函数来输出(通过参数传入的)Point对象的值:X坐标在前,Y坐标在后,Y坐标前面多输出一个空格。每个坐标的输出精度为最长16位。调用用showCounter()方法和showSumOfPoint()输出Point对象的计数统计,输出格式见sample。
C语言的输入输出被禁用。 Sample Input 1,2 3,3 2,1
Sample Output Point : (1, 2) Current : 2 points. Point : (3, 3) Current : 2 points. Point : (2, 1) Current : 2 points. In total : 4 points. Current : 3 points. Point : (0, 0) Point : (1, 1) Point : (0, 0) In total : 6 points.
#include
double x_,y_; static int sum,num; public:
Point():x_(0),y_(0){num++;sum++;}
Point(double
xx):x_(xx),y_(1){num++;sum++;} Point(double xx,double
yy):x_(xx),y_(yy){num++;sum++;}
Point(const
Point&p){x_=p.x_;y_=p.y_;num++;sum++;}
~Point(){num--;} void
show(){cout<
(\
\
static
void
showCounter(){cout<
void
showSumOfPoint(){cout<
void showPoint(Point &a,Point &b,Point &c) {
a.show();b.show();c.show();} int Point::sum=0; int Point::num=0; int main() {
char c; double a, b; Point q;
while(std::cin>>a>>c>>b) {
Point p(a, b); p.show(); p.showCounter(); }
q.showSumOfPoint(); Point q1(q), q2(1); Point::showCounter(); showPoint(q1, q2, q); Point::showSumOfPoint(); }
Problem A: 复数类的构造、析构和输出 Description
封装一个复数类CPLX,用来处理复数功能和运算,支持以下操作:
1. CPLX::CPLX(double, double)构造:参数为实部、虚部,用传入的参数初始化对象,产生一行以“CREATE()”开始的输出,并输出复数的实部和虚部;
2. CPLX::~CPLX()析构:产生一行以“RELEASE()”开始的输出,并输出复数的实部和虚部; 3. CPLX::print():产生一行以“PRINT()”开始的输出,并以格式“(a, bi)”的形式输出复数; -----------------------------------------------------------------------------
你设计一个CPLX类,使得main()函数能够运行并得到正确的输出。调用格式见append.cc Input
输入的第一个整数n,表示用n组测试样例。每组测试输入两个实数,分别为实部和虚部。 Output
每组测试数据对应一组输出,两组输出之间用若干“===”分割,详细格式见sample。 Sample Input 5 2 3 10 0 0 100 1 -1 -7 -7
Sample Output
========================= CREATE(): 2 3 PRINT(): (2, 3i) RELEASE(): 2 3
========================= CREATE(): 10 0
1
PRINT(): (10, 0i) RELEASE(): 10 0
========================= CREATE(): 0 100 PRINT(): (0, 100i) RELEASE(): 0 100
========================= CREATE(): 1 -1 PRINT(): (1, -1i) RELEASE(): 1 -1
========================= CREATE(): -7 -7 PRINT(): (-7, -7i) RELEASE(): -7 -7
=========================
#include
CPLX(double xx,double yy){ x=xx;y=yy;
cout<<\ ~CPLX(){
cout<<\ void print() { cout<<\
(\
\
}; int main() {
int cases; cin >> cases;
for(int i = 1; i <= cases; ++i) {
double a, b; cin >> a >> b; cout
<<\
CPLX cplx(a, b); cplx.print(); }
cout <<\
endl; }
Problem B: 复数类的成员访问 Description
封装一个复数类CPLX,用来处理复数功能和运算,支持以下操作: 1. CPLX::CPLX()构造:初始化一个实部、虚部均为0的复数,产生一行以“CREATE()”开始的输出,并输出复数的实部和虚部; 2. CPLX::~CPLX()析构:产生一行以“RELEASE()”开始的输出,并输出复数的实部和虚部; 3. CPLX::real():返回实部; CPLX::imag():返回虚部。 4. CPLX::real(double):传参修改实部;
CPLX::imag(double):传参修改虚部;
----------------------------------------------------------------------------- 你设计一个CPLX类,使得main()函数能够运行并得到正确的输出。调用格式见append.cc Input
输入的第一个整数n,表示用n组测试样例。每组测试输入两个实数,分别为实部和虚部。 Output
每组测试数据对应一组输出,两组输出之间用若干“===”分割,详细格式见sample。 Sample Input 5 2 3 10 0 0 100 1 -1 -7 -7
Sample Output
========================= CREATE(): 0 0
Complex real part is 2, imaginary part is 3. RELEASE(): 2 3
=========================
CREATE(): 0 0
Complex real part is 10, imaginary part is 0. RELEASE(): 10 0
========================= CREATE(): 0 0
Complex real part is 0, imaginary part is 100. RELEASE(): 0 100
========================= CREATE(): 0 0
Complex real part is 1, imaginary part is -1. RELEASE(): 1 -1
========================= CREATE(): 0 0
Complex real part is -7, imaginary part is -7. RELEASE(): -7 -7
=========================
#include
CPLX(double
xx=0,double
yy=0){this->x=xx;this->y=yy;
cout<<\ ~CPLX(){
cout<<\ }
double real() {return x; }
double imag(){return y;}
CPLX &real(double xx); CPLX &imag(double yy); };
CPLX& CPLX::real(double xx){ x=xx; return *this; }
CPLX& CPLX::imag(double yy) {y=yy; return *this;
2
}
int main() {
int cases; cin >> cases;
for(int i = 1; i <= cases; ++i) {
double a, b; cin >> a >> b; cout
<<\
CPLX cplx; cplx.real(a); cplx.imag(b);
cout <<\real part is \cplx.real() <<\<<\ }
cout <<\endl; }
Problem A: 立体空间中的点(I) Description
设计一个平面上的点Point类和3维的点Point_3D类,满足Point_3D类继承自Point类,用于读取输入的数据,输出所构造的两种点的坐标。
设计Point类需支持一下操作: Point::Point()无参构造。
Point::Point(double,double)两个坐标参数构造。Point::showPoint()按格式输出Point对象 设计Point_3D类需支持一下操作: Point_3D::Point_3D()无参构造。
Point_3D::Point_3D(double,double,double)三个坐标参数构造。
Point_3D::showPoint()按格式输出Point_3D对象。
-----------------------------------------------------------------------------
你设计Point类和Point_3D类,使得main()函数能够正确运行。
函数调用格式见append.cc。 append.cc中已给出main()函数。 Input
输入的第一个整数n,表示有n组测试数据,后面的输入每行为一组测试数据。每组测试数据的第一行是一个整数m,m有两种取值:2、3;m为2时,后面有两个浮点数x、y,表示一个平面上的点的坐标(x,y);m为3时后面有3个浮点数x、y、z,表示一个3维的点的坐标(x,y,z)。 Output
每组测试数据对应一行输出。 若输入为平面上的点,则输出:“2D Point (x,y)”,x和y为输入的坐标值。
若输入为3维的点,则输出:“3D Point (x,y,y)”,x、y和z为输入的坐标值。 Sample Input 5 3 1 2 3 3 0 0 0 2 -1 1 3 -1 -1 -1 2 0 0
Sample Output 3D Point (1,2,3) 3D Point (0,0,0) 2D Point (-1,1) 3D Point (-1,-1,-1) 2D Point (0,0)
#include
Point():x(0),y(0){} Point(double x1,double
y1):x(x1),y(y1){} void showPoint(){cout<<\
Point
(\}; class Point_3D:public
Point{ //Point_3D从Point中派
生
protected: int z; public:
Point_3D():z(0){} Point_3D(double x1,double
y1,double
z1):Point(x1,y1),z(z1){}
void showPoint(){cout<<\
Point
(\
};
int main() {
int cases; cin>>cases;
for(int i = 1; i <= cases; i++) {
double x, y, z; int point_type; cin>>point_type; if(point_type == 2) {
cin>>x>>y; Point p(x, y); p.showPoint(); }
if(point_type == 3) {
cin>>x>>y>>z; Point_3D p(x, y, z); p.showPoint(); } } }
Problem A: 立体空间中的点(II Description
设计一个平面上的点Point类和3维的点Point_3D类,满足Point_3D类继承自Point类,用于读取输入的数据,输出所构造的两种点的坐标。并统计输入的两种点的个数。 设计Point类需支持一下操作: Point::Point()无参构造。
Point::Point(double,double)两个坐标参数构造。 Point::x()返回x坐标 Point::y()返回y坐标
Point::x(int)修改x坐标并返回 Point::y(int)修改y坐标并返回
3
Point::showPoint()按格式输出Point对象 Point::showNumber()返回Point对象总数的静态函数
设计Point_3D类需支持一下操作: Point_3D::Point_3D()无参构造。
Point_3D::Point_3D(double,double,double)三个坐标参数构造。
Point_3D::z()返回z坐标。
Point_3D::z(int)修改z坐标并返回。
Point_3D::showPoint()按格式输出Point_3D对象。
Point_3D::setPoint(double,double,double)根据三个坐标参数修改Point_3D对象的坐标。 Point_3D::showNumber()返回Point_3D对象总数的静态函数。
-----------------------------------------------------------------------------
你设计Point类和Point_3D类,使得main()函数能够正确运行。
函数调用格式见append.cc。 append.cc中已给出main()函数。 Input
输入的第一个整数n,表示有n组测试数据,后面的输入每行为一组测试数据。每组测试数据的第一行是一个整数m,m有两种取值:2、3;m为2时,后面有两个浮点数x、y,表示一个平面上的点的坐标(x,y);m为3时后面有3个浮点数x、y、z,表示一个3维的点的坐标(x,y,z)。 Output
开始部分为由main()函数产生的固定输出,用于测试对象的某些方法的调用情况。输出“Test data output :”之后为测试数据对应的输出: 每组测试数据对应一行输出。
若输入为平面上的点,则输出:“2D Point (x,y)”,x和y为输入的坐标值。
若输入为3维的点,则输出:“3D Point (x,y,y)”,x、y和z为输入的坐标值。
最后,分别输出总共输入的平面上的点数和3维的点数。 Sample Input 5 3 1 2 3 3 0 0 0 2 -1 1 3 -1 -1 -1 2 0 0
Sample Output Invariable test output : 3D Point (-100,0,100) Point (0,100,100)
Test data output : 3D Point (1,2,3) 3D Point (0,0,0) 2D Point (-1,1) 3D Point (-1,-1,-1) 2D Point (0,0)
Number of 2D Points : 2 Number of 3D Points : 3
#include
static int m; //n,m被初始化为0 public:
Point():X(0),Y(0){n++;} //无参构造 Point(double x1,double
y1):X(x1),Y(y1){n++;} int x(){return X;} int y(){return Y;}
int x(int x1){X=x1;return X;} int y(int y1){Y=y1;return Y;} static int showNumber(){return n;} void showPoint(){cout<<\
Point
(\}; class Point_3D:public
Point{ //Point_3D从Point
派生 protected: int Z; public:
Point_3D():Z(0){m++;} Point_3D(double xx,double yy,double
zz):Point(xx,yy),Z(zz){m++;} //
构造函数初始化列表 int z(){return Z;} int z(int zz){return Z;} void
showPoint(){cout<<\
Point
(\
void setPoint(double xx,double yy,double zz){X=xx;Y=yy;Z=zz;}
static int showNumber(){return m;} };
int Point::n=0; int Point::m=0;
int main() {
cout<<\ Point_3D p3d;
p3d.setPoint(-100, 0, 100); p3d.showPoint(); p3d.x(0); p3d.y(100); cout<<\
(\
cout<<\ int cases; cin>>cases;
for(int i = 1; i <= cases; i++) {
double x, y, z; int point_type; cin>>point_type; if(point_type == 2) {
cin>>x>>y; Point p(x, y); p.showPoint(); }
if(point_type == 3) {
cin>>x>>y>>z; Point_3D p(x, y, z); p.showPoint(); } }
cout<<\
of
2D
Points
: \
- 4
Point_3D::showNumber()<
Problem B: 还会用继承吗? Description
定义一个Base类,包括1个int类型的属性,以及满足输出格式要求的构造函数、拷贝构造函数和析构函数。
of
3D
Points
:
\
class 派生 public: int b;
Derived: public Sample Input Jerry m Jemmy f Tom m Droopy m Sample Output
Base{ //Derived从Base中
Derived(int
t):Base(t){cout<<\\ ~Derived(){cout<<\=
我叫Jerry,是一只男老鼠,我的叫声是:吱吱吱!
我叫Jemmy,是一只女老鼠,我的叫声是:吱= \is erased.\ 吱吱!
定义Base类的子类Derived,包括1个int类型的属性, 以及满足输出格式要求的构造函数、拷贝构造函数和析构函数。 Input
第1行N>0表示测试用例个数。 每个测试包括2个int类型的整数。 Output 见样例。 Sample Input 1 10 20 Sample Output Base = 10 is created. Base = 10 is copied. Base = 10 is created. Derived = 20 is created. Base = 10 is copied. Derived = 20 is copied. Derived = 20 is erased. Base = 10 is erased. Derived = 20 is erased. Base = 10 is erased. Base = 10 is erased. Base = 10 is erased.
#include
Base(int t):a(t){cout<<\= \is created.\ //拷贝构造函数 ~Base(){cout<<\
=
\
is
erased.\ //析构函数
Base(const Base& b){a=b.a;cout<<\= \};
//析构函数 Derived(const
Derived&
d):Base(d),b(d.b){cout<<\d = \ Derived(int
x,int
y):Base(x),b(y){cout<<\= \};
int main() {
int cases, data1, data2; cin>>cases;
for (int i = 0; i < cases; i++) {
cin>>data1>>data2; Base base1(data1),
base2(base1);
Derived derived1(data1, data2), derived2(derived1); } }
Problem A: 动物类-抽象类 Description
每种动物都有自己的叫声,如狗的叫声是\汪汪汪\,猫的叫声是\喵喵喵\,老鼠的叫声是\吱吱吱\。 构造类Animal,Dog,Cat,Mouse,他们都有成员数据name和sex,表示名字和性别。一个成员函数cry(),输出他们的叫声,在main函数中采用多态性调用他们。 Input
动物的姓名和性别 Output 动物的信息
我叫Tom,是一只男猫,我的叫声是:喵喵喵! 我叫Droopy,是一条男狗,我的叫声是:汪汪汪!
#include
string name; char sex;
virtual void cry()=0;//纯虚函数 };//分号必不可少 class Mouse: public Animal{ public:
string name; char sex; Mouse(string
n,char
m){name=n;sex=m;if(sex=='m') cout<<\我叫\,是一只男老鼠,\else cout<<\我叫\,是一只女老鼠,\ void cry(){cout<<\我的叫声是:吱吱吱!\};//分号必不可少 class Dog: public Animal{ public:
string name; char sex; Dog(string
n,char
m){name=n;sex=m;if(sex=='m') cout<<\我叫\,是一条男狗,\else cout<<\我叫\,是一条女狗,\
void cry(){cout<<\我的叫声是:汪汪汪!\}; //分号必不可少 class Cat:
public Animal{
5
public:
string name; char sex; Cat(string
n,char
m){name=n;sex=m;if(sex=='m') cout<<\我叫\,是一只男猫,\else cout<<\我叫\,是一只女猫,\
void cry(){cout<<\我的叫声是:喵喵喵!\坐标和y坐标,x和y的值都在double数据范围内。 Output
输出每个Point对象的构造和析构行为。对每个Point对象,调用show()方法输出其值:X坐标在前,Y坐标在后,Y坐标前面多输出一个空格。每个坐标的输出精度为最长16位。输出格式(\\created.\}
Point(double xx=0) {
x_=y_=xx; cout<<\
(\: is
};//分号必不可少
int main( ) {
string nam; char s; cin>>nam>>s; Animal *p; Mouse m1(nam, s); p=&m1; p->cry(); cin>>nam>>s; Mouse m2(nam, s); p=&m2; p->cry(); cin>>nam>>s; Cat c1(nam, s); p=&c1; p->cry(); cin>>nam>>s; Dog d1(nam, s); p=&d1; p->cry(); return 0; }
Problem B: 平面上的点——Point类 (II) Description
在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定。现在我们封装一个“Point类”来实现平面上的点的操作。 根据“append.cc”,完成Point类的构造方法和show()方法,输出各Point对象的构造和析构次序。 接口描述:
Point::show()方法:按输出格式输出Point对象。 Input
输入多行,每行为一组坐标“x,y”,表示点的x
见sample。
C语言的输入输出被禁用。 Sample Input 1,2 3,3 2,1
Sample Output Point : (0, 0) is created. Point : (1, 2) is created. Point : (1, 2)
Point : (1, 2) is erased. Point : (3, 3) is created. Point : (3, 3)
Point : (3, 3) is erased. Point : (2, 1) is created. Point : (2, 1)
Point : (2, 1) is erased. Point : (0, 0) is copied. Point : (1, 1) is created. Point : (0, 0) Point : (1, 1) Point : (0, 0)
Point : (1, 1) is erased. Point : (0, 0) is erased. Point : (0, 0) is erased.
#include
double x_,y_; public:
Point(double xx,double yy) {
x_=xx; y_=yy; cout<<\
\created.\}
void show() {
cout<<\
(\\}
Point(Point &p) {
x_=p.x_;y_=p.y_; cout<<\
(\\copied.\} ~Point(); };
Point::~Point() {
cout<<\
(\\erased.\ }; int main() {
char c; double a, b; Point q;
while(std::cin>>a>>c>>b) {
Point p(a, b); p.show(); }
:
Point q1(q), q2(1);
is : : is : is 6 q1.show(); q2.show(); q.show(); }
Problem C: 平面上的点——Point类 (III)
Description
在数学上,平面直角坐标系上的点用X轴和Y轴上的两个坐标值唯一确定。现在我们封装一个“Point类”来实现平面上的点的操作。
根据“append.cc”,完成Point类的构造方法和show()方法,输出各Point对象的构造和析构次序。实现showPoint()函数。
接口描述:
showPoint()函数按输出格式输出Point对象,调用Point::show()方法实现。 Point::show()方法:按输出格式输出Point对象。 Input
输入多行,每行为一组坐标“x,y”,表示点的x坐标和y坐标,x和y的值都在double数据范围内。 Output
输出每个Point对象的构造和析构行为。showPoint()函数用来输出(通过参数传入的)Point对象的值:X坐标在前,Y坐标在后,Y坐标前面多输出一个空格。每个坐标的输出精度为最长16位。输出格式见sample。
C语言的输入输出被禁用。 Sample Input 1,2 3,3 2,1
Sample Output
Point : (0, 0) is created. Point : (1, 2) is created. Point : (1, 2) is copied. Point : (1, 2)
Point : (1, 2) is erased. Point : (1, 2) is erased. Point : (3, 3) is created. Point : (3, 3) is copied. Point : (3, 3)
Point : (3, 3) is erased. Point : (3, 3) is erased.
Point : (2, 1) is created. Point : (2, 1) is copied. Point : (2, 1)
Point : (2, 1) is erased. Point : (2, 1) is erased. Point : (0, 0) is copied. Point : (1, 1) is created. Point : (0, 0) is copied. Point : (1, 1) is copied. Point : (0, 0) is copied. Point : (0, 0) Point : (1, 1) Point : (0, 0)
Point : (0, 0) is erased. Point : (1, 1) is erased. Point : (0, 0) is erased. Point : (1, 1) is erased. Point : (0, 0) is erased. Point : (0, 0) is erased.
#include
double x,y; public:
Point(double xx=0) {
x=y=xx;
cout<<\: (\\<<\ }
Point(double,double);
void show(){
cout<<\: (\\<
Point(Point &p) {
x=p.x;y=p.y; cout<<\:
(\
\is
copied.\ }
~Point()//析构函数 {
cout<<\: (\\is erased.\};
Point::Point(double xx,double yy) { x=xx;y=yy; cout<<\: (\\is created.\ }
void showPoint(Point p) {p.show();}
void showPoint(Point q1,Point q2,Point q) {q1.show();q2.show();q.show();} int main() {
char c;
double a, b; Point q;
while(std::cin>>a>>c>>b) {
Point p(a, b); showPoint(p); }
Point q1(q), q2(1); showPoint(q1, q2, q); }
Problem A: 编写函数:Swap (I) (Append Code)
Description
编写用来交换两个数的函数,使得“Append Code”中的main()函数能正确运行。
-----------------------------------------------------------------------------
用C实现三个函数int_swap()、dbl_swap()、SWAP(),其中SWAP()是个带参宏。
用C++实现两个函数,都以swap()命名。
7
以上函数的调用格式见“Append Code”。这里不给出函数原型,它们的参数请通过main()函数自行确定。 Input
输入为4行,每行2个数。 Output
输出为4行,每行2个数。每行输出的两数为每行输入的逆序。 Sample Input 12 57 9 -3 -12 4 3 5
Sample Output 57 12 -3 9 4 -12 5 3
#include
int temp; temp=a;
a=b; b=temp; }
void swap(int *a,int *b) {
int temp; temp=*a; *a=*b; *b=temp; }
void swap (double &a,double &b) {
double temp; temp=a; a=b; b=temp; }
void swap(double *a,double *b) {
double temp; temp=*a; *a=*b; *b=temp; }
int main() {
int x1, y1;
cin>>x1>>y1; swap(&x1, &y1); cout<
cin>>x1>>y1; swap(x1, y1);
cout<
double x2, y2;
cin>>x2>>y2; swap(&x2, &y2); cout<
cin>>x2>>y2; swap(x2, y2);
cout<
8
正在阅读:
山东科技大学面向对象程序设计c++答案09-12
军训感想作文700字06-21
船用电缆的发展前景05-12
金融硕士考研复习点拨05-29
基础日语综合教程2.第二课step2 文法+句型 大学日语教材(高等教育出版社)08-29
中南大学 - 人工智能考试试卷及答案11-27
2017小学语文观课报告03-08
构建化学生命化课堂的几点体会10-09
2018年电大基础会计复习和答案全(2)10-26
2018年学生会外联部作业计划书12-11
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- c++
- 山东
- 程序设计
- 面向
- 对象
- 答案
- 大学
- 科技
- 会计思考题答案
- 2018版中国混流泵行业市场投资规划分析报告目录
- OS课设2 - 图文
- 大学生入党申请书范文1000字3篇
- 销售顶岗实习周记300字-总结报告模板
- 2019年最新办公室主任终个人工作总结工作总结文档
- 苏教版二年级数学上册口算天天练题卡25
- 国内外数字媒体产业发展现状与发展趋势
- 单晶铜键合引线生产项目可行性研究报告
- 初中物理实验教学生活化实践
- 钢材的机械性能
- 评语大全之护理论文指导评语
- 精选教育资料高考物理总复习优编题型增分练:小综合练九
- 安邦入主民生银行公司治理结构案例分析
- 《文明从我做起》教学设计及反思范文
- 最新p2p理财公司排行榜
- 氰化锌粉置换规范讲义
- 2016年浙江省义乌市中考数学试卷解析
- 国家教育考试标准化考点建设项目管理办法
- summer 2013非营利组织体验报告模板-中文