c++PTA实验

6-3 输出最大值

根据给定的程序,写成相关的成员函数,完成指定功能。

函数接口定义:

 

定义max函数,实现输出最高成绩对应的学号以及最高成绩值。

裁判测试程序样例:

 

#include <iostream> using namespace std; class Student {public: Student(int n,float s):num(n),score(s){} int num; float score; }; int main() {Student stud[5]={ Student(101,78.5),Student(102,85.5),Student(103,98.5), Student(104,100.0),Student(105,95.5)}; void max(Student* ); Student *p=&stud[0]; max(p); return 0; } /* 请在这里填写答案 */

输入样例:

输出样例:

104 100
void max(Student *p)
{
    Student *p1,*max;
    max=p;
    for(p1=p+1;p1<p+5;p1++)
    {
        if(max->score < p1->score)
        {
            max->num=p1->num;
            max->score=p1->score;
        }
    }
    cout<<max->num<<" "<<max->score;
}

 

6-4 运动成绩排名

某大学开田径运动会,现有12名选手参加100米比赛,对应的运动员号及成绩如表所示,请按照成绩排名并输出,要求每一行输出名次、运动员号及成绩。

运动员号    成绩(秒)    运动员号    成绩(秒)
001     13.6           031    14.9
002    14.8           036    12.6
010    12.0           037    13.4
011    12.7           102    12.5
023    15.6           325    15.3
025    13.4           438    12.7

####使用给定的类,完成数据的对象的定义,并按照成绩排序后输出(格式见输出样例)

类声明如下:

 

#include <iostream> #include <iomanip> #include <string> using namespace std; class Sport { public: Sport() { } Sport(string n,double g) { num=n; grade=g; } string num; double grade; };

输入样例:

输出样例:

在这里给出相应的输出。例如:

     1   010    12
     2   102  12.5
     3   036  12.6
     4   011  12.7
     5   438  12.7
     6   025  13.4
     7   037  13.4
     8   001  13.6
     9   002  14.8
    10   031  14.9
    11   325  15.3
    12   023  15.6

####注意:使用setw()进行宽度设置,每个输出项占6列。

int main()
{
    Sport s[12]={Sport("001",13.6),Sport("002",14.8),Sport("010",12.0),Sport("011",12.7),Sport("023",15.6),Sport("025",13.4),Sport("031",14.9),Sport("036",12.6),Sport("037",13.4),Sport("102",12.5),Sport("325",15.3),Sport("438",12.7)};
    double t;
    string p;
    for(int i=0;i<11;i++)
    {
        for(int i=0;i<11;i++)
        {
            if(s[i].grade > s[i+1].grade)
            {
                t = s[i].grade;
                s[i].grade = s[i+1].grade;
                s[i+1].grade = t;
                p = s[i].num;
                s[i].num = s[i+1].num;
                s[i+1].num = p;
            }
        }
    }
    for(int i=0;i<12;i++)
    {
        cout<<setw(6)<<i+1<<setw(6)<<s[i].num<<setw(6)<<s[i].grade<<setw(6)<<endl;
    }
}

 

6-5 对象数组初始化

根据类定义,进行对象数组的定义,按照输出样例输出相应的数据。

类定义:

 

#include<iostream> using namespace std; class A{ int data; public: A(int k=0){ data=k; } void show(){ cout<<"data="<<data<<endl; } };

###编写main函数,定义三个对象数组,完成指定的输出

/* 请在这里填写答案 */

输入样例:

输出样例:

在这里给出相应的输出。例如:

data=0
data=0
data=0

data=1
data=0
data=0

data=1
data=2
data=3
/*方法一*/
int main()
{
    A a[3];//因为有参数所以当=0时可以不用写A();可以自动调用构造函数,写上也没错
    for(int i=0;i<3;i++)
    {
        a[i].show();
    }
    cout<<endl;
    A b[3]={A(1)};//由于是数组必须加上{}
    for(int i=0;i<3;i++)
    {
        b[i].show();
    }
    cout<<endl;
    A c[3]={A(1),A(2),A(3)};
    for(int i=0;i<3;i++)
    {
        c[i].show();
    }
}
/*方法二*/
/*int main()
{
    A a[3]={0};
    for(int i=0;i<3;i++){
        a[i].show();
    }
    cout<<endl;
    A b[3]={1};
    for(int i=0;i<3;i++){
        b[i].show();
    }
    cout<<endl;
    A c[3]={1,2,3};
    for(int i=0;i<3;i++){
        c[i].show();
    }
}*/

 

6-6 学生平均分计算

定义一学生类,已有若干个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。

###类定义:

 

定义一学生类,已有若干个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分

裁判测试程序样例:

 

