高分数据库课程设计报告

文本编译

首先,实验的名称是文本编辑器模拟。

二、实验的目的和要求:

1.使用C++ ASCII码文件和字符串函数;

2.熟练掌握字符串运算的应用;

3.掌握计算机系统的基本操作方法,知道如何编辑、编译、链接和运行一个C++程序;

4.在电脑上调试程序,掌握错误检查和调试,使程序能正确运行。

三、实验环境:指硬件和软件环境。

1.硬件环境:CPU迅驰,HARDISK 30GB,256DDR。

2.软件环境:Windows XP,微软Visual C++6.0。

四、算法描述

这个程序主要利用链表和数组来处理字符串的各种操作。如插入、删除、查找、替换、显示等。对于自定义文本“str.txt”,每行代表一个节点,可以修改、删除、添加等。每行的字符都可以存储在一个数组中,利用数组的特性可以方便地对其进行插入、删除、替换甚至排序!阵列的操作相对简单。我举一个删除链表的例子:如果要删除链表中的第I个节点,首先要将i-1节点的链接域指针指向i+1节点,然后通过重新拉链的方式将第I个节点从链表中分离出来,然后再删除。

动词 (verb的缩写)源程序列表

#包含“stdio.h”

#包含" stdlib.h "

#定义OK 1

#定义错误0

#定义溢出-1

//#定义EOF -1

#define STACK_INIT_SIZE 10

#定义堆栈增量1000

#定义MAXQSIZE 10

静态int I = 0;

typedef char ElemType

Typedef结构堆栈节点//构造堆栈

{

ElemType * base

ElemType * top

int stacksize

} SqStack

ElemType InitStack(SqStack *S)//初始化堆栈

{

s-& gt;base =(elem type *)malloc(STACK _ INIT _ SIZE * sizeof(elem type));

如果(!s-& gt;基地)

{

退出(溢出);

}

s-& gt;top = S-& gt;基地;

s-& gt;stacksize = STACK _ INIT _ SIZE

退货OK;

}

elem type stack empty(sq stack * s)//确定堆栈是否为空。

{

if(S-& gt;top = = S-& gt;基地)

退货OK;

其他

返回错误;

}

Elemtype push (sqstack * s,elem type e)//堆栈操作

{

if(S-& gt;top-S-& gt;base & gt= S-& gt;堆栈大小)

{

s-& gt;base =(elem type *)realloc(S-& gt;基地,(S->;stack size+stack increment)* sizeof(elem type));

如果(!s-& gt;基地)

{

退出(溢出);

}

s-& gt;top = S-& gt;base+S-& gt;stacksize

s-& gt;stack size+= stack increment;

}

* S->;top++ = e;

退货OK;

}

Elemtype pop (sqstack * s,elemtype * e)//pop操作

{

if(S-& gt;top = = S-& gt;基地)

{

返回错误;

}

* e = *-S-& gt;顶;

//printf("%d\n ",e);

//返回e;

返回0;

}

Void ClearStack(SqStack *S)//清空堆栈。

{

s-& gt;top = S-& gt;基地;

}

ElemType LineEdit(SqStack *S )//文本编译

{

char ch,e,a[30];

int I;

ch = getchar();

while(1)

{

而(ch!='\n ')

{

开关(通道)

{

案例' # ':

流行音乐。e);

打破;

案例“@”:

ClearStack

打破;

默认值:

Push(S,ch);

打破;

}

ch = getchar();

}

I = 0;

而(!栈顶)

{

流行音乐。e);

a[i++]= e;

}

for(-I;我& gt= 0;我-)

{

printf("%c ",a[I]);

}

printf(" \ n ");

ClearStack

ch = getchar();

}

返回0;

}

int main(void)

{

sq stack S;

init stack(& amp;s);

LineEdit(& amp;s);

系统(“暂停”);

返回0;

}