记票统计
请实现接口:
unsigned int AddCandidate (char* pCandidateName); 功能:设置候选人姓名 输入: char* pCandidateName 候选人姓名 输出:无 返回:输入值非法返回0,已经添加过返回0 ,添加成功返回1
Void Vote(char* pCandidateName); 功能:投票 输入: char* pCandidateName 候选人姓名 输出:无 返回:无 unsigned int GetVoteResult (char* pCandidateName);
功能:获取候选人的票数。如果传入为空指针,返回无效的票数,同时说明本次投票活动结束,释放资源 输入: char* pCandidateName 候选人姓名。当输入一个空指针时,返回无效的票数
输出:无 返回:该候选人获取的票数
void Clear()
// 功能:清除投票结果,释放所有资源 // 输入: // 输出:无 // 返回
输入候选人的人数,第二行输入候选人的名字,第三行输入投票人的人数,第四行输入投票。
每行输出候选人的名字和得票数量。
4
A B C D
8
A B C D E F G H
A : 1
B : 1
C : 1
D : 1
Invalid : 4
解答代码:
#include<iostream> #include<fstream> #include<string> #include<cstring> #include<algorithm> #include<sstream> using namespace std; int main() { string Candidate[512]; string findName=""; int record[512]; int i,j,n,m; while(cin >> n) { int result=0; memset(record,0,sizeof(record)); for(i=0;i<n;i++) cin >> Candidate[i]; cin>>m; for(i=0;i<m;i++) { cin >> findName; for(j=0;j<n;j++) { if(Candidate[j]==findName) { record[j]++; break; } } if(j==n) result++; } for(i=0;i<n;i++) cout<<Candidate[i]<<" : "<<record[i]<<endl; cout<<"Invalid : "<<result<<endl; } return 0; }