Esempio n. 1
0
int
parse_deltat (const char *resp, krb5_deltat *value, int *mask, int bit)
{
    krb5_deltat tmp;

    if (str2deltat(resp, &tmp) == 0) {
	*value = tmp;
	if (mask)
	    *mask |= bit;
	return 0;
    } else if(*resp == '?') {
	print_time_table (stderr);
    } else {
	fprintf (stderr, "Unable to parse time \"%s\"\n", resp);
    }
    return -1;
}
Esempio n. 2
0
int allocate(teacher_lec_t* tl_array, int teacher, int day, int period) {
    int i, j, k;

    if(teacher >= num_teachers) {
        teacher = 0;
        period++;
    }

    if(period >= num_periods) {
        period = 0;
        day++;
    }

    if(day >= num_days) {
        counter1++;
        print_time_table();
        return 1;
    }

    if(strcmp(time_table[teacher][day][period].std, "") != 0 &&
       strcmp(time_table[teacher][day][period].sub, "") != 0) {
        allocate(tl_array, teacher + 1, day, period);
    }
    else {
        for(i = 0; i < tl_array[teacher].num_lectures; i++) {
            strcpy(time_table[teacher][day][period].std, tl_array[teacher].lectures[i].std);
            strcpy(time_table[teacher][day][period].sub, tl_array[teacher].lectures[i].sub);
            if(!validateStandardConflicts(teacher, day, period))
                continue;
            allocate(tl_array, teacher + 1, day, period);
            strcpy(time_table[teacher][day][period].std, "");
            strcpy(time_table[teacher][day][period].sub, "");
        }
    }

    return 1;
}