|
11驿站币
- #include<iostream>
- using namespace std;
- template<class T>
- class LinearQueue
- {
- public:
- LinearQueue(int LQMaxSize);
- ~LinearQueue();
- bool IsEmpty();
- bool IsFull();
- bool Insert(const T& x);
- bool GetElement(T& x);
- bool Delete(T& x);
- void OutPut(ostream& out)const;
- private:
- int size;
- int MaxSize;
- int front, rear;
- T* element;
- };
- template<class T>
- LinearQueue<T>::LinearQueue(int LQMaxSize)
- {
- MaxSize=LQMaxSize;
- element=new T[MaxSize];
- size=0;
- front=0;
- rear=0;
- }
- template<class T>
- LinearQueue<T>::~LinearQueue()
- {
- delete []element;
- }
- template<class T>
- bool LinearQueue<T>::IsEmpty()
- {
- return size==0;
- }
- template<class T>
- bool LinearQueue<T>::IsFull()
- {
- return size==MaxSize;
- }
- template<class T>
- bool LinearQueue<T>::Insert(const T& x)
- {
- if(IsFull())
- return false;
- else
- {
- element[rear]=x;
- rear=(rear+1)%(MaxSize);
- size++;
- return true;
- }
- }
- template<class T>
- bool LinearQueue<T>::GetElement(T& x)
- {
- if(IsEmpty())
- return false;
- else
- {
- x=element[front];
- return true;
- }
- }
- template<class T>
- bool LinearQueue<T>::Delete(T& x)
- {
- if(IsEmpty())
- return false;
- else
- {
- x=element[front];
- front=(front+1)%(MaxSize);
- size--;
- return true;
- }
-
- }
- template<class T>
- void LinearQueue<T>::OutPut(ostream& out)const
- {
- int index;
- index=front;
- for(int i=0;i<size;i++)
- {
- out<<element[index]<<endl;
- index=(index+1)%MaxSize;
- }
- }
- template<class T>
- ostream& operator<<(ostream& out,const LinearQueue<T>& x)
- {
- x.OutPut(out);
- return out;
- }
复制代码
此处作为头文件我应该已经实现的队列,但是题目要求我手动建立3个文件让文件中储存5名学生的姓名、学号和成绩,读入内存后组内排序存入队列,每次在队列中各读取一人成绩相比较,最大的计分。这是怎么实现的呢?建立文件我也能够实现,但怎么每次在队列中读取一人进行比较呢?我实在是搞不太懂这里。麻烦各位帮我看一下!
1.手动建立3个文件让文件中储存5名学生的姓名、学号和成绩。
此处理解为存在3个文件,每个文件内储存5名学生的姓名、学号、成绩
2.读入内存后,组内排序存入队列
分别将3个文件读取至内存,每个文件内信息为一组,共3组。
每组分别进行排序,未说明是根据姓名学号还是成绩进行排序,此处理解为根据成绩进行排序。
排序后3组信息分别存入队列,所以存在3个队列。
3.每次在队列中各读取一人成绩相比较,最大的计分。
存在3个已经进行排序的队列,每次分别从每个队列读取一个信息进行比较,较大的那一组获得一分。
|
最佳答案
查看完整内容
1.手动建立3个文件让文件中储存5名学生的姓名、学号和成绩。
此处理解为存在3个文件,每个文件内储存5名学生的姓名、学号、成绩
2.读入内存后,组内排序存入队列
分别将3个文件读取至内存,每个文件内信息为一组,共3组。
每组分别进行排序,未说明是根据姓名学号还是成绩进行排序,此处理解为根据成绩进行排序。
排序后3组信息分别存入队列,所以存在3个队列。
3.每次在队列中各读取一人成绩相比较,最大的计分。
存在 ...
上一篇: 线程中while加入sleepCPU使用率下一篇: Google 管理员
|