Help with Menu

So my lecturer ask me to create a virtual room with a complete Menu consisting Add, View, Delete and Exist. I made some codes but I got stuck on how to create the add function.
Anyone can help me please? Thanks in advance
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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
  #include<iostream>
#include <stdio.h> 
using namespace std;

class Room{
	private:
	int Windows;
	int Doors;
	int Cupboard;
	
	public:
	    void choiceM();
		void menu();
		void addFurniture();
		void displayFurniture();
		void deleteFurniture();
		void BedroomType();
		Room()
		{
			Doors = d;
			Windows = w;
			Cupboards = c;
		}
		
		void ShowR()
		{
			cout<<""<<Doors<<"Door(s)"<<endl;
			cout<<""<<Windows<<"Window(s)"<<endl;
			cout<<""<<Cupboards<<"Cupboard(s)"<<endl;
		}
		
	void choiceM ();
	void menu ();
	void addRoom ();
	void deleteRoom ();
	void editRoom ();
	void displayRoom ();
		
};
	Room* r;
	void GetR(int, char*);//member function: retrieve room details
	void CreateR(int); //member function: create room

class Bathroom:public Room
{
	private:
	
	int Bath;
	int Shower;
	int Toilet;
	
	public:
		Bathroom():Room()//constructor
		{Bath = Shower = Toilet = 0;}
		
	void CreateBathroom(int bath, int shower, int toilet, int b, int s, int t, int d, int w, int c)
	{
		//set bathroom variables
		CreateRoom(d,w,c);
		Bath = b;
		Shower = s;
		Toilet = t;
	}
	
	void ShowB()
	{
		//display bathroom details
		ShowR();
		cout<<""<<Bath<<"Bath(s)"<<endl;
		cout<<""<<Shower<<"Shower(s)"<<endl;
		cout<<""<<Toilet<<"Toilet(s)"<<endl;
	}
	void addFurniture;
};

Bathroom* b;
void CreateB(int);

class Bedroom:public Room
{
	private:
	int Bed;
	int Lamp;
	int Pillow;
	
	public:
	Bedroom():Room()
	{Bed = Lamp = Pillow = 0; }
	
	void CreateBedroom(int Bed, int Lamp, int Pillow, int e, int l, int p)
	
	{
		createRoom(d,w,c);
		Bed= e;
		Pillow = p;
		Lamp = l;
	}
	
	void ShowBr()
	{
		//display Bedroom details
		ShowR();
		cout<<""<<Bed<<"Bed(s)"<<endl;
		cout<<""<<Lamp<<"Lamp(s)"<<endl;
		cout<<""<<Pillow<<"Pillow(s)"<<endl;
	}
	
	void addFurniture;
	
};

class SingleRoom:public Room, Bedroom
{
	private:
	int Computer;
	int Shelves;
	int Fans;
	
	public:
	SingleRoom():Bedroom()
	{Computer = Shelves = Fans = 0;}
	
	void CreateSingleBedroom(int Computer, int Shelves, int Fans, int x, int y, int z)
	{
		createRoom(d,w,c);
		createBedroom(e,p,l);
		Computer= x;
		Shelves = y;
		Fans = z;
	}
	
	void ShowSBR()
	
	{
		//display Single Bedroom details
		ShowBr();
		ShowR();
		cout<<""<<Computer<<"Computer(s)"<<endl;
		cout<<""<<Shelves<<"Shelves(s)"<<endl;
		cout<<""<<Fans<<"Fan(s)"<<endl;
	}
		
	void addFurniture;
};

class DoubleRoom:public Room, Bedroom
{
	private:
	int StudyTable;
	int NightTable;
	int Aircond;
	
	public:
	DoubleRoom():Bedroom()
	{StudyTable = NightTable = Aircond = 0;}
	
	void CreateDoubleBedroom(int StudyTable, int NightTable, int Aircond, int u, int w, int r)
	{
		createRoom(d,w,c);
		createBedroom(e,p,l);
		Bed= e;
		Pillow = p;
		Lamp = l;
	}

	void showDBR()

	{
		//display Double Bedroom details
		ShowBr();
		ShowR();
		cout<<""<<StudyTable<<"StudyTable(s)"<<endl;
		cout<<""<<NightTable<<"NightTable(s)"<<endl;
		cout<<""<<Aircond<<"Aircond(s)"<<endl;
	}
		
	void addFurniture;
};
//*******************************************
//		Function for Display Room Menu
//*******************************************

void displayMenu(){
	
	cout<<endl;
	cout<<"\t============================================";
	cout<<"\n\t\t Please Choose Your Room";
	cout<<endl;
	cout<<"\t============================================";
	cout<<endl;
	cout<<"t------------|MENU|--------------";
	cout<<endl<<endl<<endl;
	cout<< "1. Bathroom				"<<endl;
	cout<< "2. Bedroom				"<<endl;
	cout<< "3. Back to Main Menu	"<<endl;
	cout<< "\nEnter your Choice:";
}

void deleteRoom();
void viewRoom();
void addRoom();
void mainMenu();
void exit();

//******************************************
//Function for Display Main Menu
//******************************************

	void displayMain(){
		
	cout<< "\t------------|MENU|--------------";
	cout<<endl;
	cout<< "\n\t\t1. Add Room";
	cout<< "\n\t\t2. View Room";
	cout<< "\n\t\t3. Delete Room";
	cout<< "\n\t\t4. Exit";
	cout<< "\n\t\t5. Main Menu";
	cout<< "\nEnter your Choice:";
	}
	int RoomQ();
	Room();
	
}

