Red de conocimiento informático - Consumibles informáticos - Informe de diseño de cursos de base de datos de puntuación alta

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 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 operaciones en la matriz son relativamente simples. Permítame brindarle una operación de eliminación en 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 nodo i-1. apunte al nodo i+1, separe el i-ésimo nodo de la lista vinculada volviéndolo a comprimir 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->base=(ElemType * )malloc(STACK_INIT_SIZE*sizeof(ElemType));

if(!S->base)

{

salir(OVERFLOW);

}

S->top=S->base;

S->stacksize=STACK_INIT_SIZE;

regresar OK;

}

ElemType StackEmpty(SqStack *S)//Determine si la pila está vacía

{

if(S->top==S- > base)

regresar OK;

de lo contrario

regresar ERROR;

}

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

{

if(S->top-S->base>=S->stacksize)

{

S->base = (ElemType *)realloc(S->base,(S->stacksize+STACKINCREMENT)*sizeof(ElemType));

if(!S ->base)

{

salir(OVERFLOW);

}

S->arriba = S->base+S ->stacksize;

S->stacksize+=STACKINCREMENT;

}

*S->top++=e;

regresar OK ;

}

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

{

if(S - >top==S->base)

{

devuelve ERROR;

}

*e=*--S - >arriba;

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

// return e;

return 0;

}

anular ClearStack(S

qStack *S)//Limpiar la pila

{

S->top=S->base;

}

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,&e);

interrupción;

caso '@':

ClearStack(S);

interrupción;

predeterminado:

Push(S,ch);

romper;

}

ch = getchar();

}

i = 0;

mientras (!StackEmpty(S))

{

Pop(S,&e);

a[i++]=e;

}

for(--i; i>= 0; i--)

{

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

}

printf("\n");

ClearStack (S);

ch = getchar();

}

devuelve 0;

}

int main(void)

{

SqStack S;

InitStack(&S);

LineEdit(&S);

sistema("pausa");

devuelve 0;

}