华清远见上海中心22071班 9.27作业

目录

1.封装一个循环顺序队列

代码:

运行结果:​编辑

2.封装一个班级,成员属性:存放学生成绩的数组 ,成员方法:输入学生成绩 输出学生成绩 排序 求最值 求总分

代码:

运行结果:​编辑


1.封装一个循环顺序队列

代码:

#include <iostream>

using namespace std;
typedef int datatype;
#define MAX 10
class queue
{
private:
    datatype data[MAX];
    int front;
    int tail;
public:
    void init();
    bool empty();
    bool full();
    int size();
    void push(datatype e);
    void pop();
    void show();
};
void queue::init()
{
    front=0;
    tail=0;
}
bool queue::empty()
{
    return front==tail;
}
bool queue::full()
{
    return (tail+1)%MAX==front;
}
int queue::size()//队列已经存放数目
{
    return  (tail-front+MAX)%MAX;
}
void queue::push(datatype e)
{
    if(!full())
    {
        data[tail]=e;
        tail=(tail+1)%MAX;
    }else
    {
        cout<<"入队失败"<<endl;
    }
}
void queue::pop()
{
    if(!empty())
    {
        cout<<data[front]<<"出队"<<endl;
        front=(front+1)%MAX;
    }else
    {
        cout<<"出队失败"<<endl;
    }
}
void queue::show()
{
    if(!empty())
    {
        for(int i=front;i!=tail;i++)
        {
            cout<<data[i]<<"\t";
        }
        cout<<endl;
    }else
    {
        cout<<"遍历失败"<<endl;
    }
}
int main()
{
    queue q;
    q.init();
    q.push(3);
    q.push(5);
    q.push(9);
    q.push(7);
    q.show();
    q.pop();
    q.show();
    return 0;
}

运行结果:

2.封装一个班级,成员属性:存放学生成绩的数组 ,成员方法:输入学生成绩 输出学生成绩 排序 求最值 求总分

代码:

#include <iostream>

using namespace std;
class stu
{
private:
    int num;
    double score[20];
public:
    bool empty();
    bool full();
    void init();
    void push(double e);
    void show();
    void sort();
    void maximum();
    void total();
};
bool stu::empty()
{
    return num==0;
}
bool stu::full()
{
    return num==20;
}
void stu::init()
{
    num=0;
}
void stu::push(double e)
{
    if(!full())
    {
        score[num]=e;
        num++;
    }else
    {
        cout<<"输入失败"<<endl;
    }
}
void stu::show()
{
    if(!empty())
    {
        for(int i=0;i<num;i++)
        {
            cout<<score[i]<<"\t";
        }
        cout<<endl;
    }
    else
    {
        cout<<"没有查询到成绩"<<endl;
    }
}
void stu::sort()
{
    if(!empty())
    {
        for(int i=1;i<num;i++)
        {
            for(int j=0;j<num-i;j++)
            {
                if(score[j]>score[j+1])
                {
                    double temp=score[j];
                    score[j]=score[j+1];
                    score[j+1]=temp;
                }
            }
        }
        cout<<"成绩排序完毕"<<endl;
    }else
    {
        cout<<"没有成绩录入,排序失败"<<endl;
    }
}
void stu::maximum()
{
    if(!empty())
    {
        double max=score[0];
        double min=score[0];
        for(int i=0;i<num;i++)
        {
            if(score[i]>max)
            {
                max=score[i];
            }
            else if(score[i]<min)
            {
                min=score[i];
            }
        }
        cout<<"最大值为:"<<max<<endl;
        cout<<"最小值为:"<<min<<endl;
    }else
    {
        cout<<"没有成绩输入"<<endl;
    }
}
void stu::total()
{
    if(!empty())
    {
        double sum=0;
        for(int i=0;i<num;i++)
        {
            sum+=score[i];
        }
        cout<<"总分:"<<sum<<endl;
    }else
    {
        cout<<"没有成绩"<<endl;
    }
}
int main()
{
    stu s;
    s.init();
    s.push(77.3);
    s.push(69.66);
    s.push(100);
    s.push(89.23);
    s.push(32.6);
    s.push(109.32);
    s.show();
    s.sort();
    s.show();
    s.maximum();
    s.total();
    return 0;
}

运行结果:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值