Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Hi my name is Scott, and i have a question about a C++ code i did. My question:

ID: 3560111 • Letter: H

Question

Hi my name is Scott, and i have a question about a C++ code i did.

My question: when I try to run the program I get an error, the error says Unable to start program CUsersOwnerDesktopConsoleApplication1DebugConsoleApplication1.exe the system cannot find the file specified

My Code:

#include <cstddef>
#include <iomanip>
#include <iostream>
#include <fstream>
#include <string>

#include <boost/archive/tmpdir.hpp>

#include <boost/archive/text_iarchive.hpp>
#include <boost/archive/text_oarchive.hpp>

#include <boost/serialization/base_object.hpp>
#include <boost/serialization/utility.hpp>
#include <boost/serialization/list.hpp>
#include <boost/serialization/assume_abstract.hpp>

class gps_position
{
   friend std::ostream & operator<<(std::ostream &os, const gps_position &gp);
   friend class boost::serialization::access;
   int degrees;
   int minutes;
   float seconds;
   template<class Archive>
   void serialize(Archive & ar, const unsigned int){
       ar & degrees & minutes & seconds;
   }
public:

   gps_position(){};
   gps_position(int _d, int _m, float _s) :
       degrees(_d), minutes(_m), seconds(_s)
   {}
};
std::ostream & operator<<(std::ostream &os, const gps_position &gp)
{
   return os << ' ' << gp.degrees << (unsigned char)186 << gp.minutes << ''' << gp.seconds << '"';
}


class bus_stop
{
   friend class boost::serialization::access;
   friend std::ostream & operator<<(std::ostream &os, const bus_stop &gp);
   virtual std::string description() const = 0;
   gps_position latitude;
   gps_position longitude;
   template<class Archive>
   void serialize(Archive &ar, const unsigned int version)
   {
       ar & latitude;
       ar & longitude;
   }
protected:
   bus_stop(const gps_position & _lat, const gps_position & _long) :
       latitude(_lat), longitude(_long)
   {}
public:
   bus_stop(){}
   virtual ~bus_stop(){}
};

BOOST_SERIALIZATION_ASSUME_ABSTRACT(bus_stop)

std::ostream & operator<<(std::ostream &os, const bus_stop &bs)
{
   return os << bs.latitude << bs.longitude << ' ' << bs.description();
}

class bus_stop_corner : public bus_stop
{
   friend class boost::serialization::access;
   std::string street1;
   std::string street2;
   virtual std::string description() const
   {
       return street1 + " and " + street2;
   }
   template<class Archive>
   void serialize(Archive &ar, const unsigned int version)
   {

       ar & boost::serialization::base_object<bus_stop>(*this);
       ar & street1 & street2;
   }

public:
   bus_stop_corner(){}
   bus_stop_corner(const gps_position & _lat, const gps_position & _long,
       const std::string & _s1, const std::string & _s2
       ) :
       bus_stop(_lat, _long), street1(_s1), street2(_s2)
   {
   }
};

class bus_stop_destination : public bus_stop
{
   friend class boost::serialization::access;
   std::string name;
   virtual std::string description() const
   {
       return name;
   }
   template<class Archive>
   void serialize(Archive &ar, const unsigned int version)
   {
       ar & boost::serialization::base_object<bus_stop>(*this) & name;
   }
public:

   bus_stop_destination(){}
   bus_stop_destination(
       const gps_position & _lat, const gps_position & _long, const std::string & _name
       ) :
       bus_stop(_lat, _long), name(_name)
   {
   }
};


class bus_route
{
   friend class boost::serialization::access;
   friend std::ostream & operator<<(std::ostream &os, const bus_route &br);
   typedef bus_stop * bus_stop_pointer;
   std::list<bus_stop_pointer> stops;
   template<class Archive>
   void serialize(Archive &ar, const unsigned int version)
   {

       ar.register_type(static_cast<bus_stop_corner *>(NULL));

       ar.register_type(static_cast<bus_stop_destination *>(NULL));

       ar & stops;
   }
public:
   bus_route(){}
   void append(bus_stop *_bs)
   {
       stops.insert(stops.end(), _bs);
   }
};
std::ostream & operator<<(std::ostream &os, const bus_route &br)
{
   std::list<bus_stop *>::const_iterator it;

   for (it = br.stops.begin(); it != br.stops.end(); it++){
       os << ' ' << std::hex << "0x" << *it << std::dec << ' ' << **it;
   }
   return os;
}


class bus_schedule
{
public:

   struct trip_info
   {
       template<class Archive>
       void serialize(Archive &ar, const unsigned int file_version)
       {

           if (file_version >= 2)

               ar & driver;

           ar & hour & minute;
       }


       int hour;
       int minute;

       std::string driver;

       trip_info(){}
       trip_info(int _h, int _m, const std::string &_d) :
           hour(_h), minute(_m), driver(_d)
       {}
   };
private:
   friend class boost::serialization::access;
   friend std::ostream & operator<<(std::ostream &os, const bus_schedule &bs);
   friend std::ostream & operator<<(std::ostream &os, const bus_schedule::trip_info &ti);
   std::list<std::pair<trip_info, bus_route *> > schedule;
   template<class Archive>
   void serialize(Archive &ar, const unsigned int version)
   {
       ar & schedule;
   }
public:
   void append(const std::string &_d, int _h, int _m, bus_route *_br)
   {
       schedule.insert(schedule.end(), std::make_pair(trip_info(_h, _m, _d), _br));
   }
   bus_schedule(){}
};
BOOST_CLASS_VERSION(bus_schedule, 2)

std::ostream & operator<<(std::ostream &os, const bus_schedule::trip_info &ti)
{
   return os << ' ' << ti.hour << ':' << ti.minute << ' ' << ti.driver << ' ';
}
std::ostream & operator<<(std::ostream &os, const bus_schedule &bs)
{
   std::list<std::pair<bus_schedule::trip_info, bus_route *> >::const_iterator it;
   for (it = bs.schedule.begin(); it != bs.schedule.end(); it++){
       os << it->first << *(it->second);
   }
   return os;
}

void save_schedule(const bus_schedule &s, const char * filename){

   std::ofstream ofs(filename);
   boost::archive::text_oarchive oa(ofs);
   oa << s;
}

void
restore_schedule(bus_schedule &s, const char * filename)
{

   std::ifstream ifs(filename);
   boost::archive::text_iarchive ia(ifs);


   ia >> s;
}
using namespace std;
int main(int argc, char *argv[])
{

   bus_schedule original_schedule;


   bus_stop *bs0 = new bus_stop_corner(
       gps_position(34, 135, 52.560f),
       gps_position(134, 22, 78.30f),
       "24th Street", "10th Avenue"
       );
   bus_stop *bs1 = new bus_stop_corner(
       gps_position(35, 137, 23.456f),
       gps_position(133, 35, 54.12f),
       "State street", "Cathedral Vista Lane"
       );
   bus_stop *bs2 = new bus_stop_destination(
       gps_position(35, 136, 15.456f),
       gps_position(133, 32, 15.300f),
       "White House"
       );
   bus_stop *bs3 = new bus_stop_destination(
       gps_position(35, 134, 48.789f),
       gps_position(133, 32, 16.230f),
       "Lincoln Memorial"
       );


   bus_route route0;
   route0.append(bs0);
   route0.append(bs1);
   route0.append(bs2);


   original_schedule.append("bob", 6, 24, &route0);
   original_schedule.append("bob", 9, 57, &route0);
   original_schedule.append("alice", 11, 02, &route0);


   bus_route route1;
   route1.append(bs3);
   route1.append(bs2);
   route1.append(bs1);


   original_schedule.append("ted", 7, 17, &route1);
   original_schedule.append("ted", 9, 38, &route1);
   original_schedule.append("alice", 11, 47, &route1);


   std::cout << "original schedule";
   std::cout << original_schedule;

   std::string filename(boost::archive::tmpdir());
   filename += "/demofile.txt";


   save_schedule(original_schedule, filename.c_str());


   bus_schedule new_schedule;

   restore_schedule(new_schedule, filename.c_str());


   std::cout << " restored schedule";
   std::cout << new_schedule;


   delete bs0;
   delete bs1;
   delete bs2;
   delete bs3;

   system("pause");
   return 0;
}

Explanation / Answer

Did you just try to debug without doing a Build or Rebuild first?

Depending on the options set in the IDE, a Build *may* be started automatically
if one is needed when you tell it to Run or Debug the program. If a Build
isn't done, or if it is and there are Build errors in the compile or link,
then when the IDE tries to Run/Debug the program it can't find it because an
.exe won't be created if there were Build errors.

Get in the habit of doing an *explicit* Build or Rebuild first, and only try
to Run/Debug the program when there are no errors from the build.

If you get build errors you don't understand then post them here along with
the code that produced them. Always use Windows' copy and paste to post the
full, actual code and error messages. Also use the "Insert Code Block" feature
of the forum editor when posting code.

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote