Yahoo C++
https://ar.answers.yahoo.com/question/index?qid=20161113125329AABFKOT
Necesito hacer un programa donde un método reciba un arreglo con todas las letras del abecedario y me las imprima:
a
bb
ccc
...
hasta tener 27 z´s
Les agradecería si me dan unas pistas para poder hacerlo, mi idea es utilizar dos ciclos for, pero no se como seguir desarrollándolo.
Gracias de antemano.
Necesito hacer un programa donde un método reciba un arreglo con todas las letras del abecedario y me las imprima:
a
bb
ccc
...
hasta tener 27 z´s
Les agradecería si me dan unas pistas para poder hacerlo, mi idea es utilizar dos ciclos for, pero no se como seguir desarrollándolo.
Gracias de antemano.
Seguir
2 respuestas
Respuestas
Calificación
Hola:
El procedimiento es el siguiente
Tendras que hacer dos fores, uno que avance cada letra, el otro la cantidad de repeticiones
la funcion char(numero) convierte el valor ascii a su caracter correspondiente
la funcion int(letra) devuelve el valor ascii de la letra
te recuerdo que el codigo ascii no incluye la ñ en el lugar que conocemos, asi que la cuenta la saltea, de todos modos hacendo un extra bastante rebuscado, se puede hacer que la incluya
#include <stdio.h>
main(){
int i, j;
for(i=0;i<26; i++){
for(j=0; j <(i+1);j++){
printf("%c", char(int('a') +i));
}
printf("\n");
}
getchar();
}
Para incluir la ñ quedaria asi
#include <stdio.h>
#include <stdlib.h> /*acceso al sistema*/
main(){
system("MODE CON: lines=30 cols=40");
system("COLOR 1F");
int i, j, k=0;
for(i=0;i<26; i++){
if( char(int('a')+ i) == 'o'){
for(j=0; j <(i);j++) printf("%c", char(164));
printf("\n"); /*char 165 mayuscula 164 minuscula*/
k=1;
}
for(j=0; j <(i+1 +k);j++){
printf("%c", char(int('a') +i));
}
printf("\n");
if( char(int('a')+ i) == 'n'){ printf("%c", char(164)); i= i++; }
}
getchar();
}
Si queremos que sea mayuscula debemos poner A en lugar de a y O en lugar de o
y 165 donde 164
Saludos
Antonio
----------------------------------------------------------------------------------------
https://ar.answers.yahoo.com/question/index?qid=20161231090917AAAQWld
Quiero realizar un programa que le solicite al usuario que ingrese un número entre 15 y 30, y el programa muestre las distintas posibilidades sumando 5 números sin repetición (tomando sólo en cuenta números del 1 al 8 ).
Ejemplo:
Ingrese un número: 27
Las distintas posibilidades son:
1) 1, 5, 6, 7, 8
2) 2, 4, 6, 7, 8
3) 3, 4 ,5 ,7, 8
Y no tengo idea de como hacerlo, si alguien sería tan amable de apoyarme se los agradeceré bastante.
Aqui el codigo que busca estos numeros:
#include <stdio.h>
#include <stdlib.h>
int a, b, c, d, e, nume;
int min=1;
int max=8;
main(){
system("Mode con: lines=500 cols=80"); /*para listas muy largas*/
printf("Ingrese numero: ");
scanf("%i", &nume);
fflush(stdin);
printf("Su numero es: %2d ;\n", nume);
for(a=min; a<max +1; a=a+1)
{for(b=min; b<max +1; b=b+1)
{for(c=min; c<max +1; c=c+1)
{for(d=min; d<max +1; d=d+1)
{for(e=min; e<max +1; e=e+1)
{
if((a + b + c + d + e) == nume )
{if( a < b && b < c && c < d && d < e)/*de menor a mayor .. poner // delante para todas*/
{if (a!=b && a!=c &&a!=d && a!=e )
{if ( b!=c &&b!=d && b!=e )
{if (c!=d && c!=e )
{if (d!=e)
{
printf("%2d;%2d;%2d;%2d;%2d\n", a, b, c, d, e );
}}}}}} /*de menor a mayor .. poner asi para ver todas }}}}}//} */
}}}}
}
printf("\n\nFIN DEL PROGRAMA");
getchar();
}//fin del main
-------------------------------------------------------------------------------
/*Quisiera una ayuda para este problema:
Dado un numero entero psitivo N, dibujar el siguiente cuadrado:
Ingrese N:4
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
Mi codigo hasta ahora es:*/
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
int n,i,j,k;
cout<<"Ingresar un numero positivo:";
cin>>n;
for(j=0; j<n; j++)
{
for(i=j; i<n; i++){cout<<i+1<<" ";}
for(k=j; k>0; k--){cout<<j-k+1<<" ";}
cout<<"\n";
}
system("pause");
return 0;
}
Otro pidio en yahoo preguntas-programacion un codigo que escribiera en un archivo de texto n numeros pares segun se pidiera, esta fue mi repuesta
#include <stdio.h>
#include <stdlib.h>
int i, j;
char orden[30];
main(){
printf("Ingrese cuantos numeros pares quiere generar: ");
scanf("%i", &i);
fflush(stdin); //descarga buffer del teclado del enter residual
system("@Echo off");
//le dice al sistema que oculte las ordenes y muestre solo resultados
for(j=1; j<i+1; j++){
sprintf(orden, "Echo %3d; %s", j * 2, ">>NumPares.txt");
//arma la cadena orden que es enviada al sistema
system(orden);
printf("%3d; ", j*2);
//muestra por pantalla
}
printf("\n\n"); // hace dos saltos de linea
system("pause");
//detiene la ejecucion para mostrar pantalla
}
El procedimiento es el siguiente
Tendras que hacer dos fores, uno que avance cada letra, el otro la cantidad de repeticiones
la funcion char(numero) convierte el valor ascii a su caracter correspondiente
la funcion int(letra) devuelve el valor ascii de la letra
te recuerdo que el codigo ascii no incluye la ñ en el lugar que conocemos, asi que la cuenta la saltea, de todos modos hacendo un extra bastante rebuscado, se puede hacer que la incluya
#include <stdio.h>
main(){
int i, j;
for(i=0;i<26; i++){
for(j=0; j <(i+1);j++){
printf("%c", char(int('a') +i));
}
printf("\n");
}
getchar();
}
Para incluir la ñ quedaria asi
#include <stdio.h>
#include <stdlib.h> /*acceso al sistema*/
main(){
system("MODE CON: lines=30 cols=40");
system("COLOR 1F");
int i, j, k=0;
for(i=0;i<26; i++){
if( char(int('a')+ i) == 'o'){
for(j=0; j <(i);j++) printf("%c", char(164));
printf("\n"); /*char 165 mayuscula 164 minuscula*/
k=1;
}
for(j=0; j <(i+1 +k);j++){
printf("%c", char(int('a') +i));
}
printf("\n");
if( char(int('a')+ i) == 'n'){ printf("%c", char(164)); i= i++; }
}
getchar();
}
Si queremos que sea mayuscula debemos poner A en lugar de a y O en lugar de o
y 165 donde 164
Saludos
Antonio
----------------------------------------------------------------------------------------
https://ar.answers.yahoo.com/question/index?qid=20161231090917AAAQWld
Quiero realizar un programa que le solicite al usuario que ingrese un número entre 15 y 30, y el programa muestre las distintas posibilidades sumando 5 números sin repetición (tomando sólo en cuenta números del 1 al 8 ).
Ejemplo:
Ingrese un número: 27
Las distintas posibilidades son:
1) 1, 5, 6, 7, 8
2) 2, 4, 6, 7, 8
3) 3, 4 ,5 ,7, 8
Y no tengo idea de como hacerlo, si alguien sería tan amable de apoyarme se los agradeceré bastante.
Aqui el codigo que busca estos numeros:
#include <stdio.h>
#include <stdlib.h>
int a, b, c, d, e, nume;
int min=1;
int max=8;
main(){
system("Mode con: lines=500 cols=80"); /*para listas muy largas*/
printf("Ingrese numero: ");
scanf("%i", &nume);
fflush(stdin);
printf("Su numero es: %2d ;\n", nume);
for(a=min; a<max +1; a=a+1)
{for(b=min; b<max +1; b=b+1)
{for(c=min; c<max +1; c=c+1)
{for(d=min; d<max +1; d=d+1)
{for(e=min; e<max +1; e=e+1)
{
if((a + b + c + d + e) == nume )
{if( a < b && b < c && c < d && d < e)/*de menor a mayor .. poner // delante para todas*/
{if (a!=b && a!=c &&a!=d && a!=e )
{if ( b!=c &&b!=d && b!=e )
{if (c!=d && c!=e )
{if (d!=e)
{
printf("%2d;%2d;%2d;%2d;%2d\n", a, b, c, d, e );
}}}}}} /*de menor a mayor .. poner asi para ver todas }}}}}//} */
}}}}
}
printf("\n\nFIN DEL PROGRAMA");
getchar();
}//fin del main
-------------------------------------------------------------------------------
/*Quisiera una ayuda para este problema:
Dado un numero entero psitivo N, dibujar el siguiente cuadrado:
Ingrese N:4
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
Mi codigo hasta ahora es:*/
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
int n,i,j,k;
cout<<"Ingresar un numero positivo:";
cin>>n;
for(j=0; j<n; j++)
{
for(i=j; i<n; i++){cout<<i+1<<" ";}
for(k=j; k>0; k--){cout<<j-k+1<<" ";}
cout<<"\n";
}
system("pause");
return 0;
}
Otro pidio en yahoo preguntas-programacion un codigo que escribiera en un archivo de texto n numeros pares segun se pidiera, esta fue mi repuesta
#include <stdio.h>
#include <stdlib.h>
int i, j;
char orden[30];
main(){
printf("Ingrese cuantos numeros pares quiere generar: ");
scanf("%i", &i);
fflush(stdin); //descarga buffer del teclado del enter residual
system("@Echo off");
//le dice al sistema que oculte las ordenes y muestre solo resultados
for(j=1; j<i+1; j++){
sprintf(orden, "Echo %3d; %s", j * 2, ">>NumPares.txt");
//arma la cadena orden que es enviada al sistema
system(orden);
printf("%3d; ", j*2);
//muestra por pantalla
}
printf("\n\n"); // hace dos saltos de linea
system("pause");
//detiene la ejecucion para mostrar pantalla
}
VECTOR DE ENTEROS: Declaración estatica y creación Dinámica:
Proposito: Definir cuantos elementos se van a ingresar.
https://ar.answers.yahoo.com/question/index?qid=20170706192021AAfXKCt
-----------------------------------------------------------------
Andres pregunta ¿Ayuda con el inventario de una tienda en c++?
El menú principal del programa debe tener dos opciones: Administrador, Cliente
Si ingresa por administrador debe solicitar una clave, si se digita correctamente debe ir al menú de administrador que tiene las siguientes opciones: cambio de clave, inventario, contabilidad, suministrar y salir (ir al menú principal).
4. En cambio de clave debe solicitar la clave actual, si se digita correctamente debe solicitar la nueva clave, y dar el mensaje su clave se cambió con éxito y preguntar si desea volver al menú de administrador. Si digita erróneamente la clave actual tres veces se debe enviar un mensaje de bloqueo y preguntar si quiere ir al menú principal. Al iniciar el programa por primera vez la clave actual debe ser 1234.
5. En inventario, se debe mostrar la cantidad que queda en cada uno de los productos, y un mensaje de alerta si algún producto tiene menos de 5 existencias.
6. En contabilidad se debe mostrar la lista de productos vendidos, con la cantidad vendida de cada uno, el valor unitario y total de cada producto, y el total de ventas por todos los productos
tengo problemas con la clave no se como hacerlo
REPUESTA: Desarrollo del código a continuacion:
Primero, haremos un nuevo proyecto en una carpeta, donde ponderemos todos los archivos que se iran usando y generando en el proyecto. Tenemos al menos 3 archivos de disco, uno guardara la contraseña del administrador, otro la contraseña de los clientes o usuarios y un tercero que llevará los productos comercializados.
Luego habra varios menus de acceso segun la operacion autorizada, uno para el admnistrador, otro para los usuarios(ingreso) y otro para las operaciones con productos a realizar,
Como no se menciona un medio gráfico para la presentación, lo haremos totalmente en consola.
Inclui una facturacion con Iva Discriminado y descuentos segun el pago, ademas los productos a vender, tienen distintos margenes de ganancia segun la categoría (gaseosas 10%, cigarrillos 20% etc)
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int maxU=100;
const int item=6; /*max productos x factura*/
const char arch[10]= "Num.dat\0"; /*nombre archivo aux nro factura*/
const int maxP=500; /*max de productos*/
float Total=0, Dcto=0, STot=0, desc;
float tabla[item][3];/*[i][0]cantidad;[i][1]codigo; [i][2]precio*/
char Nombre[21], fpa;
char fecha[20];
FILE *Ar;
FILE *Reg;
FILE *PPr, *ppr;
void Amain();
void menuA();
void menuU();
void CambiaNPA();
void ApenRU();
void FACmain();
void Recup();
void Mostrar();
void siguefac();
void FACver();
void cargaP();
void ApenPrPr();
void PedidoPr(char kat, int Merc);
void reponePro();
int muestraP();
struct persona{
char Ape[20];
char Name[20];
char DNI[10];
char Nick[10];
char Pass[10];
char atri; /* U = usuario comun. limitar acceso o proveedor*/
char Email[30];
char Tel[15];
} Ad, Usu[maxU];
struct producto{
char NPr[30]; /*nombre*/
char DPr[30]; /*Detalle*/
int StPr; /*existencia o stock*/
int Alarm; /*existencia minima disp pedido*/
float PrePr; /*precio costo o reposicion*/
char Cat; /*Categoria (si se usa)*/
}Pro[maxP];
main(){
Amain();
}
void Amain()
{
system("COLOR F1");
char op;
printf("Ingrese Tipo Usuario\n A = Administrador\n U = Usuario(Cliente o vendedor)\n Opcion: ");
op=getchar();
do{
if(op== 'A' || op=='a')menuA();
else if(op== 'U' || op=='u')menuU();
else {
printf("\nEl tipo de Usuario tipeado No Es Valido.\n Reingrese Tipo: ");
op=getchar();
}
}while(op !='A' || op != 'a' || op != 'U' || op != 'u');
}/************** Amain **********/
void menuU(){
int i;
char NN[20];
char PS[20];
char sele;
Ar=fopen("USUARIO.DAT", "r+");
if (Ar != NULL)
{/**/
fread(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}/**/
fflush(stdin);
printf("\nIngrese su Nick Name de Usuario: ");
gets(NN); fflush(stdin);
printf("\nIngrese su Pass Word de Usuario: ");
gets(PS); fflush(stdin);
for(i=0; i< maxU; i++)
{/***/
if(strcmp(Usu[i].Pass, PS)== 0 && strcmp(Usu[i].Nick, NN)==0)/****/
{
break;
printf("\nAcceso Permitido como Usuario\n");
}
if(i==(maxU - 1))
{
printf("\a\a\a\nDatos No Validos Salida del Programa\n");
getchar();
exit(2);
}/****/
}/**for**/
printf("\nAcceso Permitido como Usuario\n\n");
printf("\nMENU de USUARIOS\n\n"
"0) Cambio Nick y Pass Usuario\n"
"1) Venta (Factura)\n"
"2) Agregar Productos\n"
"3) Mostrar Listado Productos\n"
"4) Reponer Producto\n"
"5) Salir \n"
" Eleccion: ");
sele=getchar(); fflush(stdin);
switch(sele){
case '0':
printf("\nIngrese su Nick Name de Usuario: "); gets(Usu[i].Nick); fflush(stdin);
printf("\nIngrese su Pass Word de Usuario: "); gets(Usu[i].Pass); fflush(stdin);
freopen("USUARIO.DAT", "w+",Ar);
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
Amain();
break;
case '1':
FACmain();
break;
case '2':
cargaP();
break;
case '3':
system("COLOR 2C");
system("MODE CON: Lines=150 Cols=100");
Reg=fopen("PRODUCTO.DAT", "r+");
if(Reg != NULL)fread(&Pro, sizeof(Pro), 1, Reg);
else{printf("Error, no se pudo leer archivo de productos"); getchar(); break;}
system("CLS");
printf("%5s;%20s;%30s;%6s; %8s\n", "Cod", "Articulo", "Detalle Articulo", "Stock", "Prec Rep");
for(i=0; i< maxP; i++)
{/*for*/
if(Pro[i].NPr[0]=='\0') break;
printf("%5d;%20s;%30s;%6d; %6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr);
}/**for**/
getchar();
system("MODE CON: Lines=50 Cols=80");
break;
case '4': reponePro();
case '5': exit(0);
break;
default: printf("La Opcion Ingresada No es Valida \n");
system("PAUSE");
break;
}
Amain();
}/******* menuU *******/
void menuA(){
char NN[20];
char PS[20];
char sele;
Ar=fopen("ADMIN.DAT", "r+");
if (Ar == NULL){/**/
Ar=fopen("ADMIN.DAT", "w+");
sprintf(Ad.Nick, "%s", "Admin");
sprintf(Ad.Pass, "%s", "1234");
fwrite(&Ad, sizeof(Ad), 1, Ar);
fclose(Ar);
fflush(stdin);
}/**/
if (Ar != NULL)//else
{/*2*/
fread(&Ad, sizeof(Ad), 1, Ar);
fclose(Ar);
//}
fflush(stdin);
printf("\nIngrese su Nick Name de Administrador: ");
gets(NN); fflush(stdin);
if(strcmp(Ad.Nick, NN)== 0){/***/
printf("\nIngrese su Pass Word de Administrador: ");
gets(PS); fflush(stdin);
if(strcmp(Ad.Pass, PS)== 0){/****/
fflush(stdin);
printf("\n"
"0) Cambio Nick y Pass Administrador\n"
"1) Nuevo Usuario\n"
"2) Recupero o Modificacion Usuario\n"
"3) Mostrar Listado Usuarios\n"
"4) Nuevo Proveedor\n"
"5) Salir \n"
" Eleccion: ");
sele=getchar(); fflush(stdin);
switch(sele){
case '0': CambiaNPA(); //menuA();
break;
case '1': ApenRU(); //menuA();
break;
case '2': Recup(); //menuA();
break;
case '3': Mostrar(); //menuA();
break;
case '4': ApenPrPr(); //menuA();
break;
case '5': exit(0);
break;
default: printf("La Opcion Ingresada No es Valida \n");
system("PAUSE");
break;
}
}else {printf("\nDato No Valido\n"); getchar();}/****/
}else {printf("\nDato No Valido\n"); getchar();}/***/
}/*2*/
Amain();
} /************ void menuA ********/
void FACmain()
{
int ii;
system("COLOR 3A");
for(ii=0; ii<item; ii++)
{
fflush(stdin);
tabla[ii][1]= float(muestraP());
/*ingreso codigo articulo vendido*/
do{
printf("\nINGRESE LA CANTIDAD DEL ARTICULO VENDIDO: ==> ");
scanf("%f",&tabla[ii][0]); fflush(stdin);
if(tabla[ii][0]==0) break;//fin de carga
if(int(tabla[ii][0]) > (Pro[int(tabla[ii][1])].StPr))
{
printf("La cantidad que quiere vender es superior al Stock");
getchar();
}
}while( int(tabla[ii][0]) > Pro[int(tabla[ii][1]) ].StPr );
Pro[int(tabla[ii][1])].StPr = Pro[ int(tabla[ii][1]) ].StPr - int(tabla[ii][0]);
freopen("PRODUCTO.DAT", "w+", Reg);
fwrite(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);/*descuento del stock*/
if(Pro[int(tabla[ii][1])].StPr <= Pro[int(tabla[ii][1])].Alarm)
PedidoPr(Pro[int(tabla[ii][1])].Cat, int(tabla[ii][1]) ); /*pedido reposicion automatico*/
fflush(stdin);
if(Pro[ int(tabla[ii][1])].Cat=='G') tabla[ii][2] = Pro[int(tabla[ii][1])].PrePr *1.30; //si es G
else if(Pro[ int(tabla[ii][1])].Cat=='C') tabla[ii][2] = Pro[int(tabla[ii][1])].PrePr *1.40; //si es C
else if(Pro[ int(tabla[ii][1])].Cat=='B') tabla[ii][2] = Pro[int(tabla[ii][1])].PrePr *1.20; //si es B
else tabla[ii][2] = Pro[int(tabla[ii][1])].PrePr *1.50; //si es sin Cat
//se puede modificar segun categoria producto por el margen de ganancia (C cigarrillos, G gaseosas, F fiambres, ETC)
Genera automaticamente el pedido de presupuesto al proveedor por categoria y se repone cuando es recibido (no se ha previsto actualizacion precio)
getchar();
system("CLS");
}//for carga
siguefac();
}
void siguefac(){
fflush(stdin);
printf("INGRESE Nombre Cliente "); gets(Nombre);
printf("\nF O R M A D E P A G O\n"
"(1)=Tarjeta Credito 1 pago;(Precio de Lista)\n"
"(2)=Tarjeta Credito 3 pagos; (Recargo=5%)\n"
"(3)=Tarjeta Credito 6 pagos; (Recargo=10%) \n"
"(4)=Tarjeta Debito; (Precio de Lista)\n"
"(5)Efectivo (Descuento 20%)\n"
"(Forma de Pago ==> ");
fpa= getchar(); fflush(stdin);
desc=0;
if(fpa=='1')desc = 0; //5% para 1 y 3 pagos, 10% para 6 pagos
if(fpa=='2')desc = -5;
if(fpa=='3')desc = -10;
if(fpa=='4')desc = 0;
if(fpa=='5')desc = 20;
FACver();
system("PAUSE");
exit(0);
} /******* siguefac() ********/
void FACver()
{
int fi;
system("COLOR 1F");
system("MODE CON: lines=50 Cols=80");
/* incrementador nro factura */
int nf=0;
if((Reg=fopen(arch,"r+"))!= NULL)
{
fread(&nf, sizeof(nf),1,Reg);
fclose(Reg);
}
nf=nf +1;
Reg=fopen(arch, "w+");
fwrite(&nf, sizeof(nf), 2, Reg);
fclose(Reg);
/* */
time_t t;
struct tm *ahora;
time(&t);
ahora = localtime(&t);
sprintf(fecha, "%02d/%02d/%02d; %02d:%02d", ahora->tm_mday, ahora->tm_mon + 1,ahora->tm_year -100, ahora->tm_hour, ahora->tm_min);
printf(" **** ESTA ES LA FACTURA CARGADA POR USTED **** ");
printf("\nÃ-----------------------------"
"--------------------------------´\n");
printf("³ SUPEMERCADO SHAO CHINI CUIT:304567654567; %18s³\n", fecha);
printf("³ Mayorista Y Minorista IngBr: 90222343344; Inic.Act 02/02/95³\n");
printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´\n");
printf("³Cliente:%20s/" ,Nombre);
printf("FdP:%c; ", fpa);
printf("[ %14s%#07d] ³\n", "Fact Nø 00032", nf);
printf("ÃÄÄÄÄÂÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄ´\n");
printf("³Cant³Cod.³ Detalles del ³Precio³ Sub ³Rec.");
if(fpa < '5') printf("%2d%c", int(-desc),'%'); else printf("%2d%c", 0,'%');
printf("³ SUB ³\n");
printf("³Art.³Art.³ Articulo ³Unit ³ Total ³Dto.");
if(fpa == '5') printf("%2d%c", int(desc),'%'); else printf("%2d%c", 0,'%');
printf("³ TOTAL ³\n");
printf("ÃÍÍÍÍÅÍÍÍÍÅÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÅÍÍÍÍÍÍÅÍÍÍÍÍÍÍÅÍÍÍÍÍÍÍÅÍÍÍÍÍÍÍÍ´\n");
for(fi=0; fi<item; fi++)
{/* for*/
if(tabla[fi][0]!=0){
printf("³%4.0f³",tabla[fi][0]);
printf(" %02.0f³",tabla[fi][1]);
printf("%19s³", Pro[ int(tabla[fi][1]) ].NPr);
printf("%6.2f³",tabla[fi][2]);
STot=tabla[fi][0]*tabla[fi][2];
printf("%7.2f³",STot);
Dcto=(STot * desc)/100;
if(fpa < '5')printf("%7.2f³",-Dcto); else printf("%7.2f³",Dcto);
printf("%8.2f³\n",STot-Dcto);
/*[i][0]cantidad;[i][1]codigo; [i][2]precio*/
Total= Total + (STot - Dcto);
}
else
{
printf("³----³----³-------------------³------³-------³-------³--------³\n");
}
printf("ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´\n");
}//del for
printf("ÃÄÄÄÄÁÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ´\n");
printf("³ *** EL TOTAL DE LAS OPERACIONES ES: ÍÍÍÍÍÍ> %13.2f³\n", Total);
//printf("ÃÄÄÄÄÁÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ´\n");
printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´\n");
printf("³ Sin Impuesto: %8.2f; <<< >>> IVA: 20%c: %8.2f%10s³\n", Total * 0.83334, '%', (Total - (Total *0.83334)),"");
printf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n\n");
} //fin del void mostrar
void cargaP(){
char ot;
int i;
Reg=fopen("PRODUCTO.DAT", "r+");
if (Reg == NULL){/**/
printf("\nHa habido un error al intentar Leer el Archivo de PRODUCTOS\n"
"SE CREARA UN NUEVO ARCHIVO\n");
system("PAUSE");
Reg=fopen("PRODUCTO.DAT", "w+");
if (Reg == NULL){/***/
printf("\nHa habido un error al intentar crear el Archivo de PRODUCTOS\n");
system("PAUSE");
exit(5);
}/* si la creacion fracaso sale, sino crea y escribe vacio*/
fwrite(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);/*creacion nuevo archivo registro de USUARIOS*/
}/***/
else
for(i=0; i<maxP; i++)if(Pro[i].NPr[0]=='\0') break;
for(i; i<maxP; i++)/**for**/
{
printf("\nIngrese Nombre Producto: "); gets(Pro[i].NPr); fflush(stdin);
printf("\nIngrese Detalle Producto: "); gets(Pro[i].DPr); fflush(stdin);
printf("\nIngrese Existencia Inicial Producto: "); scanf("%i", &Pro[i].StPr); fflush(stdin);
printf("\nIngrese Existencia Minima Producto: "); scanf("%i", &Pro[i].Alarm); fflush(stdin);
printf("\nIngrese Costo Reposicion Producto: "); scanf("%f", &Pro[i].PrePr); fflush(stdin);
printf("\nIngrese Categoria (B; C; G; F)Producto: "); Pro[i].Cat = getchar(); fflush(stdin);
if(Pro[i].Cat=='\n') Pro[i].Cat='F';
printf("\nCargara otro Producto? S=Si, N=No: ");
ot=getchar(); fflush(stdin);
if(ot=='n' || ot=='N')break;
system("CLS");
}/**for**/
freopen("PRODUCTO.DAT", "w+", Reg);
fwrite(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);
}/************ FACver *******/
int muestraP(){
char ini, nu;
int i, f, g;
Reg=fopen("PRODUCTO.DAT", "r+");
fread(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);
system("CLS");
printf("(Espacio=Fin Carga Articulos; LETRA INICIO del producto: "); ini=getchar();
if(ini==char(32)) siguefac();
printf("Lista Productos Pedidos\n");
f=0;
printf("%5s;%20s;%30s;%6s;%6s\n", "Cod", "Articulo", "Detalle Articulo", "Stock", "Precio");
for(i=0; i< maxP; i++)
{/*for*/
if(ini==Pro[i].NPr[0] || ini == char(int(Pro[i].NPr[0])+32) )
{
f=f+1;
if(Pro[ int(tabla[i][1])].Cat=='G')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.30);
else if(Pro[ int(tabla[i][1])].Cat=='C')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.40);
else if(Pro[ int(tabla[i][1])].Cat=='B')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.20);
else
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.50);
}/*if*/
}/**for**/
if(f<1)
{
printf("NO SE ENCONTRO PRODUCTO QUE INICIE CON ESA LETRA\n");
system("PAUSE");
fflush(stdin);
muestraP();
}
printf("INGRESE EL CODIGO DEL PRODUCTO A VENDER: "); scanf("%i", &g); fflush(stdin);
return g;
}/*********** muestraP **************/
void CambiaNPA(){
Ar=fopen("ADMIN.DAT", "w+");
if (Ar == NULL){
printf("\nHa habido un error al intentar crear el Archivo de Administrador\n");
system("PAUSE");
exit(5);
}
printf("\nIngrese Apellido Administrador: "); gets(Ad.Ape); fflush(stdin);
printf("\nIngrese Nombre Administrador: "); gets(Ad.Name); fflush(stdin);
printf("\nIngrese DNI Administrador: "); gets(Ad.DNI); fflush(stdin);
printf("\nIngrese su Nick Name de Administrador: "); gets(Ad.Nick); fflush(stdin);
printf("\nIngrese su Pass Word de Administrador: "); gets(Ad.Pass); fflush(stdin);
Ad.atri='T';
fwrite(&Ad, sizeof(Ad), 1, Ar);
fclose(Ar);
system("CLS");
printf("\nCONFIRMACION NICKNAME Y PASSWORD\n");
Amain();
}/******** CambiaNPA *********/
void ApenRU(){
char ot;
int i;
Ar=fopen("USUARIO.DAT", "r+");
if (Ar == NULL){/**/
Ar=fopen("USUARIO.DAT", "w+");
if (Ar == NULL){/***/
printf("\nHa habido un error al intentar crear el Archivo de USUARIOS\n");
system("PAUSE");
exit(5);
}/* si la creacion fracaso sale, sino crea y escribe vacio*/
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);/*creacion nuevo archivo registro de USUARIOS*/
}/***/
else
{
Ar=fopen("USUARIO.DAT", "r+");
fread(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}
for(i=0; i<maxU; i++)if (Usu[i].Ape[0]=='\0' || Usu[i].Ape[0]=='\n')break;
/*posicionamiento primer registro no llenado*/
for(i; i<maxU; i++)
{
printf("\nIngrese Apellido Usuario: "); gets(Usu[i].Ape); fflush(stdin);
printf("\nIngrese Nombre Usuario: "); gets(Usu[i].Name); fflush(stdin);
printf("\nIngrese DNI Usuario: "); gets(Usu[i].DNI); fflush(stdin);
printf("\nIngrese su E-mail de Usuario: "); gets(Usu[i].Email); fflush(stdin);
printf("\nIngrese Telefono Usuario: "); gets(Usu[i].Tel); fflush(stdin);
printf("\nIngrese su Nick Name de Usuario: "); gets(Usu[i].Nick); fflush(stdin);
printf("\nIngrese su Pass Word de Usuario: "); gets(Usu[i].Pass); fflush(stdin);
Usu[i].atri='U'; fflush(stdin);
printf("\nCargara otro Usuario? S=Si, N=No: ");
ot=getchar(); fflush(stdin);
if(ot=='n' || ot=='N')break;
system("CLS");
}
Ar=fopen("USUARIO.DAT", "w+");
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}/******* ApenRU *********/
void ApenPrPr(){
char ot;
int i;
Ar=fopen("USUARIO.DAT", "r+");
if (Ar == NULL){/**/
Ar=fopen("USUARIO.DAT", "w+");
if (Ar == NULL){/***/
printf("\nHa habido un error al intentar crear el Archivo de USUARIOS\n");
system("PAUSE");
exit(5);
}/* si la creacion fracaso sale, sino crea y escribe vacio*/
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);/*creacion nuevo archivo registro de USUARIOS*/
}/***/
else
{
Ar=fopen("USUARIO.DAT", "r+");
fread(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}
for(i=0; i<maxU; i++)if (Usu[i].Ape[0]=='\0' || Usu[i].Ape[0]=='\n')break;
/*posicionamiento primer registro no llenado*/
for(i; i<maxU; i++)
{
printf("\nIngrese Razon Social Proveedor: "); gets(Usu[i].Ape); fflush(stdin);
printf("\nIngrese Domicilio Proveedor: "); gets(Usu[i].Name); fflush(stdin);
printf("\nIngrese DNI Proveedor: "); gets(Usu[i].DNI); fflush(stdin);
printf("\nIngrese su E-mail de Proveedor: "); gets(Usu[i].Email); fflush(stdin);
printf("\nIngrese Telefono Proveedor: "); gets(Usu[i].Tel); fflush(stdin);
printf("\nIngrese Categorias Productos: "); gets(Usu[i].Nick); fflush(stdin);
printf("\nIngrese Forma Pago Proveedor: "); gets(Usu[i].Pass); fflush(stdin);
//printf("\nIngrese su Nick Name de Usuario: "); gets(Usu[i].Nick); fflush(stdin);
//printf("\nIngrese su Pass Word de Usuario: "); gets(Usu[i].Pass); fflush(stdin);
Usu[i].atri='P'; fflush(stdin);
printf("\nCargara otro Proveedor? S=Si, N=No: ");
ot=getchar(); fflush(stdin);
if(ot=='n' || ot=='N')break;
system("CLS");
}
Ar=fopen("USUARIO.DAT", "w+");
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}/******* ApenPrPr *********/
void Recup(){
char DOC[10];
int i;
Ar=fopen("USUARIO.DAT", "r+");
fread(&Usu, sizeof(Usu), 1, Ar);
printf("\nIngrese DNI Usuario: "); gets(DOC);
for(i=0;i<maxU; i++){
if (Usu[i].Nick[0]=='\x0') break;
if (strcmp(DOC, Usu[i].DNI)==0){
printf("\nREGISTRO ENCONTRADO: Remplazo de NickName y Pass \n");
printf("\nIngrese Apellido Usuario: "); gets(Usu[i].Ape); fflush(stdin);
printf("\nIngrese Nombre Usuario: "); gets(Usu[i].Name); fflush(stdin);
printf("\nIngrese DNI Usuario: "); gets(Usu[i].DNI); fflush(stdin);
printf("\nIngrese su Nick Name de Usuario: "); gets(Usu[i].Nick); fflush(stdin);
printf("\nIngrese su Pass Word de Usuario: "); gets(Usu[i].Pass); fflush(stdin);
Usu[i].atri='U';
//Ar=fopen("USUARIO.DAT", "w+");
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}
else printf("\nDNI no coincide sigue busqueda\n");
}
if (Usu[i].Nick[0]=='\x0') printf("\nDNI Incorrecto Operacion Anulada\n");
}/******** Recup ***********/
void Mostrar(){
int i;
system("MODE CON: lines=150 cols=120");
Ar=fopen("USUARIO.DAT", "r+");
if (Ar == NULL){/**/
printf("\nHa habido un error al intentar Acceder al Archivo de Usuarios\n");
system("PAUSE");
exit(5);
}/**/
else
{/**/
fread(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}/**/
printf(" %4s; %20s; %20s; %20s; %20s; %10s; %3s;\n","Nro U", "Apellido", "Nombres", "NickUsuario", "PassWord", " D N I ", "Atr");
for(i=0; i<maxU; i++)
{/*for*/
if (Usu[i].Ape[0]=='\0') { break; } /****/
else
{/****/
printf("%#05i; %20s; %20s; %20s; %20s; %10s; %5c\n",i, Usu[i].Ape, Usu[i].Name, Usu[i].Nick, Usu[i].Pass, Usu[i].DNI, Usu[i].atri);
}/****/
}/*for*/
getchar();
fflush(stdin);
}/********* Mostrar ************/
void PedidoPr(char kat, int Merc){
ppr=fopen("PRODUCTO.DAT", "r+");
PPr=fopen("USUARIO.DAT", "r+");
fread(&Usu, sizeof(Usu), 1, PPr);
fclose(PPr);
ppr=fopen("PRODUCTO.DAT", "r+");
fread(&Pro, sizeof(Pro), 1, ppr);
fclose(ppr);
system("COLOR 1F");
system("CLS");
int m;
time_t t;
struct tm *ahora;
time(&t);
ahora = localtime(&t);
for(m=0; m<maxU; m++){
if (strchr(Usu[m].Nick, kat)!= NULL){
sprintf(fecha, "%02d/%02d/%02d; %02d:%02d", ahora->tm_mday, ahora->tm_mon + 1,ahora->tm_year -100, ahora->tm_hour, ahora->tm_min);
fflush(stdin);
printf("³%61s³\n", " **** PEDIDO PRESUPUESTO REPOSICION MERCADERIAS **** ");
printf("Ã-----------------------------"
"--------------------------------´\n");
printf("³ SUPEMERCADO SHAO CHINI CUIT:304567654567; %18s³\n", fecha);
printf("³ Mayorista Y Minorista IngBr: 90222343344; Inic.Act 02/02/95³\n");
printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´\n");
printf("³Proveedor:%20s|Dom:%26s% ³\n", Usu[m].Ape, Usu[m].Name);
printf("³ E-mail:%30s | Tel %15s ³\n", Usu[m].Email,Usu[m].Tel);
printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´\n");
printf("³%22s%20s%21s", "Cantidad ³", "Producto ³","Precio ³\n");
printf("³%18d ³%19s³ %20s", Pro[Merc].Alarm *10, Pro[Merc].NPr, " ³\n");
printf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n\n");
}/**if **/
} /* for */
fflush(stdin);
system("PAUSE");
system("COLOR 3A");
system("CLS");
return;
}
void reponePro(){
char ini, nu;
int i, f, g;
Reg=fopen("PRODUCTO.DAT", "r+");
fread(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);
system("COLOR F3");
system("CLS");
printf("(Espacio=Fin Carga Articulos; LETRA INICIO del producto: "); ini=getchar();
if(ini==char(32)) siguefac();
printf("Lista Productos Pedidos\n");
f=0;
printf("%5s;%20s;%30s;%6s;%6s\n", "Cod", "Articulo", "Detalle Articulo", "Stock", "Precio");
for(i=0; i< maxP; i++)
{/*for*/
if(ini==Pro[i].NPr[0] || ini == char(int(Pro[i].NPr[0])+32) )
{
f=f+1;
if(Pro[ int(tabla[i][1])].Cat=='G')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.30);
else if(Pro[ int(tabla[i][1])].Cat=='C')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.40);
else if(Pro[ int(tabla[i][1])].Cat=='B')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.20);
else
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.50);
}/*if*/
}/**for**/
if(f<1)
{
printf("NO SE ENCONTRO PRODUCTO QUE INICIE CON ESA LETRA\n");
system("PAUSE");
fflush(stdin);
muestraP();
}
printf("INGRESE EL CODIGO DEL PRODUCTO A REPONER: "); scanf("%i", &g); fflush(stdin);
printf("INGRESE CANTIDAD DEL PRODUCTO A REPONER: "); scanf("%i", &Pro[g].StPr); fflush(stdin);
freopen("PRODUCTO.DAT", "w+", Reg);
fwrite(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);
Amain();
}/*********** reponeP **************/
Codigo cpp en: https://www.4shared.com/file/1mr0zuUNei/SuperMer.html
holaholita dice:
tengo q hacer un programa donde se juegue 30 partidos con 6 equipos pero no puedo hacer q jueguen entre ellos
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void leo();
void carga();
struct equipo{
char Nom[20];
char Con[20];
int gf;
int gc;
int pun;
}part[30];
int i, j, k, sumap, sumapc;
FILE *Ar;
main(){
char op;
for(i=0; i<30; i++) part[i].gf=-1;
printf("Ingresara al archivo guardado o hará uno nuevo \n"
"Opciones; a=antiguo; c;antiguo cargar goles; n=nuevo. Opcion: ");
op=getchar();
if(op == 'a' || op == 'A') leo();
else if(op == 'c' || op == 'C') carga();
else{
system("MODE CON: lines=50 cols=80");
fflush(stdin);
for(i=0; i<6; i++){
printf("Ingrese nombre del equipo Nro %2d: ", i+1);
gets(part[i].Nom); fflush(stdin);
sprintf(part[6 +i].Nom, "%s", part[i].Nom);
sprintf(part[12+i].Nom, "%s", part[i].Nom);
sprintf(part[18+i].Nom, "%s", part[i].Nom);
sprintf(part[24+i].Nom, "%s", part[i].Nom);
}
Ar=fopen("Partidos.Dat", "w+");
fwrite(&part, sizeof(part), 1, Ar);
fclose(Ar); //guardo en archivo disco el vector de struct
k=1;
for(i=0; i<6; i++){
for(j=0; j<6; j++){
if(i != j ){
//printf("Partido Nro %2d Juegan: %20s Contra %20s\n", k, part[j].Nom, part[i].Nom);
sprintf(part[k-1].Con, part[j].Nom);
k++;
}
}}
Ar=fopen("Partidos.Dat", "w");
fwrite(&part, sizeof(part), 1, Ar);
fclose(Ar); //guardo en archivo disco el vector de struct
getchar();
carga();
}
}
void carga()
{
system("MODE CON: lines=150 cols=120");
char op;
Ar = fopen("Partidos.Dat", "r+");
fread(&part, sizeof(part), 1, Ar);
fclose(Ar); //recargo struct
system("CLS");
k=1;
for(i=0; i<30; i++){
if( part[i].gf < 0)
{
printf("Partido Nro %2d Juegan: %20s Contra %20s\n", i + 1, part[i].Nom, part[i].Con);
printf("Goles a favor de: %s: ", part[i].Nom); scanf("%i", &part[i].gf); fflush(stdin);
printf("Goles a favor de: %s: ", part[i].Con); scanf("%i", &part[i].gc); fflush(stdin);
printf(" S = Si, N = No. Otra fecha?: ");
{ op=getchar(); fflush(stdin); }
if(op == 'N' || op == 'n')break;
}
}
freopen("Partidos.Dat", "w+", Ar);
fwrite(&part, sizeof(part), 1, Ar);
fclose(Ar); //guardo en archivo disco
system("CLS");
system("MODE CON: lines=50 cols=120");
for(i=0; i<30; i++){
printf("Partido Nro %2d; %20s Contra %20s; Resultado: %2d a %2d\n", i+1, part[i].Nom, part[i].Con, part[i].gf, part[i].gc);
}
if(op == 'n' || op == 'N') exit(0);
leo();
}
void leo(){
Ar = fopen("Partidos.Dat", "r+");
fread(&part, sizeof(part), 1, Ar);
fclose(Ar); //recargo struct
getchar();
char equipo[20];
printf("\n");
for(j=0; j<5; j++){
sprintf(equipo, "%s", part[j].Nom);
for(i=0; i<30;i++){
if(strcmp(equipo, part[i].Nom) == 0)
{
if(part[i].gf > part[i].gc)sumap = sumap + 2;
if(part[i].gf == part[i].gc)sumap = sumap + 1;
if(part[i].gf < part[i].gc)sumap = sumap + 0;
}}
for(i=0; i<30; i++){
if(strcmp(equipo, part[i].Con) == 0)
{
if(part[i].gc > part[i].gf)sumap = sumap + 2;
if(part[i].gc == part[i].gf)sumap = sumap + 1;
if(part[i].gc < part[i].gf)sumap = sumap + 0;
}}
printf("El equipo %s tiene un total de %2d puntos \n", equipo, sumap);
sumap=0;
sprintf(equipo, "%20s", "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
}
getchar();
}
El codigo permite el ingreso de 6 equipos por sus nobres, luego planifica que cada uno juegue con los demas, lo que resulta en 30 partidos, asi que una vez cargados los primeros 6, los repite 5 veces hasta formar los 30
aaaaaaaaestos datos se guardan en un vector de struct, con el nombre del equipo y del adversario en cada caso, luego se pueden cargar los goles de cada fecha, Suponiendo que las fechas pueden ser cargadas en distintas jornadas, entonces se prevee un archivo de disco que guarde lo que se hizo hasta ahora, y que permita continual una vez que se reabre el programa, con la carga de los goles
Luego se hace un calculo de puntos por equipo y se muestra en pantalla.
Se previó otro sistema de puntaje, por eso hay un par de variables que estan declaradas pero no se usan como los puntos dentro del struct y los puntosc entero de suma, que pueden ser eliminados sin problemas
El sistema alternativo de puntos, preveia un extra si el equipo era visitante, pero ademas en las ligas, se cuentan tambien las faltas acumuladas y otras cosas, asi que se simplifico a solo los goles
https://www.4shared.com/rar/yIgAt-Wcca/6Equi30Fech.html
Seguir-->
-----------------------------------------------------------------
Andres pregunta ¿Ayuda con el inventario de una tienda en c++?
https://ar.answers.yahoo.com/question/index?qid=20171108051409AAIO1Ph
Si ingresa por administrador debe solicitar una clave, si se digita correctamente debe ir al menú de administrador que tiene las siguientes opciones: cambio de clave, inventario, contabilidad, suministrar y salir (ir al menú principal).
4. En cambio de clave debe solicitar la clave actual, si se digita correctamente debe solicitar la nueva clave, y dar el mensaje su clave se cambió con éxito y preguntar si desea volver al menú de administrador. Si digita erróneamente la clave actual tres veces se debe enviar un mensaje de bloqueo y preguntar si quiere ir al menú principal. Al iniciar el programa por primera vez la clave actual debe ser 1234.
5. En inventario, se debe mostrar la cantidad que queda en cada uno de los productos, y un mensaje de alerta si algún producto tiene menos de 5 existencias.
6. En contabilidad se debe mostrar la lista de productos vendidos, con la cantidad vendida de cada uno, el valor unitario y total de cada producto, y el total de ventas por todos los productos
tengo problemas con la clave no se como hacerlo
REPUESTA: Desarrollo del código a continuacion:
Primero, haremos un nuevo proyecto en una carpeta, donde ponderemos todos los archivos que se iran usando y generando en el proyecto. Tenemos al menos 3 archivos de disco, uno guardara la contraseña del administrador, otro la contraseña de los clientes o usuarios y un tercero que llevará los productos comercializados.
Luego habra varios menus de acceso segun la operacion autorizada, uno para el admnistrador, otro para los usuarios(ingreso) y otro para las operaciones con productos a realizar,
Como no se menciona un medio gráfico para la presentación, lo haremos totalmente en consola.
Inclui una facturacion con Iva Discriminado y descuentos segun el pago, ademas los productos a vender, tienen distintos margenes de ganancia segun la categoría (gaseosas 10%, cigarrillos 20% etc)
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
const int maxU=100;
const int item=6; /*max productos x factura*/
const char arch[10]= "Num.dat\0"; /*nombre archivo aux nro factura*/
const int maxP=500; /*max de productos*/
float Total=0, Dcto=0, STot=0, desc;
float tabla[item][3];/*[i][0]cantidad;[i][1]codigo; [i][2]precio*/
char Nombre[21], fpa;
char fecha[20];
FILE *Ar;
FILE *Reg;
FILE *PPr, *ppr;
void Amain();
void menuA();
void menuU();
void CambiaNPA();
void ApenRU();
void FACmain();
void Recup();
void Mostrar();
void siguefac();
void FACver();
void cargaP();
void ApenPrPr();
void PedidoPr(char kat, int Merc);
void reponePro();
int muestraP();
struct persona{
char Ape[20];
char Name[20];
char DNI[10];
char Nick[10];
char Pass[10];
char atri; /* U = usuario comun. limitar acceso o proveedor*/
char Email[30];
char Tel[15];
} Ad, Usu[maxU];
struct producto{
char NPr[30]; /*nombre*/
char DPr[30]; /*Detalle*/
int StPr; /*existencia o stock*/
int Alarm; /*existencia minima disp pedido*/
float PrePr; /*precio costo o reposicion*/
char Cat; /*Categoria (si se usa)*/
}Pro[maxP];
main(){
Amain();
}
void Amain()
{
system("COLOR F1");
char op;
printf("Ingrese Tipo Usuario\n A = Administrador\n U = Usuario(Cliente o vendedor)\n Opcion: ");
op=getchar();
do{
if(op== 'A' || op=='a')menuA();
else if(op== 'U' || op=='u')menuU();
else {
printf("\nEl tipo de Usuario tipeado No Es Valido.\n Reingrese Tipo: ");
op=getchar();
}
}while(op !='A' || op != 'a' || op != 'U' || op != 'u');
}/************** Amain **********/
void menuU(){
int i;
char NN[20];
char PS[20];
char sele;
Ar=fopen("USUARIO.DAT", "r+");
if (Ar != NULL)
{/**/
fread(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}/**/
fflush(stdin);
printf("\nIngrese su Nick Name de Usuario: ");
gets(NN); fflush(stdin);
printf("\nIngrese su Pass Word de Usuario: ");
gets(PS); fflush(stdin);
for(i=0; i< maxU; i++)
{/***/
if(strcmp(Usu[i].Pass, PS)== 0 && strcmp(Usu[i].Nick, NN)==0)/****/
{
break;
printf("\nAcceso Permitido como Usuario\n");
}
if(i==(maxU - 1))
{
printf("\a\a\a\nDatos No Validos Salida del Programa\n");
getchar();
exit(2);
}/****/
}/**for**/
printf("\nAcceso Permitido como Usuario\n\n");
printf("\nMENU de USUARIOS\n\n"
"0) Cambio Nick y Pass Usuario\n"
"1) Venta (Factura)\n"
"2) Agregar Productos\n"
"3) Mostrar Listado Productos\n"
"4) Reponer Producto\n"
"5) Salir \n"
" Eleccion: ");
sele=getchar(); fflush(stdin);
switch(sele){
case '0':
printf("\nIngrese su Nick Name de Usuario: "); gets(Usu[i].Nick); fflush(stdin);
printf("\nIngrese su Pass Word de Usuario: "); gets(Usu[i].Pass); fflush(stdin);
freopen("USUARIO.DAT", "w+",Ar);
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
Amain();
break;
case '1':
FACmain();
break;
case '2':
cargaP();
break;
case '3':
system("COLOR 2C");
system("MODE CON: Lines=150 Cols=100");
Reg=fopen("PRODUCTO.DAT", "r+");
if(Reg != NULL)fread(&Pro, sizeof(Pro), 1, Reg);
else{printf("Error, no se pudo leer archivo de productos"); getchar(); break;}
system("CLS");
printf("%5s;%20s;%30s;%6s; %8s\n", "Cod", "Articulo", "Detalle Articulo", "Stock", "Prec Rep");
for(i=0; i< maxP; i++)
{/*for*/
if(Pro[i].NPr[0]=='\0') break;
printf("%5d;%20s;%30s;%6d; %6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr);
}/**for**/
getchar();
system("MODE CON: Lines=50 Cols=80");
break;
case '4': reponePro();
case '5': exit(0);
break;
default: printf("La Opcion Ingresada No es Valida \n");
system("PAUSE");
break;
}
Amain();
}/******* menuU *******/
void menuA(){
char NN[20];
char PS[20];
char sele;
Ar=fopen("ADMIN.DAT", "r+");
if (Ar == NULL){/**/
Ar=fopen("ADMIN.DAT", "w+");
sprintf(Ad.Nick, "%s", "Admin");
sprintf(Ad.Pass, "%s", "1234");
fwrite(&Ad, sizeof(Ad), 1, Ar);
fclose(Ar);
fflush(stdin);
}/**/
if (Ar != NULL)//else
{/*2*/
fread(&Ad, sizeof(Ad), 1, Ar);
fclose(Ar);
//}
fflush(stdin);
printf("\nIngrese su Nick Name de Administrador: ");
gets(NN); fflush(stdin);
if(strcmp(Ad.Nick, NN)== 0){/***/
printf("\nIngrese su Pass Word de Administrador: ");
gets(PS); fflush(stdin);
if(strcmp(Ad.Pass, PS)== 0){/****/
fflush(stdin);
printf("\n"
"0) Cambio Nick y Pass Administrador\n"
"1) Nuevo Usuario\n"
"2) Recupero o Modificacion Usuario\n"
"3) Mostrar Listado Usuarios\n"
"4) Nuevo Proveedor\n"
"5) Salir \n"
" Eleccion: ");
sele=getchar(); fflush(stdin);
switch(sele){
case '0': CambiaNPA(); //menuA();
break;
case '1': ApenRU(); //menuA();
break;
case '2': Recup(); //menuA();
break;
case '3': Mostrar(); //menuA();
break;
case '4': ApenPrPr(); //menuA();
break;
case '5': exit(0);
break;
default: printf("La Opcion Ingresada No es Valida \n");
system("PAUSE");
break;
}
}else {printf("\nDato No Valido\n"); getchar();}/****/
}else {printf("\nDato No Valido\n"); getchar();}/***/
}/*2*/
Amain();
} /************ void menuA ********/
void FACmain()
{
int ii;
system("COLOR 3A");
for(ii=0; ii<item; ii++)
{
fflush(stdin);
tabla[ii][1]= float(muestraP());
/*ingreso codigo articulo vendido*/
do{
printf("\nINGRESE LA CANTIDAD DEL ARTICULO VENDIDO: ==> ");
scanf("%f",&tabla[ii][0]); fflush(stdin);
if(tabla[ii][0]==0) break;//fin de carga
if(int(tabla[ii][0]) > (Pro[int(tabla[ii][1])].StPr))
{
printf("La cantidad que quiere vender es superior al Stock");
getchar();
}
}while( int(tabla[ii][0]) > Pro[int(tabla[ii][1]) ].StPr );
Pro[int(tabla[ii][1])].StPr = Pro[ int(tabla[ii][1]) ].StPr - int(tabla[ii][0]);
freopen("PRODUCTO.DAT", "w+", Reg);
fwrite(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);/*descuento del stock*/
if(Pro[int(tabla[ii][1])].StPr <= Pro[int(tabla[ii][1])].Alarm)
PedidoPr(Pro[int(tabla[ii][1])].Cat, int(tabla[ii][1]) ); /*pedido reposicion automatico*/
fflush(stdin);
if(Pro[ int(tabla[ii][1])].Cat=='G') tabla[ii][2] = Pro[int(tabla[ii][1])].PrePr *1.30; //si es G
else if(Pro[ int(tabla[ii][1])].Cat=='C') tabla[ii][2] = Pro[int(tabla[ii][1])].PrePr *1.40; //si es C
else if(Pro[ int(tabla[ii][1])].Cat=='B') tabla[ii][2] = Pro[int(tabla[ii][1])].PrePr *1.20; //si es B
else tabla[ii][2] = Pro[int(tabla[ii][1])].PrePr *1.50; //si es sin Cat
//se puede modificar segun categoria producto por el margen de ganancia (C cigarrillos, G gaseosas, F fiambres, ETC)
Genera automaticamente el pedido de presupuesto al proveedor por categoria y se repone cuando es recibido (no se ha previsto actualizacion precio)
getchar();
system("CLS");
}//for carga
siguefac();
}
void siguefac(){
fflush(stdin);
printf("INGRESE Nombre Cliente "); gets(Nombre);
printf("\nF O R M A D E P A G O\n"
"(1)=Tarjeta Credito 1 pago;(Precio de Lista)\n"
"(2)=Tarjeta Credito 3 pagos; (Recargo=5%)\n"
"(3)=Tarjeta Credito 6 pagos; (Recargo=10%) \n"
"(4)=Tarjeta Debito; (Precio de Lista)\n"
"(5)Efectivo (Descuento 20%)\n"
"(Forma de Pago ==> ");
fpa= getchar(); fflush(stdin);
desc=0;
if(fpa=='1')desc = 0; //5% para 1 y 3 pagos, 10% para 6 pagos
if(fpa=='2')desc = -5;
if(fpa=='3')desc = -10;
if(fpa=='4')desc = 0;
if(fpa=='5')desc = 20;
FACver();
system("PAUSE");
exit(0);
} /******* siguefac() ********/
void FACver()
{
int fi;
system("COLOR 1F");
system("MODE CON: lines=50 Cols=80");
/* incrementador nro factura */
int nf=0;
if((Reg=fopen(arch,"r+"))!= NULL)
{
fread(&nf, sizeof(nf),1,Reg);
fclose(Reg);
}
nf=nf +1;
Reg=fopen(arch, "w+");
fwrite(&nf, sizeof(nf), 2, Reg);
fclose(Reg);
/* */
time_t t;
struct tm *ahora;
time(&t);
ahora = localtime(&t);
sprintf(fecha, "%02d/%02d/%02d; %02d:%02d", ahora->tm_mday, ahora->tm_mon + 1,ahora->tm_year -100, ahora->tm_hour, ahora->tm_min);
printf(" **** ESTA ES LA FACTURA CARGADA POR USTED **** ");
printf("\nÃ-----------------------------"
"--------------------------------´\n");
printf("³ SUPEMERCADO SHAO CHINI CUIT:304567654567; %18s³\n", fecha);
printf("³ Mayorista Y Minorista IngBr: 90222343344; Inic.Act 02/02/95³\n");
printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´\n");
printf("³Cliente:%20s/" ,Nombre);
printf("FdP:%c; ", fpa);
printf("[ %14s%#07d] ³\n", "Fact Nø 00032", nf);
printf("ÃÄÄÄÄÂÄÄÄÄÂÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÂÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÂÄÄÄÄÄÄÄÄ´\n");
printf("³Cant³Cod.³ Detalles del ³Precio³ Sub ³Rec.");
if(fpa < '5') printf("%2d%c", int(-desc),'%'); else printf("%2d%c", 0,'%');
printf("³ SUB ³\n");
printf("³Art.³Art.³ Articulo ³Unit ³ Total ³Dto.");
if(fpa == '5') printf("%2d%c", int(desc),'%'); else printf("%2d%c", 0,'%');
printf("³ TOTAL ³\n");
printf("ÃÍÍÍÍÅÍÍÍÍÅÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÅÍÍÍÍÍÍÅÍÍÍÍÍÍÍÅÍÍÍÍÍÍÍÅÍÍÍÍÍÍÍÍ´\n");
for(fi=0; fi<item; fi++)
{/* for*/
if(tabla[fi][0]!=0){
printf("³%4.0f³",tabla[fi][0]);
printf(" %02.0f³",tabla[fi][1]);
printf("%19s³", Pro[ int(tabla[fi][1]) ].NPr);
printf("%6.2f³",tabla[fi][2]);
STot=tabla[fi][0]*tabla[fi][2];
printf("%7.2f³",STot);
Dcto=(STot * desc)/100;
if(fpa < '5')printf("%7.2f³",-Dcto); else printf("%7.2f³",Dcto);
printf("%8.2f³\n",STot-Dcto);
/*[i][0]cantidad;[i][1]codigo; [i][2]precio*/
Total= Total + (STot - Dcto);
}
else
{
printf("³----³----³-------------------³------³-------³-------³--------³\n");
}
printf("ÃÄÄÄÄÅÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄ´\n");
}//del for
printf("ÃÄÄÄÄÁÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ´\n");
printf("³ *** EL TOTAL DE LAS OPERACIONES ES: ÍÍÍÍÍÍ> %13.2f³\n", Total);
//printf("ÃÄÄÄÄÁÄÄÄÄÁÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄ´\n");
printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´\n");
printf("³ Sin Impuesto: %8.2f; <<< >>> IVA: 20%c: %8.2f%10s³\n", Total * 0.83334, '%', (Total - (Total *0.83334)),"");
printf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n\n");
} //fin del void mostrar
void cargaP(){
char ot;
int i;
Reg=fopen("PRODUCTO.DAT", "r+");
if (Reg == NULL){/**/
printf("\nHa habido un error al intentar Leer el Archivo de PRODUCTOS\n"
"SE CREARA UN NUEVO ARCHIVO\n");
system("PAUSE");
Reg=fopen("PRODUCTO.DAT", "w+");
if (Reg == NULL){/***/
printf("\nHa habido un error al intentar crear el Archivo de PRODUCTOS\n");
system("PAUSE");
exit(5);
}/* si la creacion fracaso sale, sino crea y escribe vacio*/
fwrite(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);/*creacion nuevo archivo registro de USUARIOS*/
}/***/
else
for(i=0; i<maxP; i++)if(Pro[i].NPr[0]=='\0') break;
for(i; i<maxP; i++)/**for**/
{
printf("\nIngrese Nombre Producto: "); gets(Pro[i].NPr); fflush(stdin);
printf("\nIngrese Detalle Producto: "); gets(Pro[i].DPr); fflush(stdin);
printf("\nIngrese Existencia Inicial Producto: "); scanf("%i", &Pro[i].StPr); fflush(stdin);
printf("\nIngrese Existencia Minima Producto: "); scanf("%i", &Pro[i].Alarm); fflush(stdin);
printf("\nIngrese Costo Reposicion Producto: "); scanf("%f", &Pro[i].PrePr); fflush(stdin);
printf("\nIngrese Categoria (B; C; G; F)Producto: "); Pro[i].Cat = getchar(); fflush(stdin);
if(Pro[i].Cat=='\n') Pro[i].Cat='F';
printf("\nCargara otro Producto? S=Si, N=No: ");
ot=getchar(); fflush(stdin);
if(ot=='n' || ot=='N')break;
system("CLS");
}/**for**/
freopen("PRODUCTO.DAT", "w+", Reg);
fwrite(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);
}/************ FACver *******/
int muestraP(){
char ini, nu;
int i, f, g;
Reg=fopen("PRODUCTO.DAT", "r+");
fread(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);
system("CLS");
printf("(Espacio=Fin Carga Articulos; LETRA INICIO del producto: "); ini=getchar();
if(ini==char(32)) siguefac();
printf("Lista Productos Pedidos\n");
f=0;
printf("%5s;%20s;%30s;%6s;%6s\n", "Cod", "Articulo", "Detalle Articulo", "Stock", "Precio");
for(i=0; i< maxP; i++)
{/*for*/
if(ini==Pro[i].NPr[0] || ini == char(int(Pro[i].NPr[0])+32) )
{
f=f+1;
if(Pro[ int(tabla[i][1])].Cat=='G')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.30);
else if(Pro[ int(tabla[i][1])].Cat=='C')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.40);
else if(Pro[ int(tabla[i][1])].Cat=='B')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.20);
else
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.50);
}/*if*/
}/**for**/
if(f<1)
{
printf("NO SE ENCONTRO PRODUCTO QUE INICIE CON ESA LETRA\n");
system("PAUSE");
fflush(stdin);
muestraP();
}
printf("INGRESE EL CODIGO DEL PRODUCTO A VENDER: "); scanf("%i", &g); fflush(stdin);
return g;
}/*********** muestraP **************/
void CambiaNPA(){
Ar=fopen("ADMIN.DAT", "w+");
if (Ar == NULL){
printf("\nHa habido un error al intentar crear el Archivo de Administrador\n");
system("PAUSE");
exit(5);
}
printf("\nIngrese Apellido Administrador: "); gets(Ad.Ape); fflush(stdin);
printf("\nIngrese Nombre Administrador: "); gets(Ad.Name); fflush(stdin);
printf("\nIngrese DNI Administrador: "); gets(Ad.DNI); fflush(stdin);
printf("\nIngrese su Nick Name de Administrador: "); gets(Ad.Nick); fflush(stdin);
printf("\nIngrese su Pass Word de Administrador: "); gets(Ad.Pass); fflush(stdin);
Ad.atri='T';
fwrite(&Ad, sizeof(Ad), 1, Ar);
fclose(Ar);
system("CLS");
printf("\nCONFIRMACION NICKNAME Y PASSWORD\n");
Amain();
}/******** CambiaNPA *********/
void ApenRU(){
char ot;
int i;
Ar=fopen("USUARIO.DAT", "r+");
if (Ar == NULL){/**/
Ar=fopen("USUARIO.DAT", "w+");
if (Ar == NULL){/***/
printf("\nHa habido un error al intentar crear el Archivo de USUARIOS\n");
system("PAUSE");
exit(5);
}/* si la creacion fracaso sale, sino crea y escribe vacio*/
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);/*creacion nuevo archivo registro de USUARIOS*/
}/***/
else
{
Ar=fopen("USUARIO.DAT", "r+");
fread(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}
for(i=0; i<maxU; i++)if (Usu[i].Ape[0]=='\0' || Usu[i].Ape[0]=='\n')break;
/*posicionamiento primer registro no llenado*/
for(i; i<maxU; i++)
{
printf("\nIngrese Apellido Usuario: "); gets(Usu[i].Ape); fflush(stdin);
printf("\nIngrese Nombre Usuario: "); gets(Usu[i].Name); fflush(stdin);
printf("\nIngrese DNI Usuario: "); gets(Usu[i].DNI); fflush(stdin);
printf("\nIngrese su E-mail de Usuario: "); gets(Usu[i].Email); fflush(stdin);
printf("\nIngrese Telefono Usuario: "); gets(Usu[i].Tel); fflush(stdin);
printf("\nIngrese su Nick Name de Usuario: "); gets(Usu[i].Nick); fflush(stdin);
printf("\nIngrese su Pass Word de Usuario: "); gets(Usu[i].Pass); fflush(stdin);
Usu[i].atri='U'; fflush(stdin);
printf("\nCargara otro Usuario? S=Si, N=No: ");
ot=getchar(); fflush(stdin);
if(ot=='n' || ot=='N')break;
system("CLS");
}
Ar=fopen("USUARIO.DAT", "w+");
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}/******* ApenRU *********/
void ApenPrPr(){
char ot;
int i;
Ar=fopen("USUARIO.DAT", "r+");
if (Ar == NULL){/**/
Ar=fopen("USUARIO.DAT", "w+");
if (Ar == NULL){/***/
printf("\nHa habido un error al intentar crear el Archivo de USUARIOS\n");
system("PAUSE");
exit(5);
}/* si la creacion fracaso sale, sino crea y escribe vacio*/
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);/*creacion nuevo archivo registro de USUARIOS*/
}/***/
else
{
Ar=fopen("USUARIO.DAT", "r+");
fread(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}
for(i=0; i<maxU; i++)if (Usu[i].Ape[0]=='\0' || Usu[i].Ape[0]=='\n')break;
/*posicionamiento primer registro no llenado*/
for(i; i<maxU; i++)
{
printf("\nIngrese Razon Social Proveedor: "); gets(Usu[i].Ape); fflush(stdin);
printf("\nIngrese Domicilio Proveedor: "); gets(Usu[i].Name); fflush(stdin);
printf("\nIngrese DNI Proveedor: "); gets(Usu[i].DNI); fflush(stdin);
printf("\nIngrese su E-mail de Proveedor: "); gets(Usu[i].Email); fflush(stdin);
printf("\nIngrese Telefono Proveedor: "); gets(Usu[i].Tel); fflush(stdin);
printf("\nIngrese Categorias Productos: "); gets(Usu[i].Nick); fflush(stdin);
printf("\nIngrese Forma Pago Proveedor: "); gets(Usu[i].Pass); fflush(stdin);
//printf("\nIngrese su Nick Name de Usuario: "); gets(Usu[i].Nick); fflush(stdin);
//printf("\nIngrese su Pass Word de Usuario: "); gets(Usu[i].Pass); fflush(stdin);
Usu[i].atri='P'; fflush(stdin);
printf("\nCargara otro Proveedor? S=Si, N=No: ");
ot=getchar(); fflush(stdin);
if(ot=='n' || ot=='N')break;
system("CLS");
}
Ar=fopen("USUARIO.DAT", "w+");
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}/******* ApenPrPr *********/
void Recup(){
char DOC[10];
int i;
Ar=fopen("USUARIO.DAT", "r+");
fread(&Usu, sizeof(Usu), 1, Ar);
printf("\nIngrese DNI Usuario: "); gets(DOC);
for(i=0;i<maxU; i++){
if (Usu[i].Nick[0]=='\x0') break;
if (strcmp(DOC, Usu[i].DNI)==0){
printf("\nREGISTRO ENCONTRADO: Remplazo de NickName y Pass \n");
printf("\nIngrese Apellido Usuario: "); gets(Usu[i].Ape); fflush(stdin);
printf("\nIngrese Nombre Usuario: "); gets(Usu[i].Name); fflush(stdin);
printf("\nIngrese DNI Usuario: "); gets(Usu[i].DNI); fflush(stdin);
printf("\nIngrese su Nick Name de Usuario: "); gets(Usu[i].Nick); fflush(stdin);
printf("\nIngrese su Pass Word de Usuario: "); gets(Usu[i].Pass); fflush(stdin);
Usu[i].atri='U';
//Ar=fopen("USUARIO.DAT", "w+");
fwrite(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}
else printf("\nDNI no coincide sigue busqueda\n");
}
if (Usu[i].Nick[0]=='\x0') printf("\nDNI Incorrecto Operacion Anulada\n");
}/******** Recup ***********/
void Mostrar(){
int i;
system("MODE CON: lines=150 cols=120");
Ar=fopen("USUARIO.DAT", "r+");
if (Ar == NULL){/**/
printf("\nHa habido un error al intentar Acceder al Archivo de Usuarios\n");
system("PAUSE");
exit(5);
}/**/
else
{/**/
fread(&Usu, sizeof(Usu), 1, Ar);
fclose(Ar);
}/**/
printf(" %4s; %20s; %20s; %20s; %20s; %10s; %3s;\n","Nro U", "Apellido", "Nombres", "NickUsuario", "PassWord", " D N I ", "Atr");
for(i=0; i<maxU; i++)
{/*for*/
if (Usu[i].Ape[0]=='\0') { break; } /****/
else
{/****/
printf("%#05i; %20s; %20s; %20s; %20s; %10s; %5c\n",i, Usu[i].Ape, Usu[i].Name, Usu[i].Nick, Usu[i].Pass, Usu[i].DNI, Usu[i].atri);
}/****/
}/*for*/
getchar();
fflush(stdin);
}/********* Mostrar ************/
void PedidoPr(char kat, int Merc){
ppr=fopen("PRODUCTO.DAT", "r+");
PPr=fopen("USUARIO.DAT", "r+");
fread(&Usu, sizeof(Usu), 1, PPr);
fclose(PPr);
ppr=fopen("PRODUCTO.DAT", "r+");
fread(&Pro, sizeof(Pro), 1, ppr);
fclose(ppr);
system("COLOR 1F");
system("CLS");
int m;
time_t t;
struct tm *ahora;
time(&t);
ahora = localtime(&t);
for(m=0; m<maxU; m++){
if (strchr(Usu[m].Nick, kat)!= NULL){
sprintf(fecha, "%02d/%02d/%02d; %02d:%02d", ahora->tm_mday, ahora->tm_mon + 1,ahora->tm_year -100, ahora->tm_hour, ahora->tm_min);
fflush(stdin);
printf("³%61s³\n", " **** PEDIDO PRESUPUESTO REPOSICION MERCADERIAS **** ");
printf("Ã-----------------------------"
"--------------------------------´\n");
printf("³ SUPEMERCADO SHAO CHINI CUIT:304567654567; %18s³\n", fecha);
printf("³ Mayorista Y Minorista IngBr: 90222343344; Inic.Act 02/02/95³\n");
printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´\n");
printf("³Proveedor:%20s|Dom:%26s% ³\n", Usu[m].Ape, Usu[m].Name);
printf("³ E-mail:%30s | Tel %15s ³\n", Usu[m].Email,Usu[m].Tel);
printf("ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´\n");
printf("³%22s%20s%21s", "Cantidad ³", "Producto ³","Precio ³\n");
printf("³%18d ³%19s³ %20s", Pro[Merc].Alarm *10, Pro[Merc].NPr, " ³\n");
printf("ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n\n");
}/**if **/
} /* for */
fflush(stdin);
system("PAUSE");
system("COLOR 3A");
system("CLS");
return;
}
void reponePro(){
char ini, nu;
int i, f, g;
Reg=fopen("PRODUCTO.DAT", "r+");
fread(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);
system("COLOR F3");
system("CLS");
printf("(Espacio=Fin Carga Articulos; LETRA INICIO del producto: "); ini=getchar();
if(ini==char(32)) siguefac();
printf("Lista Productos Pedidos\n");
f=0;
printf("%5s;%20s;%30s;%6s;%6s\n", "Cod", "Articulo", "Detalle Articulo", "Stock", "Precio");
for(i=0; i< maxP; i++)
{/*for*/
if(ini==Pro[i].NPr[0] || ini == char(int(Pro[i].NPr[0])+32) )
{
f=f+1;
if(Pro[ int(tabla[i][1])].Cat=='G')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.30);
else if(Pro[ int(tabla[i][1])].Cat=='C')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.40);
else if(Pro[ int(tabla[i][1])].Cat=='B')
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.20);
else
printf("%5d;%20s;%30s;%6d;%6.2f\n", i, Pro[i].NPr, Pro[i].DPr, Pro[i].StPr, Pro[i].PrePr * 1.50);
}/*if*/
}/**for**/
if(f<1)
{
printf("NO SE ENCONTRO PRODUCTO QUE INICIE CON ESA LETRA\n");
system("PAUSE");
fflush(stdin);
muestraP();
}
printf("INGRESE EL CODIGO DEL PRODUCTO A REPONER: "); scanf("%i", &g); fflush(stdin);
printf("INGRESE CANTIDAD DEL PRODUCTO A REPONER: "); scanf("%i", &Pro[g].StPr); fflush(stdin);
freopen("PRODUCTO.DAT", "w+", Reg);
fwrite(&Pro, sizeof(Pro), 1, Reg);
fclose(Reg);
Amain();
}/*********** reponeP **************/
Codigo cpp en: https://www.4shared.com/file/1mr0zuUNei/SuperMer.html
holaholita dice:
tengo q hacer un programa donde se juegue 30 partidos con 6 equipos pero no puedo hacer q jueguen entre ellos
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void leo();
void carga();
struct equipo{
char Nom[20];
char Con[20];
int gf;
int gc;
int pun;
}part[30];
int i, j, k, sumap, sumapc;
FILE *Ar;
main(){
char op;
for(i=0; i<30; i++) part[i].gf=-1;
printf("Ingresara al archivo guardado o hará uno nuevo \n"
"Opciones; a=antiguo; c;antiguo cargar goles; n=nuevo. Opcion: ");
op=getchar();
if(op == 'a' || op == 'A') leo();
else if(op == 'c' || op == 'C') carga();
else{
system("MODE CON: lines=50 cols=80");
fflush(stdin);
for(i=0; i<6; i++){
printf("Ingrese nombre del equipo Nro %2d: ", i+1);
gets(part[i].Nom); fflush(stdin);
sprintf(part[6 +i].Nom, "%s", part[i].Nom);
sprintf(part[12+i].Nom, "%s", part[i].Nom);
sprintf(part[18+i].Nom, "%s", part[i].Nom);
sprintf(part[24+i].Nom, "%s", part[i].Nom);
}
Ar=fopen("Partidos.Dat", "w+");
fwrite(&part, sizeof(part), 1, Ar);
fclose(Ar); //guardo en archivo disco el vector de struct
k=1;
for(i=0; i<6; i++){
for(j=0; j<6; j++){
if(i != j ){
//printf("Partido Nro %2d Juegan: %20s Contra %20s\n", k, part[j].Nom, part[i].Nom);
sprintf(part[k-1].Con, part[j].Nom);
k++;
}
}}
Ar=fopen("Partidos.Dat", "w");
fwrite(&part, sizeof(part), 1, Ar);
fclose(Ar); //guardo en archivo disco el vector de struct
getchar();
carga();
}
}
void carga()
{
system("MODE CON: lines=150 cols=120");
char op;
Ar = fopen("Partidos.Dat", "r+");
fread(&part, sizeof(part), 1, Ar);
fclose(Ar); //recargo struct
system("CLS");
k=1;
for(i=0; i<30; i++){
if( part[i].gf < 0)
{
printf("Partido Nro %2d Juegan: %20s Contra %20s\n", i + 1, part[i].Nom, part[i].Con);
printf("Goles a favor de: %s: ", part[i].Nom); scanf("%i", &part[i].gf); fflush(stdin);
printf("Goles a favor de: %s: ", part[i].Con); scanf("%i", &part[i].gc); fflush(stdin);
printf(" S = Si, N = No. Otra fecha?: ");
{ op=getchar(); fflush(stdin); }
if(op == 'N' || op == 'n')break;
}
}
freopen("Partidos.Dat", "w+", Ar);
fwrite(&part, sizeof(part), 1, Ar);
fclose(Ar); //guardo en archivo disco
system("CLS");
system("MODE CON: lines=50 cols=120");
for(i=0; i<30; i++){
printf("Partido Nro %2d; %20s Contra %20s; Resultado: %2d a %2d\n", i+1, part[i].Nom, part[i].Con, part[i].gf, part[i].gc);
}
if(op == 'n' || op == 'N') exit(0);
leo();
}
void leo(){
Ar = fopen("Partidos.Dat", "r+");
fread(&part, sizeof(part), 1, Ar);
fclose(Ar); //recargo struct
getchar();
char equipo[20];
printf("\n");
for(j=0; j<5; j++){
sprintf(equipo, "%s", part[j].Nom);
for(i=0; i<30;i++){
if(strcmp(equipo, part[i].Nom) == 0)
{
if(part[i].gf > part[i].gc)sumap = sumap + 2;
if(part[i].gf == part[i].gc)sumap = sumap + 1;
if(part[i].gf < part[i].gc)sumap = sumap + 0;
}}
for(i=0; i<30; i++){
if(strcmp(equipo, part[i].Con) == 0)
{
if(part[i].gc > part[i].gf)sumap = sumap + 2;
if(part[i].gc == part[i].gf)sumap = sumap + 1;
if(part[i].gc < part[i].gf)sumap = sumap + 0;
}}
printf("El equipo %s tiene un total de %2d puntos \n", equipo, sumap);
sumap=0;
sprintf(equipo, "%20s", "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0");
}
getchar();
}
El codigo permite el ingreso de 6 equipos por sus nobres, luego planifica que cada uno juegue con los demas, lo que resulta en 30 partidos, asi que una vez cargados los primeros 6, los repite 5 veces hasta formar los 30
aaaaaaaaestos datos se guardan en un vector de struct, con el nombre del equipo y del adversario en cada caso, luego se pueden cargar los goles de cada fecha, Suponiendo que las fechas pueden ser cargadas en distintas jornadas, entonces se prevee un archivo de disco que guarde lo que se hizo hasta ahora, y que permita continual una vez que se reabre el programa, con la carga de los goles
Luego se hace un calculo de puntos por equipo y se muestra en pantalla.
Se previó otro sistema de puntaje, por eso hay un par de variables que estan declaradas pero no se usan como los puntos dentro del struct y los puntosc entero de suma, que pueden ser eliminados sin problemas
El sistema alternativo de puntos, preveia un extra si el equipo era visitante, pero ademas en las ligas, se cuentan tambien las faltas acumuladas y otras cosas, asi que se simplifico a solo los goles
https://www.4shared.com/rar/yIgAt-Wcca/6Equi30Fech.html
Seguir-->