Problem: Make a windows form application that will ask the user’s mental age and chronological age and display his intelligence quotient (IQ).
Solution:
- // Learn more about F# at http://fsharp.net
- //specifies the memory location of the class files
- //that will be needed in our application
- open System.Collections.Generic
- open System
- open System.Windows.Forms
- open System.ComponentModel
- open System.Drawing
- //creates a new form
- let iqform=new Form(Text="Compute IQ", Size=new System.Drawing.Size(300, 200),StartPosition=FormStartPosition.CenterScreen,AutoScaleMode=AutoScaleMode.Font)
- //creates a label
- let n1label=new Label(Text="Mental age:",Top=20,Left=5,AutoSize=true)
- let firsttextbox=new TextBox(Location=new System.Drawing.Point(80, 20))
- //creates another label and change its text to “Second number:”
- let n2label=new Label(Text="Chronological age:", Location=new System.Drawing.Point(0,50),AutoSize=true)
- let secondtextbox=new TextBox(Location=new System.Drawing.Point(100,50))
- //creates another label and change its text to sum
- let n3label=new Label(Text="IQ:", Location=new System.Drawing.Point(0, 90),AutoSize=true)
- //creates a label that will display the result of the computation
- let anslabel=new Label(Location=new System.Drawing.Point(80, 90), BorderStyle=BorderStyle.FixedSingle)
- //make our buttons
- let addbutton=new Button(Text="Compute", Location=new System.Drawing.Point(100, 130))
- let exitbutton=new Button(Text="Exit", Location=new System.Drawing.Point(200, 130))
- //add the controls into the form
- iqform.Controls.Add(n1label)
- iqform.Controls.Add(firsttextbox)
- iqform.Controls.Add(n2label)
- iqform.Controls.Add(secondtextbox)
- iqform.Controls.Add(n3label)
- iqform.Controls.Add(anslabel)
- iqform.Controls.Add(addbutton)
- iqform.Controls.Add(exitbutton)
- //when the compute button is clicked
- addbutton.Click.Add(fun addfunction ->
- let manum=Convert.ToDouble(firsttextbox.Text)
- let canum=Convert.ToDouble(secondtextbox.Text)
- let iq=Convert.ToDouble((manum/canum)*100.00)
- //display the iq value in the anslabel
- anslabel.Text<-Convert.ToString(iq))
- //when the exit button is clicked, close the form
- exitbutton.Click.Add(fun exit -> iqform.Close())
- Application.Run(iqform)