1、 1 目录目录 1. 问题描述问题描述-2 2. 具体要求具体要求-2 3. 测试数据测试数据-2 4. 算法思想算法思想-2 5. 模块划分模块划分-3 6. 数据结构数据结构-3 7. 源源程序程序-4 8. 测试情况测试情况-14 9. 设计总结设计总结-16 10. 参考文献参考文献-17 2 一、一、 问题描述问题描述 该课程设计要求解决一个文档中单词的回文问题,该程序有检测和输出功 能,可以将整个文档中的每个单词都进行检测,并可以将每个单词以及该单词的 倒置都输出。一切工作都是由计算机自动来完成的,大大节省了人力资源,提高 了工作效率。 二、二、具体要求具体要求 编写一个程序来解决
2、一个文档中单词的回文问题, 该程序必须有判断一个单 词是否是回文单词的功能, 因此它应将文档分解成一个一个单词来进行判断并输 出。该程序应有文件文件头,并且要用栈和队列来编写。该程序要用到文件流, 故要先建一个文档并输入字符。 三、三、测试数据测试数据 创建一个 data 文本文档,文本中的数据如下: 1、I am student.He is doctor.my eye have some problem. 2、fdjsfh dsjf jhfdksf 3、zsz jk?j 4、abba bcab bub bj,aaaaa.hoa?ijso!eye 四四、算法思想算法思想 完成整个程序必须使用栈
3、和队列来实现,程序要包括 huiwen.h 头文件,以 及 huiwen.cpp 和 main.cpp 文件。该程序先建立一个文档,然后通过文件流的应 用将文档中的内容输出。根据特定的要求将文档分解成一个一个的单词来处理, 将组成每个单词的字母按次序同时存储到顺序栈和链队列中, 直到遇到空格或标 点符号为止。设置标记 flag=1,然后将栈和队列中的元素依次输出,并判断是 3 否相等,若相等则令 flag=1,若不相等则 flag=0,如果栈和队列中的元素都比较 完后 flag 为 1 说明该单词是回文单词,否则反之。 五五、模块划分模块划分 函数功能函数功能: 1) int stinit(s
4、tackstru *s); /初始化栈 2) void clearstack(stackstru *s); /清空栈 3) int stempty(stackstru *s); /判断栈是否空 4) int stpush(stackstru *s,char x); /入栈操作 5) char stpop(stackstru *s); /出栈操作 6) int quinit(queuestru *q); /初始化为一个空的循环队列 7) void clearqueue(queuestru *q); /清空队列 8) int quempty(queuestru *q); /判断队列是否为空 9) int enqueue(queuestru *q,char e); /入队操作 10) char dequeue(queuestru *q);