学生实验任务管理设计方案.doc

上传人:自*** 文档编号:124910124 上传时间:2020-03-14 格式:DOC 页数:14 大小:175.50KB
返回 下载 相关 举报
学生实验任务管理设计方案.doc_第1页
第1页 / 共14页
学生实验任务管理设计方案.doc_第2页
第2页 / 共14页
学生实验任务管理设计方案.doc_第3页
第3页 / 共14页
学生实验任务管理设计方案.doc_第4页
第4页 / 共14页
学生实验任务管理设计方案.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《学生实验任务管理设计方案.doc》由会员分享,可在线阅读,更多相关《学生实验任务管理设计方案.doc(14页珍藏版)》请在金锄头文库上搜索。

1、学生实验任务管理设计方案1. 问题描述学生选实验问题中的数据元素具有如下形式:登陆密码,学生的自然情况包括姓名、学号、班级。2功能要求要求完成以下功能: 插入:将预约做实验的学生插入到合适的时间队列中; 删除:时间队列中前5位学生可以在该时间做实验; 查询:教师可以随时查询某个时间队列中学生的预约情况; 修改:在没做实验之前,学生可以对预约的时间进行修改; 输出:输出每个时间队列中预约的学生名单。3实现要点对队列采用循环队列的存储结构,在建立队列时,由队列的书写形式转化循环队列存储结构,还要把学生的书面形式转化为具体的类。4类定义 为队列建立CirQueue,其类定义如下: class Cir

2、Queuepublic: CirQueue() front=rear=0; CirQueue() void EnQueue(elemtp x); T DeQueue(); T GetQueue(); front=rear? return 1: return 0; int Length(); void PrintQueue( ); int Enquire(string num); void Delete(int i); private: elemtp dataQueueSize; int front, rear; ;在CirQueue类中,提供了如下成员函数(1) 函数声明 void EnQue

3、ue(elemtp x) 完成的功能 将元素x入队 (2) 函数声明 T DeQueue()完成的功能 将队头元素出队 (3) 函数声明 T GetQueue()完成的功能 读取队头元素算法(4) 函数声明 int Length(); 完成的功能 取队列长度(5) 函数声明 void PrintQueue( );完成的功能 遍历队列,按序号依次输出各元素 (6) 函数声明 void Delete(int i); 完成的功能 删除队列的第i个元素 (7) 函数声明 int Enquire(string num); 完成的功能 查询队列中是否存在指定的元素5.执行程序显示画面6.源代码Header

4、 Files#ifndef CIRQUEUE_H#define CIRQUEUE_H#include using namespace std;const int QueueSize=100; /100只是示例性的数据,可以根据实际问题具体定义struct student /结构体 string num; /学生学号 string name; /学生姓名 string grade; /学生班级;template class CirQueuepublic: CirQueue() front=rear=0; /构造函数,置空队 CirQueue() /析构函数,释放队列中各结点的存储空间 void

5、EnQueue(T x); /将元素x入队 T DeQueue(); /将队头元素出队 T GetQueue(); /取队头元素(并不删除) bool Empty() front=rear? return 1: return 0; /判断队列是否为空 int Length(); void PrintQueue( ); /遍历队列,按序号依次输出各元素 int Enquire(string num); /查询队列中是否存在输入的学号 void Delete(int i); /删除队列的第i个元素private: T dataQueueSize; /存放队列元素的数组 int front, rea

6、r; /队头和队尾指针,分别指向队头元素的前一个位置和队尾元素的位置;#endifSource Files #include CirQueue.h #include using namespace std;template void CirQueue:EnQueue(T x) if (rear+1)%QueueSize =front) throw 上溢;rear=(rear+1)%QueueSize; datarear=x; template T CirQueue:DeQueue() if (rear=front) throw 下溢; front=(front+1)%QueueSize; re

7、turn datafront; template T CirQueue:GetQueue() int i; if (rear=front) throw 下溢;i=(front+1)%QueueSize; return datai;template int CirQueue:Length() int length =(rear-front+QueueSize) % QueueSize; return length;template void CirQueue:PrintQueue() int i=front; while (i!=rear) cout 学号: datai+1.num n; cou

8、t 姓名: datai+1.name n; cout 班级: datai+1.grade n; i=(i+1)%QueueSize; template int CirQueue:Enquire(string num) int i; for(i=front+1; i=(rear-front+QueueSize)%QueueSize; i+) if(datai.num=num) return i; return 0;template void CirQueue:Delete(int i) if (i(rear-front+QueueSize)%QueueSize) throw 位置; int t;

9、 t=i; while(t!=rear) datat=data(t+1)%QueueSize; t=(t+1)%QueueSize; rear= (rear-1)%QueueSize;CirQueueMain.Cpp#include #include CirQueue.cpp#include using namespace std; int which; int queue; int i;int flag; int choose1=1; int choose; int y; string num; string name; string grade;int where; student tem

10、p1;CirQueue a; CirQueue b; CirQueue c;CirQueue d;CirQueue e; int main() std:cout欢 迎 来 到 学 生 实 验 任 务 管 理 系 统nn; cout请输入登陆密码:y; if(y!=123456)cout您无权进入系统 n; elsewhile(choose1=1) cout对周一试验名单进行操作请按1n;cout对周二试验名单进行操作请按2n;cout对周三试验名单进行操作请按3n; cout对周四试验名单进行操作请按4n; cout对周五试验名单进行操作请按5n;cout 需要输出全部信息请按6 queue;

11、switch(queue)case 1: flag = 1;choose=1; break;case 2: flag = 2;choose=1; break;case 3: flag = 3;choose=1; break; case 4: flag = 4;choose=1; break; case 5: flag = 5;choose=1; break;case 6: try cout周一试验名单:n;a.PrintQueue();cout周二试验名单:n;b.PrintQueue();cout周三试验名单:n;c.PrintQueue(); cout周四试验名单:n;d.PrintQueue();

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号