我正在尝试创建一个多选择考试类型的应用程序。我有一个.txt文件中的每个问题的问题,选择和答案,结构如下:
Question#1
choice A
choice B
choice C
choice D
Answer#1
Question#2
choice A
choice B
etc. etc.
目标是将此作为一个有一百多个问题的问题库。我有一个数组设置来读取所有这些信息。我需要随机化它,但我需要这样做,这将使问题#1完整地回答#1(因此问题2及其下面的选择和答案可能首先出现)。这有可能吗?
这个想法是将一百个问题随机化,并说出前50个问题(他们的选择和答案完好无损)进行“练习”。
非常感谢。
以下是代码:
if ([typeOfTest isEqualToString:@"SelectedExam"]) {
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"SelectedExam" ofType:@"txt"];
NSString *SelectedExamBank = [[NSString alloc] initWithContentsOfFile:filePath
encoding:NSUTF8StringEncoding error:NULL];
NSString* theBank = SelectedExamBank;
...
NSArray *multipleChoicePractice = [theBank componentsSeparatedByString:@"\n"];
//Calculating indexes while Question number would be in increments of 6
//(question 1 = index 0, question 2 = index 6, question 3 = index 12 etc)
choiceAindex = questionNumber + 1;
choiceBindex = questionNumber + 2;
choiceCindex = questionNumber + 3;
choiceDindex = questionNumber + 4;
theAnswer = [multipleChoicePractice objectAtIndex:answerChecker];
answerChecker = questionNumber + 5;
...
//q1 is the question and cA ... cD are choices
q1 = [multipleChoicePractice objectAtIndex:questionNumber];
cA = [multipleChoicePractice objectAtIndex:choiceAindex];
cB = [multipleChoicePractice objectAtIndex:choiceBindex];
cC = [multipleChoicePractice objectAtIndex:choiceCindex];
cD = [multipleChoicePractice objectAtIndex:choiceDindex];
答案 0 :(得分:3)
如果没有看到代码,就很难找到解决方案。就个人而言,我建议创建一个新的问题类,其中包含问题,选择和答案。然后,您可以简单地在每个类的实例中随机化问题,并保留一系列问题。
答案 1 :(得分:1)
这显然是可能的,但如何做到这取决于您使用的语言以及如何将信息存储在数组中。
我个人会创建一个“QA”对象数组(或结构/词典/ ...取决于您的语言)并简单地将其洗牌。因为QA对象包含问题和答案,所以保持关联。