Help!

I have been working on this for 3 days now and I can not get the desired output, here is what I want the output to look like:
Tree No. Species Description DBH Tot. Ht. Tot. Vol.
123 11 Loblolly Pine 5.8 120 9.984
124 12 White Pine 10.2 140 32.575
125 22 RedOak 15.6 142 71.858

Total trees measured = 3
Average total volume = 38.199

Could anyone with a fresh set of eyes look over this, see code below and thanks
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
230
231
232
233
234
235
236
237
238
239
#include<iostream>
#include<fstream>
#include<iomanip>
#include<string>

using namespace std;

// function prototypes
int getTreeNo();
int getSpeciesCode(int[],string[]);
double getDbh();
int getTotHt();
double calcTotVol(int,int[],double[],double[],double, int);
void displayTreeData(ofstream&,int ,int ,int [], string [],double,int,double);

int main()
{

	int treeNo;
	int	speciesCode;
	int totalHt;
	int	noTrees;
	double dbh;
	double totalVol;
	double avgTotVol;

	int Species[6]={11,12,13,21,22,23};
	string speciesDesc[6]={"Loblolly Pine","White Pine","Red Pine","White Oak","Red Oak","Other Oak"};
	double b0[6]={1.2446,0.000,2.0822,.7316,1.6378,.7554};
	double b1[6]={.002165,.002364,.002046,.001951,.002032,.002174};
	noTrees=0;
	avgTotVol=0.0;

// open outdata
	ofstream out("c:report.dat");
	out<<"Forest Inventory Detail Edit and Volume Calculation\n"
	<<"Tree No. Species Description DBH Tot. Ht. Tot. Vol.";

	cout<<setiosflags(ios::fixed)<<setprecision(3);
	out<<setiosflags(ios::fixed)<<setprecision(3);

	do
	{
		treeNo=getTreeNo();
		if(treeNo!=999){
		speciesCode=getSpeciesCode(Species,speciesDesc);
		dbh=getDbh();
		totalHt=getTotHt();

		totalVol=calcTotVol(speciesCode,Species,b0,b1, dbh, totalHt);


		noTrees++;
		avgTotVol+=totalVol;

		displayTreeData(out,speciesCode,treeNo,Species,speciesDesc,dbh,totalHt,totalVol);

	}
}
	while(treeNo!=999);


		cout<<"\n\nTotal trees measured = "<<noTrees
		<<"\nAverage total volume = ";

		out<<"\n\nTotal trees measured = "<<noTrees
		<<"\nAverage total volume = ";

		if(noTrees<=0)
	{
		cout<<0;
		out<<0;
	}

		else
	{
		cout<<avgTotVol/noTrees;
		out<<avgTotVol/noTrees;
	}
		

		out.close();
		return 0;
}

//getTreeNo

	int getTreeNo()
	{
	int treeNo;
	do
	{
		cout<<"Enter tree number(between 1-199) or 999 to finish: ";
		cin>>treeNo >>treeNo >>treeNo;
	if((treeNo<1||treeNo>199)&&treeNo!=999)
	{
		cout<<"Invalid number entered.\n";
	}
}	
	while((treeNo<1||treeNo>199)&&treeNo!=999);


	return treeNo, treeNo, treeNo;
	}


//getSpeciesCode

	int getSpeciesCode(int Table[],string Name[])
	{
	int code;
	int found=0; 

	do
	{
	cout<<"\n\nCode\tDescription\n";

	for(int i=0;i<6;i++)
	{
	cout<<Table[i]<<"\t"<<Name[i]<<endl;
	}


	cout<<"\nEnter Species Code: ";
	cin>>code >>code >>code;

	//search Table to see if valid code entered
	for(int j=0;j<6;j++)
	{
	if(code==Table[j])
	{
	found =1; 
	break; 
	}
}

	if(found!=1)
	{
	cout<<"Invalid code entered entered.\n";
	}
}
	while(found!=1);

	return code, code, code;
}


//getDbh

	double getDbh()
	{
	double inches;
	do
	{
		cout<<"Enter the number of inches(between 5 and 50.6): ";
		cin>>inches >>inches >>inches;
	if(inches<5||inches>50.6){
		cout<<"Invalid number entered.\n";
	}
}
	while(inches<5||inches>50.6);

	return inches, inches, inches;

}


//getTotHt

	int getTotHt()
	{
	int Ht;
	do
{
	cout<<"Enter the closest even total height(between 24-160): ";
	cin>>Ht >>Ht >>Ht;
	if((Ht<1||Ht>199)&&Ht%2!=0){
	cout<<"Invalid number entered Note that it must be a even number.\n";
	}
}
	while((Ht<1||Ht>199)&&Ht%2!=0);

	return Ht, Ht, Ht;
}


//calcTotVol

	double calcTotVol(int code,int table[],double b0[],double b1[],double dbh, int totalHt)
	{
	int index;
	double totalVol;

//find index
	for(int i=0;i<6;i++)
{
	if(code==table[i])
	{
	index=i;
	break;
	}
}

//calculate totalVol
	totalVol=b0[index]+b1[index]*dbh*dbh*totalHt;

	return totalVol;

}




	void displayTreeData(ofstream& out,int speciesCode,int treeNo,int table[], string Name[],double dbh,int totalHt,double totalVol)
{
	int index;

	//find index
	for(int i=0;i<6;i++)
{
	if(speciesCode==table[i])
	{
	index=i;
	break;
	}
}

	cout<<"\n\nTree No. Species Description DBH Tot. Ht. Tot. Vol.";
	cout<<endl<<treeNo<<" "<<Name[index]<<" "<<setprecision(1)<<dbh<<" "<<totalHt<<" "<<setprecision(3)<<totalVol<<endl;
	out<<endl<<treeNo<<" "<<Name[index]<<" "<<setprecision(1)<<dbh<<" "<<totalHt<<" "<<setprecision(3)<<totalVol;
	cout<<endl<<treeNo<<" "<<Name[index]<<" "<<setprecision(1)<<dbh<<" "<<totalHt<<" "<<setprecision(3)<<totalVol<<endl;
	out<<endl<<treeNo<<" "<<Name[index]<<" "<<setprecision(1)<<dbh<<" "<<totalHt<<" "<<setprecision(3)<<totalVol;
	cout<<endl<<treeNo<<" "<<Name[index]<<" "<<setprecision(1)<<dbh<<" "<<totalHt<<" "<<setprecision(3)<<totalVol<<endl;
	out<<endl<<treeNo<<" "<<Name[index]<<" "<<setprecision(1)<<dbh<<" "<<totalHt<<" "<<setprecision(3)<<totalVol;
	
	
	return;
}
// End Program 
let's start with something glaringly obvious
You have a few functions that follow this trend:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int getTotHt()
{
    int Ht;
    do
    {
        cout<<"Enter the closest even total height(between 24-160): ";
        
        cin>>Ht >>Ht >>Ht;//<<=================================================== ??
        
        if((Ht<1||Ht>199)&&Ht%2!=0)
        {
            cout<<"Invalid number entered Note that it must be a even number.\n";
        }
    }
    while((Ht<1||Ht>199)&&Ht%2!=0);

    return Ht, Ht, Ht;//**<<====================================================== ??
}


Can you explain what you are trying to do...?
Nevermind I solved it myself
closed account (3qX21hU5)
It is also worth mentioning that you can only return ONE thing from a function. You can not return more then one like your statement here return Ht, Ht, Ht; which I'm not sure what your trying to do
Yea, after taking a long break from this code, I realized it was my returns and and I needed a cin.get() statement so that way when the user typed in 999 it would give me the output I desired. Before I put that statement in the program would exit, thanks anyway.
Topic archived. No new replies allowed.