Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

Ayuda formato en C

topper

Bovino maduro
Desde
23 Oct 2005
Mensajes
137
Hola bakunos necesito de su ayuda, el tema es que tengo que hacer una factura o boleta de ventas en C, y esta tiene que ser con formato se los dibujare aca para que me entiendan:

|--------------------------------------------------|
|Nombre: |
|Direccion: |
|--------------------------------------------------|
|cantidad | producto | valor neto | valor total |
|---------|-----------|------------|----------------|
| | | | |

bueno algo mas o menos asi.

O sea lo que necesito saber es como hacer las casillas o formato el resto me las arreglo yo como hacerlo, en cuanto a formulas y todo eso.


Bueno y como el corral nun-k falla se los agradezco de antemano.

Saludos

Topper
 
Hola

Hay una funcion que se llama gotoxy(int x, int y);
esta funcion recibe dos parametros de tipo entero que son las coordenadas donde se
coloca el cursor para empezar a escribir.
Despues de eso pones un cprintf("|----|-----------|-----------|"); con lo que quieras que se muestre
gotoxy(x,y); cprintf("|------------|------------|----------|");
gotoxy(x,y+1); cprintf("| | | |");
gotoxy(x,y+n); cprintf("|------------|------------|----------|");

Consulta el codigo ASCII hay mucho carcteres los cuales puedes utilizar para las esquinas o las uniones de de celdas y columnas
 
Muchas gracias eldragon2000 voy a intentar de inmediato,

ahora asumo que cuando hago un cuadro y quiero poner texto en su interior debo didujarlo y escribir el codigo dentro de este?
 
Muchas gracias eldragon2000 voy a intentar de inmediato,

ahora asumo que cuando hago un cuadro y quiero poner texto en su interior debo didujarlo y escribir el codigo dentro de este?

Si no me equivoco deberás "escribirlo" ordenadamente de izquierda a derecha, campo, formato, campo, formato, espero me explique.
 
Es necesario hacerlo en Consola???
Estas usando un IDE???
Por que no usar un WindowsForm de .NET???
 
Que tal!

Asi como lo digo el compañero bakuno es lo que necesitas. Gotoxy (x,y) hace la chamba...
la "x" es las filas o las coordenadas equis del plano cartesiano. Por ende, la "y" es por el eje de las y, es decir, columnas.

Ahora, con el mismo gotoxy puedes poner el cursor en la casilla en donde vas a solicitar el codigo, espero haberme dado a entender. Cualquier cosa, por aca andamos
 
Muchas gracias eldragon2000 voy a intentar de inmediato,

ahora asumo que cuando hago un cuadro y quiero poner texto en su interior debo didujarlo y escribir el codigo dentro de este?


algo asi pero hay otras formas de hacelo utilizando la misma funcion de gotoxy
 
Ejemplo

este es un ejemplo de como puedes usar el gotoxy y poner los datos cuando y donde tu quieras
#include<conio.h>
#include<stdio.h>

void ventana(void){
int i=10;
for(i=10;i<=60;i++){
gotoxy(i,10);printf("%c",205);//esta corresponde a Í
gotoxy(i,25);printf("%c",205);
gotoxy(i,40);printf("%c",205);
}
for(i=10;i<=40;i++){
gotoxy(10,i);printf("%c",186);//esta corresponde a º
gotoxy(26,i);printf("%c",186);
gotoxy(45,i);printf("%c",186);
gotoxy(60,i);printf("%c",186);
}
gotoxy(10,10);printf("%c",201);//É

gotoxy(10,40);printf("%c",200);//È
gotoxy(60,10);printf("%c",187);//»

gotoxy(60,40);printf("%c",188);//¼
gotoxy(26,10);printf("%c",203);//Ë
gotoxy(45,10);printf("%c",203);//Ë

gotoxy(10,25);printf("%c",204);//Ì

gotoxy(60,25);printf("%c",185);//¹

gotoxy(26,40);printf("%c",202);//Ê
gotoxy(45,40);printf("%c",202);//Ê
gotoxy(26,25);printf("%c",206);//Î

gotoxy(45,25);printf("%c",206);//Î
}
void main(){
clrscr();
ventana();
gotoxy(11,11);printf("Puedes escribir");
gotoxy(46,36);printf("lo que quieras");
gotoxy(27,18);printf("en el orden que");
gotoxy(11,39);printf("tu quieras solo");
gotoxy(46,13);printf("tienes que");
gotoxy(27,30);printf("decirle donde ");
gotoxy(11,41);printf("Ten en cuenta no salirte del margen");
getch();
}

