分享
分享赚钱 收藏 举报 版权申诉 / 15

类型太原理工大学软件工程课程设计实验.pdf

  • 上传人:精品资料
  • 文档编号:8878136
  • 上传时间:2019-07-15
  • 格式:PDF
  • 页数:15
  • 大小:694.29KB
  • 配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    太原理工大学软件工程课程设计实验.pdf
    资源描述:

    1、文 本 文 件 单 词 的 检 索 与 计 数专 业 : 软 件 工 程 班 级 : 1227 班 姓 名 : 王 晓 春 学 号 : 2012005774同 组 人 : 王 晓 春 闫 瑞 娟 张 泽 磊 组 长 : 王 晓 春 完 成 日 期 : 2014.6.25一 【 问 题 描 述 】串 是 非 数 值 处 理 中 的 主 要 对 象 , 如 在 信 息 检 索 、 文 本 编 辑 、 符 号 处 理 等 许 多领 域 , 得 到 越 来 越 广 泛 的 应 用 。 在 高 级 语 言 中 也 引 入 了 串 数 据 类 型 概 念 , 并 且 串变 量 与 其 他 变 量 ( 如

    2、整 型 、 实 型 等 ) 一 样 , 可 以 进 行 各 种 运 算 。然 而 , 在 各 种 不 同 类 型 的 应 用 中 , 所 处 理 的 串 有 不 同 的 特 点 , 要 想 有 效 地 实现 串 的 处 理 , 就 必 须 熟 悉 串 的 存 储 结 构 及 其 基 本 运 算 。 本 课 程 设 计 的 目 的 就 是 熟悉 串 类 型 的 实 现 方 法 和 文 本 模 式 匹 配 方 法 , 熟 悉 如 何 利 用 模 式 匹 配 算 法 实 现 一 般的 文 本 处 理 技 术 。本 课 程 设 计 分 两 步 : 首 先 , 设 计 出 串 定 位 算 法 ( 即 模

    3、 式 匹 配 算 法 ) 及 其 实 现 ;然 后 , 再 利 用 串 定 位 算 法 设 计 文 本 文 件 的 检 索 及 单 词 的 计 数 等 操 作 。二 【 设 计 需 求 及 分 析 】1.设 计 要 求1.1串 模 式 匹 配 算 法 的 设 计 要 求在 串 的 基 本 操 作 中 , 在 主 串 中 查 找 模 式 串 的 模 式 匹 配 算 法 即 求 子 串 位 置的 函 数 Index(S,T), 是 文 本 处 理 中 最 常 用 、 最 重 要 的 操 作 之 一 。所 谓 子 串 的 定 位 就 是 求 子 串 在 主 串 中 首 次 出 现 的 位 置 , 又

    4、 称 为 模 式 匹 配 或 串匹 配 。 模 式 匹 配 的 算 法 很 多 , 在 这 里 只 要 求 用 最 简 单 的 朴 素 模 式 匹 配 算 法 。 该 算法 的 基 本 思 路 是 将 给 定 子 串 与 主 串 从 第 一 个 字 符 开 始 比 较 , 找 到 首 次 与 子 串 完 全匹 配 的 子 串 为 止 , 并 记 住 该 位 置 。 但 为 了 实 现 统 计 子 串 出 现 的 个 数 , 不 仅 需 要 从主 串 的 第 一 个 字 符 位 置 开 始 比 较 , 而 且 需 要 从 主 串 的 任 一 给 定 位 置 检 索 匹 配 字 符串 , 所 以

    5、, 首 先 要 给 出 两 个 算 法 :1 标 准 的 朴 素 模 式 匹 配 算 法2 给 定 位 置 的 匹 配 算 法1.2 文 本 文 件 单 词 的 检 索 与 计 数 的 设 计 要 求要 求 编 程 建 立 一 个 文 本 文 件 , 每 个 单 词 不 包 含 空 格 且 不 跨 行 , 单 词 由 字 符 序列 构 成 且 区 分 大 小 写 ; 统 计 给 定 单 词 在 文 本 文 件 中 出 现 的 总 次 数 ; 检 索 输 出 某 个单 词 出 现 在 文 本 中 的 行 号 、 在 该 行 中 出 现 的 次 数 以 及 位 置 。该 设 计 要 求 可 分 为

    6、 三 个 部 分 实 现 : 其 一 , 建 立 文 本 文 件 , 文 件 名 由 用 户 用 键盘 输 入 ; 其 二 , 给 定 单 词 的 计 数 , 输 入 一 个 不 含 空 格 的 单 词 , 统 计 输 出 该 单 词 在文 本 中 的 出 现 次 数 ; 其 三 , 检 索 给 定 单 词 , 输 入 一 个 单 词 , 检 索 并 输 出 该 单 词 所在 的 行 号 、 该 行 中 出 现 的 次 数 以 及 在 该 行 中 的 相 应 位 置 。1 建 立 文 本 文 件2 给 定 单 词 的 计 数3 检 索 单 词 出 现 在 文 本 文 件 中 的 行 号 、 次

    7、 数 及 其 位 置4 主 控 菜 单 程 序 的 结 构2.概 要 设 计 示 例 如 下 :2.6 算 法 设 计朴 素 模 式 匹 配 算 法该 算 法 的 基 本 思 想 是 : 设 有 三 个 指 针 i,j,k, 用 i 指 示 主 串 S 每 次 开 始比 较 的 位 置 ; 指 针 j,k分 别 指 示 主 串 S和 模 式 串 T中 当 前 正 在 等 待 比 较 的 字 符 位置 ; 一 开 始 从 主 串 S的 第 一 个 字 符 ( i=0;j=1) 和 模 式 T的 第 一 个 字 符 ( k=0) 比较 , 若 相 等 , 则 继 续 逐 个 比 较 后 续 字 符

    8、 ( j+,k+) 。 否 则 从 主 串 的 下 一 个 字 符 ( i+)起 再 重 新 和 模 式 串 ( j=0) 的 字 符 开 始 比 较 。 依 此 类 推 , 直 到 模 式 T中 的 所 有 字符 都 比 较 完 , 而 且 一 直 相 等 , 则 称 匹 配 成 功 , 并 返 回 位 置 i; 否 则 返 回 -1, 表 示匹 配 失 败 。顺 序 串 的 模 式 匹 配 算 法 如 下 :int index(SString S, SString T) /求 子 串 T在 主 串 S中 首 次 出 现 的 位 置int i,j,k,m,n;m=T.length; /模 式

    9、 串 长 度 赋 mn=S.length; /目 标 串 长 度 赋 nfor (i=0; i=s2.length)return i- s2.length; /表 示 s1中 存 在 s2, 返 回 其 起 始 位 置elsereturn -1; /表 示 s1中 不 存 在 s2, 返 回 -1 /函 数 结 束说 明 : 以 上 两 个 算 法 可 统 一 为 一 个 算 法 , 即 在 子 串 定 位 算 法 Index(S,T)的 参数 中 增 加 一 个 起 始 位 置 参 数 即 可 。2.7 各 模 块 及 其 伪 码 :1.建 立 文 本 文 件建 立 文 件 的 实 现 思

    10、路 是 :( 1) 定 义 一 个 串 变 量 ;( 2) 定 义 文 本 文 件 ;( 3) 输 入 文 件 名 , 打 开 该 文 件 ;( 4) 循 环 读 入 文 本 行 , 写 入 文 本 文 件 , 其 过 程 如 下 :While ( 不 是 文 件 输 入 结 束 ) 读 入 一 文 本 行 至 串 变 量 ;串 变 量 写 入 文 件 ;输 入 是 否 结 束 输 入 标 志 ;( 5) 关 闭 文 件 。2 给 定 单 词 的 计 数该 功 能 需 要 用 到 前 一 节 中 设 计 的 模 式 匹 配 算 法 , 逐 行 扫 描 文 本 文 件 。 匹 配 一个 , 计

    11、数 器 加 1, 直 到 整 个 文 件 扫 描 结 束 ; 然 后 输 出 单 词 出 现 的 次 数 。其 实 现 过 程 如 下 :( 1) 输 入 要 检 索 的 文 本 文 件 名 , 打 开 相 应 的 文 件 ;( 2) 输 入 要 检 索 统 计 的 单 词 ;( 3) 循 环 读 文 本 文 件 , 读 入 一 行 , 将 其 送 入 定 义 好 的 串 中 , 并 求 该 串 的 实际 长 度 , 调 用 串 匹 配 函 数 进 行 计 数 。 具 体 描 述 如 下 :While (不 是 文 件 结 束 ) 读 入 一 行 并 到 串 中 ;求 出 串 长 度 ;模 式

    12、 匹 配 函 数 计 数 ;( 4) 关 闭 文 件 , 输 出 统 计 结 果 。3.检 索 单 词 出 现 在 文 本 文 件 中 的 行 号 、 次 数 及 其 位 置这 个 设 计 要 求 与 上 一 个 类 似 , 但 要 相 对 复 杂 一 些 。 其 实 现 过 程 描 述 如 下 :( 1) 输 入 要 检 索 的 文 本 文 件 名 , 打 开 相 应 的 文 件 ;( 2) 输 入 要 检 索 统 计 的 单 词 ;( 3) 行 计 数 器 置 初 值 0;( 4) while (不 是 文 件 结 束 ) 读 入 一 行 到 指 定 串 中 ;求 出 串 长 度 ;行 单

    13、 词 计 数 器 置 0;调 用 模 式 匹 配 函 数 匹 配 单 词 定 位 、 该 行 匹 配 单 词 计 数 ;行 号 计 数 器 加 1;If (行 单 词 计 数 器 !=0)输 出 行 号 、 该 行 有 匹 配 单 词 的 个 数 以 及 相 应 的 位 置 ;2.8 函 数 调 用 关 系 主 程 序CreatTextFile()SubStrCount() SubStrInd()PartPosition()三 【 设 计 功 能 的 实 现 】#include “stdafx.h“#include#include#define MaxStrSize 256 /根 据 用 户

    14、需 要 自 己 定 义 大 小typedef struct char chMaxStrSize; /ch是 一 个 可 容 纳 256个 字 符 的 字 符 数 组int length;SString; /定 义 顺 序 串 类 型int PartPosition(SString s1, SString s2, int k)/检 索 单 词 出 现 在 文 本 文 件 中 的 位 置int i, j;i=k-1; /扫 描 s1的 下 标 , 因 为 c中 数 组 下 标 是 从 0开 始 , 串 中 序 号 相 差 1j=0; /扫 描 s2的 开 始 下 标while (i=s2.leng

    15、th)return i-s2.length;elsereturn -1; /表 示 s1中 不 存 在 s2, 返 回 -1/表 示 s1中 不 存 在 s2, 返 回 其 起 始 位 置 /函 数 结 束void CreatTextFile() SString S;char fname10, yn;FILE *fp;printf(“输 入 要 建 立 的 文 件 名 : “);scanf(“%s“, fname);fp=fopen(fname,“w“);yn=n; /输 入 结 束 标 志 初 值while(yn=n|yn=N) printf(“请 输 入 一 行 文 本 : “);gets

    16、(S.ch);gets(S.ch);S.length=strlen(S.ch);fwrite(fprintf(fp,“%c“, 10); /是 输 入 换 行printf(“结 束 输 入 吗 ? y or n: “);yn=getchar();fclose(fp); /关 闭 文 件printf(“建 立 文 件 结 束 ! “); void SubStrCount() FILE *fp;SString S,T; /定 义 两 个 串 变 量char fname10;int i=1,j,k;printf(“输 入 文 本 文 件 名 : “);scanf(“%s“, fname);fp=fo

    17、pen(fname ,“r“);printf(“输 入 要 计 数 的 单 词 或 字 符 串 : “);scanf(“%s“, T.ch);T.length=strlen(T.ch);while(!feof(fp) /扫 描 整 个 文 件 文 本/fread( /读 入 一 行 文 本memset(S.ch,0, 256);fgets(S.ch,100,fp);S.length=strlen(S.ch);k=0; /初 始 化 开 始 检 索 位 置while(k0) printf(“行 号 : %d , 次 数 : %d, 位 置 分 别 为 : “,l, i);for(m=1;mvoi

    18、d CreateMGraph(MGraph *G,int n,int e) int i,j,k,w;for(i=1;ivexsi=(char)i;for(i=1;iarcsij=Maxint;printf(“输 入 %d条 边 的 i,j及 w:n“,e);for(k=1;karcsij=w;printf(“有 向 图 建 立 完 毕 n“);三 停 车 场 管 理专 业 : 软 件 工 程 班 级 : 1227班 姓 名 : 张 泽 磊 学 号 : 2012005779同 组 人 : 张 泽 磊 王 晓 春 闫 瑞 娟 组 长 : 张 泽 磊 完 成 日 期 : 2014.6.25一【问题描

    19、述】设 停 车 场 是 一 个 可 停 放 n辆 汽 车 的 狭 长 通 道 , 且 只 有 一 个 大 门 可 供 汽 车 进 出 。 汽 车 在 停车 场 内 按 车 辆 到 达 时 间 的 先 后 顺 序 , 依 次 由 北 向 南 排 列 ( 大 门 在 最 南 端 , 最 先 到 达 的 第 一 辆车 停 放 在 停 车 场 的 最 北 端 ) ,若 停 车 场 内 已 停 满 n 辆 汽 车 , 则 后 来 的 汽 车 只 能 在 门 外 的 便 道上 等 候 , 一 旦 有 车 开 走 , 则 排 在 便 道 上 的 第 一 辆 车 即 可 开 入 ; 当 停 车 场 内 某 辆

    20、 车 要 离 开 时 ,在 它 之 后 进 入 的 车 辆 必 须 先 退 出 车 场 为 它 让 路 , 待 该 辆 车 开 出 大 门 外 , 其 他 车 辆 再 按 原 次 序进 入 车 场 , 每 辆 停 放 在 车 场 的 车 在 它 离 开 停 车 场 时 必 须 按 它 停 留 的 时 间 长 短 交 纳 费 用 。 试 为停 车 场 编 制 按 上 述 要 求 进 行 管 理 的 模 拟 程 序 。二【设计需求及分析】以 栈 模 拟 停 车 场 , 以 队 列 模 拟 车 场 外 的 便 道 , 按 照 从 终 端 读 入 的 输 入 数 据 序 列 进 行 模 拟管 理 。

    21、每 一 组 输 入 数 据 包 括 三 个 数 据 项 : 汽 车 “到 达 ”或 “离 去 ”信 息 、 汽 车 牌 照 号 码 以 及 到 达或 离 去 的 时 刻 。 对 每 一 组 输 入 数 据 进 行 操 作 后 的 输 出 信 息 为 : 若 是 车 辆 到 达 , 则 输 出 汽 车 在停 车 场 内 或 便 道 上 的 停 车 位 置 ; 若 是 车 辆 离 去 , 则 输 出 汽 车 在 停 车 场 内 停 留 的 时 间 和 应 交 纳的 费 用 ( 在 便 道 上 停 留 的 时 间 不 收 费 ) 。 栈 以 顺 序 结 构 实 现 , 队 列 以 链 表 结 构 实

    22、 现 。3.栈和队列的定义(部分代码)typedefstructcarqueue / 链 队LPTCARNODElpHead; / 头 结 点LPTCARNODElpRear; / 指 向 当 前 队 尾 的 指 针intnEffectiveSize; / 当 前 队 中 元 素 个 数TCARQUEUE,*LPTCARQUEUE;4.栈和队列的初始化(部分代码)voidInitQueue(LPTCARQUEUElpCarQueue-lpHead=(LPTCARNODE)malloc(sizeof(TCARNODE);lpCarQueue-lpHead-lpNext=NULL;lpCarQueue-lpRear=lpCarQueue-lpHead;lpCarQueue-nEffectiveSize=0;voidInitStack(LPTCARSTACKlpCarStack-lpCarInformation=(LPTCARINFORMATION)malloc(nSize*sizeof(TCARINFORMATION);lpCarStack-nTop=-1;lpCarStack-nStackSize=nSize;

    展开阅读全文
    提示  道客多多所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:太原理工大学软件工程课程设计实验.pdf
    链接地址:https://www.docduoduo.com/p-8878136.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    道客多多用户QQ群:832276834  微博官方号:道客多多官方   知乎号:道客多多

    Copyright© 2025 道客多多 docduoduo.com 网站版权所有世界地图

    经营许可证编号:粤ICP备2021046453号    营业执照商标

    1.png 2.png 3.png 4.png 5.png 6.png 7.png 8.png 9.png 10.png



    收起
    展开