此代码似乎不起作用。我真的不知道使用什么循环来将它添加到用户放入机器再次打印的信息中。
这样做的目的是让用户选择:
打印他们在早期数据库中键入的菜单。如果他们没有在数据库中输入任何内容,那么它应该是空白的
应该让用户在数据库中输入信息(我正在努力解决的问题)并进行错误检查,以便在他们输入信件时输入一个数字并告诉他们
结束程序。
当我这样做时(2)它允许我键入但它不会回想起数据库中的信息。它还需要一个数字(4),它应返回主菜单。我认为这是循环的来源,但我不知道使用哪一个。
以下是代码:
Structure Cars
Public carmake As String
Public carmodel As String
Public caryear As Integer
Public carlicence As String
End Structure
Module Module1
Sub Main()
Dim userchoice
Console.WriteLine("Choose weather to open the database(1), print it (2) or end (3)")
userchoice = Console.ReadLine()
If userchoice = 1 Then
Dim cardatabase(4) As Cars
Console.WriteLine("This will allow you to view the database.")
Console.WriteLine("Please enter the car make,licence,model and year")
cardatabase(1).carmake = Console.ReadLine()
cardatabase(1).carlicence = Console.ReadLine()
cardatabase(1).carmodel = Console.ReadLine()
cardatabase(1).caryear = Console.ReadLine()
ElseIf userchoice = 2 Then
Console.WriteLine("The database is,")
ElseIf userchoice = 3 Then
Console.WriteLine("Thanks for using this program.")
End If
Console.ReadLine()
End Sub
End Module
答案 0 :(得分:0)
此代码存在多个问题。以下是我的建议:
您需要某种循环结构,例如While
循环。您的测试条件可能是userchoice
变量。
在If
语句中,您需要检查userchoice
是否等于字符串值而不是整数值。因此,行If userchoice = 1 Then
实际应为If userchoice = "1" Then
。
cardatabase
数组应该在循环之外声明。当您在循环中声明它时,它将继续重新创建数组,而不是向其中添加更多项。
您的Cars
结构需要位于Module Module1
区块内。
由于您不知道用户在退出之前想要添加新车的次数,我建议您使用List而不是Array。列表允许轻松动态调整大小。
您需要一个整数变量来跟踪输入的汽车数量,并将其用作cardatabase
集合的索引。
数组/列表索引以0开头。
Cars
应该是一个类而不是一个结构。此外,它应该命名为Car
。它是一个单一的结构(或类,如果你改变它)。数组本身应该被称为cars
,因为它是多个Car
结构的集合(如果你将它改为类,则为对象)。
我打算在这里编写示例代码来演示我的观点,但这几乎是整个重写,这无助于你理解为什么我做了我所做的更改。
我对你的最好建议是回顾你之前读过的书或教程,以达到这一点,并真正尝试理解他们在说什么。如果你没有得到这个概念,那么在其他地方查找它。
免责声明:我的建议并不全面。当我立刻发现所有上述问题时,我就停止检查你的代码了。