Joseph环Word下载.docx

上传人:b****1 文档编号:3680329 上传时间:2023-05-02 格式:DOCX 页数:15 大小:49.75KB
下载 相关 举报
Joseph环Word下载.docx_第1页
第1页 / 共15页
Joseph环Word下载.docx_第2页
第2页 / 共15页
Joseph环Word下载.docx_第3页
第3页 / 共15页
Joseph环Word下载.docx_第4页
第4页 / 共15页
Joseph环Word下载.docx_第5页
第5页 / 共15页
Joseph环Word下载.docx_第6页
第6页 / 共15页
Joseph环Word下载.docx_第7页
第7页 / 共15页
Joseph环Word下载.docx_第8页
第8页 / 共15页
Joseph环Word下载.docx_第9页
第9页 / 共15页
Joseph环Word下载.docx_第10页
第10页 / 共15页
Joseph环Word下载.docx_第11页
第11页 / 共15页
Joseph环Word下载.docx_第12页
第12页 / 共15页
Joseph环Word下载.docx_第13页
第13页 / 共15页
Joseph环Word下载.docx_第14页
第14页 / 共15页
Joseph环Word下载.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

Joseph环Word下载.docx

《Joseph环Word下载.docx》由会员分享,可在线阅读,更多相关《Joseph环Word下载.docx(15页珍藏版)》请在冰点文库上搜索。

Joseph环Word下载.docx

设定每个人的号码

GetFirstCountValue()

循环链表已经存在,每个人的密码和号码均已设定

设定第一个出队的人的密码

GetOutputOrder(L,int,int,int*)

求解出出队的顺序

printResult(int*,int)

输出出队的顺序

2.本程序包含了3个模块:

(1)主程序模块:

voidmain()

{

初始化链表

do{

接受命令;

处理命令;

}while(命令!

=“退出”);

}

(2)链表模块:

实现链表的抽象数据类型

各模块之间的调用关系如下:

主程序模块

链表模块

3.求解一条出队的顺序的算法:

voidGetOutputOrder(LinkList*L,intpersonNumber,intreportValue,intarray[MAXPERSONNUMBER])

Node*p,*q;

intcount=1,i=0;

p=(*L);

while(personNumber)

{

while(count!

=reportValue)

{

q=p;

p=p->

next;

count++;

}

array[i++]=p->

data;

reportValue=p->

password;

q->

next=p->

free(p);

p=q->

count=1;

personNumber--;

}

二.详细设计

1.设定链表结点定义

typedefstructNode

intdata;

intpassword;

structNode*next;

}Node,*LinkList;

2.完整的链表算法定义

voidCreatLinkList(LinkList*L)//创建链表

(*L)=(LinkList)malloc(sizeof(Node));

if((*L)==NULL)

printf("

fail"

);

exit

(1);

voidInitLinkList(LinkList*L,intpersonNumber)//初始化单链表

Node*p,*q;

inti;

p->

data=1;

password=GetPassword();

for(i=2;

i<

=personNumber;

i++)

q=(LinkList)malloc(sizeof(Node));

if(q==NULL)

printf("

exit

(1);

data=i;

p->

next=q;

p=q;

next=(*L);

3.相关函数的算法:

intGetPersonNumber()//设定人数

intpersonNumber;

printf("

pleaseinputthenumberofpeople:

"

scanf("

%d"

&

personNumber);

while(personNumber>

MAXPERSONNUMBER||personNumber<

0)

\nerror"

MAXPERSONNUMBER);

scanf("

returnpersonNumber;

intGetPassword()//给每个人设密码

intpassword;

staticintcount=1;

\npleaseinputthe%d'

spassword:

count);

password);

while(password>

MAXPASSWORDVALUE||password<

0)

error:

MAXPASSWORD);

count++;

returnpassword;

intGetFirstCountValue()//确定开始的上限值

intfirstCountValue;

\npleaseinputthefirstoutpassword:

firstCountValue);

while(firstCountValue>

MAXFIRSTCOUNTVALUE||firstCountValue<

MAXFIRSTCOUNTVALUE);

returnfirstCountValue;

}

voidGetOutputOrder(LinkList*L,intpersonNumber,intreportValue,intarray[MAXPERSONNUMBER])//获得正确的顺序

voidprintResult(intarray[],intpersonNumer)//输出结果

inti;

\ntheorderis:

"

for(i=0;

personNumer;

%-3d"

array[i]);

\n"

4.main函数的算法:

intmain()//主函数

LinkListL;

intpersonNumber,reportValue;

intarray[MAXPERSONNUMBER];

personNumber=GetPersonNumber();

CreatLinkList(&

L);

InitLinkList(&

L,personNumber);

reportValue=GetFirstCountValue();

GetOutputOrder(&

L,personNumber,reportValue,array);

printResult(array,personNumber);

system("

pause"

return0;

完整的程序代码为:

//***********************

//PROGRAMNAME:

约塞夫环问题*

//CONTENT:

求解出队顺序*

#include"

stdio.h"

stdlib.h"

#defineMAXPASSWORDVALUE20

#defineMAXPERSONNUMBER30

#defineMAXFIRSTCOUNTVALUE10

#defineMAXPASSWORD10

intdata;

structNode*next;

voidCreatLinkList(LinkList*);

voidInitLinkList(LinkList*,int);

intGetPassword();

intGetPersonNumber();

intGetFirstCountValue();

voidGetOutputOrder(LinkList*,int,int,int*);

voidprintResult(int*,int);

voidCreatLinkList(LinkList*L)

voidInitLinkList(LinkList*L,intpersonNumber)

intGetPersonNumber()

intGetPassword()

intGetFirstCountValue()

voidprintResult(intarray[],intpersonNumer)

intmain()

}}

三.调试分析

1.本实验的核心算法就是求解出队的顺序,在设计时我遇到一个问题,就是在函数调用顺序方面出现了错误,使得程序运行结果有误,但及时改正了。

2.该程序运用了很多链表的操作:

CreatLinkList(L),InitLinkList(L,int)。

3.求解出队顺序时调用的函数有:

GetPassword(),GetPersonNumber(),GetFirstCountValue(),printResult(int*,int),GetOutputOrder(L,int,int,int*)。

四.用户手册

1.本程序的运行环境为DevC++.

2.

首先设定要入队的人数;

然后分别键入每个人的密码,注意密码是小于10的;

最后选择一个第一个出队的人的密码开始出队,运行得出对顺序。

五.测试结果

六.附录

stdio.h就是指“standardinput&

output"

,意思就是说标准输入输出头文件。

sdlib.h里包含了C、C++语言的一些函数该文件包含了的C语言标准函数库的定义。

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

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2