一、封装一个循环顺序队列
#include <iostream>
#define MAX 6
typedef int datatype;
using namespace std;
class queue
{
private:
datatype data[MAX];
int front;
int tail;
public:
//初始化
void init(int front ,int tail)
{
this->front=front;
this->tail=tail;
cout<<"创建成功"<<endl;
}
//判空
bool empty()
{
return front==tail;
}
//判满
bool full()
{
return (tail+1)%MAX==front;
}
int size();
//计算队列元素个数
int my_size()
{
return tail>=front?(tail-front):(tail+MAX-front);
}
//入队
void push(datatype e)
{
data[tail]=e;
tail=(tail+1)%MAX;
cout<<"入队成功"<<endl;
}
//出队
void pop()
{
cout<<data[front]<<"出队成功"<<endl;
front=(front+1)%MAX;
}
void show()
{
cout<<"队列中元素为:";
for(int i=front;i!=tail;i=(i+1)%MAX)
{
cout<<data[i]<<"\t";
}
}
};
int main()
{
queue xx;
xx.init(0,0);
if(xx.empty())
cout<<"队列为空"<<endl;
else
cout<<"队列非空"<<endl;
if(xx.full())
cout<<"队列已满"<<endl;
else
cout<<"队列未满"<<endl;
xx.push(5);
xx.push(7);
xx.push(9);
xx.push(3);
xx.push(12);
if(xx.full())
cout<<"队列已满"<<endl;
else
cout<<"队列未满"<<endl;
xx.show();
xx.pop();
cout<<"队列元素格式为:"<<xx.my_size()<<endl;
xx.show();
return 0;
}
二、封装一个班级类
#include <iostream>
#define MAX 20
using namespace std;
class stu
{
private:
int arr[MAX];
int flag;
public:
//初始化
void init()
{
flag=0;
}
//输入成绩
void input(int grade)
{
arr[flag++]=grade;
}
//打印成绩
void show()
{
for(int j=0;j<flag;j++)
{
cout<<arr[j]<<"\t";
}
cout<<endl;
}
//降序排列
void sort()
{
int m,n;
int temp;
for(m=1;m<flag+1;m++)
{
for(n=0;n<flag+1-m;n++)
{
if(arr[n]<arr[n+1])
{
temp=arr[n];
arr[n]=arr[n+1];
arr[n+1]=temp;
}
}
}
}
//求最大值
int my_max()
{
int mymax=0,k;
for(k=0;k<=flag;k++)
{
if(arr[mymax]<arr[k])
{
mymax=k;
}
}
return arr[mymax];
}
//求总分
int my_sum()
{ int k=0,sum=0;
for(k=0;k<flag;k++)
{
sum+=arr[k];
}
return sum;
}
};
int main()
{
class stu xx;
xx.init();
xx.input(65);
xx.input(85);
xx.input(25);
xx.input(69);
xx.input(33);
xx.show();
cout<<"最大值为:"<<xx.my_max()<<endl;
cout<<"成绩和为:"<<xx.my_sum()<<endl;
xx.sort();
cout<<"降序排列为:"<<endl;
xx.show();
return 0;
}