3 proiectarea unei forme (formular) Formele


Form2 este activat la actionarea butonului Alarmă şi conţine 2 textboxuri în care se introduc ora, respectiv minutele la care alarma este activată, trei label-uri şi un buton de Ok



Yüklə 0,99 Mb.
səhifə4/5
tarix27.07.2018
ölçüsü0,99 Mb.
#60537
1   2   3   4   5
    Bu səhifədəki naviqasiya:
  • Start

Form2 este activat la actionarea butonului Alarmă şi conţine 2 textboxuri în care se introduc ora, respectiv minutele la care alarma este activată, trei label-uri şi un buton de Ok.




În urma execuţiei se obţine:



Public Class Form1

Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long

Dim x
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

On Error Resume Next

Form2.Show()

End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

End

End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load



Timer1.Enabled = True

Timer1.Interval = 1000

End Sub
Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick

Label1.Text = TimeOfDay

End Sub
Private Sub Timer2_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer2.Tick

If Label1.Text = TextBox1.Text Then

x = mciExecute("play c:/woody2.mp3")

MsgBox("Alarma", vbInformation, "Alarma")

End If

End Sub


End Class
Codul asociat formei a doua se prezintă astfel:

Public Class Form2

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

On Error Resume Next

End Sub

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click



On Error Resume Next

Form1.TextBox1.Text = Me.TextBox1.Text + ":" + Me.TextBox2.Text + ":00 PM"

Form1.Timer2.Enabled = True

Form1.Timer2.Interval = 1000

If TextBox1.Text > 24 Or TextBox1.Text < 0 Then

MsgBox("Introduceti o valoare intre 0 si 24", vbExclamation, "Ora Incorecta !!!")

TextBox1.Text = ""

ElseIf TextBox2.Text > 59 Or TextBox2.Text < 0 Then

MsgBox("Introduceti o valoare intre 0 si 59", vbExclamation, "Minute Incorecte !!!")

TextBox2.Text = ""

End If

Me.Hide()



End Sub

End Class


8. Să se realizeze o mică aplicaţie de calcul a salariilor cuvenite ştiind că se dau:

- salariul de încadrare;

- sporul de vechime, de noapte, de toxicitate;

- eventuale prime;

Din total cîştig se scad: impozitul datorat, eventuale penalităţi şi eventualele chirii care trebuie introduse de la tastatură pentru cei la care este cazul.
Rezolvare:
Am proiectat formele astfel încât unele date (Nume, prenume, salariu) se introduc prin intermediul unor casete de text, iar altele (chirii, rate) prin intermediul unor comenzi InputBox.

Utilizatorul va preciza prin intermediul unor casete de validare (bifate) elementele de salariu specifice fiecărui salariat.




Toate opţiunile bifate pentru salariat vor genera mai întâi un dialog cu utilizatorul pentru a cere datele respective (exemplu: sporul de vechime, funcţia,etc) şi apoi calculele necesare prin intermediul procedurilor asociate acestor casete de validare.

Butonul Următorul calcul iniţializează elementele formularului pentru a trece la un alt salariat.

Codul sursă aferent este:


Public Class Form1

Dim NUME As String

Dim PRENUME As String

Dim SALARIU As Long

Dim FUNCTIA As String

Dim VEC As Integer

Dim PRIME As Single

Dim SPORV As Single 'SPOR DE VECHIME

Dim SPORT As Single 'SPOR DE TOXICITATE

Dim SPORN As Single 'SPOR DE NOAPTE

Dim PEN As Single 'PENALIZARI

Dim SALB As Single 'SALARIU BRUT

Dim IMPOZIT As Single

Dim CHIRII As Single

Dim RESTP As Single 'SUMA FINALA
Sub CALCUL()

SALB = SALARIU + SPORV + SPORN + SPORT + PRIME

RESTP = SALB - IMPOZIT - CHIRII - PEN

TextBox4.Text = Format(RESTP, "FIXED")

End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

TextBox4.Text = ""

CheckBox1.Checked = 0

CheckBox2.Checked = 0

CheckBox3.Checked = 0

CheckBox4.Checked = 0

CheckBox5.Checked = 0

CheckBox6.Checked = 0

CheckBox7.Checked = 0

FUNCTIA = 0

VEC = 0


SPORV = 0

SPORT = 0

SPORN = 0

PRIME = 0

CHIRII = 0

SALB = 0


IMPOZIT = 0

PEN = 0


RESTP = 0

End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

End

End Sub
Private Sub TextBox3_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox3.TextChanged



SALARIU = Val(TextBox3.Text)

CALCUL()


End Sub
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox1.Click

If CheckBox1.Checked Then

FUNCTIA = InputBox("FUNCTIA")

If UCase(FUNCTIA) = "DIRIGINTE" Then

PRIME = SALARIU * 3 / 100

ElseIf UCase(FUNCTIA) = "DIRECTOR" Then

PRIME = SALARIU * 4 / 100

Else


PRIME = 100000

End If


Else

PRIME = 0

End If

CALCUL()


End Sub
Private Sub CheckBox2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox2.Click

If CheckBox2.Checked Then

VEC = InputBox("VECHIME")

If VEC < 3 Then

SPORV = 0

ElseIf VEC < 7 Then

SPORV = SALARIU * 3 / 100

ElseIf VEC < 15 Then

SPORV = SALARIU * 5 / 100

ElseIf VEC < 20 Then

SPORV = SALARIU * 7 / 100

ElseIf VEC = 0 Then

SPORV = SALARIU

ElseIf VEC > 20 Then

SPORV = SALARIU * 20 / 100

End If


Else

SPORV = 0

End If

CALCUL()


End Sub
Private Sub CheckBox3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox3.Click

If CheckBox3.Checked Then

SPORT = 350000 'CONSTANT

Else


SPORT = 0

End If


CALCUL()

End Sub
Private Sub CheckBox4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox4.Click

If CheckBox4.Checked Then

SPORN = 300000 'CONSTANT

Else

SPORN = 0



End If

CALCUL()


End Sub
Private Sub CheckBox5_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox5.Click

If CheckBox5.Checked Then

PEN = 15000 'SUMA CONSTANTA PENTRU ORICE ABATERE

Else


PEN = 0

End If


CALCUL()

End Sub
Private Sub CheckBox6_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox6.Click

If CheckBox6.Checked Then

SALB = SALARIU + SPORV + SPORT + SPORN + PRIME

If SALB < 606000 Then

IMPOZIT = SALB * 19 / 100

ElseIf SALB < 1300000 Then

IMPOZIT = 127000 + (SALB - 606000) * 21 / 100

Else

IMPOZIT = 320000 + (SALB - 130000) * 25 / 100



End If

Else


IMPOZIT = 0

End If


CALCUL()

End Sub
Private Sub CheckBox7_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles CheckBox7.Click

If CheckBox7.Checked Then

CHIRII = InputBox("CHIRII")

Else

CHIRII = 0



End If

CALCUL()


End Sub

End Class


9. Să se realizeze un program care să calculeze maximul şi minimul pentru liniile şi coloanele unei matrici ce se va introduce de la tastatură.

Se cere de la tastatură numărul de linii şi apoi, în mod asemănător, numărul de coloane.

Prin intermediul unei ferestre de dialog urmează precizarea valorii tuturor elementelor matricei noastre.

La sfârşit se calculează şi se afişează rezultatele obţinute.



Codul sursă aferent se prezintă astfel:
Public Class Form1
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

End


End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim a(0 To 100, 0 To 100)

Dim i, j, n, m As Integer

Dim maxL(0 To 100), maxC(0 To 100) As Integer

Dim maxLi, maxCi As Integer

Dim minL(0 To 100), minC(0 To 100) As Integer

Dim minLi, minCi As Integer

Dim pauza As String

pauza = Chr(13) & Chr(10)

Label1.Text = ""

Label2.Text = ""

n = InputBox("Introduceti numarul liniilor", "N=")

m = InputBox("introduceti numarul coloanelor", "M=")

For i = 1 To n

For j = 1 To m

a(i, j) = InputBox("A (" & i & "," & j & ") =")

Label3.Text = Label3.Text & a(i, j) & " "

Next j


Label3.Text = Label3.Text & pauza

Next i


For i = 1 To n

maxLi = a(i, 1)

For j = 2 To m

If maxLi < a(i, j) Then

maxLi = a(i, j)

End If


Next j

maxL(i) = maxLi

Next i

For j = 1 To m



maxCi = a(1, j)

For i = 2 To n

If maxCi < a(i, j) Then

maxCi = a(i, j)

End If

Next i


maxC(j) = maxCi

Next j


For i = 1 To n

minLi = a(i, 1)

For j = 2 To m

If minLi > a(i, j) Then

minLi = a(i, j)

End If


Next j

minL(i) = minLi

Next i

For j = 1 To m



minCi = a(1, j)

For i = 2 To n

If minCi > a(i, j) Then

minCi = a(i, j)

End If

Next i


minC(j) = minCi

Next j


Label3.Text = Label3.Text & pauza

For i = 1 To n

Label3.Text = Label3.Text & "Maximul de pe Linia " & i & " este " & maxL(i) & pauza

Next i


Label3.Text = Label3.Text & pauza

For j = 1 To m

Label3.Text = Label3.Text & "Maximul de pe Coloana " & j & " este " & maxC(j) & pauza

Next j


Label3.Text = Label3.Text & pauza

For i = 1 To n

Label3.Text = Label3.Text & "Minimul de pe Linia " & i & " este " & minL(i) & pauza

Next i


Label3.Text = Label3.Text & pauza

For j = 1 To m

Label3.Text = Label3.Text & "Minimul de pe Coloana " & j & " este " & minC(j) & pauza

Next j
End Sub


End Class
10. Să se realizeze o mică aplicaţie care să analizeze, într-un text dat, tipul caracterelor: majuscule sau caractere mici.
Rezolvare:

Textul se va introduce în caseta de text şi rezultatul se va afişa chiar pe formular.

Am realizat două proceduri de tip funcţie, care stabilesc, pentru fiecare literă în parte, dacă este majusculă sau nu, testând codul ASCII al acestora.

Se ştie că pentru majuscule codul Ascii are valori cuprinse între 65 şi 90, iar pentru literele mici între 97 şi 122.


Executând aplicaţia noastră se obţine:


Codul sursă se prezintă astfel:
Public Class Form1

Public Function IsUpper(ByVal CheckLetter As String) As Boolean

IsUpper = True

If Asc(CheckLetter) < 65 Or Asc(CheckLetter) > 90 Then

IsUpper = False

End If


End Function
Public Function IsLower(ByVal CheckLetter As String) As Boolean

IsLower = True

If Asc(CheckLetter) < 97 Or Asc(CheckLetter) > 122 Then

IsLower = False

End If

End Function


Public Sub Main()

Console.WriteLine(IsUpper("A"))

Console.WriteLine(IsUpper("a"))

Console.WriteLine(IsLower("A"))

Console.WriteLine(IsLower("a"))

Console.ReadLine()

End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim x As String

Dim y As Integer

Dim g As Boolean

Dim enter As String

x = TextBox1.Text

y = Len(x)

enter = Chr(13) & Chr(10)

For i = 1 To y

g = IsUpper(Mid(x, i, 1))

If g = "True" Then

Label2.Text = Label2.Text & "Caracterul " & i & " este MAJUSCULA" & enter


Else

Label2.Text = Label2.Text & "Caracterul " & i & " este litera mica " & enter

End If

Next i


End Sub
End Class
11. Să se realizeze un program care să preia nota obţinută la examenul de admintere şi, funcţie de aceasta, să comunice candidatului dacă a intrat şi, în acest caz, la ce facultate.
Rezolvare:
Stabilim o grilă de medii de admitere la diversele facultăţi.
ㇽ白ﮫ曤쌹 ㇽ白ﮫ曤쌹
ㇽ白ﮫ曤쌹
Codul sursa este urmatorul:

Public Class Form1

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

End


End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim Nota


Nota = TextBox1.Text

Select Case Nota

Case Is >= 9.5

Label3.Text = " Felicitari! " & vbCrLf & "Ati intrat la INFORMATICA."

Case Is >= 8.5

Label3.Text = " Felicitari! " & vbCrLf & "Ati intrat la Litere"

Case Is >= 7.5

Label3.Text = " Felicitari! " & vbCrLf & "Ati intrat la Matematica/Fizica"

Case Is >= 5

Label3.Text = " Felicitari! " & vbCrLf & "Ati intrat la METALURGIE"

Case Is <= 5

Label3.Text = " NE pare rau" & vbCrLf & "Ati PICAT"

End Select

End Sub


End Class
12. Să se proiecteze şi să se realizeze o aplicaţie care să rezolve o ecuaţie de gradul II dată de la tastatură.
ㇽ白ﮫ曤쌹 ㇽ白ﮫ曤쌹
Public Class Form1

Dim A As Integer

Dim B As Integer

Dim C As Integer

Dim Delta As Double

Dim X1 As Double

Dim X2 As Double

Dim d As Double

Dim d2 As Double

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

End

End Sub


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

A = TextBox1.Text

B = TextBox2.Text

C = TextBox3.Text

If A <> "0" Then

Delta = B * B - 4 * A * C

If Delta < 0 Then

d = Delta * -1

d2 = System.Math.Sqrt(d)

X1 = -B & " +i " & d2 & " / " & 2 * A

X2 = -B & " -i " & d2 & " / " & 2 * A

Label6.Text = X1

Label7.Text = X2

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

Else

X1 = (-B + System.Math.Sqrt(Delta)) / 2 * A



X2 = (-B - System.Math.Sqrt(Delta)) / 2 * A

Label6.Text = X1

Label7.Text = X2

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

End If

Else


MsgBox("Functia nu este de gradul II")

TextBox1.Text = ""

TextBox2.Text = ""

TextBox3.Text = ""

End If

End Sub


End Class
13. Să se realizeze un program care să permită schimbul unei sume în lei într-o valută din lista afişată.
ㇽ白ﮫ曤쌹
Codul sursă:

Public Class Form1

Dim curs As Double

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

End

End Sub
Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton1.CheckedChanged



curs = InputBox("Introduceti cursul valutar pentru USD:")

TextBox2.Text = CStr(Format(Val(TextBox1.Text) / curs, "FIXED")) + " USD"

End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged

curs = InputBox("Introduceti cursul valutar pentru EURO:")

TextBox3.Text = CStr(Format(Val(TextBox1.Text) / curs, "FIXED")) + " EURO"

End Sub
Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged

curs = InputBox("Introduceti cursul valutar pentru CHF:")

TextBox5.Text = CStr(Format(Val(TextBox1.Text) / curs, "FIXED")) + " CHF"

End Sub
Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged

curs = InputBox("Introduceti cursul valutar pentru YE:")

TextBox4.Text = CStr(Format(Val(TextBox1.Text) / curs, "FIXED")) + " YE"

End Sub


End Class
14. Să se realizeze o aplicaţie care să calculeze penalităţile pentru valoarea unor facturi, funcţie de numărul zilelor de întârziere la plata facturii.

Calculul penalităţilor se face după următorul algoritm:




Penalizări

(%)


Întârziere

(zile)


0

≤ 30

5

(30,45)

10

[45,60)

20

≥ 60

