作业一:封装一个循环顺序队列
#include <iostream>
#define MAX 20
using namespace std;
typedef int datatype;
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()
{
this->front = 0;
this->tail = 0;
}
bool Queue::empty()
{
return front==tail;
}
bool Queue::full()
{
return (tail+1)%MAX==front;
}
int Queue::size()
{
return (tail+MAX-front)%MAX;
}
void Queue::push(datatype e)
{
if(!full())
{
data[tail]=e;
tail=(tail+1)%MAX;
cout<<"入队成功"<<endl;
}
}
void Queue::pop()
{
if(!empty())
{
front=(front+1)%MAX;
cout<<"出队成功"<<endl;
}
}
void Queue::show()
{
if(!empty())
{
for(int i=front;i!=tail;i=(i+1)%MAX)
{
cout<<data[i]<<"\t";
}
cout<<endl;
}
}
int main()
{
Queue q;
q.init();
q.push(7);
q.push(8);
q.push(7);
q.push(7);
q.push(7);
q.show();
q.pop();
q.show();
q.pop();
q.show();
q.pop();
return 0;
}
作业二:封装一个班级 成员属性:存放学生成绩的数组 成员方法:输入学生成绩 输出学生成绩 排序 求最值 求总分
#include <iostream>
using namespace std;
#define MAX 50
class stu
{
private:
float score[MAX];
int num;
public:
bool empty();
bool full();
void init();
void push(float e);
void show();
void sort();
void max();
void total();
};
bool stu::empty()
{
return num==0;
}
bool stu::full()
{
return num==MAX;
}
void stu::init()
{
num=0;
}
void stu::push(float e)
{
if(!full())
{
score[num]=e;
num++;
cout<<"输入成功"<<endl;
}
}
void stu::show()
{
if(!empty())
{
for(int i=0;i<num;i++)
{
cout<<score[i]<<"\t";
}
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])
{
float temp=score[j];
score[j]=score[j+1];
score[j+1]=temp;
}
}
}
cout<<"排序完成"<<endl;
}
else
{
cout<<"暂无成绩,排序失败"<<endl;
}
}
void stu::max()
{
if(!empty())
{
float max=score[0];
float 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;
}
}
void stu::total()
{
if(!empty())
{
float sum=0;
for(int i=0;i<num;i++)
{
sum+=score[i];
}
cout<<"总分:"<<sum<<endl;
}
}
int main()
{
stu s1;
s1.init();
s1.show();
s1.push(88);
s1.push(99);
s1.push(77);
s1.push(65.3);
s1.push(100);
s1.show();
s1.max();
s1.sort();
s1.show();
s1.total();
return 0;
}