2011-05-30
普物測驗軟體 原始碼–2 將實際題目進行排列
/* 建立實驗隨機排序方法 */
public String[] RE1(int m){
String[] ExpsName=new String[]{"RCRL", "電流天平", "基礎光學","光電效應","密立根油滴","光譜分析","電子荷質比"};
a=new int[m];
super.StartExp(m); // 呼叫父類別方法
System.arraycopy(ExpArray, 0, a, 0, m); //複製陣列
remainExp=m-a[0];
c=new String[m];
for(int i=0;i<remainExp;i++){
c[i]=ExpsName[(int)a[i]];
}
for(int i=remainExp;i<m;i++){
c[i]=ExpsName[(int)a[i]];
}
return c;
}
public String[][][][] RE2(int l, int m, int n){ //建立問題
this.RE1(l); //類別內函數互相呼叫
// EQC=new String[7][7][6][4]; //[實驗項目數量][實驗項目數量+1][題數][]
//六題、五欄(1Q+4A)、3位
String[][][][] EQCori=new String[][][][]{
{
**************************題目區域*****************************
}
};
remainExp=l-a[0];
EQC2=new String[7][7][5][4];
for(int w=0; w<remainExp; w++){
for(int x=0; x<7; x++){
for(int y=0; y<5; y++){
for(int z=0; z<4; z++){
EQC2[w][x][y][z]=EQCori[(int)a[w]][x][y][z];
}
}
}
}
for(int w=remainExp; w<7; w++){
for(int x=0; x<7; x++){
for(int y=0; y<5; y++){
for(int z=0; z<4; z++){
EQC2[w][x][y][z]=EQCori[(int)a[w]][x][y][z];
}
}
}
}
d = new int[m];
EQC=new String[7][7][5][4];
super.RandomQues(m, n); //呼叫父類別產生隨機排序
System.arraycopy(QueArray, 0, d, 0, m); //複製陣列
// 問題陣列排除 0 之迴圈
/* 因父類別中的隨機陣列排序包含 0,但題目的排列中 [][0][][],這一行是實驗項目名稱,而沒有題目,因此利用一個迴圈
將得到的隨機來排列陣列中的 0 排到最後一個位置。
***注意*** 題目被換掉第七行!!!*/
for(int i=0; i<7;i++){
if(d[i]==0){
int dm;
dm=d[6];
d[6]=d[i];
d[i]=dm;
}
}
// 隨機排列題目
for(int w=0; w<7; w++){
for(int x=0; x<7; x++){
for(int y=0; y<5; y++){
for(int z=0; z<4; z++){
EQC[w][x][y][z]=EQC2[w][d[x]][y][z];
}
}
}
}
return EQC;
}
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言