C++编投票问题,遇到困难帮忙啊
在编写投票程序时,出现了有的方法语句根本不执行,不知错误在哪里??大侠们帮忙啊
vote1.rar
(278.19 KB)
candidate.h #ifndef CANDIDATE_H #define CANDIDATE_H #include <string> using namespace std; class Person { public: string name; int number; public: Person(string nam,int n); void Add(); string GetName(); int GetNumber(); Person(); }; class CVote { public: Person psn[4]; int size;//候选人数 int num;//投票人数 double std;//标准 public: CVote(string name[],int n,double std);// 候选人,总的票数和获选标准 void Vote(string name[],int m);//投票给n个人 int GetResult(string name[],int n);//返回获选人数,他们的姓名和得票数 CVote(); }; #endif candidate.cpp #include <iostream> #include "candidate.h" #include <cmath> #include <string> using namespace std; Person::Person(string nam,int n) { name=nam; number=n; } string Person::GetName() { return name; } void Person::Add() { number++; } int Person::GetNumber() { return number; } Person::Person(){} CVote::CVote(){} CVote::CVote(string name[],int n,double s) { for(int i=0;i<4;i++) { psn[i].name =name[i]; psn[i].number =0; } num=n; std=s; } void CVote::Vote(string name[],int m) { int i,flag=0; for(i=0;i<m;i++) for(int j=0;j<num;j++) //问题一 { if(name[i]==psn[j].name) { psn[j].Add(); //psn[i]->number ++; flag=1; } } if(flag==0) { cout<<"输入错误,请再次确认后进行投票!"<<endl; } } int CVote::GetResult(string name[],int n) { int m=0; string t[32]; int e[32]; size=n;//候选人数 int j=0; for(int i=0;i<=n;i++) { if((psn[i].number /num)>=std ) //问题2 { m++; t[j]=psn[i].GetName(); e[j]=psn[i].GetNumber(); j++; } } for(int a=0;a<m;a++) { cout <<"第"<< a+1 <<"个获胜者是"<<t[a] ; cout<<",他的得票数是:" <<e[a]<<endl; } return m; } void main() { int m; string name[4]; for (int i=0;i<4;i++) { cout <<"请输入候选人姓名:"<<endl; cin >>name[i]; cout <<"第"<< i+1<<"个候选人姓名是:"<<name[i]<< endl; } CVote a(name,4,0.6); for(int r=0;r<4;r++) { cout<<"请输入您的选票一共有几票:"<<endl; cin >> m ; string *s; s=new string[m]; for(int l=0;l<m;l++) { cout << "请输入您的第"<< l+1 <<"票是:"<< endl; cin >> s[l]; } a.Vote(s,m); } for(int j=0;j<4;j++) cout<< "候选人"<<a.psn [j].GetName()<<"的得票数是"<<a.psn [j].GetNumber() <<endl; int w=a.GetResult(name,3); cout <<"总共的获胜者是"<<w <<"个。"<<endl; }