Here is the RandomGenerator.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; ////// this class returns a random number /// between the minimum and maximum values /// public class RandomGenerator { //private variables private int maximum = 0; private int minimum = 0; private Random rand; //only one constructor that requires a //minimum and maximum value public RandomGenerator(int max, int min) { //initialize the random number rand = new Random(); maximum = max; minimum = min; } public int GetNumber() { //return a new random number return rand.Next(minimum, maximum); } }
Here is the BasicMath.cs class
using System; using System.Collections.Generic; using System.Linq; using System.Web; ////// This class is for doing the most basic /// of math. I have included only addition /// public class BasicMath { //the private fields private int number1; private int number2; //the empty default constructor public BasicMath() { number1 = 0; number2 = 0; } //an alternate overloaded constructor public BasicMath(int num1, int num2) { NumberOne = num1; NumberTwo = num2; } //public properties public int NumberOne { get { return number1; } set { number1 = value; } } public int NumberTwo { get { return number2; } set { number2 = value; } } //addition method public int Addition() { return number1 + number2; } }
here is Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title>math time</title> <link href="BasicMathStyleSheet.css" rel="stylesheet" type="text/css" /> </head> <body> <form id="form1" runat="server"> <div> <h1>Math Play Time</h1> <p> <asp:Button ID="getNumbers" runat="server" Text="+" OnClick="addition_Click" /> </p> <p> <asp:Label ID="lblNumber1" runat="server" Text=""></asp:Label> <asp:Label ID="lblOperator" runat="server" Text=""></asp:Label> <asp:Label ID="lblNumber2" runat="server" Text=""></asp:Label> <asp:TextBox ID="txtUserAnswer" runat="server"></asp:TextBox> </p> <p> <asp:Button ID="btnCheckAnswer" runat="server" Text="Check Answer" OnClick="btnCheckAnswer_Click" /> <asp:Label ID="lblResult" runat="server" Text=""></asp:Label> </p> </div> </form> </body> </html>
Here is the Default.aspx.cs
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class _Default : System.Web.UI.Page { //initialize the basic math class BasicMath m = new BasicMath(); int answer = 0; //declare answer variable protected void Page_Load(object sender, EventArgs e) { //this is to provide a problem when the page first loads //the !IsPostback guarantees it runs only //on the first page load not on button clicks if (!IsPostBack) GetAddition(); } protected void addition_Click(object sender, EventArgs e) { //call the get addition method GetAddition(); } protected void GetAddition() { // call the getNumbers method and pass //it the min, max, and operator GetNumbers(0, 1000, "+"); //get the answer from the class answer = m.Addition(); //store it in a session variable Session["answer"] = answer; } protected void GetNumbers(int min, int max, string oper) { //get the random numbers and display them in the labels //including the operation RandomGenerator rg = new RandomGenerator(max, min); lblNumber1.Text = rg.GetNumber().ToString(); lblNumber2.Text = rg.GetNumber().ToString(); m.NumberOne = int.Parse(lblNumber1.Text); m.NumberTwo = int.Parse(lblNumber2.Text); lblOperator.Text = oper; } protected void btnCheckAnswer_Click(object sender, EventArgs e) { //if the session exists if (Session["answer"] != null) { //get their answer --should be try parse int userAnswer = int.Parse(txtUserAnswer.Text); //get the actual answer from the session variable answer = (int)Session["answer"]; //if the anser is correct congrats if (userAnswer == answer) { lblResult.Text = "Great job"; //assign a cssClass on the fly lblResult.CssClass = "correct"; } else //otherwise try again { lblResult.Text = "Try again"; txtUserAnswer.Text = ""; txtUserAnswer.Focus(); lblResult.CssClass = "mistake"; } } } }
Here is BasicMath.css
body { } .correct { color:green; } .mistake { color:red; } h1 { color:navy; }
No comments:
Post a Comment