| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1995 人关注过本帖, 1 人收藏
标题:学生成绩管理系统,排序这个功能模块求修改
只看楼主 加入收藏
q0224100404
Rank: 2
等 级:论坛游民
帖 子:25
专家分:10
注 册:2015-11-24
结帖率:37.5%
收藏(1)
已结贴  问题点数:8 回复次数:3 
学生成绩管理系统,排序这个功能模块求修改
程序代码:
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<iomanip>
#include<list>

using namespace std;

class person
{
public:
    string name;
    string tel;
    string adr;
    string ID;
public:
    person(){};
//    person(string,string,string,string);
    ~person(){};
};


class student:public person
{
public:
    string code;
    double math;
    double chinese;
    double english;
public:
    student(){};
    //student(string,string,string,string,string,double,double,double);
    double getsum()
    {
        return math+chinese+english;
    }
    double getaver()
    {
        return (math+chinese+english)/3;
    }
};

class control
{
public:
//    void find(std::vector<student>&ver);
    void edit(vector<student>&ver);
    void del(vector<student>&ver);
    void insert(vector<student>&ver);
    void st(vector<student>&ver);
    void list(vector<student>&ver);
    void jiemian();
};

void control::jiemian()
{
    cout<<endl;
    cout<<"*****************************************"<<endl;
    cout<<"*          请选择您需要的操作:         *"<<endl;
    cout<<"*              1 增加学生               *"<<endl;
    cout<<"*              2 删除学生               *"<<endl;
    cout<<"*              3 修改数据               *"<<endl;
    cout<<"*              4 查询数据               *"<<endl;
    cout<<"*              5 输出所有数据           *"<<endl;
    cout<<"*              6 按成绩排序             *"<<endl;
    cout<<"*              0 退出                   *"<<endl;
    cout<<"*            请输入对应数字             *"<<endl;
    cout<<"*****************************************"<<endl;
    cout<<endl;
    
    return;
};


void control::insert(vector<student>&ver)
{
    student stu;
    string stucode;
    string stuname;
    string stuadr;
    string stutel;
    string stuID;
    double math,chinese,english;
    cout<<"请输入学号:";
    cin>>stucode;
    cout<<"请输入姓名:";
    cin>>stuname;
    cout<<"请输入地址:";
    cin>>stuadr;
    cout<<"请输入电话:";
    cin>>stutel;
    cout<<"请输入身份证号:";
    cin>>stuID;
    cout<<"请输入数学成绩:";
    cin>>math;
    cout<<"请输入语文成绩:";
    cin>>chinese;
    cout<<"请输入英语成绩:";
    cin>>english;
    stu.code=stucode;
    stu.name=stuname;
    stu.adr=stuadr;
    stu.tel=stutel;
    stu.ID=stuID;
    stu.math=math;
    stu.chinese=chinese;
    stu.english=english;
    stu.getsum();
    stu.getaver();
    ver.push_back(stu);
    return;
}


void control::del(vector<student>&ver)
{
    string stucode;
    string stuname;
    cout<<"请输入学号:";
    cin>>stucode;
    cout<<"请输入姓名:";
    cin>>stuname;
    vector<student>::iterator i;
    for(i=ver.begin();i!=ver.end();++i)
    {
        if(((*i).code==stucode)&&((*i).name==stuname))
        {
            ver.erase(i);
            return;
        }
    }
    return;
}
void control::list(vector<student>&ver)
{
    vector<student>::iterator i;
    for(i=ver.begin();i!=ver.end();i++)
    {
        cout<<"学员清单如下:"<<endl;
        cout<<"学号  姓名  电话  地址  身份证号  数学成绩   语文成绩  英语成绩  总分  平均分"<<endl;
        cout<<(*i).code<<setw(4)<<(*i).name<<setw(4)<<(*i).tel<<setw(4)<<(*i).adr<<setw(4)<<(*i).ID<<setw(4)<<(*i).math<<setw(4)<<(*i).chinese<<setw(4)<<(*i).english<<setw(4)<<(*i).getsum()<<setw(4)<<(*i).getaver()<<endl;

    }
}

void control::edit(vector<student>&ver)
{
    string stucode;
    string stuname;
    cout<<"请输入学号:";
    cin>>stucode;
    cout<<"请输入姓名:";
    cin>>stuname;
    vector<student>::iterator i;
    for(i=ver.begin();i!=ver.end();++i)
    {
        if(((*i).code==stucode)&&((*i).name==stuname))
        {
            cout<<"原来的数据:"<<endl;
            cout<<"学号:"<<(*i).code<<endl;
            cout<<"姓名:"<<(*i).name<<endl;
            cout<<"电话:"<<(*i).tel<<endl;
            cout<<"地址:"<<(*i).adr<<endl;
            cout<<"身份证号码:"<<(*i).ID<<endl;
            cout<<"数学成绩:"<<(*i).math<<endl;
            cout<<"语文成绩:"<<(*i).chinese<<endl;
            cout<<"英语成绩:"<<(*i).english<<endl;
            cout<<"请输入新的数据:"<<endl;
            cout<<"请输入姓名:";
            cin>>(*i).name;
            cout<<"请输入地址:";
            cin>>(*i).adr;
            cout<<"请输入电话:";
            cin>>(*i).tel;
            cout<<"请输入身份证号:";
            cin>>(*i).ID;
            cout<<"请输入数学成绩:";
            cin>>(*i).math;
            cout<<"请输入语文成绩:";
            cin>>(*i).chinese;
            cout<<"请输入英语成绩:";
            cin>>(*i).english;
            (*i).getsum();
            (*i).getaver();
            return;
        }
    }
}



void control::st(vector<student>&ver)
{
    char fg;
    cout<<"*****************************"<<endl;
    cout<<"*        1 按总分排序       *"<<endl;
    cout<<"*        2 按语文排序       *"<<endl;
    cout<<"*        3 按数学排序       *"<<endl;
    cout<<"*        4 按英语排序       *"<<endl;
    cout<<"*        5 按平均分排序     *"<<endl;
    cout<<"*        0 退出             *"<<endl;
    cout<<"*****************************"<<endl;
    cin>>fg;
    switch(fg)
    {
    case '0':
        return;
    case '1':
        std::sort(ver.begin(),ver.end(),greategetsum());
        
        break;
    case '2':
        std::sort(ver.begin(),ver.end(),greatechinese);
        
        break;
    case '3':
        std::sort(ver.begin(),ver.end(),greatemath);
        
        break;
    case '4':
        std::sort(ver.begin(),ver.end(),greateenglish);
        
        break;
    case '5':
        std::sort(ver.begin(),ver.end(),greategetaver());
        
        break;
    }
    return;
}

void main()
{
    char key;
    vector<student>ver;
    control c1;
    do{
    c1.jiemian();
    cin>>key;
    switch(key)
    {
    case '1':
        c1.insert(ver);
        break;
    case '2':
        c1.del(ver);
        break;
    case '3':
        c1.edit(ver);
        break;
    case '4':
    //    c1.find(ver);
        break;
    case '5':
        c1.list(ver);
        break;
    case '6':
        c1.st(ver);
        break;
    }
    }while(key!='0');

}
搜索更多相关主题的帖子: 管理系统 
2015-12-21 23:22
wengbin
Rank: 10Rank: 10Rank: 10
来 自:陕西西安
等 级:贵宾
威 望:19
帖 子:370
专家分:1846
注 册:2015-5-8
收藏
得分:4 
把要改的加红或标出来呗,否则谁有功夫一点点读代码呀
2015-12-22 09:00
newdos
Rank: 9Rank: 9Rank: 9
等 级:禁止访问
威 望:6
帖 子:251
专家分:1169
注 册:2012-8-13
收藏
得分:4 
自己定义排序函数
bool sort_by_chinese(const Student &a, const Student &b)
{
    return a.ch < b.ch;
}

std::sort(vec.begin(), vec.end(), sort_by_chinese);
2015-12-22 09:46
evenio
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2019-6-30
收藏
得分:0 
回复 3楼 newdos
我把你写的函数放到类里面了 但是不管用啊
2019-06-30 14:35
快速回复:学生成绩管理系统,排序这个功能模块求修改
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017102 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved