C++面向对象程序设计50道编程题(第21题)

版权声明:版权所有,尊重原创。转载请注明出处: 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();
}

五、心得感受

可以在评论处写下思考和编程此题的感受

猜你喜欢

转载自blog.csdn.net/qq_36426650/article/details/84647167