版权声明:版权所有,尊重原创。转载请注明出处: https://blog.csdn.net/qq_36426650/article/details/84647167
C++面向对象程序设计50道编程题(第21题)
摘要:C++程序设计实习是为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析问题和解决问题的能力,提高学生运用所学知识解决实际问题的能力。
本专辑为编程入门者、高校计算机软件专业学习或复习提供C++程序设计题库。
读者请先独立思考哦,再与参考程序进行比对检查。
一、问题描述
二、考察内容
基本面向对象概念,如何创建类、对象,对类私有数据成员和公有成员函数的理解,对对象数组的理解和应用,对多维数据的处理,简单的数学运算。
三、难度等级
难度等级:★★★☆☆
四、参考程序
#include <iostream.h>
#include <string.h>
class Student{
int num,score;
char name[9];
public:
Student(){num=0;score=0;strcpy(name," ");}
int chack_name(Student str[],int n);
void Set(int id,char *na,int sc);
int get_score(){return score;}
void print(){cout<<num<<'\t'<<name<<'\t'<<score<<endl;}
};
void Student::Set(int id,char *na,int sc)
{
num=id;
strcpy(name,na);
score=sc;
}
int Student::chack_name(Student str[],int n)
{
for(int i=0;i<n;i++)
if(str[i].num==str[i+1].num)
return 1;
else return 0;
}
Student max(Student *s,int n)
{
Student aa;
int t=s[0].get_score();
for(int i=1;i<3;i++)
if(t<s[i].get_score()){
t=s[i].get_score();
aa=s[i];
}
return aa;
}
void main()
{
Student s[3],bb;
int n,sc,m=0;
char na[9];
cout<<"请输入第"<<1<<"个学生的学号、成绩、姓名:";
cin>>n; cin>>sc; cin>>na;
s[0].Set(n,na,sc);
for(int i=1;i<3;i++)
{ if(m){
cout<<"该学号已存在,请重新输入!\n";i--;
}
cout<<"请输入第"<<i+1<<"个学生的学号、成绩、姓名:";
cin>>n; cin>>sc; cin>>na;
s[i].Set(n,na,sc);
m=s[i].chack_name(s,i);
}
bb=max(s,3);
bb.print();
}
五、心得感受
可以在评论处写下思考和编程此题的感受