问题 问答题 论述题

试述提问设计的原则

答案

参考答案:

(1)合理性原则。判断提问设计是否合理,可参照如下标准:

①全部提问是否都是特定研究课题及其理论假设必须了解和提出的?凡是“多余的”、可有可无的提问都必须删去。不知道以后如何分析和利用的提问项目也不要列入。

②所提问题对于全部被调查者是否普遍适用?如果仅对一部分被调查者适用则必须进行合理化处理。

③提问给被调查者的负担是否过重?调查问卷的分量应该是适中的,如果过重就可能引起拒答。

(2)科学性原则。

①不提双重问题。即一个提问项目中只应包含一个调查指标,只询问一件事情。如果一个问题中包含两个调查指标,即要求人们用一个答案来回答两个提问,是不科学的。

②提问不带倾向性。带倾向性的提问会严重影响调查结果的真实性和客观性。

③提问必须具体明确。只有这样,你才有可能得到一个明确的回答,而一个含义模糊的提问只能得到含义模糊的回答。提问含义模糊不清主要有三个原因,其一是使用过于抽象的概念;其二是使用被调查者不熟悉的专业术语;其三是表达不当,造成歧义。

(3)艺术性原则。同样询问一个问题,措辞、表达可以有极大的不同。提问的艺术实际上就是要善于措辞和掌握表达方式,避免使用那些易于引起人们反感的措辞和表达方式,.激发被调查者的合作愿望和兴趣。艺术地提出问题的方法主要有五种:

①委婉法。即使用委婉词来代替刺激性的提问。

②间接法。把问题直接回答者从被调查者变换成其他人。

③消虑法。即在正式提问前加上一段权威性的文字,以消除顾虑。

④虚拟法。即先假定一种情境,然后要求在该情境下回答问题。

⑤援助法。即表明调查者在可以提供帮助的情况下要求被调查者回答问题

填空题

阅读以下说明和C代码,将应填入 (n) 处的字句写在对应栏内。

[说明]

在一个简化的绘图程序中,支持的图形种类有点(point)和圆(ckcle),在设计过程中采用面向对象思想,认为所有的点和圆都是一种图形(shape),并定义了类型shape_t、point_t和circle_t分别表示基本图形、点和圆,并且点和圆具有基本图形的所有特征。

[C代码]

typedef enumpoint,circle)shape_type; /*程序中的两种图形:点和圆*/

typedef struct /*基本的图形类型*/

shape_type type; /*图形种类标识:点或者圆*/

void(*destroy)(); /*销毁图形操作的函数指针*/

void(*draw)(); /*绘制图形操作的函数指针*/

shape_t;

typedef struct(shape_t common;int x;int y;)point_t;

/*定义点类型,x、y为点坐标*/

void destroyPoint(point_t* this) free(this);printf("Point destoryed!\n");

/*销毁点对象*/

void drawPoint(point_t* this) printf("P(%d,%d)",this->x,this->y);

/*绘制点对象*/

shape_t* createPoint(va_list* ap)/*创建点对象,并设置其属性*/

point_t* p_point;

if((p_point=(point_t*)malloc(sizeof(point_t)))==NULL)return NULL;

p_point->common.type=point;p_point->common.destroy=destroyPoint;

p_point->common.draw=drawPoint;

p_point->x=va_arg(*ap,int); /*设置点的横坐标*/

p_point->y=va_arg(*ap,int); /*设置点的纵坐标*/

return(shape_t*)p_point; /*返回点对象指针*/

typedef struct/*定义圆类型*/

shape_t common;

point_t*center; /*圆心点*/

int radius; /*圆半径*/

circle_t;

void destroyCircle(Circle_t* this)

free( (1) );free(this);printf("Circle destoryed!\n");

void drawCircle(Circle_t* this)

printf<"C<">;

(2) .draw(this->center); /*绘制圆心*/

printf(".%d)",this->radius);

shape_t* createCircle(va_list* ap) /*创建一个圆,并设置其属性*/

Circle_t* p_circle;

if((p_circle=(circle_t*)malloc(Sizeof(circle_t)))==NULL)return NULL;

p_circle->common.type=circle;p_circle->common.destroy=destroyCircle;

p_circle->common.draw=drawCircle;

(3) =createPoint(ap); /*设置圆心*/

p_circle->radius=va_arg(*ap,int); /*设置圆半径*/

return p_circle;

shape_t* createShape(shape_type st,…)/*创建某一种具体的图形*/

va_list ap; /*可变参数列表*/

shape_t* p_shape=NULL;

(4) (ap,st);

if(st==point)p_shape=createPoint(&ap); /*创建点对象*/

if(st==circle) p_shape=createCircle(&ap); /*创建圆对象*/

va_end(ap);

return p_shape;

int main()

int i; /*循环控制变量,用于循环计数*/

shape_t* shapes[2]; /*图形指针数组,存储图形的地址*/

shapes[0]=createShape(point,2,3);/*横坐标为2,纵坐标为3*/

shapes[1]=createShape(Circle,20,40,10);

/*圆心坐标为(20,40),半径为10*/

for(i=0;i<2;i++)(shapes[i]->draw(shapes[i]);printf("\n");

/*绘制数组中图形*/

for(i=1;i>=0;i--) shapes[i]->destroy(shapes[i]);

/*销毁数组中图形*/

return 0;

[运行结果]

P(2,3)

(5)

Circle destoryed!

Point destoryed!

(3)处填()。

填空题