Diff for /capa/capa51/pProj/capaCommon.c between versions 1.1 and 1.5

version 1.1, 1999/09/28 21:26:21 version 1.5, 2000/01/31 18:34:13
Line 46  capa_excuse(int set,int  prob,int  secti Line 46  capa_excuse(int set,int  prob,int  secti
    /* Calculate parameters */     /* Calculate parameters */
    if (capa_get_header(&header,set))   return (-1);     if (capa_get_header(&header,set))   return (-1);
    sscanf(header.num_questions,"%d", &nq);     sscanf(header.num_questions,"%d", &nq);
    capa_mfree(header.weight);  
    capa_mfree(header.partial_credit);  
   
    if( ( prob > nq ) || (section < 0 ) || (section > MAX_SECTION_COUNT) )   return (-1);     if( ( prob > nq ) || (section < 0 ) || (section > MAX_SECTION_COUNT) )   return (-1);
    num_students= 0;     num_students= 0;
Line 57  capa_excuse(int set,int  prob,int  secti Line 55  capa_excuse(int set,int  prob,int  secti
      offset = capa_get_entry(&entry,tmp_number,set);       offset = capa_get_entry(&entry,tmp_number,set);
      if(offset < 0 ) offset = -offset;       if(offset < 0 ) offset = -offset;
      switch(entry.answers[prob-1]) {        switch(entry.answers[prob-1]) { 
          case '0':
        case '-':  entry.answers[prob-1] = 'E'; break;                      case '-':  entry.answers[prob-1] = 'E'; break;             
        case 'N':  entry.answers[prob-1] = 'E'; break;                      case 'N':  entry.answers[prob-1] = 'E'; break;             
        case 'n':  entry.answers[prob-1] = 'e'; break;                      case 'n':  entry.answers[prob-1] = 'e'; break;             
          case '1': case '2': case '3': case '4': case '5':
          case '6': case '7': case '8': case '9': 
    if (entry.answers[prob-1] < header.weight[prob-1]) {
      entry.answers[prob-1] = 'E'; 
    } 
    break;
        default :  break;         default :  break;
      }        } 
      capa_set_entry(&entry,tmp_number,set,offset);       capa_set_entry(&entry,tmp_number,set,offset);
      capa_mfree(entry.answers); entry.answers = NULL;       capa_mfree(entry.answers); entry.answers = NULL;
      capa_mfree(entry.tries);   entry.tries = NULL;       capa_mfree(entry.tries);   entry.tries = NULL;
    }     }
      capa_mfree(header.weight);
      capa_mfree(header.partial_credit);
    free_students(student_p);     free_students(student_p);
    return (0);     return (0);
 }  }
Line 1350  int capa_check_option(int option,int set Line 1357  int capa_check_option(int option,int set
 }  }
   
 /*----------------------------------------------------------*/  /*----------------------------------------------------------*/
 /* INPUT:  set             the X in logX.db                 */  /* INPUT:  time             the current time                */
   /*         datetime         the datetime string to compare  */
 /* OUTPUT: none                                             */  /* OUTPUT: none                                             */
 /*                                                          */  /*                                                          */
 /* RETURN:  -1    file error                                */  /* RETURN:  -1    time is earlier then datetime             */
 /*           0    no login                                  */  /*           1    time is later than datetime               */
 /*           >0   number of logins in that logX.db file     */  
 /*----------------------------------------------------------*/  /*----------------------------------------------------------*/
 int  int
 compare_datetime(time,datetime)  compare_datetime(time,datetime)
Line 1384  char   *datetime; Line 1391  char   *datetime;
 /* What if: [7,3] date_info  */  /* What if: [7,3] date_info  */
 /*          [3,7] date_info  */  /*          [3,7] date_info  */
 /*          4 date_info      */  /*          4 date_info      */
   /* RETURN:  -1    if not pass time                          */
   /*           1    if pass time (or no time available        */
 int capa_check_date(int which,char *student_number, int section,int set)  int capa_check_date(int which,char *student_number, int section,int set)
 {  {
   int result;    int result;
Line 3071  capa_check_answer(p, answer) Problem_t * Line 3079  capa_check_answer(p, answer) Problem_t *
                 }                  }
                 given = n_part * scale; /* convert the given answer into proper scale for units */                  given = n_part * scale; /* convert the given answer into proper scale for units */
                 sig = calc_sig( input );                  sig = calc_sig( input );
                 if( (sig < sig_l) || (sig > sig_u) ) {                  if( ((sig < sig_l) || (sig > sig_u)) && (sig!=0)) {
                   result = SIG_FAIL;                    result = SIG_FAIL;
                 } else {                  } else {
                   switch( tol_type ) {                    switch( tol_type ) {
Line 3143  capa_check_answer(p, answer) Problem_t * Line 3151  capa_check_answer(p, answer) Problem_t *
           result = check_formula_ans(correct,answer,p->id_list,p->pts_list,tol_type,tol);            result = check_formula_ans(correct,answer,p->id_list,p->pts_list,tol_type,tol);
           break;            break;
     case ANSWER_IS_EXTERNAL: /* not yet implemented */      case ANSWER_IS_EXTERNAL: /* not yet implemented */
            /* we assume the external program is called through popen() */
            /* and the result will be given back as 0 or 1 to indicate the */
            /* given answer is correct or not */
            
           break;            break;
           
   }    }
Line 3459  char *key_word;char *value; Line 3471  char *key_word;char *value;
   fclose(fp);    fclose(fp);
   
   if (done) {    if (done) {
       trim_response_ws(right); /*get rid of leading and trailing spaces*/
     for(i=0,j=0;i<(strlen(right)+1);i++) {      for(i=0,j=0;i<(strlen(right)+1);i++) {
       value[j]='\0';        value[j]='\0';
       if (right[i] == '\\' && (i < (strlen(right))) ) {        if (right[i] == '\\' && (i < (strlen(right))) ) {

Removed from v.1.1  
changed lines
  Added in v.1.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>