예제 #1
0
파일: trip.cpp 프로젝트: pdxjohnny/more-cpp
int transport::trip::trip_to_string(char * buffer, int buffer_length) {
    // If join fails
    int err;
    // The start and end of the location
    const int str_length = 500;
    // Start location
    char start_str[str_length];
    start.location_to_string(start_str, str_length);
    char * start_str_ptr = start_str;
    // End location
    char end_str[str_length];
    end.location_to_string(end_str, str_length);
    char * end_str_ptr = end_str;
    // Speed
    char speed_str[MACRO_NUM_TO_STR];
    sprintf(speed_str, "%f", speed());
    char * speed_str_ptr = speed_str;
    // Distance in miles
    char distance_in_miles_str[MACRO_NUM_TO_STR];
    sprintf(distance_in_miles_str, "%f", distance_in_miles());
    char * distance_in_miles_str_ptr = distance_in_miles_str;
    // Time
    char time_str[MACRO_NUM_TO_STR];
    sprintf(time_str, "%f", time(speed()));
    char * time_str_ptr = time_str;
    // The data we want to join
    char ** data[] = {&start_str_ptr, &end_str_ptr, &speed_str_ptr,
        &distance_in_miles_str_ptr, &time_str_ptr, NULL};
    // Join the data together
    err = strings::join(buffer, data, TRANSPORT_TRIP_DELIM, TRANSPORT_TRIP_DONT_HAVE, buffer_length);
    // Success is determined by join
    return err;
}
예제 #2
0
파일: trip.cpp 프로젝트: pdxjohnny/more-cpp
int transport::trip::trip_to_string_readable(char * buffer, int buffer_length) {
    const int str_length = 500;
    char start_str[str_length];
    char end_str[str_length];
    start.location_to_string(start_str, str_length);
    end.location_to_string(end_str, str_length);
    sprintf(buffer, "Traveling at %02f mph "
        "over a distance of %02f miles "
        "will take %02f minutes.\n"
        "Starting at %s.\n"
        "Ending at %s.\n",
        speed(),
        distance_in_miles(),
        time(speed()),
        start_str,
        end_str
    );
    return EXIT_SUCCESS;
}
예제 #3
0
float Calc::distance_in_meter(float lat1, float lon1, float lat2, float lon2)
{
    return ( distance_in_miles(lat1,lon1,lat2,lon2) * MILES_PER_M );
}
예제 #4
0
파일: trip.cpp 프로젝트: pdxjohnny/more-cpp
float transport::trip::time(float speed) {
    return distance_in_miles() / speed * MACRO_HOURS_TO_MINUTES;
}