Informe de diseño de cursos de base de datos de puntuación alta

Compilación de texto

1. Nombre del experimento Implementación del editor de texto

2. Propósito y requisitos del experimento:

1. Archivos de código C ASCII e implementación de funciones de cadenas;

2. Competente en la aplicación de operaciones de cadenas;

3. Competente en los métodos operativos básicos de los sistemas informáticos y comprenda cómo editar. , compilar, vincular y ejecutar un programa en C;

4. Depurar el programa en la computadora, dominar la verificación de errores y la depuración para que el programa pueda ejecutarse correctamente.

3. Entorno experimental: se refiere al entorno de hardware y software

1. Entorno de hardware: CPU CENTRINO, HARDISK 30GB, 256DDR

2. XP, Microsoft Visual C 6.0.

4. Descripción del algoritmo

Este programa utiliza principalmente listas enlazadas y matrices para procesar operaciones de cadenas. Como insertar, eliminar, buscar, reemplazar, mostrar, etc. Para el texto personalizado "str.txt", cada línea representa un nodo y se implementa utilizando una única lista vinculada. Se puede modificar, eliminar, agregar, etc., los caracteres de cada línea se pueden almacenar en una matriz. que puedes usar Las funciones de matriz facilitan la inserción, eliminación, reemplazo e incluso clasificación. Las diversas operaciones de la matriz son relativamente simples. Permítanme brindarles una operación de eliminación de una lista vinculada: si desea eliminar el i-ésimo nodo en la lista vinculada, primero debe dejar que el puntero del campo de enlace del i-1º nodo. apunte al nodo i-1, separe el nodo i de la lista vinculada volviendo a comprimirlo y luego elimínelo.

5. Lista de programas fuente

#include "stdio.h"

#include "stdlib.h"

#define OK 1

#define ERROR 0

#define DESBORDAMIENTO -1

//#define EOF -1

#define STACK_INIT_SIZE 10

#define STACKINCREMENT 1000

#define MAXQSIZE 10

static int i=0;

typedef char ElemType;

typedef struct StackNode//Construir pila

{

ElemType *base;

ElemType *top;

int stacksize;

}SqStack;

ElemType InitStack(SqStack *S)//Pila de inicialización

{

S-gt=(ElemType; *)malloc(STACK_INIT_SIZE*sizeof(ElemType));

if(!S-gt;base)

{

salir(OVERFLOW);

if(!S-gt;base)

p>

}

S-gt; arriba=S-gt;

S-gt; stacksize=STACK_INIT_SIZE;

return OK;

}

ElemType StackEmpty(SqStack *S)//Determine si la pila es vacío

{

if(S-gt; top==S-gt; base)

regresar OK;

si no

devuelve ERROR;

}

ElemType Push(SqStack *S, ElemType e)//Operación Push

{

if(S-gt;top-S-gt;basegt;=S-gt ; tamaño de pila)

{

S-gt; base = (ElemType *)realloc (S-gt; base, (S-gt; tamaño de pila STACKINCREMENT)*sizeof(ElemType)) ;

if(!S-gt; base)

{

salir(OVERFLOW);

}

S-gt; top = S-gt; base S-gt;

S-gt; ; tamaño de pila = STACKINCREMENT;

}

* S-gt; arriba

return OK; >

ElemType Pop(SqStack *S, ElemType *e)//Operación pop

{

if(S-gt; top==S-gt; base)

{

retorno ERROR;

}

*e=*--S-gt;arriba;

//imprimirf(

"d\n", e);

// return e

return 0;

}

void ClearStack(SqStack) *S)//Limpiar la pila

{

S-gt; top=S-gt; ElemType LineEdit(SqStack *S)//Compilación de texto

{

char ch, e, a[30];

int i;

ch = getchar();

mientras(1)

{

mientras (ch!='\n')

{

interruptor(ch)

{

caso '#':

Pop(S, amp; e);

interrupción;

caso '@':

ClearStack(S);

interrupción;

predeterminado :

Push(S, ch);

romper;

}

ch = getchar(); p >}

i = 0;

mientras (!StackEmpty(S))

{

Pop(S, amp; e );

a[i ]=e;

}

para(--i; igt; = 0; i--)

{

printf("c",a[i]);

}

printf("\n");

ClearStack(S);

ch = getchar();

}

devuelve 0;

}

int main(void)

{

SqStack S;

InitStack(amp; S); ( amp; S);

sistema("pausa");

devuelve 0;

}