2017-07-06 59 views
0

我真的不习惯用任何编程语言创建表单,而且我仍然在学习中。目前,我有一个涉及Form in C++的作业。家庭作业帮助 - 在表单上检查数据按钮

我会感谢您的帮助,因为我习惯于使用win32代码而不是Form。即使它与我目前学习的语言相同,但我觉得自己就像一个完全陌生的人。

下面是问题: 在按钮btn_calculate中,编写可验证输入销售额的代码格式是否正确(双)。如果给出了错误的输入类型,则显示一个弹出窗口,显示错误消息“请仅输入数量”。通过将6%的商品和服务税添加到输入的销售额来计算总支付金额。用给出的信息显示标签lbl_total中的总金额。

问题: 在按钮btn_calculate中,写入可以验证输入销售额的代码格式是否正确(双)。

我对如何解决这个问题毫无头绪,但是我已经完成了除问题第一句外的其余问题的编码。

这是我能想出的逻辑,但我知道这是错误的:

for (int i = 0; i < txtbox_amount->MaxLength; i++) 
     { 
      if (txtbox_amount[i] == 'A' /*until*/ 'Z' /*capital and lower case character*/) 
      { 
       //throw 0; 
      } 
     } 

这是问题的我的整个逻辑:

private: System::Void btn_calculate_Click(System::Object^ sender, System::EventArgs^ e) { 

    try 
    { 
     for (int i = 0; i < txtbox_amount->MaxLength; i++) 
     { 
      if (txtbox_amount[i] == 'A' /*until*/ 'Z' /*capital and lower case character*/) 
      { 
       //throw 0; 
      } 
     }   

     double amount = Convert::ToDouble(txtbox_amount->Text); 

     if (amount > 0) 
     { 
      double total = amount * 1.06; 
      lbl_total->Text = "The total payment amount is RM" + total; 
     } 
     else 
     { 
      throw 1; 
     } 
    } 
    catch (int errorNum) 
    { 
     if (errorNum = 0) 
     { 
      MessageBox::Show("Please enter amount in number only", "Error", 
      MessageBoxButtons::OKCancel, 
      MessageBoxIcon::Error); 
     } 
     else if (errorNum = 1) 
     { 
      MessageBox::Show("Negative input! Try again.", "Error", 
      MessageBoxButtons::OKCancel, 
      MessageBoxIcon::Error); 
     }   
    } 
} 

我真的很感激你就如何解决这个问题提供帮助和建议,以便我今后能够改进。谢谢

回答

0

首先,MaxLength DOC:

获取或设置可手动输入到文本框中的最大字符数。

如果你希望得到您的文本框的内容的长度,你必须从usethe返回Textbox::TextString^财产Length

接下来你要检查是否txtbox_amount->Text[i] >= 'A' && txtbox_amount->Text[i] <= 'Z'和小写字母一样。

+0

谢谢你对此的帮助,你介意更多关于使用从Textbox :: Text和一些伪代码返回的字符串长度的属性?在win32中,如果涉及数组,我总是使用sizeof(array)/ sizeoff(array [0])。 另外,当我尝试编辑检查部分时,转换代码变成了错误,并且转换没有高亮显示为不同的颜色。背后有理由吗? double amount = Convert :: ToDouble(txtbox_amount-> Text); – user3765453

+0

我无法解释这比参考更好:https://msdn.microsoft.com/en-us/library/system.string(v=vs.110).aspx。字符串是一个对象(你不关心如何实现,如果使用数组),并且你知道这个对象具有'length'属性,你可以把它看作你的字符数组的大小,但是它更复杂,你肯定需要一本手册。 –

+0

好吧,我想我有Length属性的想法,但现在,我仍然坚持如何为它编写代码,因为我几乎不知道大多数C++语法。我写的是这样的:if(int i = 0; i user3765453