//****************************************************
//			FUNCTION TO ADD FURNITURE
//****************************************************
void Room::addFurniture(string a)
Last edited on
but I got stuck on how to create the add function


You haven't told us anything about what this addFurniture() function should actually do.

some other stuff:
1. why have you got 'random' pointers in the global namespace? e.g. Bathroom* b;
2. This makes sense: class Bathroom:public Room, but this does not: class DoubleRoom:public Room, Bedroom. Bedroom already specialises Room, so this will do:
DoubleRoom:public Bedroom
3. what is this -> void CreateB(int); ?
4. what is this -> void addFurniture;?
5. What is it you are exactly trying to achieve? you have declared functions to delete view add Rooms, but you are asking for help on an addFurniture function?
6. this doesn't make sense:
1
2
3
4
5
6
		Room()
		{
			Doors = d;
			Windows = w;
			Cupboards = c;
		}


edit:
So my lecturer ask me to create a virtual room

I don't see any virtuals in your code. If this is an exercise on polymorphism (e.g. have a list of different types of rooms), then take a look here:
http://www.cplusplus.com/doc/tutorial/polymorphism/
and then have a look at this shape example:
http://www.tutorialspoint.com/cplusplus/cpp_polymorphism.htm
Last edited on
the lecturer asked me to provide a function where user can add the furniture into the room that they want
that's why this -> void addFurniture; is added in
for this -. voidCreateB(int); I intended to use it to view the bathroom
or am I doing it wrong?

thank you for the specializing part though, now I got a clearer information there.

Below is the answer given by the lecturer
It's an exercise but I got stuck

Write a program to demonstrate your ability to apply object-oriented principles; encapsulation, inheritance and polymorphism concepts in designing programming solutions for Virtual Rooms. Use your creativity to design your classes. Your program Must fulfil the following requirements:
a) At least one super class and two subclasses;
b) Each room must contain at least 2 new member variables, one of the variables should be an object of another class. This class object can in super class or sub class. For example, a class Room contains Chair objects, projector objects, etc;
c) One of the classes must contain overloading constructors;
d) At least one of the subclasses contains an overriding function;
e) Each class should has at least one member function to set new values and to retrieve the values of the object variables;
f) Create 10 room objects (pre-set data) and store the information about these rooms using linked list implementation.
g) This program should be able to provide all the functions as listed below continuously based on user selection. The key features that MUST be included in your program are:
Menu
- Display main menu options
Add function
- Ability to add new room objects in the list
Delete function
- Ability to delete existing rooms from record forwardly. (Delete from front)
View
- Ability to list all rooms recorded in the list(s).
Exit
- Exit from the program
Last edited on
Well I think first you need a list/array/vector of Room pointers so you can iterate through this to find the room you want to add the furniture to. Get this loop working first.
How are you going differentiate between the rooms when you're searching for one? E.g. at the moment you have a method:
void viewRoom();
but if you call that you're not specifying any 'search criteria'. are you allowed to give your Room a name? then you could declare something like this:

void viewRoom(std::string roomNameToView);


Is what you mean by list is something like this?

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>
using namespace std;

class List{

private:
	int value;
	List *head;
	List *p;
	List *temp;
	List *del;
	List *next;
	
public:
	List();
	List(int x);
	void addNode(int a);
	void deleteNode(int d);
	void display();
};

List::List(){
	head=NULL;
	p=NULL;
	temp=NULL;
	del=NULL;
}

List::List(int x){
	value=x;
	next=NULL;
}

void List::addNode(int a){
	p=head;
	if(head==NULL)
		head=new List(a);
	else{
		while(p->next!=NULL)
			p=p->next;
		p->next=new List(a);
	}
}

void List::deleteNode(int d){
	temp=head;
	p=head;
	while(p!=NULL && (p->value)!=d){
		temp=p;
		p=p->next;
	}
	del=p;
	if(del==NULL){
		cout << "No data is deleted." << endl;
		cout << d << " is not in the list." << endl;
	}
	else{
		p=p->next;
		temp->next=p;
		if(del==head)
			head=head->next;
		delete del;
		cout << d << " is deleted." << endl;
	}
}
		

void List::display(){
	cout << "\n\nLIST:" << endl;
	p=head;
	while(p!=NULL){
		cout << p->value << endl;
		p=p->next;
	}
}

int main(void)
{
	
List abc;
	repeat:;
	cout << "\n\nMENU\n =====\n\n";
	cout << "1. Add node " << endl;
	cout << "2. Dislay list " << endl;
	cout << "3. Delete node " << endl;
	cout << "4. Exit" << endl;
	cout << " Please enter an option " << endl;
	int option ;
	cin >> option;

	switch (option)
	{
	int num;
	case 1: 
		system ("cls");
		cout << "Enter the intiger you want to add: ";
		cin >> num;
		abc.addNode(num);
		goto repeat;

	case 2:
		system("cls");
		abc.display ();
		goto repeat;

	case 3:
		system ("cls");
		cout << "Enter the integer you want to delete :";
		cin >> num ;
		abc.deleteNode(num);
		goto repeat;

	case 4: 
		exit (0);

	default:
	system ("cls");
	cout << "You enter the wrong option, please re-enter";
	goto repeat;

	}
	return 0; 

}


sorry if I asked too much..still new to C++ Programming
I don't know how to change this list to implement it on my code
I meant use one of the in-built lists. have a google:
- std::vector
- std::list
- "c-style array"
Oh...I see...thanks for the help although I still not fully understand it yet
But I will try my best to keep trying
Last edited on
if I wasn't sitting in front of a java compiler 200 miles away from my own machine I'd help you a bit more sorry.
Topic archived. No new replies allowed.