📄 count ticket economy .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 + -