درخواست ماشین حساب ساده در VB6

بازدید67.8kپست ها14آخرین فعالیت10 سال پیش
0
0

درود برهمگی
من شخصا عذر خواهی میکنم که نمیدونستم کجا سوالمو بپرسم من بعد از دریافت جوابم پستو پاک میکنم..
اقا من یه ماشین حساب میخوام که در حد ابتدایی نوشته شده باشه
یعنی عملگر های ضرب تقسیم جمو تفریق و ....
من تا اینجاشو نوشتم باقیش باشما

Private Sub Command1_Click()
Text1.Text = Text1.Text + "7"
End Sub

Private Sub Command10_Click()
Text1.Text = Text1.Text + "0"
End Sub

Private Sub Command2_Click()
Text1.Text = Text1.Text + "1"
End Sub

Private Sub Command3_Click()
Text1.Text = Text1.Text + "6"
End Sub

Private Sub Command4_Click()
Text1.Text = Text1.Text + "5"
End Sub

Private Sub Command5_Click()
Text1.Text = Text1.Text + "4"
End Sub

Private Sub Command6_Click()
Text1.Text = Text1.Text + "9"
End Sub

Private Sub Command7_Click()
Text1.Text = Text1.Text + "8"
End Sub

Private Sub Command8_Click()
Text1.Text = Text1.Text + "3"
End Sub

Private Sub Command9_Click()
Text1.Text = Text1.Text + "2"
End Sub

بعد یه چیز میخوام مثه این شکل :
ممنون اگه کمکم کنید!!!
[ATTACH=CONFIG]466[/ATTACH]

آخرین ویرایش: 06-05-2013 ???? 19:02، توسط Daniel
0

بالاخره ساده میخوای یا پیشرفته؟
اون عکسی که گذاشتی ماشین حساب پیشرفتست نه در حد ضرب و تقسیم :mellowsmiley:

ماشین حساب ساده :

