C课设判断回文报告Word下载.docx

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

C课设判断回文报告Word下载.docx

《C课设判断回文报告Word下载.docx》由会员分享,可在线阅读,更多相关《C课设判断回文报告Word下载.docx(15页珍藏版)》请在冰点文库上搜索。

C课设判断回文报告Word下载.docx

stinit(s)构造一个空栈,完成对栈的初始化s

quinit(q)构造一个空队列,完成对队列的初始化q

stpush(s,c)完成字符进栈的操作

enqueue(q,c)完成字符进队列的操作

stempty(s),quempty(q)判断栈和队列中是否还有元素

stpop(s),dequeue(q)比较出栈与出队列的字符是否匹配

⒉判断字符

基本操作:

stpop(s)==dequeue(q);

初始条件:

在子函数中已经定义了栈与队列,而且已经将字符分别输入空的栈和队列中,现在的关键就在于判断从栈和队列里出来的元素是否相同。

操作结果:

如果输入到栈和队列元素相同,那么代表输入的字符为回文字符。

3.本程序模块结构

⑴主函数模块

voidmain(){

初始化;

为栈和队列申请空间;

调用栈和队列功能子函数;

判断从栈和队列出来的字符是否相同;

得出最终的结果;

⑵栈模块----实现栈抽象数据类型,完成对栈的初始化,进栈和出栈的操作。

⑶队列模块----实现队列抽象数据类型,完成对队列的初始化,进队列和出队列的操作。

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

主程序模块

栈模块

队列模块

三、详细设计

1基本数据类型操作

1栈模块

1typedefstruct

{

charstack[m];

inttop;

}stackstru;

//定义栈

2参数设置:

#definem100

//----------基本操作的算法描述--------------------

intstinit(stackstru*s)

s->

top=-1;

return1;

}//初始化栈

intstempty(stackstru*s)

if(s->

top==-1)//栈顶为空

return0;

else

}//判断栈是否为空

intstpush(stackstru*s,charx)

top==m)//栈满

{

puts("

Thestackisoverflow!

"

);

//输出提示信息

}

else//栈未满

top=s->

top+1;

/栈顶后移

stack[s->

top]=x;

//字符入栈

}//入栈操作

charstpop(stackstru*s)

chary;

top==-1)//栈为空

Thestackisempty!

return'

'

;

//返回空格

else//栈不为空

y=s->

top];

//取出栈顶元素

top-1;

//栈顶指示后移

returny;

}//出栈操作

2队列模块:

charqueue[m];

intfront;

intrear;

}queuestru;

//定义队列

intquinit(queuestru*q)

q->

front=0;

rear=0;

}//初始化一个空的循环队列

intquempty(queuestru*q)

if(q->

front==q->

rear)//队头和队尾相等

return0;

}//判断队列是否为空

intenqueue(queuestru*q,chare)

if((q->

rear+1)%m==q->

front)//队列已满

Thequeueisoverflow!

//提示信息

queue[q->

rear]=e;

//入队

rear=(q->

rear+1)%m;

//移动队尾指针

}//入队操作

chardequeue(queuestru*q)

charf;

rear)//队列为空

Thequeueisempty!

f=q->

front];

//取出队首元素

front=(q->

front+1)%m;

//移动对头指针

returnf;

}//出队操作

3主函数算法:

voidmain()

charc;

intflag=0;

stackstru*s=(stackstru*)malloc(sizeof(stackstru));

queuestru*q=(queuestru*)malloc(sizeof(queuestru));

stinit(s);

quinit(q);

----------huiwenjiance----------"

--102023ban10202331huangyawei--"

putchar('

\n'

Welcometocomehere,pleaseinputastring:

while((c=getchar())!

='

)//输入字符串。

输入回车键结束

putchar(c);

//输出输入的字符

stpush(s,c);

//字符进栈

enqueue(q,c);

//字符进队列

Pleasepress'

enter'

tocontinue!

//提示信息

getchar();

while(stempty(s))//栈中还有元素

if(stpop(s)==dequeue(q))//出战的字符与出队列的字符匹配

{flag=1;

continue;

}//将标志设置为1,继续从栈和队列中区配字符

else//字符不匹配

{flag=0;

break;

}//跳出循环,将标志设置为0

if(flag==1)

puts("

Thisstringispalindrome(weihui)!

//标志为1,完全匹配,是回文

Thisstringisn'

tpalindrome(huiwen)!

//标志为0,不完全匹配,不是回文

getchar();

Ceshiisover,plesaepress'

toexit!

\n"

}

2函数的调用关系反映了本演示程序的层次结构

main

栈设置队列设置

stinitstemptystpushstpopdequeueenqueuequemptyquinit

 

判断是否相等

四、调试分析

⒈在写整个程序的时候应注意对已栈和队列的操作不能少了一个步骤,否则会出现一些关于栈和队列的常识错误,从而会影响整个程序。

⒉在程序中加了一些栈和队列基本的函数,比如判断栈和队列是否为空及栈和队列是否已满的函数,这样可以使程序更加完善。

⒊在主函数中使用一些实用的提示符及界面的一些提示,这样使使用者更好的使用。

五、用户手册

⒈本程序的运行环境是在tc2.0中,文件名为huiwen.c。

⒉打开文件后,按下Ctrl+F9进入界面。

⒊进入界面后,按照界面的提示输入一串字符。

⒋输入结束后,按Enter键结束输入。

⒌然后继续按Enter键查看结果,看输入的字符是否为回文。

⒍最后再次按Enter键退出判断程序。

六、测试数据

进入界面后出现下面界面

然后输入你想要输入的字符,假如输入abcdcba这一串字符,连续按两下Enter键结果:

然后再次按下Enter键后:

再次按下Enter键就结束了本次测试,再次测试下另一串字符,如:

abcdefg

通过上面两次的测试,分别对字符abcdcba和abcdefg进行测试,结果已经表明字符abcdcba为回文,而字符abcdefg不是回文,满足实际要求。

七、附录

源程序:

#include<

stdio.h>

stdlib.h>

typedefstruct

top==-1)

top==m)

rear)

front)

voidmain()

while(stempty(s))

if(stpop(s)==dequeue(q))

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

当前位置:首页 > 医药卫生 > 基础医学

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

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