| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1281 人关注过本帖
标题:[求助]c++编程(考试用的)希望大家帮助一下!
只看楼主 加入收藏
qicaishics
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-21
收藏
 问题点数:0 回复次数:11 
[求助]c++编程(考试用的)希望大家帮助一下!

设计一个类来计算某个学生3门课的平均值,对学生的描述除了成绩之外,还有学生的姓名,编程显示5个学生的姓名和平均成绩,及总平均值,要求用到构造函数?


十分感谢!

搜索更多相关主题的帖子: 考试 
2006-11-21 11:16
dubaoshi
Rank: 1
等 级:新手上路
帖 子:118
专家分:0
注 册:2006-9-22
收藏
得分:0 
我还没学到这里,以后帮你

人行善,福虽未至,祸已远离;人行恶,祸虽未至,福已远离.
2006-11-21 11:55
qicaishics
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-21
收藏
得分:0 

谢谢

2006-11-21 11:58
smartwind
Rank: 1
等 级:新手上路
威 望:1
帖 子:277
专家分:0
注 册:2006-11-13
收藏
得分:0 

class Student
{
char name[20];
float avg;
public:
Studeng(char str[]='\0',float a=0,float b=0,float c=0){
while((*(name++)=*(str++))!='\0');
avg=(a+b+c)/3;
}
};


2006-11-21 14:53
qicaishics
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-21
收藏
得分:0 
类定义好了,应该还有主程序吧
2006-11-21 15:56
qicaishics
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-21
收藏
得分:0 


class Student //定义学生成绩类

{ char Name[20]; //定义描述学生成绩的数据成员

float Phi,Math,Eng,Ave;

void Display(student s) //定义显示成绩的成员函数

{ cout<<s.Name<<'\t''<<s.Ave<<'\n';}

void Average(Student &s) //定义计算平均成绩的成员函数

{ s.Ave=(s.Phi+s.Math+s.Eng)/3;}

} ;

2006-11-21 16:10
qicaishics
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-21
收藏
得分:0 
主程序中应该实现调用和显示的结果吧,
2006-11-21 16:18
flyayi2006
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2006-11-22
收藏
得分:0 

#include <iomanip>
#include <iostream>
using namespace std;
class student
{
public:

student()
{
course1=0;
course2=0;
course3=0;
}

void Init(int j)
{
cout<<"请输入第"<<j+1<<"个学生的姓名: "<<endl;

cin.getline(name,20,'\n');

cout<<"请输入第"<<j+1<<"个学生的3门课程成绩: "<<endl;

cin>>course1>>course2>>course3;
cin.get();
cout<<endl;

}
float average()
{
return (course1+course2+course3)/3.0;
}

void display(float aver)
{
cout<<setiosflags(ios::left)<<setw(15)<<name<<setw(15)<< average()<<setw(15)<< aver<<endl;
}
private:
char name[20];
int course1;
int course2;
int course3;

};

int main()
{
student stu[4];
float aver=0.0; //总平均成绩
for(int i=0;i<4;i++)
{

stu[i].Init(i);
aver +=stu[i].average();
}
aver=aver/4;

cout<<setiosflags(ios::left)<<setw(15)<<"姓名 "<<setw(15)<<"个人平均成绩"<<setw(15)<<"总平均成绩"<<endl;
for( i=0;i<4;i++)
{
stu[i].display(aver);
}

return 1;
}

初学者,请多指教!!



2006-11-22 12:36
qicaishics
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-21
收藏
得分:0 

谢谢,只是做了一些修改!

1>把for(int i=0;i<4;i++)改成了for(int i=0;i<=4;i++),要求显示5个学生的成绩和姓名;

2>把return 1改成了return 0或return ();方便进行屏幕输出!

谢谢指点!

改正后的程序如下:

#include <iomanip>
#include <iostream>
using namespace std;
class student
{
public:

student()
{
course1=0;
course2=0;
course3=0;
}

void Init(int j)
{
cout<<"请输入第"<<j+1<<"个学生的姓名: "<<endl;

cin.getline(name,20,'\n');

cout<<"请输入第"<<j+1<<"个学生的3门课程成绩: "<<endl;

cin>>course1>>course2>>course3;
cin.get();
cout<<endl;

}
float average()
{
return (course1+course2+course3)/3.0;
}

void display(float aver)
{
cout<<setiosflags(ios::left)<<setw(15)<<name<<setw(15)<< average()<<setw(15)<< aver<<endl;
}
private:
char name[20];
int course1;
int course2;
int course3;

};

int main()
{
student stu[4];
float aver=0.0; //总平均成绩
for(int i=0;i<=4;i++)
{

stu[i].Init(i);
aver +=stu[i].average();
}
aver=aver/5;

cout<<setiosflags(ios::left)<<setw(15)<<"姓名 "<<setw(15)<<"个人平均成绩"<<setw(15)<<"总平均成绩"<<endl;
for(int i=0;i<=4;i++)
{
stu[i].display(aver);
}

return 0;//屏幕输出,换成return 1,不进行屏幕输出
}

在C-Free 3.5中运行通过!

2006-11-22 14:56
qicaishics
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2006-11-21
收藏
得分:0 

好象还有一些时数据转换的问题

比如整型和浮点型转换时的错误提示

2006-11-22 15:12
快速回复:[求助]c++编程(考试用的)希望大家帮助一下!
数据加载中...
 
   



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

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