Structs in C++ using prototypes from the beginning

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • joeschnell
    New Member
    • Apr 2007
    • 47

    #16
    Alright, I'm progressing slowly. My output is not quite what I thought it was going to be. I was looking to justify right the title and on the same line right justify the equivalent movie number.

    "Oceans 13" movie1
    "Oceans 12" movie2

    and so on.......How do you do this, I must need to create a tab inline or something. This isn't required, nor have I ever seen it done, actually the setw() was something I saw in some code here. Do I need to move the output all on one cout like this if I want the output to appear as it does above?

    cout << setw(4) << "Oceans 13" << setw(12) << movie1 << endl;

    Would I need to rewrite it all something like this to create this or is there some other way to tab 'movie1' on to the same line. I might be getting a little out of my league since this is really my first sort of real program. I don't know, getting tired though.
    Is there any short cut commands to make this occur? Thanks

    Code:
     //Assignment One CIS247 Joseph Matzke
    #include <cstdlib>
    #include <iomanip>
    #include <iostream>
    #include <string>
    using namespace std;
    
    struct movie
    {
           char rating; //G,PG,PG13,R17,X
           string movie; //Oceans 13, Oceans 12, Oceans 11, Braveheart, Harry Potter, Caligula
           bool releaseDate; //Still in theatre-released
           char language;//English E, Spanish S, Japanese J, Chinese C, German G, Swaheely S
           double cost[5]; 
           double tax;
    };
    void playMovie (movie);
    int main(void)
    {
        int choice = 0;
        //movie anyMovie;  //declaration-creates object?
        movie movie1={'R', "Oceans 13", true, 'E', 19.99, .08}; //movie number 1
        movie movie2={'R', "Oceans 12", false, 'E', 9.99};
        movie movie3={'R', "Oceans 11", false, 'E', 9.99};
        movie movie4={'R', "Braveheart", false, 'E', 9.99};
        movie movie5={'G', "Harry Potter", false, 'E', 9.99};
        movie movie6={'X', "Caligula", false, 'S', 1.99}; 
        
           
       do  
       {
           cout << "Please enter 0 to list all movies" << endl; //makes sense to display the menu for choice
           cout << "Pleae enter 99 to end the program" << endl; //either display the menu or stop the program
           cout << "Selection:  ";
           cin >> choice;
           //cout << endl; << endl;
       }
           while (choice != 0 && choice !=99);//repeat if choice not 0 or 99
           
           if (choice == 99)
       {
                      system ("pause");
                      return 0;
       }
      
         
           if (choice == 0)
           
           
      {     
           cout << setw(4) << "Oceans 13" << endl; 
           cout << setw(4) << "Oceans 12" << endl; 
           cout << setw(4) << "Oceans 11" << endl;
           cout << setw(4) << "Braveheart" << endl; 
           cout << setw(4) <<"Harry Potter" << endl;
           cout << setw(4) << "Caligula" << endl;
           cout << setw(12) << "movie1" << endl; 
           cout << setw(12) << "movie2" << endl; 
           cout << setw(12) << "movie3" << endl;
           cout << setw(12) << "movie4" << endl; 
           cout << setw(12) << "movie5" << endl; 
           cout << setw(12) << "movie6" << endl;
      }   
      system ("pause");
      return 0;      
    }
    As you can see I had to change it ALL, I didn't like the way it looked, at all.

    If there's anyway I'd appreciate it.
    Joe

    Comment

    • ilikepython
      Recognized Expert Contributor
      • Feb 2007
      • 844

      #17
      Originally posted by joeschnell
      Alright, I'm progressing slowly. My output is not quite what I thought it was going to be. I was looking to justify right the title and on the same line right justify the equivalent movie number.

      "Oceans 13" movie1
      "Oceans 12" movie2

      and so on.......How do you do this, I must need to create a tab inline or something. This isn't required, nor have I ever seen it done, actually the setw() was something I saw in some code here. Do I need to move the output all on one cout like this if I want the output to appear as it does above?

      cout << setw(4) << "Oceans 13" << setw(12) << movie1 << endl;

      Would I need to rewrite it all something like this to create this or is there some other way to tab 'movie1' on to the same line. I might be getting a little out of my league since this is really my first sort of real program. I don't know, getting tired though.
      Is there any short cut commands to make this occur? Thanks

      As you can see I had to change it ALL, I didn't like the way it looked, at all.

      If there's anyway I'd appreciate it.
      Joe
      Maybe "\t" (tab) could do what you need:
      [code=cpp]
      cout << movie1.movie << "\t" << "movie1" << endl; // not good to have literal, use the actual variable
      cout << movie2.movie << "\t" << "movie2" << endl;
      etc...
      [/code]
      Does that work for you?

      Comment

      • joeschnell
        New Member
        • Apr 2007
        • 47

        #18
        VRX, if you think I would know how to write that code assignment you're crazy! This is the first 'real' program I have ever tried to write myself. If you wrote some code I might see some things wrong? I have 6 days left to finish this one and I'm going backwards. I thought you were explaining to me how to approach writing a program when I started reading your posting-)
        No, I wrote "Hello World" 3 months ago so I'm not the one to ask. If you thought you were posting your own thread, you were not: You simply tagged on to mine. Good luck, I know the feeling.

        On to my little project that is getting there, slowly but getting there. I've decided it's easier to just write out my initial cout's as this:

        cout << "Braveheart " << movie4 << endl; in order to bring the variable name to the same line as the title. The console manipulation is too advanced and I don't have the time.
        I do have a question that someone may know the answer to: I can compile to line, I can't say which line until I post the code, but it's this line
        switch (choice)
        and the compiler is telling me 'expected unqulified-id before "switch"
        which I had the same message in the prior line were I had this

        movie *pmovie;=NULL;
        and needed to remove ; before the = operator.
        Now, I don't see anything wrong with the code, and even if I // that line out it will not compile any further. Any ideas what is wrong?
        Thank You!
        Joe

        Code:
         
        
        //Assignment One CIS247 Joseph Matzke
        #include <cstdlib>
        #include <iomanip>
        #include <iostream>
        #include <string>
        using namespace std;
        
        struct movie
        {
               char rating; //G,PG,PG13,R17,X
               string movie; //Oceans 13, Oceans 12, Oceans 11, Braveheart, Harry Potter, Caligula
               bool releaseDate; //Still in theatre-released
               char language;//English E, Spanish S, Japanese J, Chinese C, German G, Swaheely S
               double cost[5]; 
               double tax;
        };
        void playMovie (movie);
        int main(void)
        {
            int choice = 0;
            //movie anyMovie;  //declaration-creates object?
            movie movie1={'R', "Oceans 13", true, 'E', 19.99, .08}; //movie number 1
            movie movie2={'R', "Oceans 12", false, 'E', 9.99};
            movie movie3={'R', "Oceans 11", false, 'E', 9.99};
            movie movie4={'R', "Braveheart", false, 'E', 9.99};
            movie movie5={'G', "Harry Potter", false, 'E', 9.99};
            movie movie6={'X', "Caligula", false, 'S', 1.99}; 
            
               
           do  
           {
               cout << "Please enter 0 to list all movies" << endl; //makes sense to display the menu for choice
               cout << "Pleae enter 99 to end the program" << endl; //either display the menu or stop the program
               cout << "Selection:  ";
               cin >> choice;
               cout << endl; cout << endl; cout << endl;
           }
               while (choice != 0 && choice !=99);//repeat if choice not 0 or 99
               
               if (choice == 99)
           {
                          system ("pause");
                          return 0;
           }
          
             
               if (choice == 0)
               
               
          {     
               cout << setw(8) << "Oceans 13 =    Movie 1" << endl << endl; 
               cout << setw(8) << "Oceans 12 =    Movie 2" << endl << endl; 
               cout << setw(8) << "Oceans 11 =    Movie 3" << endl << endl;
               cout << setw(8) << "Braveheart =   Movie 4" << endl << endl; 
               cout << setw(8) << "Harry Potter = Movie 5" << endl << endl;
               cout << setw(8) << "Caligula =     Movie 6" << endl << endl << endl;
               cout << setw(2) << "movie1" << endl; 
               cout << setw(2) << "movie2" << endl; 
               cout << setw(2) << "movie3" << endl;
               cout << setw(2) << "movie4" << endl; 
               cout << setw(2) << "movie5" << endl; 
               cout << setw(2) << "movie6" << endl;
          }   
          system ("pause");
          return 0;      
        }         
        void playMovie (movie)
        
         
        {
             int choice = 0;
        cout << "Choose a movie by entering 1 thru 6" << endl;
        cout << "Selection :";
        cin >> choice;
        }
        
        movie *pmovie = NULL;  //pointer to movie that user chooses
        
        switch (choice)
        {
            case 1:
                 pmovie = &movie1;
                 break;
            case 2:
                 pmovie = &movie2;
                 break;
            case 3:
                 pmovie = &movie3;
                 break;
            case 4:
                 pmovie = &movie4;
                 break;
            case 5:
                 pmovie = &movie5;
                 break;
            case 6:
                 pmovie = &movie6;
                 break;
        }
           // if (pmovie != NULL)
        //{
          //             playMovie (*pmovie);
        //}
        
          
         // void playMovie (cost[])
         // {
           //    double movie [] = {'19.99','9.99','9.99','9.99','9.99','1.99'};
           //    int choice [] = {0,0,0,0,0,0};
               
            //   cout << "Enter movie choice" << endl;
            //   cin >> choice[];
          //}
          //{
           //    if (choice == 1);
           //    cout << "movie[0]" << endl;
           //      else 
           //        if (choice =>2 && < 6);
           //        cout << "movie[2]" << endl;
           //          else cout << "movie[5]" << endl;
         // }
               
           //    void playMovie (cost)
           //    {
           //          if (movie == 1)
           //          cout << "Cost is 19.99:" << endl;
           //          else if (movie =>1 && < 6);
           //          cout << "Cost is 9.99:" << endl;
           //          else 
           //          cout << "Cost is 1.99:" << endl;
           //    }
           //    total (cost)
           //    {
           //    if (movie == 1)
           //    cost = (19.99 * .08) + 19.99;
           //    cout >> cost;
           //    else if (movie =>2 && < 6);
           //    cost = (9.99 * .08) + 9.99;
           //    cout << cost;
           //    else cost = (1.99 * .08) + 1.99;
           //    cout << cost;
           //    return cost;
           //    }
               
           //    cout << "You have chosen movie " << *pmovie << "your cost is " << cost << endl;
        I believe once I get past this switch the real problems are going to occur, the output I've changed around so far, and have compiled it to this point. Now, will it work, and I also need to rearrange some code also towards the end but I'd like to see how it outputs first. Anyway, thanks again. Later

        Comment

        • joeschnell
          New Member
          • Apr 2007
          • 47

          #19
          Line 79 is where the message occurs, error!.

          Comment

          • joeschnell
            New Member
            • Apr 2007
            • 47

            #20
            Python, there's a contributor listed under the name Python at the O'Reilly site we visited in class today while searching through different code help, would that be you?

            Comment

            • ilikepython
              Recognized Expert Contributor
              • Feb 2007
              • 844

              #21
              Originally posted by joeschnell
              VRX, if you think I would know how to write that code assignment you're crazy! This is the first 'real' program I have ever tried to write myself. If you wrote some code I might see some things wrong? I have 6 days left to finish this one and I'm going backwards. I thought you were explaining to me how to approach writing a program when I started reading your posting-)
              No, I wrote "Hello World" 3 months ago so I'm not the one to ask. If you thought you were posting your own thread, you were not: You simply tagged on to mine. Good luck, I know the feeling.

              On to my little project that is getting there, slowly but getting there. I've decided it's easier to just write out my initial cout's as this:

              cout << "Braveheart " << movie4 << endl; in order to bring the variable name to the same line as the title. The console manipulation is too advanced and I don't have the time.
              I do have a question that someone may know the answer to: I can compile to line, I can't say which line until I post the code, but it's this line
              switch (choice)
              and the compiler is telling me 'expected unqulified-id before "switch"
              which I had the same message in the prior line were I had this

              movie *pmovie;=NULL;
              and needed to remove ; before the = operator.
              Now, I don't see anything wrong with the code, and even if I // that line out it will not compile any further. Any ideas what is wrong?
              Thank You!
              Joe

              Code:
              <I had to snip your code otherwise my post wouldn't show>
              
              void playMovie (movie)
              
               
              {
                   int choice = 0;
              cout << "Choose a movie by entering 1 thru 6" << endl;
              cout << "Selection :";
              cin >> choice;
              }
              
              movie *pmovie = NULL;  //pointer to movie that user chooses
              
              switch (choice)
              {
                  case 1:
                       pmovie = &movie1;
                       break;
                  case 2:
                       pmovie = &movie2;
                       break;
                  case 3:
                       pmovie = &movie3;
                       break;
                  case 4:
                       pmovie = &movie4;
                       break;
                  case 5:
                       pmovie = &movie5;
                       break;
                  case 6:
                       pmovie = &movie6;
                       break;
              }
              I believe once I get past this switch the real problems are going to occur, the output I've changed around so far, and have compiled it to this point. Now, will it work, and I also need to rearrange some code also towards the end but I'd like to see how it outputs first. Anyway, thanks again. Later
              You ended the function again. Look at line 75. You added the closing brace to playMovie().

              Shouldn't the code with the switch appear in main, if your playMovie is supposed to display the variables in a movie object? If not, what is playMovie supposed to do. I imagined playMovie like this:
              [code=cpp]
              void playMovie(movie myMovie)
              {
              cout << "Movie name: " << myMovie.movie << endl;
              cout << "Movie cost: " << myMovie.cost << endl;
              cout << "Movie rating: " << myMovie.rating << endl;
              cout << "Movie tax: " << myMovie.tax << endl;
              // other members of a movie
              }
              [/code]
              Then in main you would prompt the user for a movie and then call playMovie with that movie.

              Comment

              • ilikepython
                Recognized Expert Contributor
                • Feb 2007
                • 844

                #22
                Originally posted by joeschnell
                Python, there's a contributor listed under the name Python at the O'Reilly site we visited in class today while searching through different code help, would that be you?
                That's probably not me, I'm not that good (lol). I haven't contributed to anything so, probably not me. Plus, I've barely been programming for 6 months.

                Comment

                • joeschnell
                  New Member
                  • Apr 2007
                  • 47

                  #23
                  I thought you always needed a brace around any statement block? I've never written more than one statement block before. Now, it does compile down to the first break in the switch and says I haven't declared movie1 yet, I guess I closed main up at line where I have return 0; following all those couts, but if I don't put a brace there it won't compile. I need to move some blocks of code up higher in main first, this is going to take a while. Thanks.......ag ain. Joe

                  Comment

                  • joeschnell
                    New Member
                    • Apr 2007
                    • 47

                    #24
                    No I didn't either, I have one open and one closed brace running now that I've removed the one at line 75. I don't know how I keep doing that. Now, the compiler hangs up at the first break in switch as it was. So, I haven't declared the variables correctly, or elements since I am using a struct. I don't understand how the pointers work I guess. I think if I change my switch to a regular switch it will work, I'm going to try it.
                    I know how a switch works, and I can't turn it in if I don't understand what everything in it is doing. I appreciate the jump start in pointers, but I think I'll wait until we get there. He'll be wondering how I knew about pointers anyway if I used them, which wouldn't matter if I understood them, but I don't.

                    Let me try changing the switch. Thanks again. Joe

                    Comment

                    • joeschnell
                      New Member
                      • Apr 2007
                      • 47

                      #25
                      OK, I'm back to abusing my defenseless mouse. Apparently there is something I don't understand about passing the value in a struct.
                      Why won't my switch compile??
                      I've tried using numerous variables in the
                      switch (rightHerePart)
                      and it's not compiling, and driving me nuts. What would the proper call be in this instance, I think and thought it would be simply

                      switch (myMovie.choice )

                      but apparently not! Do you have any ideas for me to try? Anyone/?

                      It compiles through the first 100 lines down to line 17 above with the following error message: struct has no member named choice--I know that, that's the cin>> I am switching. OMG!!!!!!!!!!!! !!!!!!!!!!!!!!! !!!!! Bye

                      Thank You

                      Code:
                             cout << setw(2) << "movie6" << endl;
                        }    
                        //system ("pause");
                        //return 0;      
                      }       
                       void playMovie ( struct movie myMovie)
                       
                      {
                            int choice = 0;
                      cout << "Choose a movie by entering 1 thru 6" << endl;
                      cout << "Selection :";
                      cin >> choice;
                      
                      
                      //movie *pmovie = NULL;  //pointer to movie that user chooses
                      
                      switch (myMovie.choice)
                      {
                          case 1:
                               movie1 = "Oceans 13";
                               break;
                          case 2:
                               movie2 = "Oceans 12";
                               break;
                          case 3:
                               movie3 = "Oceans 11";
                               break;
                          case 4:
                               movie4 = "Braveheart";
                               break;
                          case 5:
                               movie5 = "Harry Potter";
                               break;
                          case 6:
                               movie6 = "Caligula";
                          default: "Invalid entry";
                      }
                      I'm done for the night, I won't have any computers left if I keep trying on this *&%^* program.
                      Joe

                      Comment

                      • ilikepython
                        Recognized Expert Contributor
                        • Feb 2007
                        • 844

                        #26
                        Originally posted by joeschnell
                        OK, I'm back to abusing my defenseless mouse. Apparently there is something I don't understand about passing the value in a struct.
                        Why won't my switch compile??
                        I've tried using numerous variables in the
                        switch (rightHerePart)
                        and it's not compiling, and driving me nuts. What would the proper call be in this instance, I think and thought it would be simply

                        switch (myMovie.choice )

                        but apparently not! Do you have any ideas for me to try? Anyone/?

                        It compiles through the first 100 lines down to line 17 above with the following error message: struct has no member named choice--I know that, that's the cin>> I am switching. OMG!!!!!!!!!!!! !!!!!!!!!!!!!!! !!!!! Bye

                        Thank You

                        Code:
                               cout << setw(2) << "movie6" << endl;
                          }    
                          //system ("pause");
                          //return 0;      
                        }       
                         void playMovie ( struct movie myMovie)
                         
                        {
                              int choice = 0;
                        cout << "Choose a movie by entering 1 thru 6" << endl;
                        cout << "Selection :";
                        cin >> choice;
                        
                        
                        //movie *pmovie = NULL;  //pointer to movie that user chooses
                        
                        switch (myMovie.choice)
                        {
                            case 1:
                                 movie1 = "Oceans 13";
                                 break;
                            case 2:
                                 movie2 = "Oceans 12";
                                 break;
                            case 3:
                                 movie3 = "Oceans 11";
                                 break;
                            case 4:
                                 movie4 = "Braveheart";
                                 break;
                            case 5:
                                 movie5 = "Harry Potter";
                                 break;
                            case 6:
                                 movie6 = "Caligula";
                            default: "Invalid entry";
                        }
                        I'm done for the night, I won't have any computers left if I keep trying on this *&%^* program.
                        Joe
                        You have all of that code in playMovie. I think it should be in main. What do you want playMovie to do?

                        Second, why would you put "myMovie.choice " if the variable "choice" has nothing to do with movie objects. A switch performs different actions depending on the value of the variable in the parenthesis. In your case, the variable you want to check is "choice". Here is the switch rewritten without using pointers:
                        [code=cpp]
                        cout << "Choose a movie by entering 1 thru 6" << endl;
                        cout << "Selection :";
                        cin >> choice;

                        movie myMovie;
                        switch (choice)
                        {
                        case 1:
                        myMovie = movie1;
                        break;
                        case 2:
                        myMovie = movie2;
                        break;
                        case 3:
                        myMovie = movie3;
                        break;
                        case 4:
                        myMovie = movie4;
                        break;
                        case 5:
                        myMovie = movie5;
                        break;
                        case 6:
                        myMovie = movie6;
                        break;
                        default: // could be avoided if we used a do while as we used previously
                        cout << "Invalid movie number" << endl;
                        return 1;
                        break;
                        }
                        playMovie(myMov ie); // would display the movie's member variables
                        [/code]
                        Just as a note, playMovie shoudn't care what movie it is being passed, it only cares that you pass a movie. It should know nothing of the actual program, only that it should print out the variables of a movie object. Hope that helps.

                        Comment

                        • joeschnell
                          New Member
                          • Apr 2007
                          • 47

                          #27
                          Yes you are right, I am not thinking how the values are being passed using 'struct'.

                          This compiles but does not break, the code falls through to the default when choosing either 1 thru 6 to "Invalid movie number, why? I compared this switch to several I have written last term and see nothing that would allow the case to be ignored and program to drop through all breaks.
                          How do you know so much in 6 months? You've been coding longer than that?
                          Where is my logical error now, I thought syntax errors would make logical easy to find, I don't see it, maybe I should stop for a while, I've rewritten this code several dozen times tonight alone. Yikes.
                          Thanks You

                          Comment

                          • joeschnell
                            New Member
                            • Apr 2007
                            • 47

                            #28
                            Code:
                             {
                                  int choice = 0;
                            cout << "Choose a movie by entering 1 thru 6" << endl;
                            cout << "Selection :";
                            cin >> choice;
                            }
                            
                            movie myMovie;
                            switch (choice)
                            {
                                case 1:
                                     myMovie = movie1;
                                     break;
                                case 2:
                                     myMovie = movie2;
                                     break;
                                case 3:
                                     myMovie = movie3;
                                     break;
                                case 4:
                                     myMovie = movie4;
                                     break;
                                case 5:
                                     myMovie = movie5;
                                     break;
                                case 6:
                                     myMovie = movie6;
                                     break;
                                default: cout << "Invalid movie number" << endl;
                                system ("pause");
                                     return 1;
                                     break;
                                
                            }
                            It falls through all breaks no matter which case number you choose, why?

                            Comment

                            • ilikepython
                              Recognized Expert Contributor
                              • Feb 2007
                              • 844

                              #29
                              Originally posted by joeschnell
                              Code:
                               {
                                    int choice = 0;
                              cout << "Choose a movie by entering 1 thru 6" << endl;
                              cout << "Selection :";
                              cin >> choice;
                              }
                              
                              movie myMovie;
                              switch (choice)
                              {
                                  case 1:
                                       myMovie = movie1;
                                       break;
                                  case 2:
                                       myMovie = movie2;
                                       break;
                                  case 3:
                                       myMovie = movie3;
                                       break;
                                  case 4:
                                       myMovie = movie4;
                                       break;
                                  case 5:
                                       myMovie = movie5;
                                       break;
                                  case 6:
                                       myMovie = movie6;
                                       break;
                                  default: cout << "Invalid movie number" << endl;
                                  system ("pause");
                                       return 1;
                                       break;
                                  
                              }
                              It falls through all breaks no matter which case number you choose, why?
                              You could try printing choice right before the switch to see what value it has, or you can use this loop:
                              [code=cpp]
                              do
                              {
                              cout << "Choose a movie by entering 1 thru 6" << endl;
                              cout << "Selection :";
                              cin >> choice;
                              }
                              while (choice != 1 && choice != 2 && choice != 3 && choice != 4 && choice != 5 choice != 6);
                              // at this point choice will be 1 - 6
                              [/code]

                              It would be much easier to use an array of movies than all those movie variables. That would eliminate the need for a switch.

                              After you declare the movies you just write this:
                              [code=cpp]
                              movie movies[6] = {movie1, movie2, movie3, movie4, movie5, movie6};
                              [/code]
                              Now you don't need a switch, you just call playMovie lke this:
                              [code=cpp]
                              playMovie[movies[choice-1]);
                              [/code]
                              Last edited by ilikepython; Jul 25 '07, 03:34 PM. Reason: added more about arrays

                              Comment

                              • joeschnell
                                New Member
                                • Apr 2007
                                • 47

                                #30
                                Code:
                                 /*{
                                      int choice = 0;
                                cout << "Choose a movie by entering 1 thru 6" << endl;
                                cout << "Selection :";
                                cin >> choice;
                                }*/
                                //playMovie [movies[choice - 1]);
                                do
                                
                                {
                                
                                    cout << "Choose a movie by entering 1 thru 6" << endl;
                                
                                    cout << "Selection :";
                                
                                    cin >> choice;
                                }
                                    while (choice != 1 && choice != 2 && choice != 3 && choice != 4 && choice != 5 && choice != 6);
                                    {
                                    system ("pause");
                                    return 0;
                                
                                    }
                                 // playMovie (movies [choice - 1];
                                
                                /*
                                while (choice != 1 && choice != 2 && choice != 3 && choice != 4 && choice != 5 && choice != 6);
                                movie myMovie;
                                switch (choice)
                                {
                                    case 1:
                                         myMovie = movie1;
                                         break;
                                    case 2:
                                         myMovie = movie2;
                                         break;
                                    case 3:
                                         myMovie = movie3;
                                         break;
                                I've tried this every way I can imagine, many more than shown here and regardless something is not right and I don't know what it is my friend. I have to get to class, I'll try some others tonight.

                                Comment

                                Working...