The program does not print the data on the screen

Here is what I get when I run the program
--------------------Election Results--------------------

Votes
Candidate Name Region1 Region2 Region3 Region4 Total
--------------------- ------- ------- ------- ------- ------
0

Process returned 0 (0x0) execution time : 4.640 s
Press any key to continue.


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
  #include <iostream>
#include <fstream>
#include <string>
#include "personType.h"
#include "candidateType.h"
#include "orderedArrayListType.h"
#include<iomanip>

using namespace std;

const int noOfCandidates = 6;

void fillNames(ifstream& inFile,
			   orderedArrayListType<candidateType>& cList);
void processVotes(ifstream& inFile,
				  orderedArrayListType<candidateType>& cList);
void addVotes(orderedArrayListType<candidateType>& cList);

void printHeading();
void printResults(orderedArrayListType<candidateType>& cList);

int main()
{
	orderedArrayListType<candidateType> candidateList(noOfCandidates);

	candidateType temp;

	ifstream inFile;

	inFile.open("c:\\Martin\\candData.txt");

	fillNames(inFile, candidateList);

	candidateList.selectionSort();


	inFile.close();

	inFile.open("c:\\Martin\\voteData.txt");

	processVotes(inFile,candidateList);

	addVotes(candidateList);

	printHeading();
	printResults(candidateList);

	return 0;
}

void fillNames(ifstream& inFile,
			   orderedArrayListType<candidateType>& cList)
{
	string firstN;
	string lastN;
	int i;

	candidateType temp;

	for(i = 0; i < noOfCandidates; i++)
	{
		inFile>>firstN>>lastN;
		temp.setName(firstN,lastN);
		cList.insertAt(i,temp);
	}
}

void processVotes(ifstream& inFile,
				  orderedArrayListType<candidateType>& cList)
{
	//cout<<"See Programming Exercise 11"<<endl;

     string firstN;
     string lastN;
     int region;
     int votes;
     int candLocation;

     candidateType temp;

     inFile >> firstN >> lastN >> region >> votes;

     temp.setName(firstN, lastN);
     temp.setVotes(region, votes);

     while (inFile)
     {
          candLocation = cList.binarySearch(temp);
            //candidateList.selectionSort();
           if (candLocation != -1)
           {
              cList.retrieveAt(candLocation, temp);
              temp.updateVotesByRegion(region, votes);
              cList.replaceAt(candLocation, temp);
           }

      inFile >> firstN >> lastN >> region >> votes;

      temp.setName(firstN, lastN);
      temp.setVotes(region, votes);
      }
}

void addVotes(orderedArrayListType<candidateType>& cList)
{
	int i;

	candidateType temp;

	for(i = 0; i < noOfCandidates; i++)
	{
		cList.retrieveAt(i,temp);
		temp.calculateTotalVotes();
		cList.replaceAt(i,temp);
	}
}

void printHeading()
{
    cout<<"      --------------------Election Results---------"
		<<"-----------"<<endl<<endl;
    cout<<"                  		         Votes"<<endl;
    cout<<"    Candidate Name     Region1  Region2  Region3  "
 		<<"Region4   Total"<<endl;
    cout<<"---------------------  -------  -------  "
 		<<"-------  -------  ------"<<endl;
}

void printResults(orderedArrayListType<candidateType>& cList)
{
	//cout<<"See Programming Exercise 11"<<endl;
    string firstName, lastName;
    int noOfRegions, votesByRegion, totalVotes;
	//void candidateType::printResults() const
//{
     cout << left
          << setw(8) << firstName << " "
          << setw(8) << lastName << " ";

     cout << right;
     for (int i = 0; i < noOfRegions; i++)
          cout << setw(8) << votesByRegion << " ";
     cout << setw(7) << totalVotes << endl;
}
//} 


Please help!
Hi,

Consider learning how to use a debugger, hopefully there is a GUI one in your IDE :+)

Setup a watch list of variables, step through the program 1 line at a time see how the values change, deduce where it went wrong.
you have
1
2
	printHeading();
	printResults(candidateList);
the heading seems fine so let's analyse printResults()
1
2
3
4
5
6
7
8
9
10
11
12
13
void printResults(orderedArrayListType<candidateType>& cList)
{
    string firstName, lastName; /* empty strings */
    int noOfRegions, votesByRegion, totalVotes; /* uninitialised variables */
     cout << left
          << setw(8) << firstName << " "
          << setw(8) << lastName << " "; /*the strings are empty, so nothing*/

     cout << right;
     for (int i = 0; i < noOfRegions; i++) /*¿how many times will this execute?*/
          cout << setw(8) << votesByRegion << " "; /*¿printing the same value over and over again?*/
     cout << setw(7) << totalVotes << endl; /*¿did I said this was uninitialised?*/
}
Topic archived. No new replies allowed.