example using the course class

Dependencies:   4DGL-uLCD-SE Course mbed SDFileSystem

main.cpp

Committer:
kkizirian
Date:
2016-12-05
Revision:
2:84925a4bf964
Parent:
1:f603609389d5
Child:
3:4984f0a32f32

File content as of revision 2:84925a4bf964:

#include "mbed.h"
#include "Course.h"
#include <string>
#include <vector>
#include "uLCD_4DGL.h"

uLCD_4DGL uLCD(p9,p10,p11); // serial tx, serial rx, reset pin;
vector<Course> courseVec;
int addCourseToVector(vector<Course>& cVec, Course newCourse);

int main() {
    Course course1("HWY", 6, 5, "PM");
    Course course2("LVE", 8, 10, "AM");
    Course course3("CLH", 8, 25, "AM");
    Course course4("KLS", 8, 15, "AM");
    Course course5("LVE", 2, 30, "PM");
    
    addCourseToVector(courseVec, course1);
    addCourseToVector(courseVec, course2);
    addCourseToVector(courseVec, course3);
    addCourseToVector(courseVec, course4);
    addCourseToVector(courseVec, course5);
    
    uLCD.cls();
    uLCD.locate(0, 1);
    uLCD.printf("%s", courseVec[0].getDisplayString());
    uLCD.locate(0, 2);
    uLCD.printf("%s", courseVec[1].getDisplayString());
    uLCD.locate(0, 3);
    uLCD.printf("%s", courseVec[2].getDisplayString());
    uLCD.locate(0, 4);
    uLCD.printf("%s", courseVec[3].getDisplayString());
    uLCD.locate(0, 5);
    uLCD.printf("%s", courseVec[4].getDisplayString());
}

// this adds the paramter newCourse to the vector cVec in the correct
// location in the vector by time, returns 1 if successful and 0 if 
// unsuccessful
int addCourseToVector(vector<Course>& cVec, Course newCourse) {

    if (cVec.size() == 0) {
        cVec.push_back(newCourse);
        return 1;
    }

    for (int i = 0; i < cVec.size(); i++) {
        if (cVec[i].getAMPM_toInt() < newCourse.getAMPM_toInt())
            continue;
        else if (newCourse.getAMPM_toInt() < cVec[i].getAMPM_toInt()) {
            cVec.insert(cVec.begin()+i, newCourse);
            return 1;
        }
        else if (cVec[i].getAMPM_toInt() == newCourse.getAMPM_toInt()) {
            if (cVec[i].getHour() < newCourse.getHour())
                continue;
            else if (newCourse.getHour() < cVec[i].getHour()) {
                cVec.insert(cVec.begin()+i, newCourse);
                return 1;
            }
            else if (cVec[i].getHour() == newCourse.getHour()) {
                if (cVec[i].getMinute() < newCourse.getMinute())
                    continue;
                else if (newCourse.getMinute() < cVec[i].getMinute()) {
                    cVec.insert(cVec.begin()+i, newCourse);
                    return 1;
                }
                else if (cVec[i].getMinute() == newCourse.getMinute())
                    return 0;
            }
        }

        if (i == (cVec.size() - 1)) {
            cVec.push_back(newCourse);
            return 1;
        }
    }
    return 0;
}