VERSION 5.00
Begin VB.Form Calculator 
   BackColor       =   &H80000005&
   BorderStyle     =   1  'Fixed Single
   Caption         =   "Calculator"
   ClientHeight    =   3150
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   3240
   LinkTopic       =   "Form1"
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   3150
   ScaleWidth      =   3240
   StartUpPosition =   3  'Windows Default
   Begin VB.CommandButton equals 
      Caption         =   "="
      Height          =   495
      Left            =   2040
      TabIndex        =   19
      Top             =   2520
      Width           =   1095
   End
   Begin VB.CommandButton over 
      Caption         =   "1/X"
      Height          =   495
      Left            =   2640
      TabIndex        =   18
      Top             =   720
      Width           =   495
   End
   Begin VB.CommandButton minus 
      Caption         =   "-"
      Height          =   495
      Left            =   2640
      TabIndex        =   17
      Top             =   1320
      Width           =   495
   End
   Begin VB.CommandButton div 
      Caption         =   "/"
      Height          =   495
      Left            =   2640
      TabIndex        =   16
      Top             =   1920
      Width           =   495
   End
   Begin VB.CommandButton times 
      Caption         =   "*"
      Height          =   495
      Left            =   2040
      TabIndex        =   15
      Top             =   1920
      Width           =   495
   End
   Begin VB.CommandButton plus 
      Caption         =   "+"
      Height          =   495
      Left            =   2040
      TabIndex        =   14
      Top             =   1320
      Width           =   495
   End
   Begin VB.CommandButton plusminus 
      Caption         =   "+/-"
      Height          =   495
      Left            =   2040
      TabIndex        =   13
      Top             =   720
      Width           =   495
   End
   Begin VB.CommandButton dotbttn 
      Caption         =   "."
      Height          =   495
      Left            =   1320
      TabIndex        =   12
      Top             =   2520
      Width           =   495
   End
   Begin VB.CommandButton clearbttn 
      Caption         =   "C"
      Height          =   495
      Left            =   120
      TabIndex        =   11
      Top             =   2520
      Width           =   495
   End
   Begin VB.CommandButton digits 
      Caption         =   "9"
      Height          =   495
      Index           =   9
      Left            =   1320
      TabIndex        =   10
      Top             =   720
      Width           =   495
   End
   Begin VB.CommandButton digits 
      Caption         =   "8"
      Height          =   495
      Index           =   8
      Left            =   720
      TabIndex        =   9
      Top             =   720
      Width           =   495
   End
   Begin VB.CommandButton digits 
      Caption         =   "7"
      Height          =   495
      Index           =   7
      Left            =   120
      TabIndex        =   8
      Top             =   720
      Width           =   495
   End
   Begin VB.CommandButton digits 
      Caption         =   "6"
      Height          =   495
      Index           =   6
      Left            =   1320
      TabIndex        =   7
      Top             =   1320
      Width           =   495
   End
   Begin VB.CommandButton digits 
      Caption         =   "5"
      Height          =   495
      Index           =   5
      Left            =   720
      TabIndex        =   6
      Top             =   1320
      Width           =   495
   End
   Begin VB.CommandButton digits 
      Caption         =   "4"
      Height          =   495
      Index           =   4
      Left            =   120
      TabIndex        =   5
      Top             =   1320
      Width           =   495
   End
   Begin VB.CommandButton digits 
      Caption         =   "3"
      Height          =   495
      Index           =   3
      Left            =   1320
      TabIndex        =   4
      Top             =   1920
      Width           =   495
   End
   Begin VB.CommandButton digits 
      Caption         =   "2"
      Height          =   495
      Index           =   2
      Left            =   720
      TabIndex        =   3
      Top             =   1920
      Width           =   495
   End
   Begin VB.CommandButton digits 
      Caption         =   "1"
      Height          =   495
      Index           =   1
      Left            =   120
      TabIndex        =   2
      Top             =   1920
      Width           =   495
   End
   Begin VB.CommandButton digits 
      Caption         =   "0"
      Height          =   495
      Index           =   0
      Left            =   720
      TabIndex        =   1
      Top             =   2520
      Width           =   495
   End
   Begin VB.Line Line1 
      X1              =   1920
      X2              =   1920
      Y1              =   720
      Y2              =   3000
   End
   Begin VB.Label display 
      Alignment       =   1  'Right Justify
      Appearance      =   0  'Flat
      BackColor       =   &H80000005&
      BorderStyle     =   1  'Fixed Single
      Caption         =   "0"
      BeginProperty Font 
         Name            =   "MS Sans Serif"
         Size            =   12
         Charset         =   178
         Weight          =   700
         Underline       =   0   'False
         Italic          =   0   'False
         Strikethrough   =   0   'False
      EndProperty
      ForeColor       =   &H80000008&
      Height          =   495
      Left            =   120
      TabIndex        =   0
      Top             =   120
      Width           =   3015
   End
End
Attribute VB_Name = "Calculator"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False

'=Main='
Option Explicit
Private Declare Function InitCommonControls Lib "comctl32.dll" () As Long
Dim operand1 As Double, operand2 As Double
Dim operator As String
Dim cleardisplay As Boolean

Private Sub Form_Initialize()
    InitCommonControls
End Sub
Private Sub clearbttn_Click()
display.Caption = " "
End Sub

Private Sub digits_Click(Index As Integer)
If cleardisplay Then
display.Caption = ""
cleardisplay = False
End If
display.Caption = display.Caption + digits(Index).Caption

End Sub

Private Sub div_Click()
operand1 = Val(display.Caption)
operator = "/"
display.Caption = ""

End Sub

Private Sub dotbttn_Click()
If InStr(display.Caption, ".") Then
Exit Sub
Else
display.Caption = display.Caption + "."
End If

End Sub

Private Sub equals_Click()
Dim result As Double
operand2 = Val(display.Caption)
If operator = "+" Then result = operand1 + operand2
If operator = "-" Then result = operand1 - operand2
If operator = "*" Then result = operand1 * operand2
If operator = "/" And operand2 <> "0" Then _
result = operand1 / operand2
display.Caption = result

