ExamVC.m 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363
  1. /**
  2. 这里的数据信息可以保存在plist里面。 plist是个2维数组。
  3. 1级索引需要在代码里建立。2级索引是固定的。考试科目,考试题库,考试标准,合格标准
  4. 其中题目数可以从另外的地方取数值。
  5. */
  6. #import "ExamVC.h"
  7. #import "ExerciseVC.h"
  8. #import "STButton.h"
  9. @interface ExamVC ()<UIAlertViewDelegate,UITableViewDataSource,UITableViewDelegate>
  10. {
  11. UITableView* myTableView;
  12. NSArray* titles;
  13. NSMutableArray* details;
  14. }
  15. @end
  16. @implementation ExamVC
  17. - (void)viewDidLoad {
  18. [super viewDidLoad];
  19. [self myInit];
  20. }
  21. - (void)didReceiveMemoryWarning
  22. {
  23. [super didReceiveMemoryWarning];
  24. }
  25. -(void)myInit
  26. {
  27. [self setTitle:RQ_COMMON_MANAGER.YYXC_SERVICE_OPEN? @"模拟考试" : ([defUser.car_type isEqualToString:@"2"]? @"结业考核" : @"模拟考试")];
  28. [self configNavigationBar];
  29. [self.view setBackgroundColor:[UIColor whiteColor]];
  30. CGFloat x, y,hei,wid;
  31. wid = 70;
  32. hei = wid;
  33. x = (kSize.width - wid)/2.0 ;
  34. y = 0;
  35. UIImageView* iv = [[UIImageView alloc] initWithFrame:CGRectMake(x, y, wid, hei)];
  36. NSString *str = defUser.userDict[@"photo"];
  37. if (str && ![str hasPrefix:@"http"]){
  38. str = [imgPreFix stringByAppendingString:str];
  39. }
  40. if (!str || str.length < 1) {
  41. str = @"";
  42. }
  43. //dansonimg
  44. [iv sd_setImageWithURL:[NSURL URLWithString:str] placeholderImage:[UIImage imageNamed:@"drawer_head.png"]];
  45. [self.view addSubview:iv];
  46. [iv setBoardWid:1 Color:defGreen];
  47. [iv setRound];
  48. // hei = 110;
  49. // y=0;
  50. // headBtn = [[STButton alloc] initWithFrame:CGRectMake(0, 0, kSize.width, hei)];
  51. // NSString *name = @"工程师";
  52. // if (defUser.userName.length > 0) {
  53. // name = defUser.userName;
  54. // }
  55. // [headBtn setTitle:name textColor:subTitleColor font:14 fotState:UIControlStateNormal];
  56. // [headBtn setSubTitle:@"你可以登录学员中心更新个人资料哦"];
  57. // [self.view addSubview:headBtn];
  58. NSString *name = @"驾考学员";
  59. if (defUser.userName.length > 0) {
  60. name = defUser.userName;
  61. }
  62. UILabel *lab = [[UILabel alloc]initWithFrame:CGRectMake(0, y+hei, kSize.width, 20)];
  63. [lab setText:name Font:14 TextColor:contentTextColor Alignment:NSTextAlignmentCenter];
  64. [self.view addSubview:lab];
  65. UILabel *subLab = [[UILabel alloc]initWithFrame:CGRectMake(0, CGRectGetMaxY(lab.frame), kSize.width, 30)];
  66. [subLab setText:@"你可以登录学员中心更新个人资料哦" Font:14 TextColor:contentTextColor Alignment:NSTextAlignmentCenter];
  67. if (RQ_COMMON_MANAGER.YYXC_SERVICE_OPEN) {
  68. } else {
  69. [self.view addSubview:subLab];
  70. }
  71. [self loadModels];
  72. y += hei + 50;
  73. hei = 180;
  74. wid = kSize.width * .9;
  75. x = (kSize.width - wid)/2.0;
  76. myTableView = [[UITableView alloc] initWithFrame:CGRectMake(x, y, wid, hei)];
  77. [myTableView addSelfViewWithRect:SGRectMake(17, 0, wid - 17, .7) Color:KlineColor];
  78. [self.view addSubview:myTableView];
  79. [myTableView setUserInteractionEnabled:NO];
  80. [myTableView setDataSource:self];
  81. [myTableView setDelegate:self];
  82. [myTableView setScrollEnabled:NO];
  83. y += hei + 30;
  84. wid = kSize.width - x*2;
  85. hei = 50;
  86. UIButton* btn = [[UIButton alloc] initWithFrame:CGRectMake(x, y, wid, hei)];
  87. [btn setTitle:RQ_COMMON_MANAGER.YYXC_SERVICE_OPEN? @"全真模拟考试" : ([defUser.car_type isEqualToString:@"2"]? @"开始考试" : @"全真模拟考试") textColor:[UIColor whiteColor] font:18 fotState:UIControlStateNormal];
  88. [btn addTarget:self action:@selector(beginExam) forControlEvents:UIControlEventTouchUpInside];
  89. btn.layer.cornerRadius = 20;
  90. [btn setBackgroundColor:defGreen];
  91. [self.view addSubview:btn];
  92. }
  93. -(void)loadModels
  94. {
  95. titles = [NSMutableArray array];
  96. details = [NSMutableArray array];
  97. NSString * examSubject = @"科目一理论考试";
  98. if (myDelegate.subject.intValue == 4) {
  99. examSubject = @"科目四理论考试";
  100. }
  101. if ([defUser.car_type isEqualToString:@"1"] || [defUser.car_type isEqualToString:@"2"] || [defUser.car_type isEqualToString:@"3"] || [defUser.car_type isEqualToString:@"4"] || [defUser.car_type isEqualToString:@"5"] || [defUser.car_type isEqualToString:@"6"])
  102. {
  103. examSubject = RQ_COMMON_MANAGER.YYXC_SERVICE_OPEN? @"资格证考试" : ([defUser.car_type isEqualToString:@"2"]? @"结业考核" : @"资格证考试");
  104. }
  105. [details addObject:examSubject];
  106. titles = @[@"考试科目",@"考试题库",@"考试标准",@"合格标准"];
  107. NSArray *carType = @[@"小车 (C1,C2,C3)",@"货车(A2/B2)",@"客车(A1/A3/B1)",@"摩托(D/E/F)",@"教练员",@"客运",@"货运",@"危险品",@"出租车",@"网约车"];
  108. // if([defUser.car_type isEqualToString:@"C1"]) {
  109. // [details addObject:carType[0]];
  110. // if (myDelegate.subject.intValue == 1) {
  111. // [details addObject:@"100题,45分钟"];
  112. // [details addObject:@"满分100分,90分及格"];
  113. // }else {
  114. // [details addObject:@"50题,45分钟"];
  115. // [details addObject:@"满分100分,90分及格"];
  116. // }
  117. // }else if ([defUser.car_type isEqualToString:@"A2"]) {
  118. // [details addObject:carType[1]];
  119. // if (myDelegate.subject.intValue == 1) {
  120. // [details addObject:@"100题,45分钟"];
  121. // [details addObject:@"满分100分,90分及格"];
  122. // }else {
  123. // [details addObject:@"50题,30分钟"];
  124. // [details addObject:@"满分100分,90分及格"];
  125. // }
  126. // }else if ([defUser.car_type isEqualToString:@"A1"]) {
  127. // [details addObject:carType[2]];
  128. // if (myDelegate.subject.intValue == 1) {
  129. // [details addObject:@"100题,45分钟"];
  130. // [details addObject:@"满分100分,90分及格"];
  131. // }else {
  132. // [details addObject:@"50题,30分钟"];
  133. // [details addObject:@"满分100分,90分及格"];
  134. // }
  135. // }else if ([defUser.car_type isEqualToString:@"D"]) {
  136. // [details addObject:carType[3]];
  137. // [details addObject:@"50题,30分钟"];
  138. // [details addObject:@"满分100分,90分及格"];
  139. // }else if ([defUser.car_type isEqualToString:@"4"]) {
  140. // [details addObject:carType[4]];
  141. // [details addObject:@"100题,60分钟"];
  142. // [details addObject:@"满分100分,80分及格"];
  143. // }else if ([defUser.car_type isEqualToString:@"1"]) {
  144. // [details addObject:carType[5]];
  145. // [details addObject:@"90题,60分钟"];
  146. // [details addObject:@"满分100分,80分及格"];
  147. // }else if ([defUser.car_type isEqualToString:@"2"]) {
  148. // [details addObject:carType[6]];
  149. //// [details addObject:@"90题,90分钟"];
  150. //// [details addObject:@"满分100分,80分及格"];
  151. // [details addObject:@"50题"];
  152. // [details addObject:@"满分100分,80分及格"];
  153. // }else if ([defUser.car_type isEqualToString:@"3"]) {
  154. // [details addObject:carType[7]];
  155. // [details addObject:@"100题,90分钟"];
  156. // [details addObject:@"满分100分,90分及格"];
  157. // }else {
  158. // [details addObject:carType[8]];
  159. // [details addObject:@"90题,45分钟"];
  160. // [details addObject:@"满分100分,80分及格"];
  161. // }
  162. if ([defUser.car_type isEqualToString:@"C1"])
  163. {
  164. [details addObject:carType[0]];
  165. }
  166. else if ([defUser.car_type isEqualToString:@"A2"])
  167. {
  168. [details addObject:carType[1]];
  169. }
  170. else if ([defUser.car_type isEqualToString:@"A1"])
  171. {
  172. [details addObject:carType[2]];
  173. }
  174. else if ([defUser.car_type isEqualToString:@"D"])
  175. {
  176. //如果摩托车库的内容有了 可以在这里将DEF改为数据库中的参数
  177. [details addObject:carType[3]];
  178. }
  179. else if ([defUser.car_type isEqualToString:@"4"])
  180. {
  181. [details addObject:carType[4]];
  182. }
  183. else if ([defUser.car_type isEqualToString:@"1"])
  184. {
  185. [details addObject:carType[5]];
  186. }
  187. else if ([defUser.car_type isEqualToString:@"2"])
  188. {
  189. [details addObject:carType[6]];
  190. }
  191. else if ([defUser.car_type isEqualToString:@"3"])
  192. {
  193. [details addObject:carType[7]];
  194. }
  195. else if ([defUser.car_type isEqualToString:@"6"])
  196. {
  197. [details addObject:carType[9]];
  198. }
  199. else
  200. {
  201. [details addObject:carType[8]];
  202. }
  203. if ([defUser.car_type isEqualToString:@"D"]) {
  204. [details addObject:[NSString stringWithFormat:@"50题,30分钟"]];
  205. } else {
  206. if (RQ_COMMON_MANAGER.YYXC_SERVICE_OPEN) {
  207. NSInteger count = [RQ_YDTQuestion_Module getQuestionWithExerciseType:RQExerciseType_Exam].count;
  208. [details addObject:[NSString stringWithFormat:@"%@题,45分钟",count > 0? [NSNumber numberWithInteger:count] : (myDelegate.subject.intValue == 4?@"50":@"100")]];
  209. } else {
  210. if ([defUser.car_type isEqualToString:@"2"]) {
  211. [details addObject:@"50题"];
  212. } else {
  213. NSInteger count = [RQ_YDTQuestion_Module getQuestionWithExerciseType:RQExerciseType_Exam].count;
  214. [details addObject:[NSString stringWithFormat:@"%@题,45分钟",count > 0? [NSNumber numberWithInteger:count] : (myDelegate.subject.intValue == 4?@"50":@"100")]];
  215. }
  216. }
  217. }
  218. if ([defUser.car_type isEqualToString:@"1"] || [defUser.car_type isEqualToString:@"2"] || [defUser.car_type isEqualToString:@"3"] || [defUser.car_type isEqualToString:@"4"] || [defUser.car_type isEqualToString:@"5"] || [defUser.car_type isEqualToString:@"6"])
  219. {
  220. [details addObject:[NSString stringWithFormat:@"满分100分,80分及格"]];
  221. }else{
  222. [details addObject:[NSString stringWithFormat:@"满分100分,90分及格"]];
  223. }
  224. NSLog(@"details-----><>%@",details);
  225. }
  226. #pragma mark -
  227. -(void)beginExam
  228. {
  229. NSString* msg;
  230. NSString *string = [details lastObject];
  231. int totalMark = [[string substringWithRange:NSMakeRange(2, 3)] intValue];
  232. int passMark = [[string substringWithRange:NSMakeRange(7, 2)] intValue];
  233. if (myDelegate.subject.intValue == 1 || myDelegate.subject.intValue == 4)
  234. {
  235. msg = [NSString stringWithFormat:@"按最新交规考试要求,科目%@考试答题后不能修改答案,每做一题,系统自动计算错题,当累计错题分数超过%d分时(共100分),系统会自动提交答卷,本次考试不通过。",myDelegate.subject.intValue == 1 ? @"一":@"四",(totalMark - passMark)];
  236. }
  237. if ([defUser.car_type isEqualToString:@"1"] || [defUser.car_type isEqualToString:@"3"] || [defUser.car_type isEqualToString:@"4"] || [defUser.car_type isEqualToString:@"5"] || [defUser.car_type isEqualToString:@"6"])
  238. {
  239. msg = [NSString stringWithFormat:@"按最新交规考试要求,资格证考试答题后不能修改答案,每做一题,系统自动计算错题,当累计错题分数超过%d分时(共100分),系统会自动提交答卷,本次考试不通过。",(totalMark - passMark)];
  240. }
  241. if (RQ_COMMON_MANAGER.YYXC_SERVICE_OPEN) {
  242. } else {
  243. if ([defUser.car_type isEqualToString:@"2"]) {
  244. msg = [NSString stringWithFormat:@"按最新交规考试要求,结业考核答题后不能修改答案,每做一题,系统自动计算错题,当累计错题分数超过%d分时(共100分),本次考试不通过。",(totalMark - passMark)];
  245. }
  246. }
  247. NSLog(@"subject-------><>%@-------car_type-----><>%@--------msg------><>%@",myDelegate.subject,defUser.car_type,msg);
  248. UIAlertView* alert = [[UIAlertView alloc] initWithTitle:nil message:msg delegate:self cancelButtonTitle:@"确定" otherButtonTitles: nil];
  249. [alert show];
  250. }
  251. -(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
  252. // NSString *titleString = alertView.title;
  253. // int loseMark = [[[[titleString componentsSeparatedByString:@"如果累计错题分数超过"] lastObject] substringToIndex:2] intValue];
  254. NSString *string = [details lastObject];
  255. int totalMark = [[string substringWithRange:NSMakeRange(2, 3)] intValue];
  256. int passMark = [[string substringWithRange:NSMakeRange(7, 2)] intValue];
  257. string = details[details.count - 2];
  258. int testTime = [[[[string componentsSeparatedByString:@","] lastObject] substringToIndex:2] intValue];
  259. ExerciseVC *vc = [[ExerciseVC alloc] init];
  260. vc.testTime = testTime;
  261. vc.loseMark = totalMark - passMark;
  262. [self navPushHideTabbarToVC:vc];
  263. }
  264. #pragma mark -
  265. - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
  266. {
  267. return 4;
  268. }
  269. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
  270. {
  271. UITableViewCell* cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"examCell"];
  272. [cell.textLabel setTextColor:contentTextColor];
  273. [cell.detailTextLabel setTextColor:kTitleColor];
  274. [cell.textLabel setText:titles[indexPath.row]];
  275. if (details.count == 4) {
  276. [cell.detailTextLabel setText:details[indexPath.row]];
  277. }
  278. return cell;
  279. }
  280. @end