Pascal/Turbo Pascal - ayuda para culminar programa en pascal

 
Vista:

ayuda para culminar programa en pascal

Publicado por Jorge (2 intervenciones) el 05/02/2012 00:55:37
Buenas me dirijo a ustedes como ultimo recurso...

E realizado parte del programa pero me faltan muchas cosas las cuales espero me ayuden o por lomenos me enseñen que me falta por hacer D:
Esto es lo que llevo del programa hasta ahora:

Hacer un programa en pascal que permita reealizar una venta de diferentes articulos, gererar una factura y control de inventario debe tener un menu de opciones. minimo 10 Articulos


program tienda_mascotas;
uses crt;
const Max=100;
var
opc_c,opc_c_2:char;
n,i,j,opc,aux_codigo,aux_cantidad,cont:integer;
codigo,cantidad,codigo_factura,cantidad_factura:array[1..Max] of integer;
precio,costo_factura:array[1..Max] of real;
descripcion,descripcion_factura:array[1..Max] of string[200];
begin
clrscr;
{Ciclo repetivo que va permitir ejecutar el programa hasta que el usuario desee salir}
repeat
begin
{Menu de Opciones}
writeln('Bienvenidos a Tienda de Mascotas');
writeln('Menu de Opciones');
writeln('1.Ingrese nuevos articulos');
writeln('2.Venta y Facturacion de articulos');
writeln('3.Inventario');
write('Ingrese la opcion que desee:');
readln(opc);
writeln('');
if opc=1 then
begin
clrscr;
writeln('Ingrese la cantidad de articulos que desea ingresar:');
readln(n);
writeln();
for i:=1 to n do
begin
write('Ingrese el codigo del articulo:');
readln(codigo[i]);
write('Ingrese la descripcion del articulo:');
readln(descripcion[i]);
write('Ingrese el precio del articulo:');
readln(precio[i]);
write('Ingrese la cantidad del articulo:');
readln(cantidad[i]);
writeln('');
end;
end;
if opc=2 then
begin
cont:=0;
writeln('Ingrese la cantidad de articulos a vender en una comprar:');
readln(n);
repeat
begin
writeln('Ingrese el codigo del articulo que desea vender:');
readln(aux_codigo);
cont:=cont+1;
writeln();
for i:=1 to n do
begin
if aux_codigo=codigo[i] then
begin
write('Descripcion: ');
write(descripcion[i]:15);
write('Precio: ');
write(precio[i]:15);
write('Cantidad: ');
writeln(cantidad[i]);
writeln('Ingrese la cantidad que va a vender:');
readln(aux_cantidad);
while aux_cantidad>cantidad[i] do
begin
writeln('Error la cantidad ingresada es mayor a la disponibilidad');
writeln('Ingrese la cantidad a vender nuevamente:');
readln(aux_cantidad);
end;
cantidad[i]:=cantidad[i]-aux_cantidad;
end;
end;
end;
until cont=n;
end;
writeln('Desea continuar S/N');
readln(opc_c);
end;
until (opc_c='n') or (opc_c='N');
end.



Me falta un inventario me falta que los nuevos articulos muetre resultado, que al ingresar carecter invalidos muestre algun msj de error. espero que me ayuden muchas graciass de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

ayuda para culminar programa en pascal

Publicado por ramon (2158 intervenciones) el 06/02/2012 16:25:42
{A ver asín veo tu petición dime si vamos por buen camino ]

program tienda;
uses
crt;
const
max = 100;
type
regarticulo = record
articulo : string[200];
precio : real;
codigo : integer;
cantid : integer;
end;

factura = record
nombre : string[80];
ndni : longint;
direcci : string[40];
articu : array[1..10] of regarticulo;
nart : integer;
recarga : real;
total : real;
end;

var
entradas : array[1..max] of regarticulo;
enta : integer;
factu : array[1..10] of factura;
nfa : integer;
cont : integer;

procedure mascarafactura;
begin
clrscr;
gotoxy(12,2);write('Factura Mascotas');
gotoxy(4,4);write('Nombre : ');
gotoxy(4,5);write('DNI : ');
gotoxy(4,6);write('Direccion : ');
gotoxy(12,7);write('ARTICULOS ');
gotoxy(4,9);write('Artuculo : ');
gotoxy(4,10);write('Codfigo : ');
gotoxy(4,11);write('Precio : ');
gotoxy(4,16);write('Recarga x% : ');
gotoxy(4,17);write('Total Factura : ');
end;

