zoukankan      html  css  js  c++  java
  • 【附有代码】用C++推算内蒙古自治区高考志愿网报录取结果

    前排提示:这不是外挂!!!

    这个程序是我2021年7月28日动手写的,磕磕巴巴差不多五天才大致完成,刚刚又略微改了一下。因为高考,我一年半没敲代码了,编程能力极差,水平拙劣还请见谅~

    内蒙古自治区高考志愿网报系统,在全国都是独一无二的,具体原因不再赘述,百度有。

    内蒙古招生考试信息网在网报的时候会每小时公布一次网报数据,但是考生无法得知自己是否能被录取。该程序可以瞬时推测出考生的录取情况。

    输入文件有两个:pro.in和student.in,分别代表院校招生计划和学生填报数据。当然,这个文件需要你手动去官方复制到记事本,再把文件名修改了。

    下面是pro.in的一个范例,其中第一行院校名称,第二行院校总招生计划数,第三行院校招生规则代码(1是分数清,2是专业清),之后的就是招生计划,其中程序只读取专业名称、专业计划数量。

    华中科技大学
    49
    1
    01    数学类    非定向    2    629    4    4    4500    -    校本部    包含专业:数学与应用数学、信息与计算科学、统计学
    02    物理学类    非定向    2    609    2    4    4500    -    校本部    包含专业:物理学、应用物理学
    03    化学类    非定向    2    609    2    4    4500    -    校本部    包含专业:化学、应用化学
    04    机械类(机械学院)    非定向    4    631    5    4    5850    -    校本部    包含专业:机械设计制造及其自动化(智能制造、先进电子制造、机器人、测控)、工业工程
    05    材料类    非定向    4    609    0    4    5850    -    校本部    包含专业:材料成型及控制工程、电子封装技术、材料科学与工程
    06    能源动力类    非定向    3    609    1    4    5850    -    校本部    包含专业:能源与动力工程、储能科学与工程、新能源科学与工程
    10    电气工程及其自动化    非定向    3    633    3    4    5850    -    校本部    -
    13    电子信息类(电信学院)    非定向    4    633    4    4    5850    -    校本部    包含专业:电子信息工程、通信工程、电磁场与无线技术
    14    电子信息类(光电学院)    非定向    2    634    2    4    5850    -    校本部    包含专业:光电信息科学与工程、集成电路设计与集成系统、电子科学与技术、微电子科学与工程
    15    计算机类(计算机学院)    非定向    4    643    7    4    5850    -    校本部    包含专业:计算机科学与技术、数据科学与大数据技术、物联网工程
    16    计算机类(网安、软件学院)    非定向    2    636    3    4    5850    -    校本部    包含专业:网络空间安全、密码科学与技术、信息安全、软件工程
    17    自动化类(AI试验班)    非定向    4    635    4    4    5850    -    校本部    包含专业:人工智能、自动化
    21    管理科学与工程类(大数据管理与供应链优化试验班)    非定向    3    609    2    4    4500    -    校本部    包含专业:信息管理与信息系统、物流管理
    22    经济学类    非定向    2    609    0    4    4500    -    校本部    包含专业:经济学(实验班)、经济统计学、国际经济与贸易、金融学、金融工程
    33    临床医学类(同济医学院)    非定向    4    609    4    5    5850    -    同济医学院    包含专业:临床医学、口腔医学、儿科学、医学影像学
    5C    能源与动力工程(启明本硕博实验班)    非定向    2    629    3    4    5850    -    校本部    -
    5P    人工智能(启明本硕博实验班)    非定向    2    649    3    4    5850    -    校本部    -

    下面是student.in的一个范例,其中程序只会读取投档分(即考生带上加分的总分)和实考分,考生填报专业,以及是否服从调剂。

    649    649    汉族    男    5P    15    -    -    -    -    是    否
    649    639    蒙古族    男    5P    15    16    -    -    -    是    否
    648    648    汉族    男    10    15    14    16    13    17    是    否
    648    648    汉族    男    15    14    10    16    17    04    是    否
    645    645    回族    女    15    16    01    -    -    -    是    否
    644    644    汉族    男    15    14    17    -    -    -    是    否
    644    644    汉族    男    5P    15    16    14    17    -    是    否
    643    643    汉族    男    15    16    -    -    -    -    是    是
    643    643    汉族    男    15    16    14    13    -    -    是    否
    642    642    汉族    男    15    16    14    5P    13    17    是    否
    641    641    汉族    男    14    10    02    15    17    5C    是    否
    641    631    蒙古族    男    16    14    15    13    5C    17    是    否
    640    630    蒙古族    女    15    16    13    10    17    01    是    否
    638    638    汉族    男    13    14    -    -    -    -    是    否
    636    636    汉族    男    13    14    17    04    10    16    是    否
    636    636    汉族    女    16    33    -    -    -    -    是    否
    635    635    汉族    男    17    04    10    02    -    -    是    否
    635    635    汉族    男    17    13    10    -    -    -    是    是
    635    635    汉族    男    33    5C    06    21    03    05    是    否
    635    625    蒙古族    男    17    13    -    -    -    -    是    否
    635    625    蒙古族    男    17    10    06    04    5C    13    是    是
    634    634    汉族    男    10    17    5C    -    -    -    否    否
    634    624    蒙古族    男    13    10    04    -    -    -    是    否
    634    624    蒙古族    男    14    10    14    13    5C    04    是    是
    633    633    汉族    女    10    13    17    01    22    21    是    否
    633    623    蒙古族    男    13    14    10    5C    -    -    是    否
    632    632    汉族    男    02    04    5C    -    -    -    是    否
    632    632    汉族    男    04    15    16    17    06    10    是    否
    632    632    汉族    男    04    5C    17    06    01    05    是    否
    632    632    汉族    男    04    5C    06    -    -    -    是    否
    632    632    汉族    男    5C    5C    13    17    -    -    是    否
    631    631    汉族    男    04    -    -    -    -    -    是    否
    631    631    汉族    男    06    17    04    02    -    -    是    否
    630    630    汉族    男    01    -    -    -    -    -    否    否
    630    630    汉族    男    04    02    01    03    -    -    是    否
    630    630    汉族    男    33    5C    10    04    06    17    是    否
    630    630    汉族    女    33    17    10    06    13    -    是    是
    629    629    汉族    男    01    02    13    10    16    -    是    否
    629    629    汉族    男    5C    17    04    13    10    5P    是    是
    627    627    汉族    男    03    02    -    -    -    -    是    是
    625    625    汉族    男    5C    04    06    05    17    01    是    否
    620    620    汉族    男    01    -    -    -    -    -    是    否
    619    609    蒙古族    男    16    -    -    -    -    -    否    否
    618    618    汉族    男    01    05    06    02    -    -    是    否
    612    612    汉族    女    21    -    -    -    -    -    是    是
    609    609    汉族    男    21    22    15    16    10    -    是    否
    609    609    汉族    男    33    06    -    -    -    -    是    否
    609    599    蒙古族    男    02    -    -    -    -    -    是    是
    609    599    蒙古族    女    03    -    -    -    -    -    是    否
    599    589    蒙古族    男    01    -    -    -    -    -    是    否
    594    584    蒙古族    男    21    04    22    02    05    06    是    是
    579    569    蒙古族    女    33    -    -    -    -    -    否    否
    572    562    蒙古族    女    16    13    14    15    22    21    是    否
    453    453    汉族    男    33    -    -    -    -    -    否    否
    453    453    汉族    女    5C    -    -    -    -    -    否    否

    以下是输出文件result.out的范例

    恭喜!该生以投档分649及实考分649被人工智能(启明本硕博实验班)录取!
    恭喜!该生以投档分649及实考分639被人工智能(启明本硕博实验班)录取!
    恭喜!该生以投档分648及实考分648被电气工程及其自动化录取!
    恭喜!该生以投档分648及实考分648被计算机类(计算机学院)录取!
    恭喜!该生以投档分645及实考分645被计算机类(计算机学院)录取!
    恭喜!该生以投档分644及实考分644被计算机类(计算机学院)录取!
    恭喜!该生以投档分644及实考分644被计算机类(计算机学院)录取!
    恭喜!该生以投档分643及实考分643被计算机类(网安、软件学院)录取!
    恭喜!该生以投档分643及实考分643被计算机类(网安、软件学院)录取!
    恭喜!该生以投档分642及实考分642被电子信息类(光电学院)录取!
    恭喜!该生以投档分641及实考分641被电子信息类(光电学院)录取!
    恭喜!该生以投档分641及实考分631被电子信息类(电信学院)录取!
    恭喜!该生以投档分640及实考分630被电子信息类(电信学院)录取!
    恭喜!该生以投档分638及实考分638被电子信息类(电信学院)录取!
    恭喜!该生以投档分636及实考分636被电子信息类(电信学院)录取!
    恭喜!该生以投档分636及实考分636被临床医学类(同济医学院)录取!
    恭喜!该生以投档分635及实考分635被自动化类(AI试验班)录取!
    恭喜!该生以投档分635及实考分635被自动化类(AI试验班)录取!
    恭喜!该生以投档分635及实考分635被临床医学类(同济医学院)录取!
    恭喜!该生以投档分635及实考分625被自动化类(AI试验班)录取!
    恭喜!该生以投档分635及实考分625被自动化类(AI试验班)录取!
    恭喜!该生以投档分634及实考分634被电气工程及其自动化录取!
    恭喜!该生以投档分634及实考分624被电气工程及其自动化录取!
    恭喜!该生以投档分634及实考分624被能源与动力工程(启明本硕博实验班)录取!
    恭喜!该生以投档分633及实考分633被数学类录取!
    恭喜!该生以投档分633及实考分623被能源与动力工程(启明本硕博实验班)录取!
    恭喜!该生以投档分632及实考分632被物理学类录取!
    恭喜!该生以投档分632及实考分632被机械类(机械学院)录取!
    恭喜!该生以投档分632及实考分632被机械类(机械学院)录取!
    恭喜!该生以投档分632及实考分632被机械类(机械学院)录取!
    !!!!!提示:投档分为632,实考分为632的该生由于所选志愿均已录满,将被院校调剂到其他未录满专业!!!!!
    恭喜!该生以投档分631及实考分631被机械类(机械学院)录取!
    恭喜!该生以投档分631及实考分631被能源动力类录取!
    恭喜!该生以投档分630及实考分630被数学类录取!
    恭喜!该生以投档分630及实考分630被物理学类录取!
    恭喜!该生以投档分630及实考分630被临床医学类(同济医学院)录取!
    恭喜!该生以投档分630及实考分630被临床医学类(同济医学院)录取!
    !!!!!提示:投档分为629,实考分为629的该生由于所选志愿均已录满,将被院校调剂到其他未录满专业!!!!!
    !!!!!提示:投档分为629,实考分为629的该生由于所选志愿均已录满,将被院校调剂到其他未录满专业!!!!!
    恭喜!该生以投档分627及实考分627被化学类录取!
    恭喜!该生以投档分625及实考分625被能源动力类录取!
    !!!!!提示:投档分为620,实考分为620的该生由于所选志愿均已录满,将被院校调剂到其他未录满专业!!!!!
    !!!!!警告!由于不服从调剂,投档分为619,实考分为609的该生已经滑档!!!!!
    恭喜!该生以投档分618及实考分618被材料类录取!
    恭喜!该生以投档分612及实考分612被管理科学与工程类(大数据管理与供应链优化试验班)录取!
    恭喜!该生以投档分609及实考分609被管理科学与工程类(大数据管理与供应链优化试验班)录取!
    恭喜!该生以投档分609及实考分609被能源动力类录取!
    !!!!!提示:投档分为609,实考分为599的该生由于所选志愿均已录满,将被院校调剂到其他未录满专业!!!!!
    恭喜!该生以投档分609及实考分599被化学类录取!
    !!!!!警告!该生超出华中科技大学招生名额范围,已经滑档!!!!!
    !!!!!警告!该生超出华中科技大学招生名额范围,已经滑档!!!!!
    !!!!!警告!该生超出华中科技大学招生名额范围,已经滑档!!!!!
    !!!!!警告!该生超出华中科技大学招生名额范围,已经滑档!!!!!
    !!!!!警告!该生超出华中科技大学招生名额范围,已经滑档!!!!!
    !!!!!警告!该生超出华中科技大学招生名额范围,已经滑档!!!!!
    ——————华中科技大学录取到此结束——————

    可以看到,每个考生的录取情况,按照他们投档分高低,递减地被展现出来,与实际录取状况符合。

    我的一个朋友的录取情况与输出结果完全符合;而且你可以看到,投档分为619,实考分为609的考生被程序判定为脱档,这是一件非常不利的事情。

    事实上,这位考生确确实实脱档了,还是从计算机类脱的,他的第一志愿后面没有填任何备选方案,也没有服从调剂。据说华科招生组很焦灼地反复尝试联系这个倒霉鬼,但是没有任何结果。不知这个人怎么想的了。靠。

    下面是代码。(明天白天更)

    #include<iostream>
    /*
    name=内蒙高考网报推算器
    version=1.0
    by KC_yige_
    date:20210702
    ——————★cpp lasts forever★——————
    */
    int stuNum,proNum,schNum,temp,sum;
    bool ifFsq,ifZyq;//判断录取规则
    std::string schName;//学校名称
    struct myDat{//记录学生信息
        int score,mark;//投档分和实考分
        std::string code[8];//专业代码
        bool sign,change;//标记和是否服从调剂
        int num;//学生投档分排名
    }dat[300];
    struct myPro{//记录专业信息
        std::string code;//专业代码
        std::string name;//专业名称
        int num,plan;//和计划招生数
    }pro[100];
    void check()//判断录取规则
    {
        if(temp==1)ifFsq=1;
        else if(temp==2)ifZyq=1;
    }
    void readPro()//读取pro.in
    {
        int i=1;
        while(std::cin>>pro[i].code)//不停读入
        {
            std::cin>>pro[i].name;//读入专业名称
            std::string temp;
            std::cin>>temp;//读入temp来跳过没用的信息
            std::cin>>pro[i].plan;//读入专业计划数
            i++;
            proNum++;
            getline(std::cin,temp);//专业计划数之后所有信息都是无用的,直接跳行
        }
    }
    void readStudent()//读取student.in
    {
        int i=1;
        while(std::cin>>dat[i].score)//不停读入投档分
        {
            std::cin>>dat[i].mark;//读入实考分
            dat[i].num=i;
            std::string temp;
            std::cin>>temp;
            std::cin>>temp;//跳过无用信息
            for(int j=1;j<=6;j++)
                std::cin>>dat[i].code[j];//读入考生六个志愿
            std::cin>>temp;//跳过
            temp==""?dat[i].change=1:dat[i].change=0;//判断是否服从调剂,我觉得不能100%稳上目标院校的目标专业还填否人的纯属nt
            i++;
            stuNum++;
            std::cin>>temp;//
        }
    }
    void fsq(int num)//分数清核心代码
    {
        for(int j=1;j<=6;j++)//依次扫过该考试的6个专业
        {
            for(int i=1;i<=proNum;i++)//在专业库里匹配专业
                if(dat[num].code[j]==pro[i].code)//如果匹配到到考生的专业
                {
                    if(pro[i].num<pro[i].plan)//如果考生排名在计划数内
                    {
                        pro[i].num++;//报这个专业的人数+1
                        std::cout<<"恭喜!该生以投档分"<<dat[num].score<<"及实考分"<<dat[num].mark<<""<<pro[i].name<<"录取!"<<std::endl;
                        return;
                    }
                    else continue;
               }
        }
        if(!dat[num].change)std::cout<<"!!!!!警告!由于不服从调剂,投档分为"<<dat[num].score<<",实考分为"<<dat[num].mark<<"的该生已经滑档!!!!!"<<std::endl;
        else std::cout<<"!!!!!提示:投档分为"<<dat[num].score<<",实考分为"<<dat[num].mark<<"的该生由于所选志愿均已录满,将被院校调剂到其他未录满专业!!!!!"<<std::endl;
        return;
    } 
    void zyq(int num)
    {
        for(int i=1;i<=sum;i++)//第i个学生
        {
            if(dat[i].sign)continue;//被录取则跳过
            for(int j=1;j<=proNum;j++)//查找对应志愿
                if(dat[i].code[num]==pro[j].code)
                {
                    if(pro[j].num<pro[j].plan)//如果计划未满
                    {
                        pro[j].num++;
                        std::cout<<"恭喜!该生以投档分"<<dat[i].score<<"及实考分"<<dat[i].mark<<""<<pro[j].name<<"录取!"<<std::endl;
                        dat[i].sign=1;//录取标记
                    }
                }
        }
    }
    int main()
    {
        freopen("pro.in","r",stdin);
        freopen("result.out","w",stdout);
        std::cin>>schName>>sum>>temp;
        readPro();
        fclose(stdin);
        std::cin.clear();
        freopen("student.in","r",stdin);
        readStudent();
        check();
        for(int i=1;i<=sum;i++)
            if(ifFsq)fsq(i);
        for(int i=1;i<=6;i++)
            if(ifZyq)zyq(i);
        for(int i=1;i<=sum;i++)//处理超额考生
            if(ifZyq&&!dat[i].sign)std::cout<<"!!!!!警告:投档分为"<<dat[i].score<<",实考分为"<<dat[i].mark<<"的考生由于所选专业均已被录满而被退档!!!!!"<<std::endl;
        for(int i=sum+1;i<=stuNum;i++)
            std::cout<<"!!!!!警告!该生超出"<<schName<<"招生名额范围,已经滑档!!!!!"<<std::endl;
        std::cout<<"——————"<<schName<<"录取到此结束——————";
        return 0;
    }
  • 相关阅读:
    C#多线程学习(一) 多线程的相关概念
    如何:创建和终止线程(C# 编程指南)
    原来多线程中的join()是这么回事(转)
    c# 关于Task类处理多线程的学习
    C#多线程学习(四) 多线程的自动管理(线程池)
    【转】Java 四种引用
    【转】Java线程:新特征锁(1)
    Builder
    Proxy
    【转】Java NIO(一)
  • 原文地址:https://www.cnblogs.com/yige2019/p/15032871.html
Copyright © 2011-2022 走看看