Dev - C++ - Ayuda a migrar Un codigo en c a c++ porfa

 
Vista:

Ayuda a migrar Un codigo en c a c++ porfa

Publicado por Eddy_Freg (1 intervención) el 12/06/2021 18:53:38
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
#include <stdio.h> //ingreso y salida de datos
#include <conio.h>// para captura con getch
#include <stdlib.h>//para limpiar la pantalla (cls)
 
struct datos{
	int id;
	char nom[100];//maximo de caracteres
	float precio;
};
 
typedef struct datos DATO;//para dar un apodo a la estructura
 
 
char MenuPrincipal();
void Crear_menu();
void Mostrar_menu();     //para dar un apodo a la estructura
void Proceso_cobro();
 
 
int main(void){		//main principal
 
	char op;//refiere a los valores de la función inicio
 
	do{
		op = MenuPrincipal();
		switch(op){//para poder controlar las funciónes
			case '1'://llama a la funcion crear menu
				system("cls");
				Crear_menu();
				getch();
			break;
			case '2':
				system("cls");
				Mostrar_menu();
				getch();//esperar en la terminal
			break;
			case '3':
				system("cls");//limpiar la pantalla
				printf("\n\tGracias por la preferencia :D \n\n");//imprime mensaje de
 
			break;
		}
	}
	     while(op != '3');	//minetras la variable sea diferente de 3 se sigue ejecutando
	     return 0;
}
 
char MenuPrincipal(){		// menu principal  el menu que aparece al principio del programa, de aqui retorna la opcion que se escoja
 
	char op;
 
	system("cls");
	printf("\n RESTAURANTE \n");
	printf("\n\t ---- EddyRoll sushi ---- \n\n");
	printf("\n(1) Agregar al Menu");
	printf("\n(2) Mostrar Menu del Dia");
	printf("\n(3) Salir");
	printf("\n Opcion --> ");
	fflush(stdin);//limpia el buffer
	op = getch();/// aqui se captura el valor ingresado (1,2,3) en la variable op
	return op;// retorna la captura anterior para ser recibido en el main principal
}
 
void Crear_menu(){
	FILE *Apun1;//puntero
	DATO e;
	int cantidad;
 
	if((Apun1 = fopen("Menu/carta","ab")) == NULL){//si el apuntador no existe "ab" = escribir en puntero
		printf("Fichero no existe! ");//  arroja el error
	}else{//en caso contrario indicamos al ususario que ingrese los datos
		printf("\n Agregue los platillos del Dia!\n");
		printf("Cuantos platillos desea Agregar en el Menu! : "); // pedimos cuantos platillos se van a mostrar
		fflush(stdin);
		scanf("%i",&cantidad);                         //guardamos la canidad de platillos a agregar
		for(int i=1 ; i<=cantidad ; i++){//lo utilizamos para repetir el ciclo agregar hasta que se complete el valor ingresado de platillos por agregar i++ para que el ID se Autonumere
			e.id = i;                       //declara e inicializa en 1
			printf("\nID: %i\n",i);
			printf("Nombre: ");
			fflush(stdin);
			gets(e.nom);
			printf("Precio: $");
			fflush(stdin);
			scanf("%f",&e.precio);
 
			fwrite(&e,sizeof(e),1,Apun1);// este es el archivo que se crea y almacena los datos es decir escribir en el archivo para guardar ID,platillo y precio
		}
		fclose(Apun1);//cerrar el archivo para evitar errores
	}
}
 
 
void Mostrar_menu(){//funcion para mostrar el contenido/menu
	FILE *Apun2;//declaracion de apuntador
	DATO e;// declaracion de variable tipo estructura
	if((Apun2 = fopen("Menu/carta","rb")) == NULL){//si el fichero no existe  "rb"= a leer puntero
		printf("Fichero no existe! ");//  arroja el error
	}else{//leer el archivo
	fread(&e,sizeof(e),1,Apun2);//leer el archivo
 
	printf("\n\t----EddyRoll sushi----\n");
	printf("\n\t___________________________\n");
	while(! feof(Apun2)){//mientras no se llegue al final del fichero que siga buscando
		printf("\n (%i) %s.......> $%.2f",e.id,e.nom,e.precio);//muestra ordenada la información (tipos de datos y sus variables)para que solo muestre dos decimales sepone %.2f
		fread(&e,sizeof(e),1,Apun2);//leer apuntador
	}
	printf("\n___________________________\n");
	}
	fclose(Apun2);//cerrar el fichero
 
	Proceso_cobro();//llama a la funcion proceso cobro
}
 
 
void Proceso_cobro(){
	FILE *Apun3;
	DATO e;
	int op,cant; 	//Opcion que se quiere vender y la cantidad ,  de lo que se va a vender
	int pedidos[10],cantidad[10],contador=0;	//en los Array es donde se almacena , el ID cada platillo que el cliente pide
	float efectivo=0,subtotal=0,iva=0,total=0;	//Aquise calcula el cobro efectivo es el dinero que nos da el cliente
	if((Apun3 = fopen("Menu/carta","rb")) == NULL){//si el fichero no existe
		printf("¡¡¡Apuntador inexistente!!!");//  arroja el error
	}else{
		printf("\nSi termino su orden marque la opcion 0 \n");
		do{
			contador++;
			printf("\n Pedido --> #%i: ",contador);	//para ir guardando los productos consumidos
			scanf("%i",&op);
			if(op != 0){
				pedidos[contador] = op;
				printf("\n Cantidad del Pedido --> #%i: ",contador);
				scanf("%i",&cant);
				cantidad[contador] = cant;
			}
		}while(op != 0);//para salir del cobro
		contador = 0;
		system("cls");
 
		fread(&e,sizeof(e),1,Apun3);
		while(!feof(Apun3)){
			contador++;
			if(pedidos[contador] == e.id){
				printf("\n\t*%i......%s........:$%.2f = $%.2f",cantidad[contador],e.nom,e.precio,(cantidad[contador] * e.precio));
				subtotal = subtotal + (cantidad[contador] * e.precio);
			}
			fread(&e,sizeof(e),1,Apun3);
		}
 
		iva = (subtotal * 16) / 100;  	//calculo del IVA
		total = subtotal + iva;
		printf("\n\n");
		printf("\tSUBTOTAL....................: $%.2f \n",subtotal);
		printf("\tIVA.........................: $%.2f \n",iva);
		printf("\tTOTAL.......................: $%.2f \n",total);
 
		printf("\n\n");
		printf("\tRecibido....................: $");
		scanf("%f",&efectivo);
		printf("\n\tCAMBIO......................: $%.2f \n",(efectivo - total));
 
		printf("\n\n\t ***Gracias por Venir a EddyRoll***\n\n");
	}
	fclose(Apun3);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-2
Responder