求助高手帮忙!急需C++源程序设计!!(如果能够运行,会再追加悬赏)

设计一个程序:定义学生类Student,用于存放并输出学生的姓名、学号、四门功课的成绩及总成绩。具体要求如下:(1)、提示用户输入学生人数;(2)、提示用户输入学生的姓名... 设计一个程序:定义学生类Student ,用于存放并输出学生的姓名、学号、四门功课的成绩及总成绩。具体要求如下:
(1)、提示用户输入学生人数;
(2)、提示用户输入学生的姓名、四门课的成绩;
(3)、计算并输出每门课程的平均成绩(纵向求平均);
(4)、输出总成绩最高的学生的所有信息;(考虑并列第一的情况)
(5)、要求学号自动增加。
展开
 我来答
ysh252540233
2011-04-08
知道答主
回答量:17
采纳率:0%
帮助的人:0
展开全部
//StudentManage.h
//VC对标准C++支持不行 你要只有VC 那我就只能给你改成这样的了- -#
//#include <string>
#include <iostream.h>//#include <iostream>

//using namespace std;

class Student
{
private:
char* m_name;//string m_name;
unsigned int m_stuID;
float m_math;
float m_english;
float m_chinese;
float m_cplusplus;
float m_sum;
public:
Student(unsigned int);
~Student();
float GetSum()const{return m_sum;}
friend class Printer;
friend istream& operator>>(istream&,Student&);
friend ostream& operator<<(ostream&,Student&);
};

istream& operator>>(istream& is,Student& stu)
{
cout<<"请输入第"<<stu.m_stuID<<"个学生的姓名:"<<endl;
is>>stu.m_name;
cout<<"请输入"<<stu.m_name<<"的数学成绩:"<<endl;
is>>stu.m_math;
cout<<"请输入"<<stu.m_name<<"的英语成绩:"<<endl;
is>>stu.m_english;
cout<<"请输入"<<stu.m_name<<"的语文成绩:"<<endl;
is>>stu.m_chinese;
cout<<"请输入"<<stu.m_name<<"的C++成绩:"<<endl;
is>>stu.m_cplusplus;

stu.m_sum=stu.m_math+stu.m_english+stu.m_chinese+stu.m_cplusplus;
return is;
}

ostream& operator<<(ostream& os,Student& stu)
{
os<<"姓名:"<<stu.m_name<<endl;
os<<"学号:"<<stu.m_stuID<<endl;
os<<"数学成绩:"<<stu.m_math<<endl;
os<<"英语成绩:"<<stu.m_english<<endl;
os<<"语文成绩:"<<stu.m_chinese<<endl;
os<<"C++成绩:"<<stu.m_cplusplus<<endl;
os<<"总成绩:"<<stu.m_sum<<endl;
return os;
}
//StudentManage.cpp
#include <vector>
#include <algorithm>
#include "StudentManage.h"

using namespace std;

Student::Student(unsigned int ID):m_stuID(ID)
{
m_name=new char[50];
}

Student::~Student()
{

}

class Printer
{
public:
Printer(){count=0;m_SumMath=0;m_SumEn=0;m_SumCN=0;m_SumCP=0;}
void operator()(Student stu);
void Display()
{
cout<<"数学平均成绩:"<<m_SumMath/count<<endl;
cout<<"英语平均成绩:"<<m_SumEn/count<<endl;
cout<<"语文平均成绩:"<<m_SumCN/count<<endl;
cout<<"C++平均成绩:"<<m_SumCP/count<<endl;
}
private:
int count;
float m_SumMath;
float m_SumEn;
float m_SumCN;
float m_SumCP;
}printer;

void Printer::operator ()(Student stu)
{
count++;
m_SumMath+=stu.m_math;
m_SumEn+=stu.m_english;
m_SumCN+=stu.m_chinese;
m_SumCP+=stu.m_cplusplus;
}

void main()
{
unsigned int StuNum=0;
cout<<"请输入学生的数量:"<<endl;
cin>>StuNum;

vector<Student> AllStudent;
AllStudent.reserve(StuNum);
for (int i=0;i<StuNum;i++)
{
Student stu(i+1);
cin>>stu;
AllStudent.push_back(stu);
}
for_each(AllStudent.begin(),AllStudent.end(),printer).Display();

float maxsum=0;
typedef vector<Student>::iterator StuIte;
for(StuIte ite=AllStudent.begin();ite!=AllStudent.end();++ite)
{
if (ite->GetSum()>maxsum)
{
maxsum=ite->GetSum();
}
}

cout<<endl<<"总分最高的学生:"<<endl;
for(StuIte iter=AllStudent.begin();iter!=AllStudent.end();++iter)
{
if (iter->GetSum()==maxsum)
{
cout<<*iter<<endl;
}
}

}
手机用户11799
2011-04-09 · TA获得超过231个赞
知道答主
回答量:536
采纳率:0%
帮助的人:0
展开全部
等价的指针形式。
要这样
template<class type,int Rows,int Cols>
void sumAll(type (*data)[Cols],type *result)

另外
for (int i=0;i<Rows;i++;)
最多的分号是多余的,应该是
for (int i=0;i<Rows;i++)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
KingloIsKinglo
2011-04-08 · 超过15用户采纳过TA的回答
知道答主
回答量:56
采纳率:0%
帮助的人:42.2万
展开全部
留下邮箱我发给你吧!
追问
236619069@qq.com
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
alla_only_jc
2011-04-08 · TA获得超过158个赞
知道答主
回答量:101
采纳率:0%
帮助的人:32.2万
展开全部
题目不难……但是费事……起码得要个上百分……不然帮你做出来的人肯定就是义务劳动了……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2011-04-11
展开全部
这道题我们也做过的,我发到你邮箱了,你看一下是你想要得不!
追问
谢谢啊,这个比较简单些
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式