کریستین سافت

آموزش برنامه نویسی و سورس سی شارپ , اندروید

کریستین سافت

آموزش برنامه نویسی و سورس سی شارپ , اندروید

۰۴
دی
۹۶

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

این ماشین حساب  تاریخچه (History) عملیات قبلی را هم نمایش می دهد.

این ماشین حساب عملیاتی مانند جذر ، توان ، لگاریتم ، سینوس ، تانژانت ، فاکتوریل و .... را محاسبه می کند.

این ماشین حساب  در مبنای دسیمال (10) ، مبنای اکتال (8) ، مبنای باینری (2) و مبنای هگزادسیمال (16) عملیات انجام می دهد.

این ماشین حساب طراحی (متریال) بسیار زیبایی دارد.

 

برای دیدن فیلم ماشین حساب اینجا کلیک کنید

 

تصاویری از برنامه ماشین حساب


دانلود سورس کد

  • علی بابایی کلجاهی
۰۴
دی
۹۶
using System;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{

int a, b, z =0;
a = int.Parse(Console.ReadLine());
b = int.Parse(Console.ReadLine());
Console.WriteLine();
for (int i = a + 1; i < b; i++)
{
Console.WriteLine(i);
}
Console.ReadKey();

}
}
}

موفق باشید

  • علی بابایی کلجاهی
۰۴
دی
۹۶


پروژه تبدیل عبارات میانوندی به پسوندی با سی شارپ از جمله پروژه های دانشجویی می باشد که توسط وبسایت کریستین سافت طراحی و پیاده سازی شده است.
این پروژه جزء پروژه هایی می باشد که در سطح دانشگاه برای دروس برنامه نویسی و ساختمان داده استفاده می شود. در دروس دانشگاهی از عبارت میانوندی به عنوان infix و از عبارت پسوندی به عنوان postfix یاد می شود.
روش معمول برای نوشتن یک عبارت روش میانوندی است. در یک عبارت میانوندی ترتیب اجرای ارزیابی عملگرها با توجه به الویت های قراردادی و پرانتزگذاری تعیین می شود. کامپایلر برای محاسبه یک عبارت میانوندی آنرا از شکل میانوندی به پسوندی تغییر می دهد، زیرا روش پسوندی نیازی به پرانتز گذاری ندارد و الویت هم مطرح نیست.

 

تصاویری از پروژه


سورس پروژه تبدیل عبارات میانوندی(infix) به پسوندی(postfix) با سی شارپ

 

 

سورس پروژه تبدیل عبارات میانوندی(infix) به پسوندی(postfix) با سی شارپ

 

دانلود سورس



  • علی بابایی کلجاهی
۰۴
آذر
۹۶

یکی از انواع مرتب سازی ، مرتب سازی سریع یا QuickSort می باشد . در سورس کد زیر شما را با این نوع مرتب سازی آشنا می کنیم .


تصویر زیر نشان دهنده روش کار الگوریتم مرتب سازی در سی شارپ می باشد :



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

namespace Quicksort
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create an unsorted array of string elements
            string[] unsorted = { "z", "e", "x", "c", "m", "q", "a" };

            // Print the unsorted array
            for (int i = 0; i < unsorted.Length; i++)
            {
                Console.Write(unsorted[i] + " ");
            }

            Console.WriteLine();

            // Sort the array
            Quicksort(unsorted, 0, unsorted.Length - 1);

            // Print the sorted array
            for (int i = 0; i < unsorted.Length; i++)
            {
                Console.Write(unsorted[i] + " ");
            }

            Console.WriteLine();

            Console.ReadLine();
        }

        public static void Quicksort(IComparable[] elements, int left, int right)
        {
            int i = left, j = right;
            IComparable pivot = elements[(left + right) / 2];

            while (i <= j)
            {
                while (elements[i].CompareTo(pivot) < 0) 
                { 
                    i++; 
                } 
                while (elements[j].CompareTo(pivot) > 0)
                {
                    j--;
                }

                if (i <= j)
                {
                    // Swap
                    IComparable tmp = elements[i];
                    elements[i] = elements[j];
                    elements[j] = tmp;

                    i++;
                    j--;
                }
            }

            // Recursive calls
            if (left < j)
            {
                Quicksort(elements, left, j);
            }

            if (i < right)
            {
                Quicksort(elements, i, right);
            }
        }

    }
}


  • علی بابایی کلجاهی
۱۸
آبان
۹۶

برای به دست آوردن نام درایوهای سیستم می توان از کد زیر استفاده نمود :



private void button1_Click(object sender, EventArgs e) { string[] drive = Environment.GetLogicalDrives(); string str = ""; foreach (string s in drive) { str += s + "\n"; } MessageBox.Show(str); }

کار اصلی در کد بالا را خط :

string[] drive = Environment.GetLogicalDrives();

انجام می دهد.


کد بالا را بنده در داخل رویداد کلیلک یک دکمه نوشته ام شما می توانید به سلیقه خود در هر جای دیگری از آن استفاده نمایید


  • علی بابایی کلجاهی
۰۸
آبان
۹۶

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


using System;

namespace Test_Matris
{
class Program
{
static void Main(string[] args)
{

int m = 3;

int[,] A = new int[m, m];
int[,] B = new int[m, m];
int[,] C = new int[m, m];

Console.WriteLine("Enter Matris A : " + "\n\n");
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write(" A[{0},{1}]= ", i, j);
A[i, j] = int.Parse(Console.ReadLine());
}
}

Console.WriteLine("\n\n"+"Enter Matris B : " + "\n\n");
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write(" B[{0},{1}]= ", i, j);
B[i, j] = int.Parse(Console.ReadLine());
}
}

