在AIX Version 5.3中使用Java和PHP技术进行开发(2)
2008-11-13 08:13:58 来源:WEB开发网公开其他的问题类型
尽管您只定义了两种可能的问题类型,但是应该可以很容易地创建附加的问题类。复选框类型(其中,您可以从可用选项列表中选择多个项目)实际上只是 SurveyQuestionRadio 类的一个扩展。
因为您在集合中记录了回答信息,所以跟踪和记录这些多项的回答是很容易的,可以对这个集合调用 add() 方法对回答进行整理。
其他类型的问卷调查通常可以使用相同的基本结构,或者对其进行扩展。通常,大多数其他类型问卷调查的复杂之处在于条目的处理,而不是可能的结果的存储。例如,分级的选择,其中包含单个问题和分级的回答列表(喜好、非常喜欢、讨厌,等等)是 SurveyQuestionRadio 类的另一种形式。
系列问题——其中有多个单独的问题,但每个都具有相应的等级(例如,一组陈述,每个都具有相应的等级,但是所有这些都属于相同的问题)——是扩展 SurveyQuestionRadio 类的另一个示例。与单个回答一样,可以将信息存储在 question_response 集合中。
构建问卷调查
在有了 SurveyQuestion 类之后,要实际地创建一个问卷调查,您需要为希望询问的每个问题创建每个对象的实例,调用 ask() 方法遍历问题列表,然后输出结果。您可以在清单 7 中看到实现这个目的的代码。
清单 7. Survey 类源代码import java.io.*;
import java.util.*;
public class Survey {
public static void main(String[] args) {
Collection<SurveyQuestion> survey = new ArrayList<SurveyQuestion>();
survey.add(new SurveyQuestionText("Name","Enter your full name"));
survey.add(new SurveyQuestionRadio("Favorite color",
"Enter your favorite color",
new String[] {"Red", "Blue", "Green"}));
for(Iterator<SurveyQuestion> i = survey.iterator(); i.hasNext(); ) {
SurveyQuestion question = (SurveyQuestion) i.next();
question.ask();
}
System.out.println("
===Results===
");
for(Iterator<SurveyQuestion> i = survey.iterator(); i.hasNext(); ) {
SurveyQuestion question = (SurveyQuestion) i.next();
question.showresponse();
}
}
}
更多精彩
赞助商链接