【vc++精品源码栏目提醒】:本文主要为网学会员提供“【精品】数据结构课程设计完整版 - 大学课件”,希望对需要【精品】数据结构课程设计完整版 - 大学课件网友有所帮助,学习一下!
西安邮电学院 数据结构课程设计报告 题 目: 魔王语言翻译/多项式相乘 系部名称 : 专业名称 : 班 级 : 学 号 : 学生姓名 : 指导教师 : 时 间 :一、 课程设计目的 通过本次课程设计,强化上机动手能力,使我们在理论和实践的基础 、 上进一步巩固《C 语言程序设计》《数据结构——使用 C 语言》课程学习 的内容,初步掌握工程软件设计的基本方法,熟知链表,栈,队以及文件 的使用方法,学会将知识应用于实际,提高分析和解决问题的能力,为毕 业设计和以后工作打下基础。
二、课程设计内容 【1】、魔王语言 问题描述 有一个魔王总是使用自己的一种非常精炼的而抽象的语言讲话,没有人 能听懂。
但他的语言是能够逐步解释成人能听懂的语言的,因为他的语言是 由以下两种形式的规则由人的语言逐步抽象上去的: 1α→β1β2 …… βm 2θδ1δ2 …… δn→ θδnθδn-1 …… θδ1 θ 在这两种形式中,从左到右均表示解释;从右到左均表示抽象。
试写一 个魔王语言的解释系统,把他的话解释成人能听懂的话。
基本规则 现在有以下三种规则,设大写字母表示魔王语言解释的词汇,小写字母 表示人的语言的词汇; 希腊字母表示可以用大写或小写替换的变量。
魔王语言 可含人的词汇。
(1)B-tAdA (2)A-sae (3)示例: 魔王说:BehnxgzB 解释成人的语言:tsaedsaeezegexenehetsaedsae 若每个小写字母含义如下表示: t d s a e z g x n h 天 地 上 一只 鹅 追 赶 下 蛋 恨 则魔王说的话是:天上一只鹅地上一只鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅 天上一只鹅地上一只鹅 【2】、多项式相乘 问题描述 用带头结点的动态单链表来表示多项式,在此基础上完成多项式的乘法 运算。
三、需求分析 对所开发系统功能、性能的描述,想要实现的目标。
【1】魔王语言 有一个魔王总是使用自己的一种非常精炼的而抽象的语言讲话,没有人 能听懂。
但他的语言是能够逐步解释成人能听懂的语言的,因为他的语言 是由以下两种形式的规则由人的语言逐步抽象上去的。
本系统即按照所给 出的规则,逐步将魔王的抽象语言解释成具体易懂的人类语言。
【2】多项式相乘 对于项数比较多,数据比较复杂的多项式在进行人工的相乘,不仅浪 费时间,而且耗费精力。
本系统主要通过程序,将复杂的多项式进行相乘, 并完成相乘后多项式的合并同类项,排序等问题。
四、概要设计 【1】魔王语言 1.系统结构图(功能模块图) - main 函数 链 去 字 汉 输 栈 括 符 语 出 队 号 替 含 并 的 处 换 义 保 初 理 处 替 存 始 理 换 化2.功能模块说明 【1】魔王语言 (1) 去括号处理模块: 本模块主要应用递归算法。
从 L 中读取魔王原始语言, 将魔王 的原始语言进栈,如果遇到右括号,向左遍历,直至遇到左括号, 记录左括号后第一个字符。
利用队列翻译括号内内容,将队列中内 容入栈,处理完之后,剩下的魔王原始语言继续进栈。
借用一个新 栈将栈中的元素存入 L 中。
遍历 L 如果有括号重复以上操作。
(2) 字符替换模块 从文件 mean.txt 中读取替换规则存放在结构体中,此结构体 含有两个成员,第一个成员存放标记性字符,第二个成员存放用于 替换的字符。
栈顶元素出栈,与结构体第一个成员进行对比,如果 相同将此结构体第二个成员入队列;如果不同,直接进队。
再取栈 顶元素,如此循环,直至所有的元素出栈进队。
将队列中的元素存 放到 L 中。
(3) 汉语含义替换模块 从文件 rule.txt 中读取字母及其对应的汉语含义存放在 mean 结 构体中,此链表仍含有两个成员,第一个成员存放小写字母,第二 个成员 存放对应的汉语含义。
遍历 L 如果与结构体第一个成员相 同,将此结构体第二个成员输出及保存,如此循环。
【2】多项式相乘 1.系统结构图(功能模块图) main 函数 输 排 相 输 入 序 乘 出 多 模 模 模 项 块 块 块 式 2、功能模块说明 (1) 多项式输入模块 从键盘输入多项式,并保存在多项式链表