End Sub


Private Sub minus_Click()
operand1 = Val(display.Caption)
operator = "-"
display.Caption = ""

End Sub

Private Sub over_Click()
If Val(display.Caption) <> 0 Then display.Caption = 1 / Val(display.Caption)
End Sub

Private Sub plus_Click()
operand1 = Val(display.Caption)
operator = "+"
display.Caption = " "

End Sub

Private Sub plusminus_Click()
display.Caption = -Val(display.Caption)
End Sub

Private Sub times_Click()
operand1 = Val(display.Caption)
operator = "*"
display.Caption = ""

End Sub

کد رو تو notepad کپی کن و با نام دلخواه و فرمت frm ذخیره کن (اینطوری گذاشتم که دیگه نیازی نباشه تو فرمت کنترل ها رو دوباره بذاری به کدهای قبل '=Main=' توجه نکن)

0

داداش اول از همه اینکه خیلی ممنون و از این که بهم اهمیت دادی و برام نوشتی سپاس گذارم
دوم از همه اینکه کد هاتو همون جور که گفتی گذاشتم ولی کار نداد
میشه خودتون فرمشو برام بزاریند؟
بعدشم اینکه من چهار عملگر + - * / رو به صورت ساده میخوام آخه من دوم هنرستانمو اینقدرا بارم نیست که شما توضیح دادید!!!
مثلا ما اصلا تایم یا پلاسو نخوندیم که شما نوشیشون.

مثلا عملگر ضربو من یه چیز تو این مایه ها میخوام که کار هم نمیده!!!
<br>

Private Sub Command7_Click()
Text1.Text = Text1.Text + "*"
بعد اینجا برای عملگر ضرب تعریف کنیف کنیم که دوتا متغیرو بگیره بعد ضرب کنه بریزه تو مثلا متغیری مثلا c
بعد
c?
End Sub

<br>
0

خب جواب سوال شما کد بالا هست دیگه !
میتونی 3 تا textbox بذاری که تو اولی عدد اول نوشته بشه تو دومی عدد روم و تو سومی نتیجه نمایش داده بشه
Text3.Text = Val(Text1.Text) + Val(Text2.Text)

فرم رو هم برات اتچ کردم

0

اما نمیخوام سه تا tectbox بزارم
فقط یکی!

0

سلام
نیازی نیست برای اضافه کردن هر عدد دکمه با نام های متفاوت بذاری و برای هر کدوم کد بنویسی!
یه دکمه بذار بعد کپی کن و همونجا paste کن یه پیام میاد که کنترلی با این نام وجود داره آیا میخوای برات Control array ایجاد کنم؟ Yes رو بزن حالا از روش 10 تا کپی کن و Caption هاشو تغییر بده (1 تا 0) حالا رو یکی از دکمه ها کلیک کن رو این کد رو بذار (بر فرض که نام دکمه cmdNum و نام textbox باشه txtcalc):

txtcalc.Text = txtcalc.Text + cmdNum(Index).Caption

برای دکمه های ضرب و تقسیم و.. هم همین کارو بکن. اینطوری دیگه نیازی به اون همه کد نیست اگر دانش آموز هستی معلم هم حتما تشویقت میکنه. دوست خوبم Meego هم همین کد رو به شما داده نمیدونم مشکل شما کجاست منم یکی نوشتم دانلود کن ببین.
موفق باشی

0

اقا دستتون درد نکنه فقط
دوتا سوال
چطوری میتونم ماشین حسابو با دکمه off خاموش و بادکمه on روشن کنم؟ مثله شکل بالا!!!
کد باینری هم بدین تا مثلا اگه زدم 5 طبق فرمول باینری که 1 2 4 8 هست بنویسه
1010 از راست به چپ
همین خودتون که دیگه ماهریند!!!
درضمن از اینکه اینقدر اهمیت میدین ممنون تنها انجمنیه که اینقدر اهمیت میدن...

