Algoritmo
8 de noviembre de 2011
1. Un sistema de compras on-line permite al usuario comprar varios productos en una misma orden de compra. Cada vez que seagrega un producto al carro se conoce el nombre del producto, la cantidad comprada y el valor unitario.
a. Declare una estructura de datos tipo lista lineal enlazada que permita almacenar loproductos agregados al carro de compras de una orden de compra. (8 puntos).
struct nodo{
char nombre[15];
int cantidad;
int valor;
struct nodo *link;
};typedef struct{
int tamano;
struct nodo *head;
}lista;
lista *carro;
b. Defina una función en C, llamada agrega_compra, que reciba por parámetro la listalineal y los datos del producto y permita a agregar a la lista el nuevo producto agregado al carro de compras. (10 puntos).
void agrega_compra(char nombre[15], int cantidad, int valor, lista*carro)
{ struct nodo *nodoaux;
nodoaux = (struct nodo *)malloc(sizeof(struct nodo));
strcpy(nodoaux->nombre, nombre);
nodoaux->cantidad = cantidad;
nodoaux->valor =valor;
nodoaux->link = carro->head;
carro->head = nodoaux;
carro->tamano=carro->tamano + 1;
}
c. Defina una función en C, llamada calcula_total_compra, que reciba por parámetro lalista lineal y calcule el valor total de la orden de compra del usuario, imprimiendo este valor por pantalla. (10 puntos)
void calcula_total_compra(lista *carro)
{ struct nodo *aux;int valor_total=0;
aux=carro->head;
while(aux != NULL)
{ valor_total = valor_total + aux->cantidad*aux->valor;
aux = aux->link;
}printf ("\El valor total de la Compra es: %i", valor_total);
}
d. Diga de qué orden de ejecución es la función anterior. Justifique. (5 puntos).
La función anterior es de orden...
Regístrate para leer el documento completo.