Linked list

Hey guys I am trying to do the following.

2. Create a structure called ListNode that can hold an object of the car class as its value.
3. Create a Linked List to hold the following cars in inventory. Then use a loop to print all of the information about them for the user.
Make Model Color Year Mileage
1) Porsche 911 Silver 2005 45000
2) Ford Mustang Red 2007 12600
3) Voltzwagon Jetta Black 2006 20218
4) Jeep Cherokee White 2000 98322
5) Nisson Sentra red 2002 76046
6) Voltzwagon Beetle Black 2005 28031
4. Change the Jeep Cherokee’s year to be 2001. Change the Sentra’s mileage to be 80000. Use the loop to print out the information for the user.
5. You need to be able to see the average miles for all cars in inventory. Write the code to find the average miles and display it for the user by adding up the miles for all of the cars in inventory and dividing by the size of the Linked List holding inventory. Make sure to test if the Linked List holding the inventory has nothing in it yet to prevent a divide by zero problem!
6. Add the following cars to inventory. Then use a loop to print all of the information about them for the user.
Make Model Color Year Mileage
1) Chevrolet Corvette Black 2003 11903
6) Ford Explorer Grey 2004 73922
7) Honda Civic White 2007 12045

7. Delete the following car out of inventory. Then use a loop to print all of the information about them for the user.
Voltzwagon Jetta Black 2006 20218
(Hint: This is not the last car! You will have to delete this node and set the previous node’s pointer to reference the next object in the list.)


Does anyone know how i can do this with the following code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#include <iostream>
#include <fstream>
#include <iomanip>
#include <functional>
#include <algorithm>
#include <string>
#include <cstdlib>
#include <sstream>
using namespace std;

//Car Class
class Car
{
protected:
    string make;  //make
    string model; // model
    string color;  // color
    int year;  // year
    int mileage;  // miles on car

public:
                //Constructor that will set information for a new car
        void New_vehicle (string a, string b, string c, int d, int e) 
        {make = a; model = b; color = c; year = d; mileage = e;}
        
        Car(); //Default constructor
        Car(string, string, string, int, int);
        //mutator and accessor functions
        void setMake(string);
    void setModel(string);
    void setColor(string);
    void setYear(int);
    void setMileage(int);

    string getMake();
    string getModel();
    string getColor();
    int getYear();
    int getMileage();

        //Check mileage to see if valid
    void valid_mileage(int);
    void car_details();
    string string_car_details();
};

//Sets to default values
Car::Car() {
        make = " ";
    model = " ";
    color = " ";
    year = 0;
    mileage = 0;
}
        // My Vehicle set up(Make, model, color, year, mileage)
Car::Car(string make, string model, string color, int year, int mileage) {
    this->make =  make;
    this->model = model;
    this->color = color;
    this->year = year;
    valid_mileage(mileage);
}


void Car::setMake(string make) {
    Car::make = make;
}

void Car::setModel(string model) {
    Car::model = model;
}

void Car::setColor(string color) {
    Car::color = color;
}

void Car::setYear(int year) {
    Car::year = year;
}

void Car::setMileage(int mileage) {
    valid_mileage(mileage);
}


string Car::getMake() {
    return make;
}
string Car::getModel() {
    return model;
}
string Car::getColor() {
    return color;
}
int Car::getYear() {
    return year;
}
int Car::getMileage() {
    return mileage;
}


void Car::valid_mileage(int mileage) {
    if (mileage>=0)
        Car::mileage=mileage;
    else {
        Car::mileage=0;
        cout << "WARNING! You have entered invalid mileage!\n";
        }
    }

        void Car::car_details() {
            cout << "The current car is a " << year << ' ' << color << ' '
                        << make << ' ' << model << " with " << mileage << " miles.\n\n";
        }



        string Car::string_car_details() {
            stringstream buf;
            buf << "The current car is a " << year << ' ' << color << ' '
            << make << ' ' << model << " with " << mileage << " miles.\n\n";
            return buf.str();
        }


1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "CarClass.h"
using namespace std;

