Tuesday, June 24, 2014

Final Review (CSI-156)




using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FinalReview
{
    public class Stock
    {
        //Q. 6 (Private fields)
        private int _numberOfShares;
        private decimal _pricePerShare;
        private string _companyName;

        //Q. 7.a (Constructor)

        public Stock(string companyName, int numberOfShares, decimal pricePerShare )
        {
            _companyName = companyName;
            _numberOfShares = numberOfShares;
            _pricePerShare = pricePerShare;
        }

        //Q. 7.b (Get Properties)
        public int NumberOfShares
        { get { return _numberOfShares; } }
        public decimal PricePerShare
        { get { return _pricePerShare; } }
        public string CompanyName
        { get { return _companyName; } }

        //Q. 8 (method to calculate invested Value)
        public decimal CalculateInvestedValue()
        {
            return _numberOfShares * _pricePerShare;
        }

        //Q. 9 (method to Buy More Shares)

        public decimal BuyMoreShares(int sharepurchase)
        {
            _numberOfShares += sharepurchase;
            return sharepurchase * _pricePerShare;
        }

        //Q. 10 (method to sell shares)
        public decimal SellShare(int shareSell)
        {
            _numberOfShares -= shareSell;
            return shareSell * PricePerShare;
        }
    }
}
//===========================================
     if(dishList.Count > 0)
            {
                using (StreamWriter sw = File.AppendText("dish.txt") )
                {
                    foreach(string dishes in dishList)
                    {
                        sw.WriteLine(dishes);
                    }
                }
                MessageBox.Show("Your Input has sucessfully saved");
            }

        }

        //Review Q.5
        private void btnDisplayAllDishes_Click(object sender, EventArgs e)
        {
            if (File.Exists("dish.txt"))
            {
                using (StreamReader sr = File.OpenText("dish.txt"))
                {
                    while (!sr.EndOfStream)
                    {
                        listBox1.Items.Add(sr.ReadLine());
                    }
                }
            }
        }

        //Review Q.2 //Initialize 2 dimensional arrays
        private void InitializeTwoDimArr(int[,] arr)
        {
            int rows = arr.GetLength(0);
            int col = arr.GetLength(1);
            for (int i = 0; i < rows; i++)
            {
                for (int j = 0; j < col; j++)
                {
                    arr[i, j] = rand.Next(-99, 100);
                    rtbFor2DimArr.AppendText(arr[i, j] + "  ");
                }
                rtbFor2DimArr.AppendText("\n");
            }
        }

        //Review Q.3 (Methods to display Count Of Odd Values)
        private int NumberOfOddValues(int[,] arr)
        {
            int count = 0;
            int rows = arr.GetLength(0);
            int col = arr.GetLength(1);
            for (int i = 0; i < rows; i++)
            {
                for (int j = 0; j < col; j++)
                {
                    if(arr[i,j] % 2 != 0)
                    {
                        count++;
                    }
                }
            }
            return count;
        }

        //Review Q. 4 //Display 2 dim arrays
        private void btnDisplay2DimArrNCountOfOdd_Click(object sender, EventArgs e)
        {
            if (txtRow.Text != String.Empty && txtCol.Text != String.Empty)
            {
                int row, col;
                if (int.TryParse(txtRow.Text, out row) && int.TryParse(txtCol.Text, out col))
                {
                    int[,] Arr = new int[row, col];
                    InitializeTwoDimArr(Arr);
                    //Display2D_Array(array);
                    int oddCount = NumberOfOddValues(Arr);
                    rtbFor2DimArr.AppendText("\n\nNumber Of Odd Values: " + oddCount);
                }
                else
                    MessageBox.Show("Enter an integer for row and column");
            }
        }

        //Review Q. 12 //Method to display stock

        private void DisplayStock()
        {
            listView1.Items.Clear();
            foreach(Stock item in stockList)
            {
                ListViewItem lvi = new ListViewItem(item.CompanyName);
                lvi.SubItems.Add(item.NumberOfShares.ToString());
                lvi.SubItems.Add(item.PricePerShare.ToString("c"));
                lvi.SubItems.Add(item.CalculateInvestedValue().ToString("c"));
                listView1.Items.Add(lvi);

            }
        }

        //Review Q. 13 //Method to get stock by Company Name
        private Stock GetStockByName(string companyName)
        {
            foreach (Stock item in stockList)
            {
                if (companyName == item.CompanyName)
                {
                    return item;
                }
            }
            return null;
        }

        private void btnBuyShare_Click(object sender, EventArgs e)
        {
            int shareAmountToBuy;
            if (txtCompanyName.Text != String.Empty)
            {
                string CompanyName = txtCompanyName.Text;
                if (int.TryParse(txtShareAmount.Text, out shareAmountToBuy))
                {
                    Stock stock = GetStockByName(CompanyName);
                    if (stock != null)
                    {
                        stock.BuyMoreShares(shareAmountToBuy);
                        DisplayStock();
                        txtCompanyName.Clear();
                        txtShareAmount.Clear();
                    }
                    else
                        MessageBox.Show("No match company name found in database");
                }
            }
           
        }

        private void btnDisplayAllStocks_Click(object sender, EventArgs e)
        {
            DisplayStock();
        }

        private void btnGetStockByComName_Click(object sender, EventArgs e)
        {
            if (txtCompanyName.Text != String.Empty)
            {
                string companyName = txtCompanyName.Text;
                Stock stock = GetStockByName(companyName);
                if (stock != null)
                {
                    listView1.Items.Clear();
                    ListViewItem lvi = new ListViewItem(stock.CompanyName);
                    lvi.SubItems.Add(stock.NumberOfShares.ToString());
                    lvi.SubItems.Add(stock.PricePerShare.ToString("c"));
                    lvi.SubItems.Add(stock.CalculateInvestedValue().ToString("c"));
                    listView1.Items.Add(lvi);
                }
                else
                    MessageBox.Show("Input not found");

            }
        }

        private void btnGetTimeDiff_Click(object sender, EventArgs e)
        {
            TimeSpan ts;

            //get user input
            DateTime departureTime = dtDepartureTime.Value;
            DateTime arrivalTime = dtArrivalTime.Value;

            if (arrivalTime > departureTime)
                ts = arrivalTime - departureTime;
            else
                ts = departureTime - arrivalTime;

            richTextBox1.Text = "Total days: " + ts.Days;
        }

        //========================
        private void btnSortByDistance_Click(object sender, EventArgs e)
        {
            rtbFor2DimArr.Clear();
            var nearP = GetNearestPoint(pointList);
            rtbFor2DimArr.Text = nearP.ToString();
        }

        private Point GetNearestPoint(List<Point> points)
        {
            Point pt = points.OrderBy(p => p.X * p.X + p.Y * p.Y).First();
            return pt;
        }

        private void btnDrawSqrNCircleShape_Click(object sender, EventArgs e)
        {
            Point p = new Point(70, 30);
            Brush myBrush = new SolidBrush(Color.Blue);

            int x = p.X;
            int y = p.Y;
           
            Rectangle rect = new Rectangle(0, 0, 140, 140);
            g.FillRectangle(myBrush, rect);
            pictureBox1.Image = bmap;

            //=================
            g.FillEllipse(myBrush = new SolidBrush(Color.Yellow), rect);
            pictureBox1.Image = bmap;
            //====================

            Rectangle rect2 = new Rectangle(22, 21, 98, 98);
            g.FillRectangle(myBrush = new SolidBrush(Color.Green), rect2);
            pictureBox1.Image = bmap;
        }
    }
}

No comments:

Post a Comment