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

📄 count ticket economy .txt

📁 统计候选人的得票情况
💻 TXT
字号:
#include<iostream>                      //预处理命令
#include<string>                         //包含字符串预处理命令    
using namespace std;                      //使用命名空间
struct Person                             // 声明结构体类型Person
{ string name;                            // 声明name为string类
  int count;                              // count 得票数
};                                      //声明结构体结束                                     
int main()                               //主函数首部
{ Person leader[50];						    //定义leader结构体及大小
  int i,j,b,v,m,k=0,n=0;                    //变量声明
  string leader_name;                     //声明leader_name为字符串型
  leader[0].name="li";					   //结构体初始化
  leader[0].count=0;					    	//结构体初始化
  leader[1].name="zhang";				   //结构体初始化
  leader[1].count=0;						   //结构体初始化
  leader[2].name="fun";						//结构体初始化
  leader[2].count=0;						   //结构体初始化
  cout<<"请输入投票人的总数:";        //提示输入信息
  cin>>m;                             //输入投票人总数
  for(i=3;i<m;i++)  { leader[i].name=" "; leader[i].count=0; }  //继续初始化结构体
  cout<<"请输入候选人的姓名:"<<endl;         //提示输入候选人姓名
  for(i=0;i<m;i++)                             //for循环开始
  {  cin>>leader_name;                         // 输入候选人姓名
      b=0;                                   //设置信号b
	    for(j=0;j<m;j++)                         // for循环开始
			if(leader[j].name==leader_name)      
//输入姓名与在结构体内存在的姓名相比较
				{leader[j].count++; b=1;}       
// 若已存在该人人,则计票数加1,同时信号改变为1
	    if(b==0)                      // 信号b为0表示候选人姓名不存在 
	      {  leader[3+k].name=leader_name;       //新建候选人
	         leader[3+k].count++;                //同时计票加1
	         k++;                             //统计新建的结构单元                      
		}                                     //新建候选人结束
  }                                          //计票结束
  for(j=0;j<m;j++)                              //for循环开始
	if(leader[j].name=="0")                       //判断是否有人输入0弃权
		n++;                                   //弃权计数
  for(i=0;i<m;i++)                               // 对得票数排序
   for(j=i+1;j<m;j++)                            // 对得票数排序
    if(leader[i].count<leader[j].count)               // 比较得票多少 
     { leader_name=leader[i].name;  v=leader[i].count;   //交换成员数据
     leader[i].name=leader[j].name; leader[i].count=leader[j].count;//交换成员数据
	      leader[j].name=leader_name; leader[j].count=v;  //交换成员数据
	  }                                           //排序完毕
   cout<<endl<<"候选人得票情况:";                 //输出提示信息
   for(j=0;j<m;j++)                                 // for循环
	 if(leader[j].count>=0 && leader[j].name!="0" && leader[j].name!=" ") 
//将得票情况输出
		 cout<<endl<<leader[j].name<<":  "<<leader[j].count;  //输出得票情况
	cout<<endl<<endl<<"新增的候选人有 "<<k-n<<" 个"<<endl;       
//输出新增候选人的人数
	cout<<"弃权人数有 "<<n<<" 个"<<endl;                  //输出弃权人数
  return 0;                   //如程序正常结束,向系统返回一个零值
}                                            //主函数结束

⌨️ 快捷键说明

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