| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 954 人关注过本帖
标题:[求助]请各位达人帮忙修改一下这个程序,让它可以运行啊~ 谢谢大家啊,
只看楼主 加入收藏
clx118
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2004-12-7
收藏
 问题点数:0 回复次数:1 
[求助]请各位达人帮忙修改一下这个程序,让它可以运行啊~ 谢谢大家啊,

/**************************************************************************** 学校选举投票程序,由于保密的原因,选举决定用计算机进行投票,编写程序, 以便分析数据并产生获胜者。 该大学有4个部,每个部有几个系,由于选举的原因,这四个部门分别记为Region1 Region2,Region3,region4.部门中的每一个系管理其选举过程并且向选举委员会直接汇报 每一个候选人的得票数。选举结果如下表示: candidate_name region# number_of_votes_for_this_candidate 选举委员会想用下面的表格形式来输出结果: -----------------------------Election results--------------------------- Candidate Votes Name Region1 Region2 Region3 Region4 Total ------- ------- ------- ------ ------- ----- Balto 0 0 0 272 272 Doc 25 71 156 97 349 . . . Winner:???,Votes Received:??? Total votes polled:??? 输出中候选人的名字必须按字母大小写进行排序。 对于该程序,假设6位候选人参加学生会主席的竞选。当然可以改进程序并包含任何数目的候选人。 数据由两个文件提供。文件canddata.txt包含了竞选学生会主席的候选人的名单。该文件中候 选人的名字没有以特定的顺序排列。在第二个文件votedata.txt中,每一行包含了如下形式的选举 结果: candidateName regionNumber numberofvotesforthiscandidate votedata.txt文件中的每一行包含了候选人的名字,region号码和候选人在该区得到的选票数。 例如,包含选举数据的输入文件应该如下所示: Donald 1 23 Pluto 2 56 Doc 1 25 pluto 4 23 . . . 第一行显示了Donald在第一区受到了23张选票。 输入 两个文件,一个文件包含候选人的名字,一个包含前面描述的选票数据 输出 选举结果和获胜者。

*************************************************************************************/

#include<iostream> #include<fstream> #include<string> #include<iomanip>

using namespace std;

const int noOfCandidates=6;

const int noOfRegions=4;

void printHeading();

void initialize(int vbRegion[][noOfRegions],int tVotes[],int noOfRows);

void getCandidatesName(ifstream& inp,string cNames[], int noOfRows);

void sortCandidatesName(string cNames[], int noOfRows);

int binSearch(string cNames[],int noOfRows,string name);

void processVotes(ifstream& inp,string cNames[],int vbRegion[][noOfRegions],int noOfRows);

void addRegionsVote(int vbRegion[][noOfRegions],int tVotes[],int noOfRows);

void printResults(string cNames[],int vbRegion[][noOfRegions],int tVotes[],int noOfRows);

int main() { string candidatesName[noOfCandidates]; int votesByRegion[noOfCandidates][noOfRegions]; int totalVotes[noOfCandidates]; ifstream infile;

infile.open("a:candData.txt"); if(!infile) { cout<<"Input file (candDate.txt) does not exit."<<endl; return 1; } getCandidatesName(infile,candidatesName,noOfCandidates); sortCandidatesName(candidatesName,noOfCandidates); infile.close(); infile.open("a:voteData.txt"); if(!infile) { cout<<"Input file (voteData.txt) dose not exit."<<endl; return 1; } initialize(votesByRegion,totalVotes,noOfCandidates); processVotes(infile,candidatesName,votesByRegion,noOfCandidates); addRegionsVote(votesByRegion,totalVotes,noOfCandidates); printHeading(); printResults(candidatesName,votesByRegion,totalVotes,noOfCandidates); return 0;

void initialize(int vbRegion[][noOfRegions],int tVotes[],int noOfRows) { int i,j; for(i=0;i<noOfRows;i++) for(j=0;j<noOfRegions;j++) vbRegion[i][j]=0; for(i=0;i<noOfRows;i++) tVotes[i]=0; } void getCandidatesName(ifstream& inp,string cNames[],int noOfRows) { int i; for(i=0;i<noOfRows;i++) inp>>cNames[i]; } void sortCandidatesName(string cNames[],int noOfRows) { int i,j; int min; for(i=0;i<noOfRows-1;i++) { min=1; for(j=i+1;j<noOfRows;j++) if(cNames[j]<cNames[min]) min=j; cNames[i].swap(cNames[min]); } } int binSearch(string cNames[],int noOfRows,string name) { int first,last,mid; bool found; first=0; last =noOfRows-1; found=false; while(!found && first<=last) { mid=(first +last)/2; if(cNames[mid]==name) found=true; else if(cNames[mid]>name) last=mid-1; else first=mid+1; } if(found) return mid; else return-1; } void processVotes(ifstream& inp,string cNames[],int vbRegion[][noOfRegions],int noOfRows) { string candName; int region; int noOfVotes; int loc; inp>>candName>>region>>noOfVotes; while(inp) { loc=binSearch(cNames,noOfRows,candName); if(loc!=-1) vbRegion[loc][region-1]=vbRegion[loc][region-1]+noOfVotes; inp>>candName>>region>>noOfVotes; } } void addRegionsVote(int vbRegion[][noOfRegions],int tVotes[],int noOfRows) { int i,j; for(i=0;i<noOfRows;i++) for(j=0;j<noOfRegions;j++) tVotes[i]=tVotes[i]+vbRegion[i][j]; } void printHeading() { cout<<"-----------------Election results-------------"<<endl<<endl; cout<<"Candidate Votes"<<endl; cout<<"Name Region1 Region2 Region3 "<<"Region4 Total"<<endl; cout<<"---------- -------- -------- -------- --------"<<"--------"<<endl; }

void printResults(string cNames[],int vbRegion[][noOfRegions],int tVotes[],int noOfRows);

{ int i,j; int largestVotes=0; int winLoc=0; int sumVotes=0; for(i=0;i<noOfRows;i++) { if(largestVotes<tVotes[i]) { largesVotes=tVotes[i]; winLoc=1; } sumVotes=sumVotes+tVotes[i]; cout<<left; cout<<setw(9)<<cNames[i]<<" "; cout<<right; for(j=0;j<noOfRegions;j++) cout<<setw(8)<<vbRegion[i][j]<<" "; cout<<setw(6)<<tVotes[i]<<endl; } cout<<endl<<endl<<"winner:"<<cNames[winLoc]<<", Votes Received:"<<tVotes[winLoc]<<endl<<endl; cout<<"total votes polled:"<<sumVotes<<endl; } }