15. Dezvoltaţi aplicaţia anterioară, astfel încât pe prima formă să afişaţi textul “APLICAŢIE PENTRU CALCUL PENALITĂŢI “ şi să permiteţi intrarea sau ieşirea din aplicaţie prin intermediul a 2 butoane de comandă: Start şi Exit. Ca efect al acţionării butonului de Start să apară o a doua formă, la care să cereţi parola de acces. Permiteţi cel mult trei încercări ale parolei, după care blocaţi accesul la aplicaţie, permiţând doar acţionarea butonului Exit. Dacă parola a fost corectă, permiteţi accesul la forma a treia, care cere datele şi calculează penalităţile cerute.




16. Să se realizeze o aplicaţie care să afişeze pe ecran un ceas cu limbi (ore, minute, secunde) care merge (limbile se mişcă pentru a arăta ora exactă).
Rezolvare:
Executând aplicaţia se obţine:

Codul sursă al procedurilor asociate se prezintă astfel:

Imports System.Drawing

Imports System.Math
Public Class Form1

Inherits System.Windows.Forms.Form

#Region " Windows Form Designer generated code "
Public Sub New()

MyBase.New()

InitializeComponent()

End Sub
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If


End If

MyBase.Dispose(disposing)

End Sub
Private components As System.ComponentModel.IContainer

Friend WithEvents Timer1 As System.Windows.Forms.Timer



Private Sub InitializeComponent()

Me.components = New System.ComponentModel.Container

Me.Timer1 = New System.Windows.Forms.Timer(Me.components)

Me.SuspendLayout()

'Timer1

Me.Timer1.Interval = 10



'Form1

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

Me.ClientSize = New System.Drawing.Size(344, 302)

Me.MaximizeBox = False

Me.MaximumSize = New System.Drawing.Size(352, 336)

Me.MinimizeBox = False

Me.MinimumSize = New System.Drawing.Size(352, 336)

Me.Name = "Form1"

Me.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide

Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual

Me.Text = "Animation clock"

Me.ResumeLayout(False)


End Sub
#End Region

Dim bm As Bitmap

Dim g As Graphics

Dim PI As Double = 3.14159

Dim XC, YC, X, Y, R, Secundac As Integer

Dim unghi, AspectRatio As Double


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

bm = New Bitmap(Me.ClientSize.Width, Me.ClientSize.Height)

g = Graphics.FromImage(bm)

'aflu coordonatele centrului formularului

XC = Me.ClientSize.Width / 2

YC = Me.ClientSize.Height / 2

AspectRatio = Me.ClientSize.Height / Me.ClientSize.Width

Draw_Graphics()

Me.BackgroundImage = bm

'variabila Secunda retine secunda curenta

Secundac = Now.Second

End Sub
Private Sub Draw_Graphics()

'aceasta procedura <> pe rand elementele componente ale ceasului

Draw_Clock_Face()

Draw_Clock_Markers()

Draw_Clock_Hands()

End Sub
Private Sub Draw_Clock_Hands()

'trasez limbile ceasului, prima data cea pentru ore, apoi pentru minute si in final cea pentru secunde

Dim ora1, SS As Double ' variabile care incrementeaza secundele si minutele

Dim ora, MIN, SEC As Integer 'variabile care pastreaza ora, minutul si secunda curente

Dim MyBrush As New System.Drawing.SolidBrush(Color.FromArgb(64, 69, 69, 69)) 'setez limbile transparent

Dim fp(5) As Point 'fiecare brat are 5 puncte. Se salveaza aceste puncte intr-un vector in the point array

ora1 = (2 * PI) / 12 'formula pentru pasul de incrementare pentru ora

SS = (2 * PI) / 60

MIN = Now.Minute 'variabila MIN retine minutul curent

SEC = Now.Second 'variabila SEC pastreaza secunda curenta

'desenez limba ceasului care imi indica ora

If Mid(Now.ToLongTimeString, Now.ToLongTimeString.Length - 2, 2).ToUpper.Trim = "PM" Then


Yüklə 0,99 Mb.

Dostları ilə paylaş:
1   2   3   4   5




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin