手机客观题测试软件开发的叙述.docx

上传人:b****2 文档编号:23077237 上传时间:2023-04-30 格式:DOCX 页数:45 大小:136.38KB
下载 相关 举报
手机客观题测试软件开发的叙述.docx_第1页
第1页 / 共45页
手机客观题测试软件开发的叙述.docx_第2页
第2页 / 共45页
手机客观题测试软件开发的叙述.docx_第3页
第3页 / 共45页
手机客观题测试软件开发的叙述.docx_第4页
第4页 / 共45页
手机客观题测试软件开发的叙述.docx_第5页
第5页 / 共45页
点击查看更多>>
下载资源
资源描述

手机客观题测试软件开发的叙述.docx

《手机客观题测试软件开发的叙述.docx》由会员分享,可在线阅读,更多相关《手机客观题测试软件开发的叙述.docx(45页珍藏版)》请在冰豆网上搜索。

手机客观题测试软件开发的叙述.docx

手机客观题测试软件开发的叙述

手机客观题测试软件开发的叙述

这一学年承担对口高职升学考试的教育教学工作,想到其中客观题(四川省的,包括填空题)分值占到了近75%,因此充分结合学生同期学习的Access2010数据库,将这些题随机抽取、答案随机变幻顺序后制作成一定题量的试卷,可以让学生在Access窗体上、在浏览器上考试,还可以在手机上自我随时随地考试。

这里暂时仅上手机上的处理方式挂出,希望得到高人指点。

一、手机程序界面

各自名称如下图所示:

二、菜单设计,其内容如下代码所示:

android=">

android:

id="@+id/action_settings1"

android:

orderInCategory="100"

android:

showAsAction="never"

android:

title="@string/action_settings1"/>

android:

id="@+id/action_settings2"

android:

orderInCategory="100"

android:

showAsAction="never"

android:

title="@string/action_settings2"/>

android:

id="@+id/action_settings3"

android:

orderInCategory="100"

android:

showAsAction="never"

android:

title="@string/action_settings3"/>

android:

id="@+id/action_settings4"

android:

orderInCategory="100"

android:

showAsAction="never"

android:

title="@string/action_settings4"/>

android:

id="@+id/action_settings5"

android:

orderInCategory="100"

android:

showAsAction="never"

android:

title="@string/action_settings5"/>

菜单文字等内容如下XML文件:

xmlversion="1.0"encoding="utf-8"?

>

信息一类客观题测试

交卷

查询

帮助

关于

关闭

世界你好!

|<

<<

>|

>>

三、试题源,我将其放在arrays.xml文件中,简图见下:

共内容太多,占一万多行(当然这是根据题的多少而定的),下面仅将部分内容贴出。

1.单选题

2.多选题

3.判断题

4.填空题

四、源代码如下:

packagecom.ltj.zjdkgktest;

importjava.util.ArrayList;

importjava.util.Random;

importandroid.os.Bundle;

importandroid.app.Activity;

importandroid.app.AlertDialog;

importandroid.content.Context;

importandroid.database.Cursor;

importandroid.database.sqlite.SQLiteDatabase;

importandroid.database.sqlite.SQLiteOpenHelper;

importandroid.graphics.Color;

importandroid.view.GestureDetector;

importandroid.view.GestureDetector.OnGestureListener;

importandroid.view.Gravity;

importandroid.view.Menu;

importandroid.view.MenuItem;

importandroid.view.MotionEvent;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Button;

importandroid.widget.CheckBox;

importandroid.widget.EditText;

importandroid.widget.SeekBar;

importandroid.widget.TextView;

importandroid.widget.Toast;

