classes problem !

hi , please who can tell me what is the wrong in this code !!

they tell me school.exe has stopped working !!
why ?!

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
#include<iostream>
#include<string>
using namespace std;

class School
{
public:
School(string,string,int,int,string[],int);

void setname(string);
string getname();

void settype(string);
string gettype();

void settot_student(int);
int gettot_student();

void settot_teachers(int);
int gettot_teachers();

void setArray(string[],int);
string getArray();

void Display();

string Add();

string Find();

int larger();

int Even();

private:
	string name;
	string type;
	int tot_student;
	int tot_teachers;
	string Array[6];

};
School::School(string n,string s,int st,int teach,string course[],int A)
{
	
	name=n;
	type=s;
	tot_student=st;
	tot_teachers=teach;
	Array[A]=course[A];
}

void School::setname(string n)
{
	n=name;
}
string School::getname()
{
	return name;
}

void School::settype(string s)
{
	s=type;

}
string School::gettype()
{
	return type;
}

void School::settot_student(int st)
{
	st=tot_student;
}
int School::gettot_student()
{
	return tot_student;
}

void School::settot_teachers(int teach)
{
	teach=tot_teachers;
}
int School::gettot_teachers()
{
	return tot_teachers;
}

void School::setArray(string course[],int s)
{
	
	course[s]=Array[s];
}
string School::getArray()
{
	return Array[6];
}

void School::Display()
{
cout<<"Information about school :"<<endl;
cout<<"The name of school is :"<<name<<endl;
cout<<"The type of school is :"<<type<<endl;
cout<<"The total number of students is :"<<tot_student<<endl;
cout<<"The total number of teachers is :"<<tot_teachers<<endl;
cout<<"The courses names is :"<<Array<<endl;
}


int School::Even()
{
	if((tot_student&&tot_teachers)/2)
	return 1;
	else 
		return 0;
}
void main()
{
	string Array[6];
	School T("hu","secoundry ",400,150,Array,6);

	cout<<"calling the setname fun"<<endl;
	T.setname("hu");
	cout<<"calling the getname fun"<<endl;
	T.getname();

	cout<<"calling the settype fun"<<endl;
	T.settype("secoundry");
	cout<<"calling the gettype fun"<<endl;
	T.gettype();

	cout<<"calling the settot_student fun"<<endl;
	T.settot_student(400);

cout<<"calling the gettot_student fun"<<endl;
T.gettot_student();

cout<<"calling the settot_teachers fun"<<endl;
T.settot_teachers(150);
cout<<"calling the gettot_teachers fun"<<endl;
T.gettot_teachers();
cout<<"calling the setArray fun"<<endl;
T.setArray(Array,6);

cout<<"calling the getArray fun"<<endl;
T.getArray();
cout<<"calling the display fun"<<endl;
T.Display();

cout<<"calling the even fun"<<endl;
T.Even();
}
Because they are liars, your code does not compile (main must return int)
And you are accessing your arrays out of bounds.
Line 113: Why are you doing a logical and of tot_student and tot_teachers?
Did you mean to add them? Doing a logical and of two integers is not a type safe operation.

Line 126, 129,131,137,142,147: You call your various getter functions, but don't do anything with the result.
aha so must i have a cout in all get function !!!

to solve this problem !!
No. couts don't belong in getter functions.
Try this:
1
2
 
cout << T.gettot_student() << endl;

aha thx i will try it ^_^
no its syntax because there is no operator !! "<< "
Show us the whole statement and the error message.
T.gettot_student() is declared to return an int. The statement I showed you should be valid.
it's like this

1
2
3
4
5
6
1
1>  school.cpp
1>  Generating Code...
1>  Skipping... (no relevant changes detected)
1>  school-main.cpp
1>  school.vcxproj -> C:\Users\Odai\Documents\Visual Studio 2010\Projects\school\Debug\school.exe
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
That says your compile succeeded. I see no indication of a syntax error.
yea i know that !! but really am confused !!

so what now !!

it's my home work and i must give a code after 3 days !!
ok i guess i have an problem here in Array

who can help me in Array !

1
2
3
4
5
6
7
8
9
10
School::School(string n,string s,int st,int teach,string course[],int A)
{
	
	name=n;
	type=s;
	tot_student=st;
	tot_teachers=teach;
	Array[A]=course[A];
}
What problem? Please be more specific.
look i solve my first problem