si crees que son simbolos raros no te preocupes ya que lo corras vaz a ver e resultado
 
Es necesario hacerlo en Consola???
Estas usando un IDE???
Por que no usar un WindowsForm de .NET???


Simple por que acabo de entrar a estudiar infromatica y recien estoy aprendiendo el lenguaje C es por eso que debe ser en consola, y no es nada facil el tema, pero si muy entretenido....


Saludos bakunos y como siempre son notables siempre la buena dispocicion y la amabilidad de la gente de aca........


:)



El dragon voy a intentar con tu ejemplo, wow tremendo trabajo.

Gracias a todos..
 
solo una cosa mas verifica que lenguaje maneja el gotoxy o la libreria conio comunmente es la de borland c++ 3.0 de alli seria de verificar
 
ya muchachos tengo lista toda la estructura de la factura ahora el tema es como rellenar los datos, por ejemplo:
Nombre: xxxxxxxxx Direccion: xxxxxxxx

y al final de esta factura que me pregunte si quiero hacer otra factura y volver todos los datos a cero, para el nuevo documento.

bueno eso seria y una vez mas agradecido de todos los que me ayudaron....

Saludos

Topper
 
bueno, para ir rellenando tu formato, tienes que hacer lo mismo con el gotoxy. Un ejemplo:

gotoxy (5,5); //columa 5, fila 5
printf ("Nombre: ");
gotoxy(15,5);
scanf("%c", &nombre); //columna 15, fila 5

lo anterior te pone el cursor delante del "nombre".


Tu siguiente pregunta se responde facilmente. Debes de meter un DO WHILE, algo mas o menos asi:

do
{
//aqui va tu codigo ....
.....
....
printf ("Deseas capturar otra factura: S/N: ");
scanf("%c", &opcion);
}while(opcion= ="s" || opcion = = "S"); //los dos signos igual van juntos


Y con esto ya tienes un ciclo repetitivo para meter otra factura.

Espero haberte ayudado.

Saludos!!





ya muchachos tengo lista toda la estructura de la factura ahora el tema es como rellenar los datos, por ejemplo:
Nombre: xxxxxxxxx Direccion: xxxxxxxx

y al final de esta factura que me pregunte si quiero hacer otra factura y volver todos los datos a cero, para el nuevo documento.

bueno eso seria y una vez mas agradecido de todos los que me ayudaron....

Saludos

Topper
 
excelente parker voy a probar entonces y te cuento como me fue muchisimas gracias
 
bueno muchachos nuevamente molestando y tambien nuevamente dando las gracias a todos los que me han ayudado ha resultado todo impecable.

El asunto que me acompleja ahora, bueno son 3:

necesito que al colocar un numero se agregue automaticamente un signo $ delante de este.
ademas ese valor en numero se escriba automaticamente en palabras.
y las facturas tienen un numero correlativo necesito que al preguntar se deseo capturar otra factura si coloco SI sume un numero a la nueva factura. ya me tiene loco jejejejeje he estado todo el fin de semana en esto......

cuando este todo terminado subire el codigo para el que lo pueda ocupar ya que me han ayudado bastante y no ha sido nada facil.

saludos
 
A ver, respondiendo a dos de tus tres preguntas:

1.- El signo "$" lo puedes agregar usando una concatenacion. Busca informacion al respecto, es realmente muy facil.

2.- Ahi si te la debo, tengo la idea que puedes meter un SWITCH pero creo que hay una l ibreria que te puede ayudar a hacer la chamba.

3.- Tu "aumento" de factura o "numero de folio consecutivo" tambien se hace muy facil con un contador. Siguiendo tu codigo, cuando preguntas si deseas capturar otra factura (sentencia DO WHILE, que anteriormente tocamos), antes de ese do-while le puedes poner un IF con un contador.
Ejemplo:
if (opcion= = "SI" || opcion = = "si")
{
folio= folio +1;
}

obviamente, tienes que declarar antes la variable "folio" de tipo entero.


Saludos!




bueno muchachos nuevamente molestando y tambien nuevamente dando las gracias a todos los que me han ayudado ha resultado todo impecable.

El asunto que me acompleja ahora, bueno son 3:

necesito que al colocar un numero se agregue automaticamente un signo $ delante de este.
ademas ese valor en numero se escriba automaticamente en palabras.
y las facturas tienen un numero correlativo necesito que al preguntar se deseo capturar otra factura si coloco SI sume un numero a la nueva factura. ya me tiene loco jejejejeje he estado todo el fin de semana en esto......

cuando este todo terminado subire el codigo para el que lo pueda ocupar ya que me han ayudado bastante y no ha sido nada facil.

saludos
 
Aca esta el codigo de la factura



#include<stdio.h>
#include<conio.h>
#include<string.h>
main(){
clrscr();
long long int x,i=5,n=1,nom1[20],nom2[20],rut[20],rut2,fecha2,recinto,giro[20],tel,dir[20],ciu[20],iva,totalapagar,totalgral,cant1,cant2,cant3,prod1,prod2,prod3,s,neto1,neto2,neto3,total1,total2,total3;
do{
clrscr();
textcolor(BLACK+BLINK);
textbackground(WHITE);
clrscr();
for(n=0;n<=1000;n++){
gotoxy(58,5);printf("N§:0","%c",n);
}
for(i=5;i<=75;i++){
gotoxy(i,1);printf("%c",205);
}
printf("\n\n Nombre dantasia de la empresa.");
for(i=50;i<=73;i++){
gotoxy(i,2);printf("%c",205);
}
printf("\n Nombre Representante Legal");
printf(" FACTURA");
printf("\n Direccion");
printf(" RUT");
printf("\n Santiago.");
printf(" ");
gotoxy(58,5);printf("N§:");
for(i=50;i<=73;i++){
gotoxy(i,6);printf("%c",205);
}
gotoxy(50,6);printf("%c",200);
gotoxy(74,6);printf("%c",188);
gotoxy(5,1);printf("%c",201);
gotoxy(50,2);printf("%c",201);
for(i=3;i<=5;i++){
gotoxy(50,i);printf("%c",186);
}
gotoxy(74,2);printf("%c",187);
gotoxy(75,1);printf("%c",187);
for(i=3;i<=5;i++){
gotoxy(74,i);printf("%c",186);
}
for(i=2;i<=24;i++){
gotoxy(75,i);printf("%c",186);
}
for(i=2;i<=24;i++){
gotoxy(5,i);printf("%c",186);
}
gotoxy(8,8);printf("Nombre:");
gotoxy(50,8);printf("RUT:");
gotoxy(8,9);printf("Giro:");
gotoxy(50,9);printf("Tel‚fono:");
gotoxy(8,10);printf("Direcci¢n:");
gotoxy(50,10);printf("Ciudad:");
for(i=6;i<=74;i++){
gotoxy(i,11);printf("%c",205);
}
gotoxy(5,11);printf("%c",204);
gotoxy(75,11);printf("%c",185);
for(i=12;i<=24;i++){
gotoxy(7,i);printf("%c",186);
}
gotoxy(7,11);printf("%c",203);
gotoxy(8,12);printf("Cant.");
gotoxy(14,12);printf(" Detalle Producto");
gotoxy(13,11);printf("%c",203);
for(i=12;i<=18;i++){
gotoxy(13,i);printf("%c",186);
}
for(i=12;i<=24;i++){
gotoxy(73,i);printf("%c",186);
}
gotoxy(73,11);printf("%c",203);
for(i=12;i<=22;i++){
gotoxy(63,i);printf("%c",186);
}
gotoxy(63,11);printf("%c",203);
gotoxy(65,12);printf("Total");
for(i=12;i<=22;i++){
gotoxy(53,i);printf("%c",186);
}
gotoxy(55,12);printf("Neto");
gotoxy(53,11);printf("%c",203);
for(i=8;i<=72;i++){
gotoxy(i,18);printf("%c",205);
}
gotoxy(7,18);printf("%c",204);
gotoxy(73,18);printf("%c",185);
gotoxy(13,18);printf("%c",202);
gotoxy(53,18);printf("%c",206);
gotoxy(63,18);printf("%c",206);
for(i=8;i<=72;i++){
gotoxy(i,13);printf("%c",205);
}
gotoxy(63,13);printf("%c",206);
gotoxy(53,13);printf("%c",206);
gotoxy(13,13);printf("%c",206);
gotoxy(7,13);printf("%c",204);
gotoxy(73,13);printf("%c",185);
gotoxy(8,19);printf("Son:");
gotoxy(45,20);printf("Pesos.");
gotoxy(8,21);printf("Cancelado:");
gotoxy(20,21);printf("de");
gotoxy(30,21);printf("20");
gotoxy(37,21);printf("Firma");
for(i=8;i<=72;i++){
gotoxy(i,22);printf("%c",205);
}
gotoxy(7,22);printf("%c",204);
gotoxy(53,22);printf("%c",202);
gotoxy(63,22);printf("%c",202);
gotoxy(73,22);printf("%c",185);
gotoxy(8,23);printf("Nombre:");
gotoxy(40,23);printf("Rut:");
gotoxy(58,23);printf("Fecha:");
gotoxy(8,24);printf("Recinto:");
gotoxy(40,24);printf("Firma:");
gotoxy(54,19);printf("T. Neto $");
gotoxy(54,20);printf(" ...% IVA");
gotoxy(54,21);printf(" Total $");
for(i=8;i<=72;i++){
gotoxy(i,25);printf("%c",205);
}
for(i=5;i<=75;i++){
gotoxy(i,25);printf("%c",205);
}
gotoxy(5,25);printf("%c",200);
gotoxy(7,25);printf("%c",202);
gotoxy(73,25);printf("%c",202);
gotoxy(75,25);printf("%c",188);
gotoxy(15,8);scanf("%*c%[^\n]",nom1);
gotoxy(54,8);scanf("%s",rut);
gotoxy(13,9);scanf("%*c%[^\n]",giro);
gotoxy(59,9);scanf("%d",&tel);
gotoxy(18,10);scanf("%*c%[^\n]",dir);
gotoxy(57,10);scanf("%*c%[^\n]",ciu);
gotoxy(9,14);scanf("%li",&cant1);
gotoxy(14,14);scanf("%*c%[^\n]",prod1);
gotoxy(56,14);scanf("%li",&neto1);
total1=(cant1*neto1);
gotoxy(66,14);printf("%li",total1);
gotoxy(9,15);scanf("%li",&cant2);
gotoxy(14,15);scanf("%*c%[^\n]",prod2);
gotoxy(56,15);scanf("%li",&neto2);
total2=(cant2*neto2);
gotoxy(66,15);printf("%li",total2);
gotoxy(9,16);scanf("%li",&cant3);
gotoxy(14,16);scanf("%*c%[^\n]",prod3);
gotoxy(56,16);scanf("%li",&neto3);
total3=(cant3*neto3);
gotoxy(66,16);printf("%li",total3);
totalgral=(total1+total2+total3);
gotoxy(66,19);printf("%lli",totalgral);
iva=(totalgral*0.19);
gotoxy(66,20);printf("%li",iva);
x=(totalgral+iva);
gotoxy(66,21);printf("%li",x);
gotoxy(12,19);printf("%s",x);
gotoxy(15,23);scanf("%*c%[^\n]",nom2);
gotoxy(44,23);scanf("%s",rut2);
gotoxy(65,23);scanf("%*c%[^\n]",fecha2);
gotoxy(16,24);scanf("%*c%[^\n]",recinto);
gotoxy(8,26);textcolor(BLUE);cprintf("Si desea realizar otra factura presione 1 o cualquier tecla para Salir: ");
scanf("%d",n);
}while(n==1);
getch();
return 0;
}
 
Oye, me marca error en la declaracion de sentencias... (lo corregi y medio corre)
como es eso de long long int?

Esta muy pero muy bueno tu programa...
FELICIDADES!

PD. trata de poner indexado el codigo, es dificil leerlo en una sola columna.
 
gracias, bueno est lo he logrado con la ayuda de todos ustedes y donde colocarias el acumulador correlativo? segun el codigo?
 
yo creo que iria aqui:

gotoxy(58,5);printf("N§:");

es decir:
gotoxy(58,5); printf("No: ", folio); // o a que te refieres con este numero?


PD: debes de iniciar tu variable folio con un valor de 1, estas de acuerdo el por que?
 
Volver
Arriba