目录
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;
}
运行结果: