欢迎来到天天文库
浏览记录
ID:35216845
大小:206.50 KB
页数:34页
时间:2019-03-21
《参考简单行编辑程序报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、简单的行编辑程序沈阳航空工业学院课程设计简单的行编辑程序班级/学号6402103/077_学生姓名赵壮指导教师张雷第33页简单的行编辑程序沈阳航空工业学院课程设计任务书课程名称软件技术基础课程设计院(系)电子信息工程学院专业电子信息工程班级6402103学号200604021077姓名赵壮课程设计题目简单行编辑程序课程设计时间:2008年7月14日至2008年7月27日课程设计的内容及要求:[问题描述]文本编辑程序是利用计算机进行文字加工的基本软件工具,实现对文本文件的插入、删除等修改操作。限制这些操作以行
2、为单位进行的编辑程序称为行编辑程序。被编辑的文本文件可能很大,全部读入编辑程序的数据空间(内存)的作法既不经济,也不总能实现。一种解决方法是逐段地编辑。任何时刻只把待编辑文件的一段放在内存,称为活区。试按照这种方法实现一个简单的行编辑程序。设文件每行下超过320字符,很少超过80字符。[基本要求]实现以下4条基本编辑命令:(1)行插入。格式:i<行号><回车><文本>.<回车>将<文本>插入活区中第<行号>行之后。(2)行删除。格式:d<行号l>[<空格><行号2>=<回车>删除活区中第<行号1>行(到第<
3、行号2>行=。例如:“d10┛”和d1014┛”(3)活区切换。格式:n<回车>将活区写入输出文件,并从输入文件中读入下一段,作为新的活区。(4)活区显示。格式:p<回车>逐页地(每页20行)显示活区内容,每显示一页之后请用户决定是否继续显示以后各页(如果存在)。印出的每一行要前置以行号和一个空格符,行号固定占4位.增量为l。各条命令中的行号均须在活区中各行行号范围之内,只有插入命令的行号可以等于活区第一行行号减l,表示插入当前屏幕中第一行之前,否则命令参数非法。指导教师年月日负责教师年月日学生签字年月日第
4、33页简单的行编辑程序简单的行编辑一、题目分析通过对该软件课设的分析,了解到该课设要求设计一个程序,能够实现行插入、行删除、活区显示、活区切换四项功能。分别设计出四个模块,用主函数集中调度,这样就可以方便快捷的实现各个函数以及整体函数的功能。其具体做法是,先在程序的开始定义一个结构体,其中包括五个数据项,分别是存储每一行元素的项charstring[80]、指向前一个结点的指针structtext*pre、指向后一个结点的指针structtext*next、记录每一行元素的长度intnum以及判断是否删除的
5、标志intflat。当flat=0时,该行被删除;当flat=1时,该行不删除。对文本的编辑,每次都采用先打开文本文件的形式,因为这样可以更直观的看出编辑后文本的变化。实现活区显示的做法是建立一个链表,该链表有20个结点,在一页中放不下的部分为活区,执行p后可以显示出第一页的部分,在continue之后选择Y便可以显示出活区的部分,即第二页的内容。实现活区切换的做法是执行n后,先判断活区的内容,如果没被删除就把文本中内容读入到链表中,便可以直接显示出获取部分,即第二页的内容。实现删除的做法是执行d,定义两个
6、指针分别指向要删除的结点,删除两个结点之间的内容,最后将删除后的结果存盘并显示下一页内容。实现插入的做法是执行i,定义一个指针变量插入行的前一行,然后给插入行分配存储空间,将插入行的内容插入到链表中,便实现行插入的功能。程序还定义了一个函数来释放所占链表的内存,在退出程序后利用保存函数将内容存盘.二、设计过程(程序流程图)1.主函数的设计主函数采用do—while循环,循环体主要调用三个子函数:1EDIT(),2HELP(),3EXIT()。行编辑程序的四种主要功能都在EDIT()编辑函数中执行。HELP(
7、)函数是提示用户各种功能的执行方式,主函数通过给字符变量cmd赋初值来选择是结束程序还是继续执行循环体中的内容。主程序流程图如1所示。第33页简单的行编辑程序cmd=1开始定义字符变量cmd给cmd赋初值switch(cmd)1编辑函数EDTT()2帮助函数HELP()3退出结束cmd=2cmd=3开始结束图1主函数流程图2.帮助函数HELP()子程序设计帮助函数的主要作用是在用户忘记如何操作的情况下在屏幕上给用户显示提示操作的信息,使行插入,行删除,活区显示,活区切换的执行方式,其流程图如图2所示。返回开
8、始输出提示信息返回开始输出提示信息图2帮助函数HELP()流程图3.编辑函数EDIT()子程序设计简单行编辑程序的各种功能在编辑函数中实现。首先给字符型变量cmd赋初值,通过switch(cmd)来选择执行哪种功能。退出编辑函数:E(e),调用save第33页简单的行编辑程序all()函数将内容存盘,然后调用freemem()释放链表空间。打开文件:O(o),调用openfiles()函数打开文件。执行活区显示:
此文档下载收益归作者所有