int main() {


        //Array of 6 cars
        Car Car_array[SIZE] = { Car("Porsche", "911", "Silver", 2005, 45000), 
                                Car("Ford", "Mustang", "Red", 2007, 12600),
                                Car("Voltzwagon", "Jetta", "Black", 2006, 20218),
                                Car("Jeep", "Cherokee", "White", 2000, 98322),
                                Car("Nissan", "Sentra", "Red", 2002, 76046),
                                Car("Voltzwagon", "Beetle", "Black", 2005, 28031)};
Do you know what a linked list is?

you need this kind of thing:

1
2
3
4
5
struct ListNode {
    ListNode() : car(NULL), next(NULL) { }
    Car *car;
    LinkNode *next;
};


You possibly need dynamic memory allocation with new and delete to solve this problem.


Maikel
This is what I got so far! Am I wrong??

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80

#include "CarClass.h"
using namespace std;



ListNode *start_ptr = NULL;
int main()
{
        start_ptr = new ListNode;
        ListNode *temp = start_ptr;
		ListNode Car[6];

        for (int i = 0; i<6; i++)
			{
                cout << "Please enter the make of the vehicle: ";
                cin >> temp->make;
				Car[i].make;
                cout << "Please enter the model of the vehicle: ";
                cin >> temp->model;
				Car[i].model;
                cout << "Please enter the color of the vehicle: ";
                cin >> temp->color;
				Car[i].color;
                cout << "Please enter the year of the vehicle: ";
                cin >> temp->year;
				Car[i].year;
                cout << "Please enter the mileage of the vehicle: ";
                cin >> temp->mileage;
				Car[i].mileage;
                
                cout << "__________________________________________________________\n"<< endl;

		}

		for (int i=0; i<6; i++) 
		{
        Car[i].car_details();
        }


		// Change and print Information
		cout << "The Jeep Cherokee's Year has been changed as follow:" << endl;
		Car[3].year = 2001;
		Car[3].car_details();

		cout << "The Nisson Sentra's Mileage has been changed as follow:" << endl;
		Car[4].mileage = 80000;
		Car[4].car_details();

		for (int i = 0; i<3; i++)
			{
                cout << "Please enter the make of the vehicle: ";
                cin >> temp->make;
				Car[i].make;
                cout << "Please enter the model of the vehicle: ";
                cin >> temp->model;
				Car[i].model;
                cout << "Please enter the color of the vehicle: ";
                cin >> temp->color;
				Car[i].color;
                cout << "Please enter the year of the vehicle: ";
                cin >> temp->year;
				Car[i].year;
                cout << "Please enter the mileage of the vehicle: ";
                cin >> temp->mileage;
				Car[i].mileage;
                
                cout << "__________________________________________________________\n"<< endl;

		}

		for (int i=0; i<9; i++) 
		{
        Car[i].car_details();
        }

	    return 0;
	}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <iostream>
#include <fstream>
#include <iomanip>
#include <functional>
#include <algorithm>
#include <string>
#include <cstdlib>
#include <sstream>
using namespace std;


struct ListNode
	{
        string make;  //make
        string model; // model
        string color;  // color
        int year;  // year
        int mileage;  // miles on car
        ListNode *next;   //Pointer to next node
		
		void car_details();
        ListNode(void)
                :next(NULL)
				
        {}
};      
//Car Class
class Car
{
protected:
    string make;  //make
    string model; // model
    string color;  // color
    int year;  // year
    int mileage;  // miles on car

public:
                //Constructor that will set information for a new car
        void New_vehicle (string a, string b, string c, int d, int e) 
        {make = a; model = b; color = c; year = d; mileage = e;}
        
        Car(); //Default constructor
        Car(string, string, string, int, int);
        //mutator and accessor functions
        void setMake(string);
    void setModel(string);
    void setColor(string);
    void setYear(int);
    void setMileage(int);

    string getMake();
    string getModel();
    string getColor();
    int getYear();
    int getMileage();

        //Check mileage to see if valid
    void valid_mileage(int);
    void car_details();
    string string_car_details();
};

//Sets to default values
Car::Car() {
    make = " ";
    model = " ";
    color = " ";
    year = 0;
    mileage = 0;
}
        // My Vehicle set up(Make, model, color, year, mileage)
Car::Car(string make, string model, string color, int year, int mileage) {
    this->make =  make;
    this->model = model;
    this->color = color;
    this->year = year;
    valid_mileage(mileage);
}


void Car::setMake(string make) {
    Car::make = make;
}

void Car::setModel(string model) {
    Car::model = model;
}

void Car::setColor(string color) {
    Car::color = color;
}

void Car::setYear(int year) {
    Car::year = year;
}

void Car::setMileage(int mileage) {
    valid_mileage(mileage);
}


string Car::getMake() {
    return make;
}
string Car::getModel() {
    return model;
}
string Car::getColor() {
    return color;
}
int Car::getYear() {
    return year;
}
int Car::getMileage() {
    return mileage;
}


void Car::valid_mileage(int mileage) {
    if (mileage>=0)
        Car::mileage=mileage;
    else {
        Car::mileage=0;
        cout << "WARNING! You have entered invalid mileage!\n";
        }
    }

        void ListNode::car_details() {
            cout << "The current car is a " << year << ' ' << color << ' '
                        << make << ' ' << model << " with " << mileage << " miles.\n\n";
        }



        string Car::string_car_details() {
            stringstream buf;
            buf << "The current car is a " << year << ' ' << color << ' '
            << make << ' ' << model << " with " << mileage << " miles.\n\n";
            return buf.str();
        }
But for some reason I do not feel like that is holding an object of the car class!
Here is more of an example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
struct ListNode {
    ListNode(Car *c = NULL) : next(NULL), car(c) { }

    ListNode *next;
    Car *car;
};

struct List {
    List() : begin(NULL), end(NULL) { }

    void push_back_car(Car const &car)
    {
        ListNode *new_node = new ListNode(new Car(car));
        if (end == NULL) {
            begin = new_node;
            end   = new_node;
        }
        end->next = new_node;
    }

    ListNode *begin;
    ListNode *end;
};


Maikel
So are you saying I just need to replace my current node and leave everything else the same and this will be correct??
thats not what i am doing.

ups i forgot a line. (and more..)

1
2
3
4
5
6
7
8
9
10
11
12
    void push_back_car(Car const &car)
    {
        ListNode *new_node = new ListNode(new Car(car));
        if (end == NULL) {
            begin = new_node;
            end   = new_node;
        } else {
            end->next = new_node;
            end = new_node;
        }
    }
Last edited on
Ok so take what you did and replace my current list node stuff with yours and then keep everything the same??
No, i just made a principle clear. I did not even read your code fully, sorry.
Here is my new code and it works. It ask for however many cars I want and prints 6 of them. But I am unsure how to get it to change something! For instance, lets say I need to change the year of the second car that is entered...How can I do that?? And how would I add more cars to it, once it has changed that car. And do you know how to find and delete one from the list??

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include "CarClass.h"
using namespace std;



ListNode *start_ptr = NULL;
int main()
{
        start_ptr = new ListNode;
        ListNode *temp = start_ptr;
		char again;

        while(true)
        {
                cout << "Please enter the make of the vehicle: ";
                cin >> temp->make;
                cout << "Please enter the model of the vehicle: ";
                cin >> temp->model;
                cout << "Please enter the color of the vehicle: ";
                cin >> temp->color;
                cout << "Please enter the year of the vehicle: ";
                cin >> temp->year;
                cout << "Please enter the mileage of the vehicle: ";
                cin >> temp->mileage;

                cout<<"Would You like To Enter Another Car (Y/N) :";
                cin>>again;

                if(toupper(again) != 'Y')
                        break;
                temp->next = new ListNode;
                temp = temp->next;
				cout <<"____________________________________________________\n\n";
        }

		cout <<"____________________________________________________\n\n";

        ListNode *details = start_ptr;

        for (int i=0; i<6; i++) 
        {
                details->car_details();
                details = details->next;
        }



	    return 0;
	}


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <iostream>
#include <fstream>
#include <iomanip>
#include <functional>
#include <algorithm>
#include <string>
#include <cstdlib>
#include <sstream>
using namespace std;


struct ListNode
	{
        string make;  //make
        string model; // model
        string color;  // color
        int year;  // year
        int mileage;  // miles on car
        ListNode *next;   //Pointer to next node
		
		void car_details();
        ListNode(void)
                :next(NULL)
				
        {}
};      
//Car Class
class Car
{
protected:
    string make;  //make
    string model; // model
    string color;  // color
    int year;  // year
    int mileage;  // miles on car

public:
                //Constructor that will set information for a new car
        void New_vehicle (string a, string b, string c, int d, int e) 
        {make = a; model = b; color = c; year = d; mileage = e;}
        
        Car(); //Default constructor
        Car(string, string, string, int, int);
        //mutator and accessor functions
        void setMake(string);
    void setModel(string);
    void setColor(string);
    void setYear(int);
    void setMileage(int);

    string getMake();
    string getModel();
    string getColor();
    int getYear();
    int getMileage();

        //Check mileage to see if valid
    void valid_mileage(int);
    void car_details();
    string string_car_details();
};

//Sets to default values
Car::Car() {
    make = " ";
    model = " ";
    color = " ";
    year = 0;
    mileage = 0;
}
        // My Vehicle set up(Make, model, color, year, mileage)
Car::Car(string make, string model, string color, int year, int mileage) {
    this->make =  make;
    this->model = model;
    this->color = color;
    this->year = year;
    valid_mileage(mileage);
}


void Car::setMake(string make) {
    Car::make = make;
}

void Car::setModel(string model) {
    Car::model = model;
}

void Car::setColor(string color) {
    Car::color = color;
}

void Car::setYear(int year) {
    Car::year = year;
}

void Car::setMileage(int mileage) {
    valid_mileage(mileage);
}


string Car::getMake() {
    return make;
}
string Car::getModel() {
    return model;
}
string Car::getColor() {
    return color;
}
int Car::getYear() {
    return year;
}
int Car::getMileage() {
    return mileage;
}


void Car::valid_mileage(int mileage) {
    if (mileage>=0)
        Car::mileage=mileage;
    else {
        Car::mileage=0;
        cout << "WARNING! You have entered invalid mileage!\n";
        }
    }

        void ListNode::car_details() {
            cout << "The current car is a " << year << ' ' << color << ' '
                        << make << ' ' << model << " with " << mileage << " miles.\n\n";
        }



        string Car::string_car_details() {
            stringstream buf;
            buf << "The current car is a " << year << ' ' << color << ' '
            << make << ' ' << model << " with " << mileage << " miles.\n\n";
            return buf.str();
        }
Last edited on
anyone got any help
Since you are using a list, you don't have random access and you would just need to iterate through the list, looking for the car you want. Once you get to it you can change it's members.
Any idea on how i would do this??
Zhuge stated exactly what you need to do.
Up dated code please review if you can

H file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <iostream>
#include <fstream>
#include <iomanip>
#include <functional>
#include <algorithm>
#include <string>
#include <cstdlib>
#include <sstream>
using namespace std;


//Car Class
class Car
{
protected:
    string make;  //make
    string model; // model
    string color;  // color
    int year;  // year
    int mileage;  // miles on car

public:
                //Constructor that will set information for a new car
        void New_vehicle (string a, string b, string c, int d, int e) 
        {make = a; model = b; color = c; year = d; mileage = e;}
        
        Car(); //Default constructor
        Car(string, string, string, int, int);
        //mutator and accessor functions
        void setMake(string);
    void setModel(string);
    void setColor(string);
    void setYear(int);
    void setMileage(int);

    string getMake();
    string getModel();
    string getColor();
    int getYear();
    int getMileage();

        //Check mileage to see if valid
    void valid_mileage(int);

    string string_car_details();
};

//Sets to default values
Car::Car() {
    make = " ";
    model = " ";
    color = " ";
    year = 0;
    mileage = 0;
}
        // My Vehicle set up(Make, model, color, year, mileage)
Car::Car(string make, string model, string color, int year, int mileage) {
    this->make =  make;
    this->model = model;
    this->color = color;
    this->year = year;
    valid_mileage(mileage);
}


void Car::setMake(string make) {
    Car::make = make;
}

void Car::setModel(string model) {
    Car::model = model;
}

void Car::setColor(string color) {
    Car::color = color;
}

void Car::setYear(int year) {
    Car::year = year;
}

void Car::setMileage(int mileage) {
    valid_mileage(mileage);
}


string Car::getMake() {
    return make;
}
string Car::getModel() {
    return model;
}
string Car::getColor() {
    return color;
}
int Car::getYear() {
    return year;
}
int Car::getMileage() {
    return mileage;
}


void Car::valid_mileage(int mileage) {
    if (mileage>=0)
        Car::mileage=mileage;
    else {
        Car::mileage=0;
        cout << "WARNING! You have entered invalid mileage!\n";
        }
    }

        void CarList::car_details() {
            cout << "The current car is a " << year << ' ' << color << ' '
                        << make << ' ' << model << " with " << mileage << " miles.\n\n";
        }



        string Car::string_car_details() {
            stringstream buf;
            buf << "The current car is a " << year << ' ' << color << ' '
            << make << ' ' << model << " with " << mileage << " miles.\n\n";
            return buf.str();
        }

	void CarList::car_details();
      {
      ListNode * current = firstNodeInList;
      while(current != NULL)
      cout << current->Car;
	  }

		struct ListNode
      {
      Car Car;
      ListNode *next;
      };   

      struct CarList
      {

      ListNode * root;
      CarList() : root(0) {};
      void insert(Car);
      void del(Car);
      void findCar(Car);
      void printList();
	  void car_details();
      };



CPP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "CarClass.h"
#include <iostream>
using namespace std;

int main()
{
    CarList inventory;
     Car carObject;
     bool addAnotherCar = true;
     while(addAnotherCar)
      {
		char again;
		string temp;

	  	ListNode *start_ptr = NULL;
				cout << "Please enter the make of the vehicle: ";
				Car.getMake;
                cout << "Please enter the model of the vehicle: ";
                Car.getModel;
                cout << "Please enter the color of the vehicle: ";
                Car.getColor;
                cout << "Please enter the year of the vehicle: ";
                Car.getYear;
                cout << "Please enter the mileage of the vehicle: ";
                Car.getMileage;

                cout<<"Would You like To Enter Another Car (Y/N) :";
                cin>>again;

                if(toupper(again) != 'Y')
                        break;
                temp->next = new ListNode;
                temp = temp->next;
				cout <<"____________________________________________________\n\n";
	 
	 	inventory. insert(carObject);

		//Information needs to be changed
	 }
	 	
	 	inventory.car_details();

		//Add more cars

		//Information about a car to remove

		//delete desidred car

		inventory.del(carObject);

		//Print information
		inventory.car_details();

	    return 0;
	}
Sorry to be naggy or dumb but has anyone had a chance to look at this and help me out
Updated Code please review here are my errors and code

ERRORS:
1>Car.obj : error LNK2019: unresolved external symbol "public: void __thiscall CarList::del(class Car)" (?del@CarList@@QAEXVCar@@@Z) referenced in function _main
1>Car.obj : error LNK2019: unresolved external symbol "public: void __thiscall CarList::car_details(void)" (?car_details@CarList@@QAEXXZ) referenced in function _main
1>Car.obj : error LNK2019: unresolved external symbol "public: void __thiscall CarList::insert(class Car)" (?insert@CarList@@QAEXVCar@@@Z) referenced in function _main
1>C:\Users\Justin Puckett\Documents\My Stuff\School Work\Second Semester\Spring 2009\C++\Week11Nodes\Test\Debug\Test.exe : fatal error LNK1120: 3 unresolved externals

CPP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include "CarClass.h"
#include <iostream>
using namespace std;

int main()
{
    CarList inventory;
     Car carObject;
     bool addAnotherCar = true;

	  	ListNode *start_ptr = NULL;
		for (int i = 0; i<6; i++) {
				cout << "Please enter the make of the vehicle: ";
				&Car::getMake;
                cout << "Please enter the model of the vehicle: ";
                &Car::getModel;
                cout << "Please enter the color of the vehicle: ";
                &Car::getColor;
                cout << "Please enter the year of the vehicle: ";
                &Car::getYear;
                cout << "Please enter the mileage of the vehicle: ";
                &Car::getMileage;
	 
			inventory.insert(carObject);
		
		//Information needs to be changed
	 	
	 	inventory.car_details();

		//Add more cars

		//Information about a car to remove

		//delete desidred car

		inventory.del(carObject);

		//Print information
		inventory.car_details();
		}
	    return 0;
	}


H
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154

#include <iostream>
#include <fstream>
#include <iomanip>
#include <functional>
#include <algorithm>
#include <string>
#include <cstdlib>
#include <sstream>
using namespace std;


//Car Class
class Car
{
protected:
    string make;  //make
    string model; // model
    string color;  // color
    int year;  // year
    int mileage;  // miles on car

public:
                //Constructor that will set information for a new car
        void New_vehicle (string a, string b, string c, int d, int e) 
        {make = a; model = b; color = c; year = d; mileage = e;}
        
        Car(); //Default constructor
        Car(string, string, string, int, int);
        //mutator and accessor functions
        void setMake(string);
    void setModel(string);
    void setColor(string);
    void setYear(int);
    void setMileage(int);

    string getMake();
    string getModel();
    string getColor();
    int getYear();
    int getMileage();

        //Check mileage to see if valid
    void valid_mileage(int);
	void car_details();
    string string_car_details();
};

//Sets to default values
Car::Car() {
    make = " ";
    model = " ";
    color = " ";
    year = 0;
    mileage = 0;
}
        // My Vehicle set up(Make, model, color, year, mileage)
Car::Car(string make, string model, string color, int year, int mileage) {
    this->make =  make;
    this->model = model;
    this->color = color;
    this->year = year;
    valid_mileage(mileage);
}


void Car::setMake(string make) {
    Car::make = make;
}

void Car::setModel(string model) {
    Car::model = model;
}

void Car::setColor(string color) {
    Car::color = color;
}

void Car::setYear(int year) {
    Car::year = year;
}

void Car::setMileage(int mileage) {
    valid_mileage(mileage);
}


string Car::getMake() {
    return make;
}
string Car::getModel() {
    return model;
}
string Car::getColor() {
    return color;
}
int Car::getYear() {
    return year;
}
int Car::getMileage() {
    return mileage;
}


void Car::valid_mileage(int mileage) {
    if (mileage>=0)
        Car::mileage=mileage;
    else {
        Car::mileage=0;
        cout << "WARNING! You have entered invalid mileage!\n";
        }
    }

        void Car::car_details() {
            cout << "The current car is a " << year << ' ' << color << ' '
                        << make << ' ' << model << " with " << mileage << " miles.\n\n";
        }



        string Car::string_car_details() {
            stringstream buf;
            buf << "The current car is a " << year << ' ' << color << ' '
            << make << ' ' << model << " with " << mileage << " miles.\n\n";
            return buf.str();
        }


		struct ListNode
      {
      Car Car;
      ListNode *next;
      };   

      struct CarList
      {

      ListNode * root;
      CarList() : root(0) {};
      void insert(Car);
      void del(Car);
      void findCar(Car);
      void printList();
	  void car_details();

	 
      };

	  //void CarList::car_details();
      //{
      //ListNode * current = firstNodeInList;
     // while(current != NULL)
      //cout << current->Car;
	  //} 


I really need help guys I want to get this stupid thing done I am so frustrated
Topic archived. No new replies allowed.