用对象数组定义五个学生成绩
A. c++程序问题 。建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个
#include<iostream>
#include<string.h>
usingnamespacestd;
classstudent
{
public:
student(stringnumber,intid)
{
this->number=number;
this->id=id;
}
intgetscore(){
returnid;
}
stringgetname(){
returnnumber;
}
private:
stringnumber;
intid;
};
intmain()
{
studentstu[5]={student("001",100),student("002",100),student("003",99),student("004",95),student("0055",86)};
intmax_score=stu[0].getscore();
for(inti=0;i<5;i++)
{
if(max_score<stu[i].getscore())
{
max_score=stu[i].getscore();
}
}
cout<<"最高分为"<<max_score<<endl;
for(intj=0;j<5;j++)
{
if(stu[j].getscore()==max_score)
{
cout<<"最高分的学生学号为:"<<stu[j].getname()<<endl;
}
}
}
//运行结果为:
./a.out
最高分为100
最高分的学生学号为:001
最高分的学生学号为:002
B. C语言:建立对象数组,内放5个学生数据(学号是字符串类型、成绩是整型),设立max函数
#include<stdio.h>
intmax(int[]);
intmain()
{
chara[5][3];//字符串以 结尾
intb[5],n,c;
for(n=0;n<5;n++)
{
scanf("%s",a[n]);
scanf("%d",&b[n]);
}
c=max(b);
printf("%s%d",a[c],b[c]);
return0;
}
intmax(intq[5])
{
intm=q[0];
intf,e=0;//初始专化属e
for(f=1;f<5;f++)
{
if(m<q[f])
{
m=q[f];
e=f;
}
}
returne;
}
C. 用对象数组定义五个学生成绩,输出1,3,5个学生的学号和成绩,用c++做
类似的,C++书上应该都有,有时间的话,把书上的代码敲一下。 #include using namespace std; class Student { private: int id; float score; public: Student() { id = 0; score = 0; } Student(int id, float score) { this->id = id; this->score = score; } float getScore() {return score; } int getID() {return id; } }; void max(Student* s, int size) { if (s == NULL || size < 1) return; int l = 0; for (int i = 1; i size; i++) { if (s[i].getScore() > s[l].getScore()) l = i; } cout << "Student with ID \"" << s[l].getID() << "\" has the largest grade." << endl; } int main() { const int num = 5; Student students[num] = { Student(1, 78), Student(2, 92), Student(4, 81), Student(4, 89), Student(5, 68) }; max(students, 1); return 0; }
D. 建立一个对象数组,内放5个学生的数据(学号,成绩),用指针指向数组首元素, 输出第1,3,5个学生的数据
哥们
好久没写程序了
今天费了很大的力气帮你写了
要是你不嫌弃的话你就先用着~~
#include <iostream.h>
class student
{
public:
student(int a=0,int b=0);
~student();
student(student &m);
void display(void);//显示学号和成绩
void setnum(int n);
void setmark(int m);
private:
int num;
int mark;
};
student::student(int a,int b)
{
num=a;
mark=b;
}
void student::setnum(int n)
{
num=n;}
void student::setmark(int m)
{
mark=m;}
void student::display(void)
{
cout<<"学号:"<<num<<endl;
cout<<"成绩:"<<mark<<endl;
}
student::student(student &m)
{
num=m.num;
mark=m.mark;
}
student::~student()
{
}
int main()
{
int i,m,n;
student *p;
p=new student[5];
for(i=0;i<5;i++)
{
cout<<"请输入学号:";
cin>>n;
(p+i)->setnum(n);
cout<<"请输入成绩:";
cin>>m;
(p+i)->setmark(m);
}
for(i=0;i<5;i++)
{
if (i==0||i==2||i==4)
(p+i)->display();
}
delete []p;
return 0;
}
我是新手~
还请大家指教~~
E. 立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,然后输出最大学生的学号和成绩
xuesheng(int a,int b)
{
xuehao=a;
chengji=b;
}
怎么没有返回值,就算没有也应该是void.
F. 建立一个对象数组,内放5个学生的数据(学号,1门成绩).利用指针,统计平均成绩并输出第1,3,5个学生的数据.
#include <iostream>
using namespace std;
class Student
{
public:
Student(int,int);
int num;
int grade;
} ;//这里给你加了一个分号。
Student::Student(int n,int g)
{
num=n;
grade=g;
}
int main()
{
Student a[5]={Student(1,50),Student(2,70),Student(3,88),Student(4,100),Student(5,72)};
int i,sum=0;//加了一个i的定义
for(i=0;i<5;i++)
{int *p=&a[i].grade;
sum+=*p;
p++;
}
int average=sum/5;
cout<<"平均成绩是:"<<average<<endl;
cout<<a[0].grade<<endl;
cout<<a[2].grade<<endl;
cout<<a[4].grade<<endl;
return 0;
}
c++builder输出如下:
G. 建立一个对象数组,内放五个学生的数据(学号,成绩),建立一个函数max,用指向对象的
建立对象如下:
class Student
{
public:
Student(string n,float s):number(n),score(s){}
friend void max(Student *); //声明友元函数
private:
string number; //将学号声明为字符串
float score;
};
(7)用对象数组定义五个学生成绩扩展阅读
所谓的对象数组,就是专指包含了一属组相关的对象,但是在对象数组的使用中一定要清楚一点:数组一定要先开辟空间,但是因为其是引用数据类型,所以数组里面的每一个对象都是null值,则在使用的时候数组中的每一个对象必须分别进行实例化操作。
对象数组的声明:
先定义,再开辟空间
类名称 对象数组名[] = null;
对象数组名 = new 类名称[长度];
定义并开辟数组
类名称 对象数组名[] = new 类名称[长度];
在声明对象数组后 ,必须对每个数组成员进行实例化话 才能直接使用,否则报空指针异常!
H. 建立一个对象数组,内放5个学生的数据(学号成绩)用指针指向数组首元素,输出第1,3,5个学生的成绩,
int * pt //错误!
改为:
Student * pt 试试
I. C++,建立一个对象数组,内放5个学生的数据(学号成绩)我的程序错在哪里
构造函数不对,是两个参数(int,int)。
所有你得:
p=new Student(1,1)[5];
否则自己加一个构造函数内
Student::Student();
然后再加一个输入的函数input(...);
才能容p=new Student()[5];
*(p+1).input(...);
J. 建立一个对象数组,放五个学生数据(自己输入学号,成绩),设立一个函数MAX,用对象指针做函数参数
#include<iostream>
using namespace std ;
class student {
private:
int num;
int score;
public:
friend student *MAX(student *stu);
void input(){cout<<"输入学号和成绩:"<<endl;cin>>num>>score;}
int getNum(){return num;}
};
student *MAX(student *stu)
{
student *max=&stu[0];
for(int i=1;i<5;i++)
if(stu[0].num<stu[i].num)
max=&stu[i];
return max;
}
int main()
{
student STU[5],*max;
for(int j=0;j<5;j++)
STU[j].input();
max=MAX(STU);
cout<<"最大学号是"<<(*max).getNum()<<endl;
return 0;
}
这是比较学号大内小,并输出最大学号,容因为引用学得不好,所以会比较麻烦一点