but i have som problem in Array (ingetArray )

put the code in visual c++ and you will now ^_^


so now my new code is

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
#include<iostream>
#include<string>
using namespace std;

class School
{
public:
	School(string,string ,int ,int ,string[],int );

void setname(string);
string getname();

void settype(string);
string gettype();

void settot_student(int);
int gettot_student();

void settot_teachers(int);
int gettot_teachers();

void setArray(string[],int);
string getArray(int);

int Display();

//string Add();
//
//string Find();
//
//int larger();

int Even();

private:
	string name;
	string type;
	int tot_student;
	int tot_teachers;
	string Array[6];

};
#include"school.h"


School::School(string n,string s,int st,int teach,string course[],int A)
{
	
	name=n;
	type=s;
	tot_student=st;
	tot_teachers=teach;
	for(A=0;A<6;A++)
	{Array[A];
	Array[A]=course[A];}
}

void School::setname(string n)
{
	name=n;
	
}
string School::getname()
{
	return name;
}

void School::settype(string s)
{
	type=s;

}
string School::gettype()
{
	return type;
}

void School::settot_student(int st)
{
	tot_student=st;
}
int School::gettot_student()
{
	return tot_student;
}

void School::settot_teachers(int teach)
{
	tot_teachers=teach;
}
int School::gettot_teachers()
{
	return tot_teachers;
}

void School::setArray(string course[],int s)
{
	for(s=0;s<6;s++)
	{Array[s];

	Array[s]=course[s];}

	
}
string School::getArray(int a)
{
	
	return Array[a];
}

int School::Display()
{
cout<<"Information about school :"<<endl;
cout<<"The name of school is :"<<name<<endl;
cout<<"The type of school is :"<<type<<endl;
cout<<"The total number of students is :"<<tot_student<<endl;
cout<<"The total number of teachers is :"<<tot_teachers<<endl;
cout<<"The courses names is :"<<Array<<endl;

return 0;
}

//string School::Add()
//{
	//if(
//}



//string School::Find()
//{
//	if(Array
//
//		return 1;
//}



//int School::larger()
//{
//}
//
//int School::Even()
//{
//	if((tot_student&&tot_teachers)/2)
//	return 1;
//	else 
//		return 0;
//}
#include"school.h"

int main()
{
	string Array[6];
	School T("hu","secoundry ",400,150,Array,6);

	cout<<"calling the setname fun"<<endl;
	T.setname("hu") ;
	cout<<endl;
	cout<<"calling the getname fun"<<endl;
	cout<<T.getname();
	cout<<endl;

	cout<<"calling the settype fun"<<endl;
	T.settype("secoundry");
	cout<<endl;
	cout<<"calling the gettype fun"<<endl;
	cout<<T.gettype();
	cout<<endl;
	cout<<"calling the settot_student fun"<<endl;
	T.settot_student(400);
	cout<<endl;
cout<<"calling the gettot_student fun"<<endl;
cout<<T.gettot_student();
cout<<endl;
cout<<"calling the settot_teachers fun"<<endl;
T.settot_teachers(150);
cout<<endl;
cout<<"calling the gettot_teachers fun"<<endl;
cout<<T.gettot_teachers();
cout<<endl;
cout<<"calling the setArray fun"<<endl;
T.setArray(Array,6);
cout<<endl;
cout<<"calling the getArray fun"<<endl;
cout<<T.getArray(6);
cout<<endl;
cout<<"calling the display fun"<<endl;
cout<<T.Display();
cout<<endl;
//cout<<"calling the Add fun"<<endl;
//T.Add();
//cout<<"calling the Find fun"<<endl;
//T.Find();
//cout<<"calling the larger fun"<<endl;
//T.larger();
cout<<"calling the even fun"<<endl;
//T.Even();

system("puase");

return 0;

}

> but i have som problem in Array (ingetArray )
> put the code in visual c++ and you will now ^_^
*sigh*
http://www.cplusplus.com/forum/articles/40071/#msg218019
Line 186, you're calling T.getArray() with a value of 6.
Line 108, you're trying to return Array[6].
That is out of bounds. The elements of Array are 0-5.
yea thx the code is right now !!
Topic archived. No new replies allowed.