用C++解决招生录取问题

该程序模拟了研究生招考的录取过程,包括两个阶段的笔试和面试,计算总成绩,并根据成绩进行排序。如果总成绩相同,则面试成绩高的学生优先。用户可输入学生数据和录取人数,程序会输出录取学生的编号以及录取分数线。
摘要由CSDN通过智能技术生成

  1. 招生录取问题;研究生招考分为两个阶段:笔试(满分 500)和面试(满分 100)。总成绩计算方法为笔试成绩除以 5 再加上面试成绩。录取首先要求两项成绩均及格(60%),再按照总成绩从高到底录取;如果总成绩相同,面试成绩高者优先。已知报考的 n 名学生的编号、笔试成绩和面试成绩,如果要录取 k 人,请确定录取哪些人及录取分数线。
    #include<iostream>
    #include<cmath> 
    #include<stdlib.h>
    #include<iomanip>
    using namespace std;
    int main()
    {
    	cout<<"输入学生编号、笔试成绩、面试成绩:"<<endl; 
    	struct student
    	{
    		int ID; 
    		float TWE;
    		float ARI;
    		float sum; 
    	}st[11];//定义并输入结构体 
    	for (int i=1;i<=10;i++)
    	{
    		cin>>st[i].ID>>st[i].TWE>>st[i].ARI;
    		st[i].sum=st[i].TWE/5+st[i].ARI;
    	} 
    	student t,t_1;
    	for(int i=1;i<=9;i++)
    	{
    		for(int j=i+1;j<=10;j++)
    		{
    			if(st[i].sum<st[j].sum)
    			{
    				t=st[i];
    				st[i]=st[j];
    				st[j]=t;
    			}//结构体按照总成绩排序 
    			else if (abs(st[i].sum-st[j].sum)<1E-6&&st[i].ARI<st[j].ARI)
    			{
    				t=st[i];
    				st[i]=st[j];
    				st[j]=t;
    			}//总成绩相等时按面试成绩高低排序 
    		}
        }
        for (int i=1;i<=10;i++)
        {
        	if (st[i].TWE<5*60||st[i].ARI<60)
        	{//筛选出有一门或两门都不及格的人 
        		t_1=st[i];//将其挑选出来并赋值与t_1 
        		for(int j=i+1;j<=10;j++)
                {
                	st[j-1]=st[j];
    			}//将其后面的值依次提前 
    			st[10]=t_1;//将其排到最后 
    		}
    	}
    	int k;
    	cout<<"请输入录取人数:";
    	cin>>k;
    	cout<<"录取学生编号为:";
    	for(int b=1;b<=k;b++)
    	{
    		{
    			cout<<st[b].ID<<" ";//输出编号 
    		}
    	}
    	cout<<endl;
    	cout<<"总成绩"<<st[k].sum<<"("<<"面试"<<st[k].ARI<<")";
    	return 0;
     }
    

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值