Red de conocimiento informático - Consumibles informáticos - C Código del sistema de gestión de ventas de productos básicos ~ Simple

C Código del sistema de gestión de ventas de productos básicos ~ Simple

#include

#include

#include

estructura typedef

{

número de char [10];

nombre de char[20];

precio flotante;

monto int;

}Producto;

typedef struct node

{

Producto p;

struct node *pre;

estructura nodo *siguiente;

}nodo,*lista de enlaces;

encabezado de lista de enlaces, último;

void setData(lista de enlaces p)

p>

{

printf("Número de producto: ");

scanf("%s",&p->p.num);

printf("Nombre del producto:");

scanf("%s",&p->p.name);

printf("Precio unitario del producto :");

p>

scanf ("%f",&p->p. precio);

printf ("Cantidad de producto: ");

scanf ("%d", &p->p.amount);

}

void Insert(lista de enlaces p)

{

setData(p);

p->siguiente=último;

último->pre>siguiente=p;

p->pre=último ->pre;

último->pre=p;

}

void Add()

{

char ch;

hacer

{

lista de enlaces p=(lista de enlaces)malloc(sizeof(node));; system()

system("cls");

Insertar(p);

printf("¿Continuar?");

scanf(" %c", &ch);

} while(ch=='y'||ch=='Y');

}

lista de enlaces Qur()

{

char num[10];

lista de enlaces p=head->siguiente;

printf ("Ingrese el número de producto:") ;

scanf("%s",num);

while(p! =último)

{

if(strcmp(num,p->p.num)==0) break;

p=p->siguiente ;

}

if(p==último) {printf("\n no encontrado");system("pausa");}

return p;

}

anular Del()<

/p>

void Del()

if(strcmp(num,p->p.p>{

lista de enlaces p=Qur();

if(p==último) return;

p->pre->siguiente=p->siguiente;

p->siguiente->pre=p->pre;

free(p);

printf("Eliminación exitosa\n");

system("pausa");

}

void Modify()

{

lista de enlaces p=Qur();

if(p== último) return <; /p>

setData(p);

}

void printTitle()

{

printf("No. \nombre\precio unitario\cantidad\n");

}

void show( lista de enlaces p)

{

printf( " %s\t%s\t%.2f\t%d\n",p->p.num,p->p.nombre,p->p.precio,p->p.monto);< / p>

}

void Tongji()

{

lista de enlaces p=head->siguiente;

int i = 0;

printTitle();

while(p!=last)

{

show(p);

p=p->siguiente;

i++;

}

printf("***%d elemento elemento\n", i );

sistema("pausa");

}

void Sort()

{

lista de enlaces p,q;

para (p=head->siguiente;p!=last;p=p->siguiente)

{

para ( q=p->siguiente;q!=último;q=q->siguiente)

{

if (strcmp(p->p.num,q->p num)<0)

{

Producto temp=p->p;

p->p=q->p;

q->p=temp;

}

}

printf("terminado \n");

sistema ( "pausa");

}

void Save()

{

lista de enlaces p=head->siguiente;

ARCHIVO *fp=fopen("d. / /record:\record.txt", "w");

if(fp==NULL)

{

printf("no se pudo guardar\n");

return;

}

fprintf(fp, "número\ t nombre\t precio unitario\t cantidad\n");

while(p! =

último)

{

fprintf(fp,"%s\t%s\t%.2f\t%d\n",p->p.number,p- >p.nombre,p->p.precio,p->p.monto);

p=p->siguiente;

}

fclose (fp);

printf("hecho\n");

sistema("pausa");

}

void Disp()

{

lista de enlaces p=head->siguiente;

printTitle();

while(p!=último )

{

show(p);

p=p->siguiente;

}

sistema("pausa ");

}

void Wrong()

{

printf("¡Error de entrada!\n");

sistema("pausa");

}

menú nulo(nulo)

{

sistema(" cls");

printf("******** Sistema de gestión de comercialización *******\n");<

printf("* * \n");

printf("* 1:Agregar *\n");

printf("* 2:Eliminar *\n");

printf("* 3:Consulta *\n");

printf("* 4:Cambiar *\n");

printf("* 5: Modificar* \n");

printf("* 5:Insertar *\n");

printf("* 6:Contar *\n");

printf( "* 7:Descendente *\n");

printf("* 8:Tienda *\n");

printf("* 9: Mostrar datos*\n" );<

printf("* 0:salir *\n");

printf("* * *\n");

printf( "******************************\n");

}

int select()

{

int elija;

scanf("%d",&choose);

switch( elija )

{

caso 1:Add();break;

caso 2:Del();break;

caso 3:

{

lista de enlaces p=Qur();

if(p! =último) {show(p);system("pausa");}romper;

}

caso 4:Modificar();romper;<

caso 5:

{

lista de enlaces p=(lista de enlaces)malloc(tamañode(nodo));

Insertar(p);romper;

}<

/p>

caso 6:Tongji();romper;

caso 7: Ordenar();romper;

caso 8:Guardar();romper;

caso 9:Disp();romper;

caso 0:romper;

predeterminado:Incorrecto();romper;

}

volver elegir;

}

void destroy()

{

lista de enlaces p=head->siguiente;

mientras(p!=último)

{

cabeza-& gt;siguiente=p->siguiente;

libre( p);

p=head->siguiente;

}

gratis(cabeza);

gratis(último);

}

int main(void)

{

head=(lista de enlaces)malloc(tamañode(nodo)) ;

last=(lista de enlaces)malloc(sizeof(node));

head->next=last;

last ->next=NULL;

last->pre=head;

head->pre=NULL;

hacer

{

menú();

} mientras (select()!= 0);

destruir();

devolver 0;

}