Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Autor: Joel Cesar Fernandez Segura
- Curso: Estructura de Datos
- Ejercicio: VENTA DE POSTRES
- IDE: CodeBlocks
- Pagina Web: http://codebotic.blogspot.com
- */
- #include<iostream>
- #include<cstdlib>
- #define maxchar 50
- using namespace std;
- struct nodo2{
- char ingrediente[maxchar];
- };
- struct nodo{
- char nombre[maxchar];
- float precio;
- int codigo;
- int cantIngred;
- nodo2 ingred[maxchar];
- struct nodo *sgte;
- };
- typedef struct nodo *TPostre;
- /*-------------------- FUNCION MENU PRINCIPAL ------------------*/
- void menu(void){
- cout<<"\n\t\t[ VENTA DE POSTRES ]\n";
- cout<<"\t\t--------------------------------\n\n";
- cout<<" 1. REGISTRAR POSTRE "<<endl;
- cout<<" 2. LISTAR POSTRES "<<endl;
- cout<<" 3. VENDER POSTRE "<<endl;
- cout<<" 4. SALIR "<<endl;
- cout<<"\n Ingrese opcion : ";
- }
- /*------------------- FUNCION REGISTRAR UN POSTRE ------------------*/
- void registrar_postre(TPostre &lista){
- TPostre t,q = new(struct nodo);
- cout<<"\n\n\t\t[ REGISTRO ]\n";
- cout<<"\t\t------------";
- cout<<"\n\tDATOS DEL POSTRE \n";
- cout<<"\n\tCODIGO DE VENTA:"; cin>>q->codigo;
- cin.ignore();cout<<"\n\tNOMBRES:"; cin.getline(q->nombre,maxchar);
- cout<<"\n\tPRECIO:"; cin>>q->precio;
- cout<<"\n\tIngrese Cantidad de Ingredientes:";
- cin>>q->cantIngred;
- for(int i=0;i<q->cantIngred;i++){
- cin.ignore();
- cout<<"\n\tIngrese ingrediente # "<<i+1<<" : ";
- cin.getline(q->ingred[i].ingrediente,maxchar);
- }
- cout<<endl;
- system("cls");
- q->sgte = NULL;
- if(lista==NULL){
- lista = q;
- } else {
- t = lista;
- while(t->sgte!=NULL){
- t = t->sgte;
- }
- t->sgte = q;
- }
- }
- /*-------------------- MOSTRAR LISTA DE POSTRES ------------------*/
- void listar_postres(TPostre q){
- int i=1;
- while(q!=NULL){
- cout<<"\n\n\tDATOS DEL POSTRE ["<<i<<"] ";
- cout<<"\n\t------------------------";
- cout<<"\n\tCODIGO DE VENTA: "<<q->codigo<<endl;
- cout<<"\n\tNOMBRE : "<<q->nombre<<endl;
- cout<<"\n\tPRECIO : "<<q->precio<<endl;
- cout<<"\n\tINGREDIENTES:"<<endl;
- for(int j=0;j<q->cantIngred;j++){
- cout<<endl<<"\t"<<j+1<<".- "<<q->ingred[j].ingrediente;
- }
- q=q->sgte;
- i++;
- }
- }
- /*-------------------- FUNCION VENDER POSTRE ------------------*/
- void vender_postre(TPostre q){
- int cant;
- int cod;
- cout<<"\n\n\n\t";
- cout<<"\n\n\tINGRESE CODIGO DE VENTA:"; cin>>cod;
- while(q!=NULL){
- if(q->codigo==cod){
- system("cls");
- cout<<"\n\tDATOS DEL POSTRE";
- cout<<"\n\t--------------------";
- cout<<"\n\n\tCODIGO : "<<q->codigo<<endl;
- cout<<"\n\tNOMBRE : "<<q->nombre<<endl;
- cout<<"\n\tPRECIO : "<<q->precio<<endl;
- cout<<"\n\tINGREDIENTES:"<<endl;
- for(int j=0;j<q->cantIngred;j++){
- cout<<endl<<"\t"<<j+1<<".- "<<q->ingred[j].ingrediente;
- }
- cout<<"\n\n\tINGRESE CANTIDAD DE PORCIONES:";
- cin>>cant;
- cout<<"\n\n\tTOTAL A PAGAR:"<<cant*q->precio;
- cout<<"\n\n\tGRACIAS POR SU COMPRA.....!!!!!!";
- return;
- }else {
- q=q->sgte;
- }
- }
- if(q==NULL)
- cout<<"\n\tCODIGO INCORRECTO...!!\n";
- }
- /*------------------------FUNCION PRINCIPAL-------------------------*/
- int main(void){
- system("color 0a");
- TPostre lista=NULL;
- int op;
- do{
- menu();
- cin>>op;
- switch(op){
- case 1: registrar_postre(lista);
- break;
- case 2: listar_postres(lista);
- break;
- case 3: vender_postre(lista);
- break;
- case 4: return 0;
- default: cout<<"\nINGRESE UNA OPCION VALIDA...\n"; break;
- }
- cout<<endl;
- system("pause"); system("cls");
- }while(op!=6);
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment