| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1856 人关注过本帖
标题:大神帮忙找找错,为什么输入不了数据
只看楼主 加入收藏
luojiaw
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-11-22
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
大神帮忙找找错,为什么输入不了数据
/*编写一个程序:输入几个学生的姓名、英语和计算机成绩,
然后按照总分从高到低排序。要求定义一个student类,用友元函数实现排序。*/
#include <iostream>
using namespace std;
#include<string>
class student
{
public:

    void set()
    {
        cout<<"请输入学生学生姓名,英语成绩,计算机成绩"<<'\n';
        cin>>name>>score1>>score2;
        sum=score1+score2;
    }
    void show()
    {
        cout<<"姓名:"<<name<<'\t'<<"英语成绩:"<<score1<<'\t'<<"计算机成绩:"<<score2<<'\n';}

friend void panxu(student op[],int n)
    {
    float temp;
    for(int i=0;i<n-1;i++)
    for(int j=1;j<n;j++)
    {
        if(op[i].sum<op[j].sum)
        {
            temp=op[j].sum;
            op[i].sum=op[j].sum;
            op[j].sum=temp;
            op[i].name=op[j].name;
            op[i].score1=op[j].score1;
            op[i].score2=op[j].score2;
        }

   
    }
    }
private:
    string name;
    float score1;
    float score2;
    float sum;
};

   
int main()
{
    int n;
    student op[50];
    cout<<"请输入学生人数:";
    cin>>n;
    for(int t=0;t<n;t++)
    {
        op[t].set;
    }
   
    cout<<"排序后....."<<'\n';
    panxu(op,n);
    for(int k=0;k<n;k++)
    {
        op[k].show();}   
      return 0;
}
搜索更多相关主题的帖子: 英语成绩 include 计算机 public 
2017-05-07 21:10
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
op[t].set;
报错:error C3867: 'student::set': function call missing argument list; use '&student::set' to create a pointer to member
其它的,也一塌糊涂,算法也错误。更重要的是,这不是C++的写法。

程序代码:
#include <iostream>
#include <string>

struct student
{
    std::string name;
    float eng_score;
    float cpt_score;

    student() : name(), eng_score(), cpt_score()
    {
    }
    float sum() const
    {
        return eng_score+cpt_score;
    }
};
std::istream& operator>>( std::istream& in, student& stu )
{
    return in >> stu.name >> stu.eng_score >> stu.cpt_score;
}
std::ostream& operator<<( std::ostream& out, const student& stu )
{
    return out<<"name:"<<stu.name<<"\tenglish score:"<<stu.eng_score<<"\tcomputer score:"<<stu.cpt_score;
}

#include <vector>
#include <algorithm>
using namespace std;

int main( void )
{
    size_t n;
    cout << "请输入学生人数:";
    cin >> n;

    std::vector<student> stus( n );
    cout << "请输入学生学生姓名,英语成绩,计算机成绩\n";
    for( size_t i=0; i!=stus.size(); ++i )
        cin >> stus[i];

    std::sort( stus.begin(), stus.end(), [](const student& a,const student& b){return a.sum()>b.sum();} );

    for( size_t i=0; i!=stus.size(); ++i )
        cout << stus[i] << '\n';
}
输入
3
a 1 1
b 3 3
c 2 2
输出
name:b  english score:3 computer score:3
name:c  english score:2 computer score:2
name:a  english score:1 computer score:1
2017-05-08 08:39
luojiaw
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2016-11-22
收藏
得分:0 
你的程序太高级别了,小白表示看不懂,
2017-05-08 15:16
快速回复:大神帮忙找找错,为什么输入不了数据
数据加载中...
 
   



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

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