You are on page 1of 3

Imports System.

IO
Module Program
Dim SalesPersonID, salescounter, PersonID(3), choice As Integer
Dim SalesAmt, GrandTotalSales, OverallAvgSales As Double
Dim SalesPersonTotal(3), PersonSales(3) As Double
Dim caseorif As Integer

Sub Main()
Dim FileRecordWriter As StreamWriter
FileRecordWriter = New StreamWriter("E:\Compsci
Programs\TestFileSales.txt")
Call Initialise()
Do While choice <> -1
Do Until choice = 1 Or choice = 2 Or choice = 3 Or choice = 4 Or
choice = 5 Or choice = -1
Console.WriteLine("Menu")
Console.WriteLine("Choose an option by entering the number, to
exit enter -1")
Console.WriteLine("1 Input data")
Console.WriteLine("2 Write data to file")
Console.WriteLine("3 Read data from file ")
Console.WriteLine("4 Process data ")
Console.WriteLine("5 Output results ")
Loop
Loop
Try
Do
Call Inputdata()
Call WriteToFile(FileRecordWriter)

Call Processdata()
Loop Until SalesPersonID = -1
Catch
Console.WriteLine("Error occured, please restart program")
End Try

Call GrandTotal()
Call Overallaverage()
Call Outputdata()
FileRecordWriter.Close()
'Call ReadFromFile
Console.ReadKey()
End Sub
Sub Initialise()
For I = 1 To 3
SalesPersonTotal(I) = 0
Next
GrandTotalSales = 0
salescounter = 0
End Sub
Sub Processdata()
Console.WriteLine("Choose to use CASE or IF selecion. Enter 1 to use CASE,
2 to use IF")
caseorif = Console.ReadLine
Do
If caseorif = 2 Then
Call CASEtotalling()
ElseIf caseorif = 1 Then
Call IFtotalling()
End If
Loop Until caseorif = 1 Or caseorif = 2
salescounter += 1
End Sub
Sub WriteToFile(FileRecordWriter As Object)
If SalesPersonID <> -1 Then
FileRecordWriter.WriteLine(SalesPersonID & “#” & SalesAmt & "#")
End If
Console.WriteLine(“File created successfully”)
End Sub
Sub Inputdata()
Do
Console.WriteLine(“Enter Salesperson’s ID: 1, 2 or 3. Enter -1 to
exit”)
SalesPersonID = Console.ReadLine
Loop Until SalesPersonID = 1 Or SalesPersonID = 2 Or SalesPersonID = 3 Or
SalesPersonID = -1
If SalesPersonID <> -1 Then
Console.WriteLine(“Enter sales amount”)
SalesAmt = Console.ReadLine
End If
End Sub
Sub IFtotalling()
If SalesPersonID = 1 Then
SalesPersonTotal(1) += SalesAmt
ElseIf SalesPersonID = 2 Then
SalesPersonTotal(2) += SalesAmt
ElseIf SalesPersonID = 3 Then
SalesPersonTotal(3) += SalesAmt
ElseIf SalesPersonID = -1 Then
Else
Console.WriteLine("Error: plz enter 1,2 or 3")
End If
End Sub
Sub CASEtotalling()
Select Case SalesPersonID
Case 1
SalesPersonTotal(1) += SalesAmt
Case 2
SalesPersonTotal(2) += SalesAmt
Case 3
SalesPersonTotal(3) += SalesAmt
Case -1
Case Else
Console.WriteLine("Error: plz enter 1,2 or 3")
End Select
End Sub
Sub GrandTotal()
For z = 1 To 3
GrandTotalSales += SalesPersonTotal(z)
Next
End Sub
Sub Overallaverage()
salescounter -= 1
OverallAvgSales = GrandTotalSales / salescounter
End Sub
Sub Outputdata()
Console.WriteLine("Average of all sales: " & OverallAvgSales)
Console.WriteLine("Total overall sales: " & GrandTotalSales)
For x = 1 To 3
Console.WriteLine("Total for sales person " & x & ": " &
SalesPersonTotal(x))
Next
End Sub
Sub Readfromfile()
Dim strline As String
Dim startpointer, field_num, recordNum As Integer
Dim fileReader As StreamReader
fileReader = New StreamReader("E:\Compsci Programs\TestFileSales.txt")

strline = fileReader.ReadLine()
recordNum = 0
Do While Not strLine Is Nothing
'Console.WriteLine(strLine)
startpointer = 1
field_num = 0
recordNum = recordNum + 1
For C = 1 To Len(strLine)
If Mid(strLine, C, 1) = "#" Then
field_num += 1
If field_num = 1 Then
PersonID(recordNum) = Mid(strline, startpointer, C -
startpointer)
ElseIf field_num = 2 Then
PersonSales(recordNum) = Mid(strline, startpointer, C -
startpointer)
End If
startpointer = C + 1
End If
Next
Console.WriteLine(PersonID(recordNum) & " " & PersonSales(recordNum))
strline = fileReader.ReadLine
Loop

fileReader.Close()
End Sub
End Module

You might also like