C Código del sistema de gestión de ventas de productos básicos ~ Simple
#include
#include
estructura typedef
{
número de char [10];
nombre de char[20];
precio flotante;
monto int; p>
}Producto;
typedef struct node
{
Producto p;
struct node *pre; p>
estructura nodo *siguiente;
}nodo,*lista de enlaces;
encabezado de lista de enlaces, último;
void setData(lista de enlaces p) 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() p>
{
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=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; p >
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"); p>
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;
} p>
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;
}