网站大量收购独家精品文档,联系QQ:2885784924

数据结构课程设计-简单行编辑程序.docx

数据结构课程设计-简单行编辑程序.docx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

数据结构课程设计实习报告题目:简单行编辑程序

班级:计算机科学与技术2004班

学号:031010151551017

姓名:黄仁化

日期:二〇O五年七月八日

1

目录

原创力文档

预览与源文档一致下载高清无水印

1.需求分析 2

2.概要设计 2

3.详细设计 2

4.测试分析 9

5.用户手册 9

6.测试结果 9

7.课程总结 13

2

一、需求分析

1)、被编译的文本文件可能很大,全部读入编辑程序的数据空间(内存)的做法既不经济,也不总能

实现。任何时刻只把待编辑文件的一段放在内存,称为活区。

(2)、活区的大小用行数ActiveMaxLen(可设为100)来描述。可以以标准行块为单位为各行分配存储,每个标准行块可含81个行块。

(3)、将输入文件中的内容的ActiveMaxLen-x(x由用户自己定义)行的内容读入活区中。然后分别对活区中的内容进行编辑。

(4)、分别实现各命令的函数,然后对客户的需求实行相应的操作。对命令格式不正确的进行处理。

二、概要设计

1.定义行的类型

ADTFileCode{

数据对象:D={ai|ai∈字符集,i=1、2、…、n。n≥0}

数据关系:R1={ai-1,ai|ai-1,ai∈D,i=1、2、…、n。n≥0}

基本操作:

InitFile(F)

初始条件:输入文件和输出文件存在。-

操作结果:将输入文件中的内容读入动态活区F中。

Putc(F)

初始条件:输出文件存在。

操作结果:将活区F中的第一行输到输出文件中。

Insert(a,F,f)

操作结果:将f行中的内容插入到活区F中的第a行之后。

ChangeOrder(F)

初始条件:输入文件和输出文件存在。

操作结果将活区F的内容输出到输出文件中,并从输入文件中读入后一段,实现活区切换。

InsertOrder(F,a,f))

初始条件:插入文件f存在。

操作结果:将插入文件f的内容插入到活区F的第a行之后。

DelOrder(F,a,b)

操作结果:删除活区F中第a行到第b行(包括b行)的内容。

DisplayOrder(F)

操作结果:显示活区中F的内容。

Input(i,j)

操作结果:判断删除一行还是多行。若i=j则删除一行,否则删除多行。

}//ADTFileCode

2.本程序包含两个模块:

1)主程序模块,其中主函数为

voidmainO{

输入x的值和初始化活区;

要求输入输入文件名和输出文件名:

要求输入命令;

输出测试结果:

}

2)活区命令模块一实现对活区命令的内容;

三、详细设计

#includeiostream.h

#includestdlib.h

3

#includestdio.h

#includestring.h

#defineActiveMaxLen100

#defineNULL0

typedefstructFileCode{

char*s;

structFileCode*next;

}FileCode,*FilePtr;

intn,x;

charch;

FILE*fp,*out,*in;

voidInitFile(FilePtrF)

FilePtrp,q;inti;charfile1[255],file2[255];

cout请输入输出文件名和输入文件名:endl;

cinfilel;

if((fp=fopen(file1,r))==NULL)

{cout不能打开此文件!endl;exit(0);}

cinfile2;

if((in=fopen(file2,w+))=NULL)

{cout不能打开此文件!endl;exit(0);}

if((stremp(filel,file2))=NULL)

{cout输入文件名不能与输出文件名相同!endl;exit(0);}

n=0;

F=(FilePtr)malloc(sizeof(FileCode));

p=F;

p-next=NULL;

ch=fgetc(fp);

while(ch!=EOFnActiveMaxLen-x)

q=(FilePtr)malloc(sizeof(FileCode));

q-s=(char*)malloc(81*sizeof(char));

q-

文档评论(0)

阿弥陀佛 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档