利用学生类进行对象定义并输出结果的例子如下: /* 请在这里填写答案 */ int Stud::sum=0; int Stud::num=0; int main() { Stud s1(1,"Li",89),s2(2,"Chert",78),s3(3,"zheng",94); s1.disp(); s2.disp(); s3.disp(); cout<<"avg="<<Stud::avg()<<endl; return 0; }

输入:

输出样例:

1,Li,89
2,Chert,78
3,zheng,94
avg=87

 

#include<iostream>
using namespace std;
class Stud
{
private:
    int no,score;
    string name;
    
public:
    static int sum;
    static int num;
    static int avg(); 
    Stud(int no1, string name1, int score1) {
        no = no1;name = name1;score = score1;
        num++;sum += score;
    }
    void disp() {
        cout << no << "," << name << "," << score << endl;
    }
};
int Stud::avg() {
        return sum / num;
}

7-1 通过指针,输出对象数组的数据

设计一个类,主函数中建立一个对象数组,输入5个学生数据(学号、成绩),用对象指针指向数组首元素,输出5个学生的数据。

输入格式:

输入5个学生数据(学号、成绩),学号为不超过10000的正整数,成绩为0-100的正整数。

输出格式:

按顺序输出学生的学号和成绩,每行显示一个学生的信息。

输入样例:

在这里给出一组输入。例如:

101 90
102 80
103 70
104 60
105 50

输出样例:

在这里给出相应的输出。例如:

101 90
102 80
103 70
104 60
105 50

 

/*#include<iostream>
using namespace std;
 
class student
{
public:
	int num;
	int score;
public:
	student(int num=0, int score=0)
	{
		this->num = num;
		this->score = score;
	}
};
int main()
{
	student st[5];
	student* p = st;
	for (int i = 0; i < 5; i++)
	{
		cin >> p->num >> p->score;
		cout << p->num << " " << p->score << endl;
		p++;
		
	}
 
}*/
#include <iostream>
using namespace std;
class student
{
private:
    int num,score;
public:
    student(){}
    student (int a,int b):num(a),score(b){}
    void display()
    {
        cout<<num<<" "<<score<<endl;
    }
};
int main()
{
    int a,b;
    student stu[5],*p=stu;
    for(int i=0;i<=4;i++)
    {
        cin>>a>>b;
        /*stu[i]=student(a,b);
        stu[i].display();*/
        *p=student(a,b);
        p->display();
        p++;
    }
    return 0;
}

7-2 计算全班学生C++课程的总成绩和平均成绩

定义一个类Student,记录学生C++课程的成绩。要求使用静态数据成员或静态成员函数计算全班学生C++课程的总成绩和平均成绩。

输入格式:

输入5个不超过100的正整数,作为C++成绩。

输出格式:

在第一行中输出成绩的和,第二行输出平均成绩。

输入样例:

90 80 70 60 50

输出样例:

350
70

 

#include <iostream>
using namespace std;
class Student
{
private:
    int score;
public:
    Student(){}
    static int sum;
    Student (int a):score(a)
    {
        sum+=a;
    }
    void display()
    {
        cout<<sum<<endl;
        cout<<sum/5<<endl;
    }
};
int Student :: sum=0;
int main()
{
    int a;
    Student stu[5];
    for(int i=0;i<=4;i++)
    {
        cin>>a;
        stu[i]=Student (a);
    }
    stu[4].display();
    return 0;
}

7-3 设计一个People类

设计一个People 类,该类的数据成员有姓名、年龄、身高、体重和人数,其中人数为静态数据成员,成员函数有构造函数、显示和显示人数。其中构造函数由参数姓名、年龄、身高和体重来构造对象;显示函数用于显示人的姓名、年龄、身高和体重;显示人数函数为静态成员函数,用于显示总的人数。

输入格式:

按姓名、年龄、身高和体重依次输入每个人的信息
已exit结束
zhang 18 180 70
li 20 160 50
exit

输出格式:

输出总人数,例如
2

输入样例:

在这里给出一组输入。例如:

zhang 18 180 70
li 20 160 50
exit
#include <iostream>
using namespace std;
using namespace std;
class people            //类名 
{
	private:           //私有 
		string name;  //姓名 
		int age;          //年龄 
		double h,w;       //身高,体重 
	public:
		void show()         //显示函数 
		{
			name=" ";      //姓名 
			age=0;
			h=0;
			w=0;
		}
		void input()     //输入函数 
		{
			cin>>name;             //同样的我们先输姓名,再输年龄身高和体重 
			while(name!="exit")
    	{
		    cin>>age>>h>>w;
		    cnt++;
		    cin>>name;
    	};
		}
		void output()     //输出函数 
		{
			cout<<cnt;      
		}
	static int cnt;		 //静态变量 
};
int people::cnt;         //在这里我们定义cnt为int型,类名为people的类; 
int main()
{   
   	people A;        // 再定义一个为people类型的结构变量名 
	A.input();        //调用input成员函数 
	A.output();             //调用output成员函数 
	return 0;
	
}

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值