Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <iostream>
- #include <limits.h>
- #define linea 100
- using namespace std;
- char leerPalabra(){
- char c;
- scanf(" %c",&c);
- while(c!=' ' && c!='\t' && (c!='\n') && c!=EOF){
- putchar(c);
- c=getchar();
- }
- return c;
- }
- char leerPalabrasinPrint(){
- char c;
- scanf(" %c",&c);
- while(c!=' ' && c!='\t' && (c!='\n') && c!=EOF){
- c=getchar();
- }
- return c;
- }
- int procesarPalabra(){
- char c;
- int count=0, fin;
- fin = scanf(" %c", &c);
- if (fin==EOF || fin==0) return 0;
- while(c!=' ' && c!='\t'){
- count++;
- putchar(c);
- c = getchar();
- }
- return count;
- }
- int procesarPalabrasinPrint(){
- char c;
- int count=0, fin;
- fin = scanf(" %c", &c);
- if (fin==EOF || fin==0) return 0;
- while(c!=' ' && c!='\t'){
- count++;
- c = getchar();
- }
- return count;
- }
- void printCar(char c, int n,int m){
- int i;
- for (i=0;i<n;i++) putchar(c);
- if(m==1)
- printf("\n");
- }
- int valido(int fecha,int fechaini,int fechafin,int nfact,int nfactini,int nfactfin){
- return (fecha<=fechafin && fecha >=fechaini && nfact<=nfactfin && nfact>=nfactini);
- }
- void LeerSinImprimir(){
- char c;int dd,mm,aa;float precio;
- scanf(" %c",&c);
- while(c!=' '){
- c=getchar();
- }
- while((scanf("%d/%d/%d",&dd,&mm,&aa))==1){
- leerPalabrasinPrint();
- while(scanf(" %f",&precio)==0){
- procesarPalabrasinPrint();
- }
- }
- }
- int main() {
- int cant,i,j,cont,dd,mm,aa,nfact;
- char c;
- float precio,total;
- int totalfacturas=0,maxfact,minfact;
- float totalfacturado=0,max=0,min=INT_MAX;
- int fecha,fechaini=20091101,fechafin=20161129,nfactini=0,nfactfin= 175476;
- scanf("%d/%d/%d",&dd,&mm,&aa);
- while(scanf("%d",&nfact)!=EOF){
- fecha=aa*10000+mm*100+dd;
- if (!valido(fecha,fechaini,fechafin,nfact,nfactini,nfactfin)){
- LeerSinImprimir();
- continue;
- }
- totalfacturas++;
- total=0;
- printf("Factura No. %d\nCliente: ",nfact);
- scanf(" %c",&c);
- cont=0;
- while(c!=' '){
- cont++;
- putchar(c);
- c=getchar();
- }
- printCar(' ',linea-cont-26,0);
- printf("Fecha: %02d/%02d/%4d\n",dd,mm,aa);
- printCar('-',linea,1);
- printf("CODIGO DESCRIPCION CANTIDAD P.U. SUBTOTAL\n");
- printCar('-',linea,1);
- while((scanf("%d/%d/%d",&dd,&mm,&aa))==1){
- leerPalabra();printCar(' ',6,0);
- cont=0;
- while(scanf(" %f",&precio)==0){
- putchar(' ');
- cont++;
- cont+=procesarPalabra();
- }
- printCar(' ',50-cont,0);
- printf("%2d %7.2f %9.2f\n",dd,precio,dd*precio);
- total+=dd*precio;
- }
- totalfacturado+=total;
- if(total>=max){
- max=total;
- maxfact=nfact;
- }
- if(total<=min){
- min=total;
- minfact=nfact;
- }
- printCar('-',linea,1);
- printf("Total facturado");printCar(' ',linea-24,0);printf("%9.2f\n\n",total);
- }
- printf("Resumen:\nTotal de facturas en los rangos: %d\nTotal facturado para los rangos: %.2f\nPromedio facturado: %.2f\n",totalfacturas,totalfacturado,totalfacturado/totalfacturas);
- printf("Numero de factura con mayor facturacion: %d Total facturado: %8.2f\n",maxfact,max);
- printf("Numero de factura con menor facturacion: %d Total facturado: %8.2f\n",minfact,min);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment