Arrays 帕斯卡数组
程序输入租用的设备数量和支付的成本。如果设备损坏,则需要额外费用。输入的数据应在屏幕上输出 当我为损坏设备输入2,它要求输入原始程序时,程序停止;然而,当我输入1时执行结果;但对于接受0的设备数量,当提示我再次输入返回的设备数量时,它接受另一个数字;我似乎不明白这个问题 这是我写的整个程序Arrays 帕斯卡数组,arrays,pascal,Arrays,Pascal,程序输入租用的设备数量和支付的成本。如果设备损坏,则需要额外费用。输入的数据应在屏幕上输出 当我为损坏设备输入2,它要求输入原始程序时,程序停止;然而,当我输入1时执行结果;但对于接受0的设备数量,当提示我再次输入返回的设备数量时,它接受另一个数字;我似乎不明白这个问题 这是我写的整个程序 Program Rental_info; CONST Flaterate= 100000; Penalty= 0.05; Var client_name, ID_numbe
Program Rental_info;
CONST
Flaterate= 100000;
Penalty= 0.05;
Var
client_name, ID_number: array[1..1000] of string;
Total_equiprented, equip_return,equipcondition: array [1..1000]of integer;
Total_paid, Balance, Additional_cost, orig_cost:array[1..1000]of real;
num_of_clients,option,x,y,G,s, B, A, Clientaddcost_count: integer;
Total_amt_out,Total_amt_received,Total_add_cost:real;
Begin
num_of_clients:=0 ;
x:=0;
y:=0;
s:=0;
B:=0;
A:=0;
Total_amt_out:=0;
Total_amt_received:=0;
Total_add_cost:=0;
For A:=1 to num_of_clients DO
Begin
Total_equiprented[A]:=0;
Total_paid[A]:=0;
Balance[A]:=0;
Additional_cost[A]:=0;
Orig_cost[A]:=0;
End;
option:=0;
while option<2 do
begin
Writeln('Do you wish to add a client?') ;
Writeln('Enter 1 for yes and 2 for no');
Readln(option);
IF (option = 1) THEN
Begin
Writeln('****WELCOME TO SSC Agricultural Rental Enterprise Records****');
Writeln('Please enter the total number of rental clients') ;
Readln(num_of_clients) ;
// For s:=1 to num_of_clients DO writeln(s);
For x:=1 to num_of_clients DO
Begin
Writeln('Please enter rental client name: ') ;
Readln(client_name[x]);
Writeln('Please enter client ID number: ');
Readln(ID_number[x]);
Writeln('Please enter the amount of equipment rented: ');
Readln(Total_equiprented[x]);
While Total_equiprented[x]>5 Do
begin
Writeln('Please enter a smaller amount of equipment rented, amount should be <5!');
Readln(Total_equiprented[x]);
End;
Writeln('Please enter amount paid for rented equipment: ');
Readln(Total_paid[x]);
end;
For y:=1 to num_of_clients DO
Begin
Balance[y]:= Flaterate-Total_paid[y]
End;
For s:=1 to num_of_clients DO
Begin
Writeln('Please select overall condition of equipment: ');
Writeln('1-Good');
Writeln('2-Damage') ;
//Writeln('Type overall condition of the equipment');
Readln(equipcondition[s]);
Writeln('Please enter amount of equipment returned');
Readln(equip_return[s]);
If (equipcondition[s]=1) AND (equip_return[s]=Total_equiprented[s]) then
Begin
Additional_cost[s]:=0;
End
else if (equipcondition[s]=2) AND (equip_return[s]=Total_equiprented[s]) then
Begin
Writeln('Please enter the original cost for equipment');
Readln(orig_cost[s]);
//Writeln(orig_cost[s]);
Additional_cost[s]:= orig_cost[s]*Penalty;
End;
End;
For B:=1 to num_of_clients DO
Begin
Total_amt_out:= Total_amt_out + Balance[B];
Total_amt_received:= Total_amt_received + Total_paid[B];
Total_add_cost:= Total_add_cost + Additional_cost[B];
While Total_add_cost>0 Do
Begin
Clientaddcost_count:= Clientaddcost_count + 1;
End;
End;
For G:=1 to num_of_clients DO
Begin
Writeln('The client(s) with oustanding balances is/are ', client_name[B]);
Writeln('The total number of client(s) who are required to pay additional charges is/are ', Clientaddcost_count);
Writeln('The total payment received for rental equipment is ', Total_amt_received:0:2);
Writeln('The total payment outstanding for rental equipment is ', Total_amt_out:0:2);
Writeln('Client total additional amount to be collected for damaged equipment is ', Total_add_cost:0:2);
end;
end
else
Begin
Writeln ('****Thank you for contacting SSC AGRICULTURAL RENTAl ENTERPRISE, GOODBYE****');
Writeln;
Writeln;
Writeln('Press <Enter> To Quit...');
Readln;
End;
end;
End.
Program-Rental\u-info;
常数
扁平化率=100000;
罚款=0.05;
变量
客户端名称、ID号:字符串数组[1..1000];
总装备租用、装备返回、装备条件:整数数组[1..1000];
支付的总成本、余额、额外成本、原始成本:实际值的数组[1..1000];
客户端数量,选项,x,y,G,s,B,A,Clientaddcost计数:整数;
出总金额、收总金额、加总成本:实收;
开始
_客户端的数量:=0;
x:=0;
y:=0;
s:=0;
B:=0;
A:=0;
总金额:等于0;
收到的总金额:=0;
总成本加总成本:=0;
对于A:=1到多个客户端
开始
总_[A]:=0;
支付的总金额[A]:=0;
余额[A]:=0;
附加成本[A]:=0;
原始成本[A]:=0;
结束;
选项:=0;
而选项5可以
开始
Writeln('请输入较小的租用设备金额,金额应当总成本
在此处非零时,您的程序以无限循环方式输入:
While Total_add_cost>0 Do
Begin
Clientaddcost_count:= Clientaddcost_count + 1;
End;
而且你不会在循环中改变总成本
来阻止它
重新考虑这个逻辑。你能帮助我在那里为计数器做些什么吗;因为当我输入1作为设备条件时,它可以正常工作;当我输入2时,这就是问题所在(对于B:=1到客户数量…
)其中,对所有客户端的总计进行求和,其中一个总计为ClientAddCost\u Count
。如果且仅当当前客户端具有额外成本(additional\u cost[B]>0
)时,才希望增加该值。您不应使用While
-循环,而应使用If
语句检查附加成本[B]
和增量(带1)“ClientAddCost”如果成本超过0,则计算。@TomBrunberg;非常感谢;我现在得到了它,但对于我输入租用物品数量的部分,它接受0,然后当它再次请求并输入另一个数字时,例如,它仍然接受它,即使它与第一个金额不匹配。我如何确保它匹配。@Sue Are y如果我建议将第二个条目与第一个条目进行比较,如果较大,则拒绝?如果必须精确匹配,则如果值不同,则拒绝。