搜索更多相关主题的帖子: 计算机 candidate 选举 name 
2004-12-07 11:09
xhp5497
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2004-11-16
收藏
得分:0 

#include<iostream> #include<fstream> #include<string> #include<iomanip>

using namespace std;

const int noOfCandidates=6;

const int noOfRegions=4;

void printHeading();

void initialize(int vbRegion[][noOfRegions],int tVotes[],int noOfRows);

void getCandidatesName(ifstream& inp,string cNames[], int noOfRows);

void sortCandidatesName(string cNames[], int noOfRows);

int binSearch(string cNames[],int noOfRows,string name);

void processVotes(ifstream& inp,string cNames[],int vbRegion[][noOfRegions],int noOfRows);

void addRegionsVote(int vbRegion[][noOfRegions],int tVotes[],int noOfRows);

void printResults(string cNames[],int vbRegion[][noOfRegions],int tVotes[],int noOfRows);

int main() { string candidatesName[noOfCandidates]; int votesByRegion[noOfCandidates][noOfRegions]; int totalVotes[noOfCandidates]; ifstream infile;

infile.open("a:candData.txt"); if(!infile) { cout<<"Input file (candDate.txt) does not exit."<<endl; return 1; } getCandidatesName(infile,candidatesName,noOfCandidates); sortCandidatesName(candidatesName,noOfCandidates);

infile.close();

infile.open("a:voteData.txt"); if(!infile) { cout<<"Input file (voteData.txt) dose not exit."<<endl; return 1; } initialize(votesByRegion,totalVotes,noOfCandidates); processVotes(infile,candidatesName,votesByRegion,noOfCandidates); addRegionsVote(votesByRegion,totalVotes,noOfCandidates); printHeading(); printResults(candidatesName,votesByRegion,totalVotes,noOfCandidates); return 0; }

void initialize(int vbRegion[][noOfRegions],int tVotes[],int noOfRows) { int i,j; for(i=0;i<noOfRows;i++) for(j=0;j<noOfRegions;j++) vbRegion[i][j]=0; for(i=0;i<noOfRows;i++) tVotes[i]=0; } void getCandidatesName(ifstream& inp,string cNames[],int noOfRows) { int i; for(i=0;i<noOfRows;i++) inp>>cNames[i]; } void sortCandidatesName(string cNames[],int noOfRows) { int i,j; int min; for(i=0;i<noOfRows-1;i++) { min=1; for(j=i+1;j<noOfRows;j++) if(cNames[j]<cNames[min]) min=j; cNames[i].swap(cNames[min]); } } int binSearch(string cNames[],int noOfRows,string name) { int first,last,mid; bool found; first=0; last =noOfRows-1; found=false; while(!found && first<=last) { mid=(first +last)/2; if(cNames[mid]==name) found=true; else if(cNames[mid]>name) last=mid-1; else first=mid+1; } if(found) return mid; else return-1; } void processVotes(ifstream& inp,string cNames[],int vbRegion[][noOfRegions],int noOfRows) { string candName; int region; int noOfVotes; int loc;

inp>>candName>>region>>noOfVotes;

while(inp) { loc=binSearch(cNames,noOfRows,candName); if(loc!=-1) vbRegion[loc][region-1]=vbRegion[loc][region-1]+noOfVotes; inp>>candName>>region>>noOfVotes; } } void addRegionsVote(int vbRegion[][noOfRegions],int tVotes[],int noOfRows) { int i,j; for(i=0;i<noOfRows;i++) for(j=0;j<noOfRegions;j++) tVotes[i]=tVotes[i]+vbRegion[i][j]; } void printHeading() { cout<<"-----------------Election results-------------"<<endl<<endl; cout<<"Candidate Votes"<<endl; cout<<"Name Region1 Region2 Region3 "<<"Region4 Total"<<endl; cout<<"---------- -------- -------- -------- --------"<<"--------"<<endl; }

void printResults(string cNames[],int vbRegion[][noOfRegions],int tVotes[],int noOfRows)

{ int i,j; int largestVotes=0; int winLoc=0; int sumVotes=0; for(i=0;i<noOfRows;i++) { if(largestVotes<tVotes[i]) { largestVotes=tVotes[i]; winLoc=1; } sumVotes=sumVotes+tVotes[i]; cout<<left; cout<<setw(9)<<cNames[i]<<" "; cout<<right; for(j=0;j<noOfRegions;j++) cout<<setw(8)<<vbRegion[i][j]<<" "; cout<<setw(6)<<tVotes[i]<<endl; } cout<<endl<<endl<<"winner:"<<cNames[winLoc]<<", Votes Received:"<<tVotes[winLoc]<<endl<<endl; cout<<"total votes polled:"<<sumVotes<<endl; }


2004-12-13 23:08
快速回复:[求助]请各位达人帮忙修改一下这个程序,让它可以运行啊~ 谢谢大家啊, ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037806 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved