| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 517 人关注过本帖
标题:我做的一道题,有一个错误提示.但我不会改
只看楼主 加入收藏
只敢学习
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-7-4
收藏
 问题点数:0 回复次数:3 
我做的一道题,有一个错误提示.但我不会改
编码方案写一个程序输入3个学生的英语和计算机成绩,并按总分从高到低排序.要求设计一个学生类student,其定义如下:
class student
{
int eng,com,total;
public:
void getxcore();//获取一个学生成绩
void display();//显示一个学生成绩
};
void sort(student*);//将若干个学生按总分从高到低排序.
只在我的程序的基础上修改就成.





#include <iostream.h>
class student
{
int n,eng,com,total;
public:
void getscore();
void display();
int retotal() { return total;}
};
void student :: getscore()
{
static int num=0;
num=num+1;
n=num;
cout << " 输入英语成绩:";
cin >> eng;
cout << " 输入计算机成绩:";
cin >> com;
total=eng+com;
}
void student :: display()
{
cout << "学号:" << n << "英语=" << eng << "计算机=" << com << "总分=" << total << endl;
}
int main(void)
{
void sort(student* *,student* *);
student*a[4];
for(int j=0;j<4;j++)
{
a[j]=new student;
cout << "学生" << j+1 << endl;
a[j]->getscore();
}
int i;
for(j=0;j<3;j++)
for(i=0;i<3;i++)
{
sort(a+j,a+j+1);
}
cout << endl << "排序结果如下:"<< endl;
for(i=0;i<4;i++)
{
a[i]->display();
}
void sort(student* *p1,student* *p2)//此行提示有错误
{
if((*p1)->retotal()<(*p2)->retotal())
{
student* temp=*p1;
*p1=*p2;
*p2=temp;
}
}
return 0;
}

[此贴子已经被作者于2006-1-8 11:52:39编辑过]

搜索更多相关主题的帖子: 提示 
2006-01-08 11:21
woodhead
Rank: 3Rank: 3
等 级:新手上路
威 望:9
帖 子:1124
专家分:0
注 册:2005-7-18
收藏
得分:0 

#include <iostream>
using namespace std;

class student
{
int n,eng,com,total;
public:
void getscore();
void display();
int retotal() { return total;}
};
void student :: getscore()
{
static int num=0;
num=num+1;
n=num;
cout << " 输入英语成绩:";
cin >> eng;
cout << " 输入计算机成绩:";
cin >> com;
total=eng+com;
}
void student :: display()
{
cout << "学号:" << n << "英语=" << eng << "计算机=" << com << "总分=" << total << endl;
}

void sort(student**,student**);//不能在函数中声明

int main()
{

student*a[4];
for(int j=0;j<4;j++)
{
a[j]=new student;
cout << "学生" << j+1 << endl;
a[j]->getscore();
}
int i;
//=================排序好象有问题

for(int j=0;j<3;j++)
for(i=0;i<3-j;i++)
{
sort(a+i,a+i+1);
}
//-----
cout << endl << "排序结果如下:"<< endl;
for(i=0;i<4;i++)
{
a[i]->display();
}

//============没有回收内存

for(int i=0;i<4;i++)
delete a[i];
//-----


system("pause");
return 0;
}

void sort(student **p1,student **p2) //不能在函数中定义函数
{
if((*p1)->retotal() < (*p2)->retotal())
{
student *temp=*p1;
*p1=*p2;
*p2=temp;
}
}


[此贴子已经被作者于2006-1-8 12:22:50编辑过]


2006-01-08 12:21
只敢学习
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-7-4
收藏
得分:0 
#include<iostream.h>
class student
{int n,computer,english,total;
public:
void getscore();
void display();
int retotal(){return total;}
};
void student::getscore()
{cout<<"n=";cin>>n;
cout<<"computer=";cin>>computer;
total=computer+english;
}
void student::display()
{cout<<"number="<<n<<endl;
cout<<"computer="<<computer;
cout<<"english="<<english<<endl;
}
void sort(student **p1,student **p2)
{if((*p1)->retotal()<(*p2)->retotal())
student*temp=*p1;
*p1=*p2;
*p2=temp;
}
void main()
{student*A[3];
int i,j;
for(i=0;i<3;i++)
{A[i]=new student;
A[i]->getscore();}
for(i=0;i<2;i++)
for(j=0;j<2-i;j++)
{sort(A+j,A+j+1);
cout<<"排序结果:"<<endl;}
for(i=0;i<3;i++)
A[i]->display();
}
还是有错误...

2006-01-08 12:38
只敢学习
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2005-7-4
收藏
得分:0 
#include<iostream.h>
class student //说明一个类
{ int n,english,computer,total;
public :
void getscore();//获取一个学生成绩
void display();//显示一个学生成绩
int retotal() { return total; }
};
void student::getscore()//获取学生成绩
{static int num=0;num=num+1;n=num;
cout<<"输入英语成绩:";
cin>>english;
cout<<"输入计算机成绩:";
cin>>computer;
total=english+computer;
}
void student ::display()//显示
{cout <<"学号: "<< n<<" 英语= "<<english<<" 计算机="<<computer<<" 总分="<<total<<endl;
}
int main(void)
{ void sort(student **,student **);
student *A[4];
for(int j=0;j<4;j++)
{ A[j]=new student;
cout <<"学生" <<j+1<<endl;
A[j]->getscore(); }
int i;
for(j=0;j<3;j++)
for(i=0;i<3;i++)
sort (A+i,A+i+1); //A+i->*p1,A+i+1->*p2
cout<<endl<<"排序结果如下:"<<endl;
for(i=0;i<4;i++)
A[i]->display(); }
void sort(student **p1,student **p2)
{ if((*p1)->retotal()<(*p2)->retotal())
{ student *tmp=*p1;
*p1=*p2;
*p2=tmp;
}
return 0;
}
这个应该对了..谢谢了;

2006-01-08 12:47
快速回复:我做的一道题,有一个错误提示.但我不会改
数据加载中...
 
   



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

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