0

داداش یه سوال دیگه هم دارم
بی زحمت ببین چرا این همه ی عملیاتش کار میکنه غیر از عملگر تفریقش
میشه مشکلشو بگیند؟
ممنون که اینقدر اهمیت میدین!!!

Dim first As Single
Dim second As Single
Dim a As Single
Dim b As String
Dim c As Boolean


Private Sub Command1_Click()
  If Len(text1.Text) > 0 Then
     text1.Text = Left(text1.Text, Len(text1.Text) - 1)
     End If
End Sub


Private Sub Command18_Click()
   If text1.Text <> "" Then
      text1.Text = Sin(Val(text1.Text))
   End If
End Sub

Private Sub Command24_Click()
   If text1.Text <> "" Then
      text1.Text = Cos(Val(text1.Text))
   End If
End Sub

Private Sub Command26_Click()
   If text1.Text <> "" Then
      text1.Text = Log(Val(text1.Text))
   End If
End Sub



Private Sub Command27_Click()
   If text1.Text <> "" Then
      text1.Text = Int(Val(text1.Text))
   End If
End Sub





Private Sub Command28_Click()
   If text1.Text <> "" Then
      text1.Text = StrReverse(Val(text1.Text))
   End If
End Sub

Private Sub Command29_Click()
   If text1.Text <> "" Then
      text1.Text = Sqr(Val(text1.Text))
   End If
End Sub

Private Sub Command3_Click()
text1.Text = ""
End Sub

Private Sub Command31_Click()
   If text1.Text <> "" Then
      text1.Text = Tan(Val(text1.Text))
   End If
End Sub



Private Sub Command33_Click()
   If text1.Text <> "" Then
      text1.Text = Exp(Val(text1.Text))
   End If
End Sub

Private Sub Command4_Click()
   If text1.Text <> "" Then
      text1.Text = Int(Val(text1.Text))
   End If
End Sub




Private Sub equal_Click()

  If c Then
second = text1.Text
c = False

    Select Case (b)
        Case "/":
            a = Val(first) / Val(second)
            text1 = a
        Case "+":
            a = Val(first) + Val(second)
            text1 = a
        Case "*":
            a = Val(first) * Val(second)
        Case "^":
            a = Val(first) ^ Val(second)
            text1 = a
        Case "-":
            a = Val(first) - Val(second)
            text1 = a
    End Select
    Else
    '   Select Case (op)
    '    Case "/":
    '        a = Val(a) / Val(second)
    '        text1 = a
    '    Case "+":
    '        a = Val(a) + Val(second)
    '        text1 = a
    '    Case "-":
    '       a = Val(a) - Val(second)
    '        text1 = a
    '    Case "*":
    '        a = Val(a) * Val(second)
    '        text1 = a
    'End Select
    End If
    Exit Sub
End Sub

Private Sub number_Click(Index As Integer)
    text1.Text = text1.Text + number(Index).Caption
End Sub

Private Sub operator_Click(Index As Integer)
    On Error Resume Next
    first = text1.Text
    b = operator(Index).Caption
    text1.Text = ""
    c = True
End Sub

Private Sub Option1_Click()
   If text1.Text <> "" Then
      text1.Text = CDec(Val(text1.Text))
   End If
End Sub

Private Sub Option2_Click()
   If text1.Text <> "" Then
      text1.Text = Oct(Val(text1.Text))
   End If
End Sub

Private Sub Option3_Click()
   If text1.Text <> "" Then
      text1.Text = Binary(Val(text1.Text))
   End If
End Sub

Private Sub Option4_Click()
   If text1.Text <> "" Then
      text1.Text = Hex(Val(text1.Text))
   End If
End Sub

فقط یس زحمت بگید چرا عمل تفریق کار نمیده
و به همراه اون دوتا سوالی که اون بالا پرسیدم.
مرسی آقایون..

0

سلام
کدی که گذاشتید مشکلی نداره احتمالا اسم دکمه منفی رو یه چیز دیگه گذاشتید