procedure entradadatos;
var
tecla : char;
venta, tantopor : real;
h, i : integer;
final : boolean;
begin
nfa := nfa + 1;
mascarafactura;
final := false;
gotoxy(17,4);readln(factu[nfa].nombre);
gotoxy(17,5);readln(factu[nfa].ndni);
gotoxy(17,6);readln(factu[nfa].direcci);
i := 1;
repeat
gotoxy(17,9);readln(factu[nfa].articu[i].articulo);
gotoxy(17,10);readln(factu[nfa].articu[i].codigo);
gotoxy(17,11);readln(factu[nfa].articu[i].precio);
gotoxy(4,14);write('Entra Mas Articulos [S/N]');
repeat
tecla := readkey;
until tecla in['s','S','n','N'];
if tecla in ['s','S'] then
begin
i := i + 1;
if i > 100 then
i := 100;
gotoxy(17,9);clreol;
gotoxy(17,10);clreol;
gotoxy(17,11);clreol;
gotoxy(4,14);clreol;
end;
if tecla in['n','N'] then
begin
final := true;
end;
until final = true;
factu[nfa].nart := i;
gotoxy(17,16);readln(factu[nfa].recarga);
venta := 0.0;
for h := 1 to i do
begin
venta := venta + factu[nfa].articu[h].precio;
end;
tantopor := (venta * factu[nfa].recarga) / 100;
factu[nfa].total := venta + tantopor;
gotoxy(25,16);write(tantopor:0:0);
gotoxy(20,17);write(factu[nfa].total:0:0);
end;

procedure entradaproducto;
var
tec : char;
t : integer;
begin
t := 1;
repeat
clrscr;
gotoxy(10,2);write(' **** Entrada De Productos ****');
gotoxy(10,4);write('Articulo : ');
gotoxy(10,5);write('Precio : ');
gotoxy(10,6);write('Codigo : ');
gotoxy(10,7);write('Cantidad : ');
gotoxy(21,4);readln(entradas[t].articulo);
gotoxy(21,5);readln(entradas[t].precio);
gotoxy(21,6);readln(entradas[t].codigo);
gotoxy(21,7);readln(entradas[t].cantid);
gotoxy(10,10);write('Desea Entrar Mas Articulos [S/N]');
repeat
tec := readkey;
until tec in['s','S','n','N'];
if tec in['s','S'] then
begin
t := t + 1;
if t > max then
t := max;
end;
until tec in['n','N'];
enta := t;
end;

procedure valancetienda;
var
ff, c, b : integer;
ventas, contotal : real;
begin
gotoxy(10,2);write('*** Valance de compras y ventas ***');
gotoxy(10,4);write('Las Compras Supusieron = ');
gotoxy(10,7);write('Las Ventas Supusieron = ');
contotal := 0.0;
for c := 1 to enta do
begin
contotal := contotal + (entradas[c].precio * entradas[c].cantid);
end;
gotoxy(35,4);write(contotal:0:0);
ventas := 0.0;
for ff := 1 to nfa do
for b := 1 to factu[ff].nart do
begin
ventas := ventas + factu[ff].articu[b].precio;
end;
gotoxy(35,7);write(ventas:0:0);
end;

procedure menu;
var
opcion : char;
fin : boolean;
begin
fin := false;
repeat
clrscr;
gotoxy(10,2);write('*** MENU JENERAL ***');
gotoxy(10,4);write(' 1 = Crear Factura');
gotoxy(10,5);write(' 2 = Entrada Productos');
gotoxy(10,6);write(' 3 = Valance');
gotoxy(10,7);write(' 4 = Salir');
gotoxy(10,10);write('<< Eleja Opcion >>');
opcion := readkey;
if opcion in[#49..#52] then
begin
case opcion of
#49 : begin
clrscr;
entradadatos;
readln;
clrscr;
end;
#50 : begin
clrscr;
entradaproducto;
clrscr;
end;
#51 : begin
clrscr;
valancetienda;
readln;
clrscr;
end;
#52 : begin fin := true; end;
end;
end;
until fin = true;
end;

begin
clrscr;
nfa := 0;
menu;
end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

ayuda para culminar programa en pascal

Publicado por jorge (2 intervenciones) el 07/02/2012 01:49:54
Casi perfecto ;DD

solo que ami parecer, en mi ignorancia me parece que no tiene un inventario que almacene y que diga los articulos que tienes disponibles para vender :(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar