最新公告
  • 欢迎您光临波比源码,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 第17周上机实践项目6――学生成绩统计(4)

    问题及代码

    /*
    * Copyright (c) 2014, 烟台大学计算机学院
    * All rights reserved.
    * 文件名称:test.cpp
    * 作 者:辛彬
    * 完成日期:2015年 1 月 2 日
    * 版 本 号:v1.0
    *
    * 问题描写: 使用相同的结构体类型,在main函数中已对结构体数组进行了初始化,请完成相干函数的定义,实现main函数中要求的功能。。
    * 输入描写:没有输入。
    * 程序输出:很多东西。。。;
    */
    #include <iostream>
    #include <cstring>
    using namespace std;
    struct Student //同项目1
    {
    char num[13];
    char name[10];
    int cpp;
    int math;
    int english;
    int grade;
    double average;
    };
    void calculate(Student s[],int n); //计算总分和均分,数据在s数组中,共有n个元素
    void sort1(Student [],int); //按总分降序排序
    void sort2(Student [],int); //按学号升序排序
    void output(Student [],int); //输出成绩单
    void outputExcellent(Student [],int); //输出优秀者:总分超285,单科不低于90
    int main()
    {
    Student stu[]=
    {
    {"201152501104","Tom",65,69 ,68 },
    {"201152501114","Jeery",94 ,89 ,63 },
    {"201152501138","Speike",67 ,62 ,84 },
    {"201152501204","Tyke",100 ,95 ,91 },
    {"201152501202","Tuffy",59 ,80 ,55 },
    {"201152501115","Butch",100 ,99 ,89 },
    {"201152501201","Light",95 ,92 ,99 },
    {"201152501145","Topsy",88 ,56 ,67 },
    {"201152501203","Droopy",62 ,62 ,95 },
    {"201152501140","Drupa",80 ,60 ,86 },
    {"201152501205","Buzz",73 ,90 ,94}
    };
    int stuNum=sizeof(stu)/sizeof(stu[0]); //用sizeof运算肯定数组中元素个数
    //计算总分和均分后输出
    calculate(stu,stuNum);
    cout<<"下面是成绩单:"<<endl;
    output(stu,stuNum);
    cout<<"优秀者名单:"<<endl;
    outputExcellent(stu,stuNum);
    //按总分降序排序后输出
    sort1(stu,stuNum);
    cout<<"按总分降序排序后:"<<endl;
    output(stu,stuNum);
    //按学号升序排序后输出
    sort2(stu,stuNum);
    cout<<"按学号升序排序后:"<<endl;
    output(stu,stuNum);
    return 0;
    }
    void calculate(Student s[],int n)
    {
    for(int i=0; i<n; i++)
    {
    s[i].grade=s[i].cpp+s[i].math+s[i].english;
    s[i].average=s[i].grade/3.0;
    }
    }
    void sort1(Student s[],int n)
    {
    Student t;
    int i,j;
    for(i=0; i<n⑴; i++)
    for(j=0; j<n-i⑴; j++)
    {
    if(s[j].grade<s[j+1].grade)
    {
    t=s[j];
    s[j]=s[j+1];
    s[j+1]=t;
    }
    }
    }
    void sort2(Student s[],int n)
    {
    Student t;
    int i,j;
    for(i=0; i<n⑴; i++)
    for(j=0; j<n-i⑴; j++)
    {
    if(strcmp(s[j].num,s[j+1].num)>0)
    {
    t=s[j];
    s[j]=s[j+1];
    s[j+1]=t;
    }
    }
    }
    void output(Student s[],int n)
    {
    cout<<"学号 姓名 C++ 高数 英语 总分 均分"<<endl;
    for(int i=0;i<n;i++)
    cout<<s[i].num<<' '<<s[i].name<<' '<<s[i].cpp<<' '<<s[i].math<<' '<<s[i].english<<' '<<s[i].grade<<' '<<s[i].average<<endl;
    }
    void outputExcellent(Student s[],int n)
    {
    for(int i=0;i<n;i++)
    {
    if(s[i].grade>285&&s[i].cpp>=90&&s[i].math>=90&&s[i].english>=90)
    cout<<s[i].num<<' '<<s[i].name<<endl;
    }
    }

    运行结果:

    学习感悟:1、对全部结构体的交换,可以再定义1个结构体,如student t,在如代码所示交换

                        2、数组表示的字符串的操作,相干函数也能够#include <cstring>

    波比源码 – 精品源码模版分享 | www.bobi11.com
    1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
    2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
    3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
    4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
    5. 如有链接无法下载、失效或广告,请联系管理员处理!
    6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
    7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

    波比源码 » 第17周上机实践项目6――学生成绩统计(4)

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    波比源码
    一个高级程序员模板开发平台
    升级波友尊享更多特权立即升级