Task:
Using the pseudocode for the program, you identify the aspects of the
program that can be reusable (identified for you in 1 – 5) and
write/rewrite it so it can be reused. This is what needs to be done: You
rewrite your pseudocode to implement this reusable code.
I WOULD LIKE PSEUDOCODE FOR THE SPECIFIC 5 CODES THAT FOLLOW.
THE FORMAT MUST BE AS FOLLOWS:
Explain what the code does and identify the aspect of the code that can
be reused
Cut and paste the code provided
Write the Pseudocode (plain language)
1. DO-WHILE :
struct CLIENT client_record ;
// Open a file which contains a list of clients
// Read first record into client_record
while ([Not eof])
{
CalculateBill (&client_record) ; // calculate bill
for the read record
// update record in the file with the current balance
GenerateInvoice (&client_record) ;
// Read next record into client_record
}
}
void CalculateBill (struct CLIENT* p)
{
late bill ;
late late_charge ; // 0.05 if late charge; 0 - otherwise
late this_price ;
bill = 0 ;
late_charge = 0;
if ( p -> current_balance > 0 )
late_charge = 0.05
;
// determine price for this client depending on volume of
business
if ( p -> volume_of_business > 5 )
this_price = PRICE - 10
;
else
this_price = PRICE
;
p -> current_balance += p -> volume_of_business* this_price ; //
calcualte total price
p -> current_balance += p -> current_balance * late_charge ; //
apply late charge if any
// apply oldFriend discount
if (p -> friend)
p -> current_balance -= p -> current_balance * DISCOUNT
;
}
void GenerateInvoice (struct CLIENT* p)
{
// print invoice for this record
}
2. DO-UNTIL
{
struct CLIENT client_record ;
// Open a file which contains a list of clients
// Read first record into client_record
if ("no record located")
return 1
;
do
{
CalculateBill (&client_record) ; // calculate bill
for the read record
// update record in the file with the current balance
GenerateInvoice (&client_record) ;
// Read next record into client_record
} while ([Not eof]) ;
}
3. FOR-LOOP
{
struct CLIENT client_record ;
// Open a file which contains a list of clients
// Read first record into client_record
for ( ; [Not eof] ; [read next record into client_record] )
{
CalculateBill (&client_record) ; // calculate bill
for the read record
// update record in the file with the current balance
GenerateInvoice (&client_record) ;
}
Furthermore, I could use the IF-THEN-ELSE statement to test for a
particular condition and then carry out that condition depending on
whether the answer is true or false.
(Determining discounts)
4. IF-THEN-ELSE
{
If clientType is oldFriend Then
[discount *.10]
[ElseIf clientType is volumeClient]] Then
[discount 10.00]]
[Else
[clientType is newClient]] Then
End If
}
Lastly, one could use a case structure when there are several distinct
possible values for a single variable you are testing, and each value
requires a different course of action.
{
If case “oldFriend” then
Discount = *.10
If case “volumeClient” then
Discount = 10.00
If case “newClient” then
Discount = 0
endif
}
5. Printing a single record
'Print routine for Single Record
Printer.Print
Printer.Print Tab(4), "Report"
Printer.Print
Printer.FontSize = 10
Printer.FontBold = True
Printer.Print , "Report Date"; Format(Date(), "mmm-dd-yyyy"); "Record
Date"; DTPicker1
Printer.Print
Printer.Print , "Record Number"; Number
CommonDialog1.Flags = cdlPDReturnDC + cdlPDNoPageNums
If RichTextBox1.SelLength = 0 Then
CommonDialog1.Flags = CommonDialog1.Flags + cdlPDAllPages
Else
CommonDialog1.Flags = CommonDialog1.Flags + cdlPDSelection
End If
CommonDialog1.ShowPrinter
'Printer.Print ""
RichTextBox1.SelPrint CommonDialog1.hDC
Screen.MousePointer = 0
Printer.EndDoc
