C++ please quick hlp.

Hii everyone i think there are few errors in this code and there is also some modification required pl. help me with it..i did what i cud. Thanks

Here is the question : Write a program that determines which of five geographic regions within a major city (north, south, east, west, and central) had the fewest reported automobile accidents last year. It should have the following two functions, which are called by main.

int getNumAccidents () is passed the name of a region. It asks the user for the number of automobile accidents reported in that region during the last year, validates the input, then returns it. It should be called once for each city region.

void findLowest () is passed the five accident totals. It determines which is the smallest and prints the name of the region, along with its accident figure.


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

void findLowest(int north, int south, int east, int west, int central,int numAccidents);
void findHighest(int north, int south, int east, int west, int central,int numAccidents);

int main()
{
	int getNumAccidents(string regionName);
		string regName;
	int north, 
		south, 
		east, 
		west, 
		central;
  

 cout << "There will be 5 regions within the major city.\n";     
	              
	         
			 regName="north:";
			 north = getNumAccidents(regName);
	         
			 
			 regName="south:";
	         south = getNumAccidents(regName);
	         
			
			 regName="east:";
	         east = getNumAccidents(regName); 
	         
			
			 regName="west:";
	         west = getNumAccidents(regName); 
	         
			 
			 regName="central:";
	         central = getNumAccidents(regName);


			

			 return 0;
			
	}
	 
int getNumAccidents(string regionName)
	 
	{  
	   int numAccidents;

         do

         {

                cout << "Enter the number of accidents for " << regionName;                 
				cin >> numAccidents;

          } while (numAccidents < 0); 

          return numAccidents;  
}
	 
void findLowest(int north, int south, int east, int west, int central,int numAccidents)
{
	
	 string regName;

	 
	
	 for (int i = 1; i < numAccidents; i++)

	 {
	       
		if (numAccidents > north  )
		{
			regName = north;
		}

		if (numAccidents > south  )
		{
			regName = south;
		}
		
		if (numAccidents > east  )
		{
			regName = east;
		}

		if (numAccidents > west  )
		{
			regName = west;
		}

		if (numAccidents > central  )
		{
			regName = central;
		}
	}	

		cout << "The Lowest Region is " << regName << endl;

	
}
void findHighest(int north, int south, int east, int west, int central,int numAccidents)
{
	
	
	string regName;

	for (int i = 1; i < numAccidents; i++)
	 {
		if (numAccidents < north  )
		{
			regName = north;
		}

		if (numAccidents < south  )
		{
			regName = south;
		}
		
		if (numAccidents < east  )
		{
			regName = east;
		}

		if (numAccidents < west  )
		{
			regName = west;
		}

		if (numAccidents < central  )
		{
			regName = central;
		}
	}

	cout << "The Highest Region is " << regName << endl;

	
}	 



try putting the functions above the main function. See if that helps at all.
It would also help if you just told us the errors.
@ERanz21 : it doesn't work like that i have tried it a lot.

@Zhuge : well the error is that the program terminates itself after i enter the number of accidents for each region.
So you want to keep the console open after you enter the data for the last region, is that it?
http://www.cplusplus.com/forum/articles/7312/

-Albatross
@albatross : don't understand anything fm that page plz tell me fm ur own knowledge
Alright...

If you're trying to keep the console open after you enter the last piece of data, then there are two things you need to do (this is method 2 in the article).

First, you need to flush stdin. That means that you need to get rid of all the data in stdin that hasn't been read yet. You can do this with the line std::cin.ignore( std::numeric_limits <std::streamsize> ::max(), '\n' );. You'll need to #include <limits> , though. Basically, what this does is reads either the maximum number of characters that stdin (cin) can hold, or it reads characters until a newline is found, discarding the newline as well.

Second, you'll need to give the console some reason to expect input from you, pausing everything. The shortest easy way to do this is to use std::cin.get();.

Those two lines should be put near the end of your program. Have fun!

-Albatross
Last edited on
Topic archived. No new replies allowed.