برای دو سوال بالا هم پروژه پیوست شد.

0

درست بود داداش ممنون تو اسم cption عملگر تفریقم استباهی _ افتاده بوده
یعد یه چیز دیگه اول از همه اینکه ازتون یه خواهشی دارم من این کد باینری رو نگرفتم چی شد. عمل میکنه کار هم میکنه اما باید آخه منم بفهمم چی شده یا نه؟!؟!؟!؟!؟!
دوم اینکه من off و on رو خودم فهمیدم اینجوری شد:
فقط فعلا با چک باکس کار میکنه:
برای مثال چند موردش

If Check1.Value = 1 Then
Command3.Enabled = False
Command38.Enabled = False
Command39.Enabled = False
Command18.Enabled = False
Command24.Enabled = False
Command31.Enabled = False
Command25.Enabled = False
Command26.Enabled = False
Command32.Enabled = False
Command27.Enabled = False
Command28.Enabled = False
Command33.Enabled = False
Command29.Enabled = False
Command30.Enabled = False
Command34.Enabled = False
Command6.Enabled = False
Command7.Enabled = False
Command8.Enabled = False
Command9.Enabled = False
Command10.Enabled = False
Command6.Enabled = False
number(0).Enabled = False
number(1).Enabled = False
number(2).Enabled = False
number(3).Enabled = False

درست کار کرد البته on هم درستش کردمو الان داره به خوبی کار میکنه اما یه کاره واجب دیگه هم دارم از خدمتتون!

این نقطه ی اعشاری رو و یکی هم ساده شده ی باینری آخه نفهمیدم چی شد{باینری}:SoftAfzar:
همین دیگه ماشین حسابم تکمیل میشه و منم پرو ژه رو میزارم ببینید:44:

ممنون از همکاریتون
درضمن من تو بخش اندروید تعریف از خود نباشه بسیار مهارت دارم ایشالله بعد از امتحانات خردادم میامو فعالیتمو آغاز میکنم.

ممنون از زحماتتون...:44:

0

سلام دوست عزیز
روش متداول تبدیل مبنای 10 به دو همینه دیگه تقسیم متوالی بر 2 اینجا هم همینطوری شده دیگه فقط باید توجه کنی که / تقسیم میکنه اما \ تقسیم صحیح میکنه

مثلا جواب این میشه 61
Dim num1 As Integer, num2 As Integer
num1 = 123
num2 = num1 \ 2
Print num2

اما جواب این میشه 62
Dim num1 As Integer, num2 As Integer
num1 = 123
num2 = num1 / 2
Print num2

0

درسته اون عمل ها رو خودم بلدم اما این باینری که استاد گفتند فوق العاده برای من زیادیه
یعنی من فعلا با این توابع و فرمولها و خاصیت ها اشنایی ندارم!!!

0

اقای سافت افزار ببخشید ن همش مزاحم شمام
این کد باینری رو گفتم برام راحت ترشو بدین
اگه نمیشه ول کنید
راستی یه سوال دیگه این نقطه ی اعشار این ( . ) رو هم میشه با کد های خودتون بگید رو هومن ماشین حساب هایی که قبلا نوشتید.
مر30

0

سلام داداش
دیگه فکر نکنم از این ساده تر هم وجود داشته باشه میتونی یه سرچی بکنی
برای اضافه کردن نقطه هم همون روش رو استفاده کن دیگه.

0

سلام داداش
دیگه فکر نکنم از این ساده تر هم وجود داشته باشه میتونی یه سرچی بکنی
برای اضافه کردن نقطه هم همون روش رو استفاده کن دیگه.

سوال برنامه نویسی دارید؟

ندونستن عیب نیست، نپرسیدن چرا!

خوش آمدید

برای طرح سوال، ایجاد بحث و فعالیت در سایت نیاز است ابتدا وارد حساب کاربری خود شوید. در صورتی که هنوز عضو سایت نیستید میتوانید در عرض تنها چند ثانیه ثبت نام کنید.