数据结构实验报告《三、串及其应用》


    
    数结构实验报告
    串应文学研究助手



    专业班级: 电信班












    时间:2011年X月X日










    数结构实验报告
    串应文学研究助手
    问题描述
    文学研究员需统计某篇英文说中某单词(特形容词)出现次数位置甚连数字标点符号数统计试写实现目标文字统计系统称文学研究助手
    基求
    1输入页文字静态存储页文章行超80字符N行
    2分统计出中英文字母数空格数标点符号整篇文章总字数
    3统计某字符串文章中出现次数输出该次数
    4删某子串面字符前移
    运拓展
    1保存输入文章text文中
    2模式匹配基KMP算法
    3仿真友界面显示:
    (1)求菜单选择操作分子函数实现相应功
    (2)输入数形式范围:输入写写英文字母数
    字标点符号
    (3)输出形式:1)分行输出户输入行字符
    2)分5行输出全部字母数数字数空格
    数标点符号数文章总字数
    3)输出删某字符串文章
    涉知识点
    链串插入删查找模式匹配(knp算法)文件写入写出switchcase语句进行菜单选择while语句进行循环if语句进行条件判断等等
    设计思路
    总体思路:文采链式存储字符串链串插入采插法#’
    字符串结束标志插入字符串时文件存储字符串
    删算法基思路:输入删字符串样#’结束然文中查找该字符串找删时长度减少否没找删
    查找算法删算法类似处:里查找某字符串文中出现次数找该字符串继续查找次数加1直文章末尾结束查找
    菜单做选择:switchcase语句进行选择判断类象调类成员函数实现特定功采链式存储字符串字符进行存储遇空隔换行符时会忽略计解决问题文采换方法——输入空格时输入:’输入换行符时输入’\\’输出时遇:’输出空格遇\\’输出换行符
    功设计

    根提示选择否开始
    y n
    选择操作 退出
    调相应函数
    否继续?

    详细设计
    Linklist类中保护成员head(指针类型)
    公成员中包含整型变量len计算字符串长度
    外包含5子函数分:
    1void rcreat()函数尾插法建立链串字符串存入文件遇#时结束2void print(link *head)函数输出链串遇字符号(:)时输出空格遇字符(\\)时输出换行遇字符等48等57时数字数加1遇字符标点符号时相应标点符号数加1输出判断完指针移
    3void deletel(link *headlink * head2)删字符串函数中head 指输入文章第字符head2指删字符串第字符采模式匹配算法进行查找文中找字符删第字符相指针分移文中字符第二字符相继续找文中字符删字符第字符开始新匹配直删字符匹配完找删字符串文中位置文中串字符匹配第字符开始匹配段字符删没找该字符串删
    4void print2(link *head2)函数输出删字符串中head2 指删字符串第字符
    5void *found(link *headlink *head2)函数查找字符串文中出现次数设置整型变量num统计出现次数初始值0样采模式匹配算法找第次文中出现位置num+1继续找文中找num+1直文章末尾然输出num值
    部分函数模块流程图:
    void *found(link *headlink *head2)
    int num0 link *P*Q*R Phead>next Qhead2>next RP


    While
    (PNULL)&&(QNULL)


    if(P>dataQ>data )
    else
    RR>next
    PR
    Qhead2>next
    PP>next
    QQ>next



    if(QNULL)

    num++
    RR>next
    PR
    Qhead2>next





    运行环境
    电脑环境:Windows 7 & Windows XP & Windows vista
    软件环境:Visual C++ 60 & Visual studio 2008

    #include
    #include 包含头文件
    using namespace std
    class bunch
    {
    public
    char data
    bunch *next
    }bunch
    class bunchlist
    {
    protected
    bunch *head
    public
    int len
    bunch *creat()
    {
    ofstream SaveFile(cpphometxtios_basebinary)创建文文件
    bunch *s*p*r
    char ch
    cout<<输入字符(号代空格双杠(\\)代换行符)#算法结束
    cin>>ch
    prnew bunch 申请新空间
    p>next NULL 插法添加字符
    while (ch'#') #时录入字符保存文中
    {
    snew bunch
    s>data ch
    r>next s
    rs
    SaveFile< cin>>ch
    }while
    r>next NULL 结束输入返回字符串数
    SaveFileclose()
    return p
    }*creat
    void print(bunch *head) 输出文
    {
    int num0 赋初值
    int space0
    int len0
    int word0
    int douhao0
    int sentence0
    ifstream in(cpphometxt) 读入创建txt文文件
    bunch *p
    phead>next
    while(p>nextNULL) 空文件扫描需记录信息
    {
    len++ 长度先加1
    if(p>data'')号改空格输出
    {
    cout<<' '
    space++ 碰空格号空格数目加1
    word++ 字符数目加1
    pp>next 移动位循环扫描信息
    }if:
    if(p>data '')逗号形式空格致赘述
    {
    word++
    douhao++
    cout<<''
    pp>next
    }if
    if(p>data '')点形式空格致赘述
    {
    cout<<''
    word++
    sentence++
    pp>next
    }if
    if(p>data '')问号形式空格致赘述
    {
    cout<<''
    word++
    sentence++
    pp>next
    }if?
    if((p>data>48)&&(p>data<57))碰数字0~9时记录
    {
    cout<

    data
    num++ 数字统计加1
    pp>next 跳位
    }if0~9
    if(p>data'\\')双杠改换行输出
    {
    cout<<'\n'
    pp>next
    }if\\
    else 情况记录字母
    cout<

    data
    pp>next
    }while
    wordword+1 单词数加1
    sentencesentence+1 句子数加1
    cout< cout<<总字符数:< cout<<空格数:< cout<<逗号总数:< cout<<单词数:< cout<<句子总数:< cout<<数字数:< cout< }
    void deletel(bunch*headbunch *HEAD) 删操作
    {
    bunch *P*Q*R*T
    Thead
    Phead>next
    QHEAD>next
    RP
    while((PNULL)&&(QNULL))空时进行删操作
    {
    if(P>dataQ>data )
    {
    PP>next
    QQ>next
    }
    else
    {
    TT>next
    RR>next
    PR
    QHEAD>next
    }
    }
    if(QNULL)
    {
    cout<< find the word< T>nextP>next
    }
    else
    {
    cout< }
    }

    void PRINT(bunch *HEAD)
    {ifstream in(hometext)
    bunch *q
    qHEAD>next
    while(qNULL)
    {
    cout<data
    qq>next
    }
    }

    void *found(bunch *headbunch *HEAD)
    {
    int num0
    bunch *P*Q*R
    Phead>next
    QHEAD>next
    RP
    while((PNULL)&&(QNULL))
    {
    if(P>dataQ>data )
    {
    PP>next
    QQ>next
    }
    else
    {
    RR>next
    PR
    QHEAD>next
    }
    if(QNULL)
    {
    num++
    RR>next
    PR
    QHEAD>next
    }
    }
    if(num>0)
    {cout< cout< else
    cout< return 0
    }
    }

    void main()
    {int choice
    char c
    bunch *p*q*Y
    bunchlist a
    cout<<********************************************************************************<cout<<* 欢迎文编辑器 *<cout<<* *<cout<<* 1 :新建文 2 :输出文 3 :删串字符 4 查找单词出现次数 *<cout<<********************************************************************************<
    cout<cin>>c
    while(c'y'){
    cout<<请输入您选择 <cin>>choice
    switch(choice)
    {
    case 1
    cout<<新建文< pacreat ()
    break
    case 2
    cout<<输出结果:< aprint (p)
    break
    case 3
    cout<<输入删字符串:<Yacreat()
    adeletel(pY)
    cout<<删
    aPRINT(Y)
    cout<<文章:<aprint(p)
    break
    case 4
    cout<<请输入查找单词:
    qacreat()
    afound (pq)
    break
    default
    cout< break
    }
    cout<cin>>c
    }
    cout<<谢谢<}
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 香币 [ 分享文档获得香币 ]

    下载文档

    相关文档

    数据结构实验报告

    实验报告课程:数据结构 班级:网络工程 学号: 姓名: 实验1 链表的插入和删除一、实验目的 1、...

    2年前   
    339    0

    中学导数及其应用

    中学导数及其应用摘要:微积分的创立无疑是人类发展史上重要的里程碑。导数是微积分中的重要基础概念,对于高中数学学习和大学数学的学习起着承上启下的作用。导数作为中学数学的重要组成部分,为分析函数单...

    1年前   
    268    0

    2023北航物理实验研究性实验报告电位差计及其应用

    北航物理实验研究性实验报告——电位差计及其应用篇一:北航物理实验研究性实验报告——电位差计及其应用北航物理实验研究性实验报告——电位差计及其应用作者:学号:目录摘要.................

    6个月前   
    138    0

    串行口通讯实验报告

    通过实验掌握 USART 的功能。掌握 STM32 的 USART 的设置与运用。

    3年前   
    1053    0

    变频器及其应用

    变频器及其应用 李小元(神东煤炭分公司石圪台煤矿 ****县大柳塔镇 719315) 摘 要 对变频器的基本常识及其及其原理和变频器程序编写及分析实例 关键词 变频器 原理 程序 实例 ...

    9年前   
    9201    0

    新版FIDIC合同条件及其应用

    新版FIDIC合同条件及其应用随着我国加入WTO和改革开放的不断深入,工程项目雇主、工程咨询、勘查、设计和施工单位,都面临着国内外两个国际竞争市场。一个是按照“国际惯例要求”的国内外资项目、国...

    12年前   
    771    0

    新型装修材料及其应用

    新型装修材料及其应用1、大理石:是一种变质岩,系由石灰岩变质而成,其主要矿物成分为方解石、白云石等,和石灰岩相似,但晶粒细小,结构致密,强度大,抗压强度可达100-300MPa,而硬度不大,易...

    1周前   
    289    0

    Windows操作系统及其应用

    Windows操作系统及其应用一. Windows操作系统的若干常识1、 Windows操作系统的主要功能是_B_____。A.实现软、硬件转换B.管理系统所有的软、硬件C.把源程序转换为目标...

    4年前   
    804    0

    新型高效塔设备技术及其应用

    新型高效塔设备技术及其应用    1 前言     塔设备是化工、石化、炼油、医药等工业中的重要组成局部。它对整个流程的生产能力、产品质量、能耗与原料消耗、环境保护等,均会产生重大影响。据统计...

    1周前   
    53    0

    《数据库原理及应用》实验报告

     数据库原理及应用 实验报告 实验课程: 学 号: 学生姓名: ...

    5年前   
    4487    0

    计算机应用基础实验报告

    目的:理解微型计算机的结构和工作原理,掌握组装一台微型计算机所需的硬件由几分钟组成,并学会配置微机硬件配置。

    6年前   
    3384    0

    高考三轮复习练习常见的有机及其应用四

    一、单选题1.环己醇( )常用来制取增塑剂和作为工业溶剂。下列说法正确的是A.与环己醇互为同分异构体,且含有醛基(-CHO)的结构有8种(不含立体异构)B.标准状况下,1mol环己醇与足量Na反...

    3年前   
    505    0

    哈夫曼树应用数据结构课程设计报告

    数据结构课程设计报告设计题目:哈夫曼树应用 专 业 : 软件工程 班 级 : 软件 学 生 : ...

    2年前   
    473    0

    初三化学实验报告

    初三化学实验报告  实验步骤   (1) 在试管中加入5mL5%的过氧化氢溶液,把带火星的木条伸入试管;   (2) 加热实验(1)的试管,把带火星的木条伸入试管;   (3) 在另一支试管中...

    9年前   
    605    0

    实验3快速傅立叶变换及其应用

    班 级09电本班 学号 姓 名 同组人 实验日期 室温 大气压 成 绩 ...

    1年前   
    339    0

    金融工程的核心技术及其应用研究

    金融工程的核心技术及其应用研究 郭菊娥 邢公奇 郭菊娥系西安交通大学管理学院,邢公奇系西安交通大学经济与金融学院 (西安交通大学,西安,710049) 摘要 本文从现金流的视...

    11年前   
    14896    0

    怎样加强工程项目成本管理及其应用

    怎样加强工程项目成本管理及其应用  加强项目成本管理,减支增效,将成为企业长期追求的经营战略。通常我们把施工项目成本管理划分为相互联系的环节,即成本预测,成本计划,成本控制,成本核算,成本分析...

    9年前   
    632    0

    建设工程成本管理方法及其应用研究

              《建设工程成本管理方法及其应用研究》                 建设工程成本管理方法及其应用研究 摘要:随着社会经济的发展,企业数量的增...

    5年前   
    1810    0

    实验一-线性表及其应用(I)

    姓名学号实验项目线性表及其应用(I)实验内容1.实现线性表的顺序存储结构和主要的基本操作,并添加输出显示等辅助函数,在此基础上实现后续两个算法。线性表的抽象数据类型定义参见教材第19页。顺序存...

    2年前   
    546    0

    ISO9000以及其在软件行业的应用

    ISO9000以及其在软件行业的应用ISO9000无疑是质量管理领域中极其重要的一个话题,甚至在很多人的眼里,质量管理就是ISO9000。尽管这种看法是不全面的,它还是从一个侧面反映了ISO9...

    11年前   
    828    0

    文档贡献者

    文***享

    贡献于2020-11-11

    下载需要 2 香币 [香币充值 ]
    亲,您也可以通过 分享原创文档 来获得香币奖励!
    下载文档

    该用户的其他文档