⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 electionresult.cpp

📁 C++编成数据结构与程序设计方法 D.S.Malk编著
💻 CPP
字号:
#include <iostream>
#include <string>
#include <fstream>
#include "candidateType.h"
#include "unorderedArrayListType.h"

using namespace std;

const int NO_OF_CANDIDATES = 6;

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

void printHeading();
void printResults(/* Specify Parameters */);

int main()
{
    unorderedArrayListType<candidateType> 
                        candidateList(NO_OF_CANDIDATES);
	
    candidateType temp;
	
    ifstream inFile;
	
    inFile.open("a:\\candData.txt");
    if (!inFile)											
    {
        cout << "Input file (candData.txt) does not exist. " 
             << "Program terminates!!" << endl;
        return 1;
    }
	
    fillNames(inFile, candidateList);
	
    candidateList.sort();
	
    inFile.close();
    inFile.clear();
	
    inFile.open("a:\\voteData.txt");  
    if (!inFile)												
    {
        cout << "Input file (voteData.txt) does not exist. "
             << "Program terminates!!" << endl;
        return 1;
    }
	
    processVotes(inFile, candidateList);
	
    addVotes(candidateList);
	
    printHeading();
    printResults(candidateList);

    return 0;
}

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

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

void processVotes(ifstream& inFile, 
                  unorderedArrayListType<candidateType>& cList)
{
    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.binSearch(temp);

        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(unorderedArrayListType<candidateType>& cList)
{
    int i;

    candidateType temp;

    for (i = 0; i < NO_OF_CANDIDATES; 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(/* Specify Parameters */)
{
    cout << "See Programming Exercise 15." << endl;
}
	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -