学生实验任务管理设计方案Word格式文档下载.docx
- 文档编号:16751736
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:15
- 大小:126.65KB
学生实验任务管理设计方案Word格式文档下载.docx
《学生实验任务管理设计方案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《学生实验任务管理设计方案Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。
{front==rear?
return1:
return0;
intLength();
voidPrintQueue();
intEnquire(stringnum);
voidDelete(inti);
private:
elemtpdata[QueueSize];
intfront,rear;
};
在CirQueue类中,提供了如下成员函数
(1)函数声明voidEnQueue(elemtpx)
完成的功能将元素x入队
(2)函数声明TDeQueue()
完成的功能将队头元素出队
(3)函数声明TGetQueue()
完成的功能读取队头元素算法
(4)函数声明intLength();
完成的功能取队列长度
(5)函数声明voidPrintQueue();
完成的功能遍历队列,按序号依次输出各元素
(6)函数声明voidDelete(inti);
完成的功能删除队列的第i个元素
(7)函数声明intEnquire(stringnum);
完成的功能查询队列中是否存在指定的元素
5.执行程序显示画面
6.源代码
HeaderFiles
#ifndefCIRQUEUE_H
#defineCIRQUEUE_H
#include<
string>
usingnamespacestd;
constintQueueSize=100;
//100只是示例性的数据,可以根据实际问题具体定义
structstudent//结构体
stringnum;
//学生学号
stringname;
//学生姓名
stringgrade;
//学生班级
template<
classT>
classCirQueue
CirQueue(){front=rear=0;
}//构造函数,置空队
~CirQueue(){}//析构函数,释放队列中各结点的存储空间
voidEnQueue(Tx);
//将元素x入队
TDeQueue();
//将队头元素出队
TGetQueue();
//取队头元素(并不删除)
boolEmpty(){front==rear?
}//判断队列是否为空
intLength();
voidPrintQueue();
//遍历队列,按序号依次输出各元素
intEnquire(stringnum);
//查询队列中是否存在输入的学号
voidDelete(inti);
//删除队列的第i个元素
Tdata[QueueSize];
//存放队列元素的数组
intfront,rear;
//队头和队尾指针,分别指向队头元素的前一个位置和队尾元素的位置
#endif
SourceFiles
#include"
CirQueue.h"
classT>
voidCirQueue<
T>
:
EnQueue(Tx)
if((rear+1)%QueueSize==front)throw"
上溢"
;
rear=(rear+1)%QueueSize;
data[rear]=x;
}
TCirQueue<
DeQueue()
if(rear==front)throw"
下溢"
front=(front+1)%QueueSize;
returndata[front];
GetQueue()
{
inti;
i=(front+1)%QueueSize;
returndata[i];
classT>
intCirQueue<
Length()
intlength=(rear-front+QueueSize)%QueueSize;
returnlength;
PrintQueue()
inti=front;
while(i!
=rear)
{
cout<
<
"
学号:
"
<
data[i+1].num<
\n"
姓名:
data[i+1].name<
班级:
data[i+1].grade<
i=(i+1)%QueueSize;
}
Enquire(stringnum)
for(i=front+1;
i<
=(rear-front+QueueSize)%QueueSize;
i++)
if(data[i].num==num)
returni;
Delete(inti)
if(i<
1||i>
(rear-front+QueueSize)%QueueSize)throw"
位置"
intt;
t=i;
while(t!
=rear)
data[t]=data[(t+1)%QueueSize];
t=(t+1)%QueueSize;
rear=(rear-1)%QueueSize;
CirQueueMain.Cpp
iostream>
CirQueue.cpp"
intwhich;
intqueue;
intflag;
intchoose1=1;
intchoose;
inty;
intwhere;
studenttemp1;
CirQueue<
student>
a;
b;
c;
d;
e;
intmain()
std:
cout<
欢迎来到学生实验任务管理系统\n\n"
cout<
请输入登陆密码:
cin>
>
y;
if(y!
=123456)cout<
您无权进入系统"
else{
while(choose1==1)
对周一试验名单进行操作请按1"
cout<
对周二试验名单进行操作请按2"
对周三试验名单进行操作请按3"
对周四试验名单进行操作请按4"
对周五试验名单进行操作请按5"
cout<
需要输出全部信息请按6"
cin>
queue;
switch(queue)
{
case1:
flag=1;
choose=1;
break;
case2:
flag=2;
case3:
flag=3;
case4:
flag=4;
case5:
flag=5;
case6:
try
{
cout<
周一试验名单:
a.PrintQueue();
周二试验名单:
b.PrintQueue();
周三试验名单:
c.PrintQueue();
周四试验名单:
d.PrintQueue();
周五试验名单:
e.PrintQueue();
}
catch(char*)
{
cout<
操作失败\n"
//如失败提示失败信息
break;
default:
}
while(choose==1)
cout<
需要插入信息请按1"
需要删除信息请按2"
需要查询信息请按3"
需要取消预约请按5"
需要退出请按6"
cin>
which;
switch(which)
需要插入学生学号:
cin>
num;
需要插入学生姓名:
name;
需要插入学生班级:
grade;
temp1.num=num;
temp1.name=name;
temp1.grade=grade;
try
switch(flag)
{
case1:
a.EnQueue(temp1);
case2:
b.EnQueue(temp1);
case3:
c.EnQueue(temp1);
default:
}
插入成功!
a.DeQueue();
b.DeQueue();
c.DeQueue();
}
删除成功!
a.PrintQueue();
b.PrintQueue();
c.PrintQueue();
case5:
cout<
请输入取消预约的学生学号:
cin>
num;
i=a.Enquire(num);
a.Delete(i);
break;
i=b.Enquire(num);
b.Delete(i);
i=c.Enquire(num);
c.Delete(i);
d.Delete(i);
e.Delete(i);
预约修改成功!
choose=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 实验 任务 管理 设计方案