Pascal/Turbo Pascal - Como podría resolver esto?

 
Vista:
sin imagen de perfil

Como podría resolver esto?

Publicado por Allen (8 intervenciones) el 07/03/2014 21:43:51
Muy buenas, verán estoy un poco atascado, necesito modificar este programa, no se si me podrían ayudar:

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
program hamburguesas;
uses crt;
var
 H,HQ,HD,PF,M,R,C,HC,HQC,HDC,PFC,MC,RC,CC,TOTAL:integer;
begin
clrscr;
 writeln('Hamburguesas consumidas');
 readln(H);
 writeln('Hamburguesas con Queso consumidas');
 readln(HQ);
 writeln('Hamburguesas Dobles consumidas');
 readln(HD);
 writeln('Papas Francesas consumidas');
 readln(PF);
 writeln('Malteadas consumidas');
 readln(M);
 writeln('Refrescos consumidos');
 readln(R);
 writeln('Cafes consumidos');
 readln(C);
 HC:= H+125;
 HQC:= HQ+15;
 HDC:= HD+17;
 PFC:= PF+5;
 MC:= M+6;
 RC:= R+5;
 CC:= C+6;
 TOTAL:= HC+HQC+HDC+PFC+MC+RC+CC;
 writeln('Su total es: ', TOTAL);
 writeln('Gracias, vuelva pronto');
 readln;
end.

Lo que necesito es que solicite el alimento a consumir y realizar esta tarea mientras el usuario consuma alimentos.
Solicitar al programa la cantidad con la que se va a pagar y si hay cambio que se visualice cuanto se devuelve.
También visualizar el numero de clientes que entraron, la cuenta del día y el producto que mas se vendió. Y al final visualizar la cuenta del usuario.

Gracias 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

Como podría resolver esto?

Publicado por ramon (2158 intervenciones) el 10/03/2014 11:38:18
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
165
166
167
168
169
170
171
172
173
174
175
{Mira esto}
 
program hamburges;
 uses
    crt;
 type
    cliente = record
         client : word;
         pedido : array[1..7] of real;
         cual   : array[1..7] of string[25];
         total  : real;
       end;
  const
     precio : array[1..7] of real = (
     2.32,3.00,4.10,3,2,1.40,3);
     nombre : array[1..7] of string[25] = (
     'Hamburguesas','Hamburguesas con Queso','Hamburguesas Dobles',
     'Papas Francesas','Malteadas','Refrescos','Cafes');
  var
    cli : array[1..100] of cliente;
    tecla : char;
    ii, cont, cl : integer;
 
  procedure asigna;
  var
     mm, ped : integer;
     clieiste : boolean;
  begin
     clrscr;
          writeln('  Elecion De Mas Pedido Cliente = ',cli[cl].client);
          writeln('  1 = Hamburguesas');
          writeln('  2 = Hamburguesas con Queso');
          writeln('  3 = Hamburguesas Dobles');
          writeln('  4 = Papas Francesas');
          writeln('  5 = Malteadas');
          writeln('  6 = Refrescos');
          writeln('  7 = Cafes');
          repeat
             tecla := readkey;
          until tecla in['1','2','3','4','5','6','7'];
   case tecla of
 '1' : begin
         writeln;
         write('  cantidad : ');
         readln(mm);
  cli[cont - 1].pedido[ord(tecla) - 48] := cli[cont - 1].pedido[ord(tecla) - 48] +
  precio[ord(tecla) - 48] * mm;
       end;
 '2' : begin
         writeln;
         write('  cantidad : ');
         readln(mm);
  cli[cont - 1].pedido[ord(tecla) - 48] := cli[cont - 1].pedido[ord(tecla) - 48] +
  precio[ord(tecla) - 48] * mm;
       end;
 '3' : begin
         writeln;
         write('  cantidad : ');
         readln(mm);
  cli[cont - 1].pedido[ord(tecla) - 48] := cli[cont - 1].pedido[ord(tecla) - 48] +
  precio[ord(tecla) - 48] * mm;
       end;
 '4' : begin
         writeln;
         write('  cantidad : ');
         readln(mm);
  cli[cont - 1].pedido[ord(tecla) - 48] := cli[cont - 1].pedido[ord(tecla) - 48] +
  precio[ord(tecla) - 48] * mm;
       end;
 '5' : begin
         writeln;
         write('  cantidad : ');
         readln(mm);
  cli[cont - 1].pedido[ord(tecla) - 48] := cli[cont - 1].pedido[ord(tecla) - 48] +
  precio[ord(tecla) - 48] * mm;
       end;
 '6' : begin
         writeln;
         write('  cantidad : ');
         readln(mm);
  cli[cont - 1].pedido[ord(tecla) - 48] := cli[cont - 1].pedido[ord(tecla) - 48] +
  precio[ord(tecla) - 48] * mm;
       end;
 '7' : begin
         writeln;
         write('  cantidad : ');
         readln(mm);
  cli[cont - 1].pedido[ord(tecla) - 48] := cli[cont - 1].pedido[ord(tecla) - 48] +
  precio[ord(tecla) - 48] * mm;
       end;
      end;
  end;
 
  procedure entrada_cliente(c : word);
  var
     mm, ped : integer;
     clieiste : boolean;
  begin
      clieiste := false;
      for ped := 1 to 100 do
      begin
         if cli[ped].client = c then
         begin
            clieiste := true;
            cl := ped;
         end;
      end;
       if clieiste = true then
       begin
          asigna;
     end
    else
        begin
          writeln('**** Nuevo Cliente Entre Numero Cliente ****');
          cli[cont].client := c;
          cont := cont + 1;
          if cont > 100 then
          cont := 100;
          clrscr;
          asigna;
       end;
    end;
 
   function reportatotal(nn : integer) : real;
   var
     u, tt, bb : integer;
     cuenta : real;
   begin
      reportatotal := 0.0;
      for bb := 1 to cont - 1 do
      begin
         if cli[bb].client = nn then
         begin
            tt := bb;
            break;
         end;
      end;
        cuenta := 0.0;
        for u := 1 to 7 do
        cuenta := cuenta + cli[bb].pedido[u];
        reportatotal := cuenta;
   end;
 
 
 
  begin
     clrscr;
     cont := 1;
     cl := 1;
   repeat
     clrscr;
     writeln('***** Entradas Ventas *****');
     writeln(' Tecla [ESC] = Termina / Tecla [M] = Entradas / Tecla [C] Cuenta');
    repeat
     tecla := upcase(readkey);
    until tecla in[#27,'M','C'];
     if tecla = 'M' then
     begin
     write('  Entre Num. Cliente : ');
     readln(cl);
     entrada_cliente(cl);
     end;
     if tecla = 'C' then
     begin
        write('  Entre Num. Cliente : ');
        readln(cl);
        clrscr;
        writeln('  Su Cuenta Es ');
        writeln;
        writeln('     ',reportatotal(cl):0:2);
        writeln('  Pulse Una Tecla ');
        readkey;
     end;
   until tecla = #27;
  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