publicclassMainActivityextendsActivityimplementsOnGestureListener{

privateTextViewtvQuestion,tvStandard;//问题及标准答案文本框

privateCheckBoxchkOptionA,chkOptionB,chkOptionC,chkOptionD;//四个复选框分别记录客观题的四个或两个备选答案

privateButtonbtnAnswerOk;//确认填空题答案

privateButtonbtnFirst,btnPrev,btnNext,btnLast;//四个导航按钮,依次为第一、上一、下一和最后

privateButtonbtnShowOrHide;//显示或隐藏标准答案显示,仅在交卷后才能够起作用

privateEditTextetWriteBlank;//填写答案的文本编辑框

privateSeekBarsbNavigationBar;//导航条

privateString[]singleQuestions;//读取全部单选题

privateString[][]singleOptions;//读取全部单选题的四个备选答案

privateString[]singleStandards;//读取全部单选题的标准答案

privateString[]multiQuestions;//读取全部多选题

privateString[][]multiOptions;//读取全部多选题的四个备选答案

privateString[]multiStandards;//读取全部多选题的标准答案

privateString[]judgeQuestions;//读取全部判断题

privateString[]judgeStandards;//读取全部判断题的标准答案

privateString[]blankQuestions;//读取全部填空题

privateString[]blankStandards;//读取全部填空题的标准答案

privateintsingleTotal,multiTotal,judgeTotal,blankTotal;//各类题型分别的题量

privateintsingleRandom,multiRandom,judgeRandom,blankRandom;//各种题型应抽取的题量值

privateintrandomFirst,randomSecond,randomThird,randomFourth;//各类题型的界定范围值

privateString[]randomQuestions;//随机产生的题目放置的数组

privateString[][]randomOptions;//随机产生对应题目的四个备选项的数组

privateString[]randomStandards;//随机产生对应题目的标准答案

privateString[]yourAnswers;//考试者回答的答案

privateint[]yourScores;//评判后对应题目的成绩

privateintcurrentRecord;//当前题目所在的序号:

从0开始的,直到randomFourth-1

privatebooleansubmitYesOrNo;//是否提交,如果提交了,“?

”号按钮才可用,以显示或隐藏各题答案。

privatebooleananswerShowOrHide;//标准答案是显示还是隐藏状态,以上两个同时为真时,才显示标准答案

privateTestDbHelpermyOpenHelper;//定义一个内部类的对象——TestDbHelper的对象

privateGestureDetectorgd;//

@Override

protectedvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

this.initAllWidgets();//初始化各个控件

this.initReadArrayData();//读取各类题型的题目、备选项、标准答案

intrandomTotal=this.initRandomVarables();//初始化各类题型随机抽取的题量,各类题型的界定范围

this.initRandomArrays(randomTotal);//初始化将要用到的随机数组

this.randomExtractSingle(0,this.singleRandom,this.singleTotal);//随机抽取单选题

this.randomExtractMulti(this.randomFirst,this.multiRandom,

this.multiTotal);//随机抽多选题

this.randomExtractJudge(this.randomSecond,this.judgeRandom,

this.judgeTotal);//随机抽判断题

this.randomExtractBlank(this.randomThird,this.blankRandom,

this.blankTotal);//随机抽判断题

this.sbNavigationBar

.setOnSeekBarChangeListener(newSeekBar.OnSeekBarChangeListener(){

@Override

publicvoidonProgressChanged(SeekBararg0,intarg1,

booleanarg2){

//拖动导航条时调用

currentRecord=arg1;//当前记录号与导航条进度数一致

showEachQuestion(currentRecord);//调用显示每一个问题的事件

}

@Override

publicvoidonStartTrackingTouch(SeekBararg0){

//拖动导航条开始时调用

}

@Override

publicvoidonStopTrackingTouch(SeekBararg0){

//拖动导航条停止时调用

}

});

this.btnShowOrHide.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewarg0){

//按钮显示隐藏标准答案的按钮的单击事件

answerShowOrHide=!

answerShowOrHide;//原来隐藏,则后显示,如果原为显示,则这时会显示

if(!

answerShowOrHide){

btnShowOrHide.setText("显示");//设置按钮上的文本

tvStandard.setVisibility(View.INVISIBLE);//标准答案文本框不显示

}else{

btnShowOrHide.setText("隐藏");

tvStandard.setVisibility(View.VISIBLE);//标准答案文本框显示

}

}

});

this.btnFirst.setOnClickListener(newButton.OnClickListener(){

@Override

publicvoidonClick(Viewarg0){

//到首记录的按钮事件

sbNavigationBar.setProgress(currentRecord=0);//导航条移到0

}

});

this.btnPrev.setOnClickListener(newButton.OnClickListener(){

@Override

publicvoidonClick(Viewarg0){

//到上一记录的按钮事件

if(currentRecord>0){

sbNavigationBar.setProgress(--currentRecord);//导航条上移一条,记录号减1

}

}

});

this.btnLast.setOnClickListener(newButton.OnClickListener(){

@Override

publicvoidonClick(Viewarg0){

//到末记录的按钮事件

sbNavigationBar.setProgress(currentRecord=randomFourth-1);//导航条移到最后

}

});

this.btnNext.setOnClickListener(newButton.OnClickListener(){

@Override

publicvoidonClick(Viewarg0){

//到下一记录的按钮事件

if(currentRecord

sbNavigationBar.setProgress(++currentRecord);//导航条下移一条,记录号加1

}

}

});

this.chkOptionA.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewarg0){

//复选框A的单击事件,分单选、多选和判断而不同

allCheckBoxHandle

(1);//点击第一个复选框时,调用时用参数1

}

});

this.chkOptionB.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewarg0){

//复选框B的单击事件,分单选、多选和判断而不同

allCheckBoxHandle

(2);//点击第一个复选框时,调用时用参数2

}

});

this.chkOptionC.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewarg0){

//复选框C的单击事件,分单选、多选和判断而不同

allCheckBoxHandle(3);//点击第一个复选框时,调用时用参数3

}

});

this.chkOptionD.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewarg0){

//复选框D的单击事件,分单选、多选和判断而不同

allCheckBoxHandle(4);//点击第一个复选框时,调用时用参数4

}

});

this.btnAnswerOk.setOnClickListener(newOnClickListener(){

@Override

publicvoidonClick(Viewarg0){

//填空题的答案填写好后,单击此按钮则记录其中答案于对于数组yourAnswers中

StringtmpYours=etWriteBlank.getText().toString().trim();//取出你填写的答案的内容,并去前后空格

StringtmpStandard=randomStandards[currentRecord];//取出对应的标准答案

yourAnswers[currentRecord]=tmpYours;//将填写的答案记入你的答案中,以备下次到此处时,原来的内容在

if(tmpYours.equalsIgnoreCase(tmpStandard)){//忽略大小写,相等则给你成绩为3分,否则对应的记为0分

yourScores[currentRecord]=3;//记上3分

}else{

yourScores[currentRecord]=0;//记0分

}

}

});

this.sbNavigationBar.setMax(this.randomFourth-1);//设置导航条的最大值为全部题量值减去1

this.sbNavigationBar.setProgress(0);//设置导航条初始值为0

}

protectedvoidallCheckBoxHandle(intwho){

//处理复选框单击后要做的事情,who为按钮序号

intp=currentRecord;//当前记录位置

if(p

this.chkOptionA.setChecked(false);//在单击一个复选框时,设置所有复选框均为不选中状态,再根据参数who决定哪一个被选中

this.chkOptionB.setChecked(false);

this.chkOptionC.setChecked(false);

this.chkOptionD.setChecked(false);

switch(who){//根据单击复选框时传递的序号,判断哪个复选框应该处于选中状态

case1:

this.chkOptionA.setChecked(true);

break;

case2:

this.chkOptionB.setChecked(true);

break;

case3:

this.chkOptionC.setChecked(true);

break;

case4:

this.chkOptionD.setChecked(true);

break;

}

intrightAnswer=Integer.parseInt(this.randomStandards[p]);//取出标准答案的序号

this.yourAnswers[p]=""+who;//记录你当前题目的答案值于数组yourAnswers中

if(rightAnswer==who){//如果你的点击的复选框序号与标准答案的序号值一样

this.yourScores[p]=3;//记3分

}else{

this.yourScores[p]=0;//否则不得分,记为0

}

}elseif(p

StringmultiAnswer="";//用于暂时记录内容

multiAnswer=(this.chkOptionA.isChecked()?

"1":

"0")

+(this.chkOptionB.isChecked()?

"1":

"0")

+(this.chkOptionC.isChecked()?

"1":

"0")

+(this.chkOptionD.isChecked()?

"1":

"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机硬件及网络

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1