Dim no_student as integer
Dim English(100), Maths(100), Science(100), max(2), min(2), sum(2) as integer
Dim first_time as boolean = true
Console.writeline("Hello and Welcome to Elsa's Student Data Program. What would you like to do? (input only 1, 2 or 3)")
Console.writeline("Options: Input/Redo Student Data (1) | Displayed Data (2) | Search for Student Data (3) | Or input 'finished' if you're done :) ")
input = Console.readline()
Select case input.ToLower()
Case "1", "input/redo student data"
Console.writeline("What else would you like to do?")
Case "2", "displayed data"
Console.writeline("There is no data to be displayed. Please input data first before the program to display data")
Console.writeline("What else would you like to do?")
Case "3", "search for student data"
Console.writeline("There is no data to search for. Please input data first before trying to find non-existing data")
Console.writeline("What else would you like to do?")
Case "finished", "finish", "f"
Console.writeline("Thanks for using my program!")
Console.writeline("Sorry but you have input an invalid answer. Only input 1, 2 or 3")
Loop until finished = true
Sub EnteringStudentData()
Dim student_data() as string
Dim no_studentVALID, data_error, csv_error as boolean
Console.writeline("How many students are in your class?")
no_student = Console.readline()
If ex.message = "Thread was being aborted." then
Console.writeline("Sorry but you may have inputted a symbol, letter or void. Please try again.")
If no_studentVALID = true
Console.writeline("Sorry but you can't input any numbers less than 1 as that means that there would be no data needed to be inputed. Please try again.")
loop until no_studentVALID = true
For repeat = 1 to no_student
Console.writeline("Input the student's data. Student: " & repeat)
input_data = Console.readline()
student_data = input_data.split(",")
If student_data.GetLength(0) <> 4
Console.writeline("Sorry but you have added extra or too few csv value. Please try again")
If student_data(0).length <> 5 then
Console.writeline("Sorry but you have inputted an ID that is more or less than 5 characters. Please try again")
student_data(1) = Convert.ToInt32(student_data(1))
student_data(2) = Convert.ToInt32(student_data(2))
student_data(3) = Convert.ToInt32(student_data(3))
if ex.message = "Thread was being aborted."
Console.writeline("Sorry but you may have inputted a symbol, letter or void when inputting the results for maths, english and science. Please try again.")
If student_data(1) > 100 or student_data(2) > 100 or student_data(3) > 100 then
Console.writeline("Sorry but you have inputted a result greater than 100. Please try again")
If student_data(1) < 0 or student_data(2) < 0 or student_data(3) < 0 then
Console.writeline("Sorry but you have inputted a result less than 0 (negative number). Please try again")
If student_data(0) = ID(i)
Console.writeline("Sorry but you have inputted a duplicate. Please try again.")
If student_data(1) < 20 then
If student_data(2) < 20 then
If student_data(3) < 20 then
Loop until data_error = false
ID(repeat - 1) = student_data(0)
English(repeat - 1) = student_data(1)
Maths(repeat - 1) = student_data(2)
Science(repeat - 1) = student_data(3)
For i = 0 to no_student - 1
sum(0) = English(i) + sum(0)
sum(1) = Maths(i) + sum(1)
sum(2) = Science(i) + sum(2)
avg(0) = sum(0) / no_student
avg(1) = sum(1) / no_student
avg(2) = sum(2) / no_student
avg(0) = math.round(avg(0), 2)
avg(1) = math.round(avg(1), 2)
avg(2) = math.round(avg(2), 2)
Console.writeline("{0,-8}{1,-13}{2,-10}{3,-13}", "ID", "English", "Math", "Science")
Console.writeline("--------------------------------------------")
For i = 0 to no_student - 1
Console.writeline("{0,-8}{1,-13}{2,-10}{3,-13}", ID(i), English(i), Maths(i), Science(i))
Console.writeline("{0,-8}{1,-13}{2,-10}{3,-13}", "Average", avg(0), avg(1), avg(2))
Console.writeline("{0,-8}{1,-13}{2,-10}{3,-13}", "Max", max(0), max(1), max(2))
Console.writeline("{0,-8}{1,-13}{2,-10}{3,-13}", "Min", min(0), min(1), min(2))
Dim errorinput as boolean = false
Dim found as boolean = false
Dim finished as boolean = false
Dim student_avg as integer
Console.writeline("Which student's data would you like to see? Please input their ID")
search = Console.readline()
Console.writeline("Sorry but you have inputted an ID that is not five characters long. Please try again.")
For i = 0 to no_student - 1
Console.writeline("Unfortunately, we can't find any information under the ID: " & search & " Please try again")
student_avg =(English(data) + Maths(data) + Science(data)) / 3
student_avg = math.round(student_avg, 2)
Console.writeline("Here is what we've found")
Console.writeline("{0,-8}{1,-13}{2,-10}{3,-13}", "ID", "English", "Math", "Science")
Console.writeline("--------------------------------------------")
Console.writeline("{0,-8}{1,-13}{2,-10}{3,-13}", ID(data), English(data), Maths(data), Science(data))
Console.writeline("{0,-15}{1,-8}", "Student Average:", student_avg)
Console.writeline("Do you want to look at another student's data? (input either Yes or No)")
repeat = Console.readline()
Select case repeat.tolower
Console.writeline("You didn't input yes or no.")
Loop until finished = true