Console.WriteLine("\n\n"+"Multiply A to B in C : " + "\n\n");

for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
C[i , j] = 0;

for (int k = 0; k < m; k++)
{
C[i, j] += A[i, k] * B[k, j];
}
Console.WriteLine("C[{0},{1}]={2}", i, j, C[i, j]);
}
}

Console.ReadKey();
}
}
}


  • علی بابایی کلجاهی
۰۶
آبان
۹۶

در این سورس کد با استفاده از Beep ها سرود ملی ایران رو در محیط کنسول یا (cmd) به اجرا در می آوریم و همچنین پرچم ایران رو به نمایش می گذاریم.



دانلود سورس کد

  • علی بابایی کلجاهی
۲۰
مهر
۹۶


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


جستجوی دودویی فقط در آرایه های مرتب استفاده می شود.در این روش عنصر مورد نظر با خانه وسط آرایه مقایسه می شود اگر با این خانه برابر بود جستجو تمام می شود اگر عنصر مورد جستجو از خانه وسط بزرگتر بود جستجو در بخش بالایی آرایه و در غیر این صورت جستجو در بخش پایینی آرایه انجام می شود(فرض کرده ایم آرایه به صورت صعودی مرتب شده است) این رویه تا یافتن عنصر مورد نظر یا بررسی کل خانه های آرایه ادامه می یابد. جستجوی دودویی نمونه‌ای از الگوریتمهای تقسیم و غلبه می‌باشد.


کد سی شارپ :

* در این کد ما فرض می کنیم آرایه ای که داریم مرتب شده هست.

سورس مرتب سازی حبابی با سی شارپ


using System;
using System.Text;

namespace Binary_Search_Cristiansoft
{
class Program
{
static void Main(string[] args)
{
int left=0,right=0,middle=0,key=0,f=0;

//آرایه

int[] array = {10,22,33,44,55,66,77,88,99,111};

// دریافت عدد برای جستجو در آرایه

Console.WriteLine("Enter a number for search : ");
key = int.Parse(Console.ReadLine());

// شروع عملیات جستجوی باینری

while(left <= right)
{
middle = (int) ((left + right)/2);
if(key == array[middle])
{
Console.WriteLine(Found !!!);
f = 1;
break;
}
if(key > array[middle])
{
left = middle + 1;
}
if(key < array[middle])
{
left = middle - 1;
}
}

if(f == 0)
{
Console.WriteLine("Sorry , Not Found!!!");
}

// پایان عملیات جستجوی باینری

Console.ReadKey();
}
}
}


  • علی بابایی کلجاهی
۱۵
مهر
۹۶

یک دکمه بر روی فرم قرار دهید و سپس بر روی آن دوبار کلیک کرده و کدهای زیر را در رویداد کلیک بنویسید :



private void button1_Click(object sender, EventArgs e) { Random RandomClass = new Random(); int rndRed = RandomClass.Next(0, 255); int rndGreen = RandomClass.Next(0, 255); int rndBlue = RandomClass.Next(0, 255); this.BackColor = Color.FromArgb(rndRed, rndGreen, rndBlue); }


  • علی بابایی کلجاهی
۱۵
مهر
۹۶

برای تبدیل تاریخ میلادی به شمسی می توان از متد زیر استفاده کرد :


string PersianDate(DateTime DateTime1) { PersianCalendar PersianCalendar1 = new PersianCalendar(); return string.Format(@"{0}/{1}/{2}", PersianCalendar1.GetYear(DateTime1), PersianCalendar1.GetMonth(DateTime1), PersianCalendar1.GetDayOfMonth(DateTime1)); }

در قسمت فضاهای نامی، فضای نامی زیر را هم وارد کنید:

using System.Globalization;
  • علی بابایی کلجاهی
۱۵
مهر
۹۶

ابتدا در قسمت sulotion Explorer روی نام پروژه راست کلیک کنید و سپس گزینه Add Refrence را بزنید و از پنجره باز شده در داخل تب .NET گزینه System.Management را انتخاب کنید.


سپس این namespace را اضافه کنید:

using System.Management;

از این تابع در هرکجای برنامه میتوانید استفاده کنید:

public string GetCPUId()
{
	string cpuInfo = String.Empty;
	ManagementClass mgmt = new ManagementClass("Win32_Processor");
	ManagementObjectCollection objCol = mgmt.GetInstances();

	foreach (ManagementObject obj in objCol)
	{
		if (cpuInfo == String.Empty)
		{
			cpuInfo = obj.Properties["ProcessorId"].Value.ToString();
		}
	}
	return cpuInfo;
}

خروجی این تابع از نوع رشته ای است.

  • علی بابایی کلجاهی
۲۳
شهریور
۹۶

یک برنامه ویندوزی ایجاد کنید و داخل فرم یک textbox قرار دهید و خاصیت MultiLine تکست باکس رو true کنید .

سپس یک دکمه بر روی فرم قرار دهید.

حال با دو بار کلیک بر روی دکمه کدهای زیر را در محیط کدنویسی وارد کنید :

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = false)]
static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
const uint EM_GETLINECOUNT = 0xBA;
IntPtr wp = IntPtr.Zero;
IntPtr lp = IntPtr.Zero;


private void button1_Click(object sender, EventArgs e)
{
IntPtr lines = SendMessage(textBox1.Handle, EM_GETLINECOUNT, wp, lp);
MessageBox.Show(lines.ToInt32().ToString());
}

}
}

حال برنامه را اجرا و در درون textBox چند خط بنویسید و بر روی دکمه کلیک و نتیجه را مشاهده نمایید.

  • علی بابایی کلجاهی