学生实验任务管理设计方案Word格式文档下载.docx

上传人:b****5 文档编号:16751736 上传时间:2022-11-25 格式:DOCX 页数:15 大小:126.65KB
下载 相关 举报
学生实验任务管理设计方案Word格式文档下载.docx_第1页
第1页 / 共15页
学生实验任务管理设计方案Word格式文档下载.docx_第2页
第2页 / 共15页
学生实验任务管理设计方案Word格式文档下载.docx_第3页
第3页 / 共15页
学生实验任务管理设计方案Word格式文档下载.docx_第4页
第4页 / 共15页
学生实验任务管理设计方案Word格式文档下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

学生实验任务管理设计方案Word格式文档下载.docx

《学生实验任务管理设计方案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《学生实验任务管理设计方案Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。

学生实验任务管理设计方案Word格式文档下载.docx

{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;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1