Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

Basit C# Soruları


Cassiline

Öne çıkan mesajlar

Şimdi elimde bir Çan Eğrisi programı var fakat hoca sırf arayüzü istiyor.

Bu dönem ders yükümden giremedim derslere hiç, resmen 0 bilgim, o yüzden size sorayım dedim.


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;


namespace CanEgrisiHesap
{

public partial class Form1 : Form
{
float not;
float ortalama;
float sapma;
int[] notlar = new int[0];

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{



ortalama = Convert.ToSingle(textBox1.Text);
sapma = Convert.ToSingle(textBox2.Text);
not = Convert.ToSingle(textBox3.Text);



if(ortalama<0 || ortalama>100)
MessageBox.Show("Ortalama değerinde sıkıntı görüldü.");
if(sapma<0 || sapma>25)
MessageBox.Show("Standart sapma değeri pek mantıklı değil.");
if(not<0 || not>100)
MessageBox.Show("Notunuzda torpil veya ağır not kırma tespit ettik.");

#region canegrisihesap

if (not > ortalama - sapma && not < ortalama + sapma)
MessageBox.Show("50");
else if (not <= ortalama - sapma && not > ortalama - (2 * sapma))
MessageBox.Show("40");
else if (not > ortalama - (3 * sapma) && not <= ortalama - (2 * sapma))
MessageBox.Show("30");
else if (not <= ortalama - (3 * sapma) && not > ortalama - (4 * sapma))
MessageBox.Show("20");
else if (not <= ortalama - (4 * sapma) && not > ortalama - (5 * sapma))
MessageBox.Show("10");
else if (not <= ortalama - (5 * sapma) && not > 0)
MessageBox.Show("0");
else if (not == 0)
MessageBox.Show("0");
else if (not >= ortalama + sapma&& not MessageBox.Show("60");
else if (not >= ortalama + (2 * sapma) && not < ortalama + (3 * sapma))
MessageBox.Show("70");
else if (not >= ortalama + (3 * sapma) && not < ortalama + (4 * sapma))
MessageBox.Show("80");
else if (not >= ortalama + (4 * sapma) && not < ortalama + (5 * sapma))
MessageBox.Show("90");
else if (not >= ortalama + (5 * sapma) && not <= 100)
MessageBox.Show("100");
else
MessageBox.Show("Lütfen sapma ve ortalama değerlerini kontrol ediniz.");


#endregion



}

private void Form1_Load(object sender, EventArgs e)
{

if (MessageBox.Show("Eğer isterseniz sınav notlarını bir txt veya excel dosyasından okuyarak ortalamasını ve sapmasını kendim alabilirim. Ne dersiniz? (Notlar her satıra bir tane olacak şekilde sıralanmış olursa çok sevinirim)", "Ortalama-Sapma Hesaplama", MessageBoxButtons.OKCancel) == DialogResult.OK)
{

OpenFileDialog op = new OpenFileDialog();


int toplam = 0;
int karesi = 0;
int counter = 0;
int karefark = 0;

if (op.ShowDialog() == DialogResult.OK && op.CheckFileExists)
{

List notumsu = new List();
foreach (string item in File.ReadAllLines(op.FileName, Encoding.ASCII))
{
counter++;
notumsu.Add(int.Parse(item));
toplam += int.Parse(item);
karesi += int.Parse(item)^2;

}

foreach (string item in File.ReadAllLines(op.FileName, Encoding.ASCII))
{
karefark += (int.Parse(item)-counter)^2;

}

textBox1.Text = (toplam / counter).ToString();
textBox2.Text = Math.Sqrt(karefark / counter).ToString();









}



}

}
}
}



Sadece "arayüz" kalacak şekilde kesip biçersek programı, ne kalıyor geriye?
Link to comment
Sosyal ağlarda paylaş

bu
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;


namespace CanEgrisiHesap
{

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

}

}



tabiki hata vercektir
eventleri de kaldırman lazım.
Link to comment
Sosyal ağlarda paylaş

Şimdi, hoca bizden "arayüz" istedi ve anladığım kadarıyla arayüzü "kod" halinde veremiyoruz.

Şimdi kafama takılan şu, programın için doldurmadığımız müddetçe nasıl çalışan bir arayüz oluşturabiliyoruz ki? Yani arayüz işin "görsel" kısmı, programı oluşturan kodlar olmaksızın ne işe yarıyor arayüz?

Bir de eğer çok zor değilse basit bir arayüz koyabilir misiniz buraya?
Link to comment
Sosyal ağlarda paylaş

Arayuzden kasit interface ise, ve grafiksel olan arayuzu falan kastetmiyorsaniz:

Interface sadece "herhangi bir class veya struct'a ait olabilecek" islevlerin tanimini yapar. Programlama acisindan bakacak olursak da, sadece signature bulunur interface kodunda.

Ornek olarak, IComparable diye bir interface imiz olsun mesela.


interface IComparable<T>
{
// 0 if equal, -1 if LHS is greater, +1 if RHS is greater
int CompareTo(T obj);
}


Sonra diyelim araba classi yaziyorsun, arabalarin karsilastirilabilir olmasini istiyorsan bu IComparable interfaceini implement ediceksin.


public class Car : IComparable<Car>


diye define ettigin anda class'i, artik o kodun compile olabilmesi icin Car classinda Compare methodunu implement etmen gerekecek. iste mesela arabalarin yillarini karsilastiracaksin bu compare methodunda. Yani hoca senden interface istediyse, ilk verdigim ornekteki gibi sadece method signature larini yazicaksin. Can egrisi programi nedir bilmiyorum ama iste


interface ICanEgrisi
{
String abik(String gubik);
bool asd(Object dsa);
double CanEgrisiSonucu();
}



gibi signaturelar yazicaksin sadece.

Iki sebeple ise yarar interfaceler,
1- Genel olarak projede duzen saglar, hangi functionality'i saglayacaksa o class, o interfaceleri implement edersin ve o functionality nin gereksinimleri direk karsina gelir, doldurursun iclerini
2- Bunu ornekle aciklamak daha kolay, mesela PriorityQueue data structure i sadece IComparable interface ini (yukarida ornek verdim de standart olarak var boyle bir interface) implement etmis objeleri tasiyabilir, cunku icindeki objeleri siralayabilmesi icin CompareTo fonksiyonunu cagirabilmesi gerekir, tasidigi classin IComparable implement etmis olmasi da garantiler bu durumu.
Link to comment
Sosyal ağlarda paylaş

Arayüzden kasıt GUI ise onun kodları Form1.Designer.cs'de yer alır. Visual Studio kullanıyosan solution explorerda ana formun kenarında + işareti görürsün bi tane. Onu genişletince altında var designer.cs.

Eğer hoca sadece GUI kodunu istiyosa hem o designer.cs'yi olduğu gibi bırakırsın, hem de c/p'lediğin dosyadaki button1_Click() ve Form1_Load() metodlarının içini boşaltır veya /* */ arasına alırsın.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;


namespace CanEgrisiHesap
{

public partial class Form1 : Form
{
float not;
float ortalama;
float sapma;
int[] notlar = new int[0];

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{

}

private void Form1_Load(object sender, EventArgs e)
{

}
}
}
Link to comment
Sosyal ağlarda paylaş

Projelerin hangi programda yapıldığını öğren eğer Visual Studio ise basit bi form application projesi açıp form üstüne drap&drop ile itemları atıp yapabilirsin. Ha diyorsan ben harbiden hiç bilmiyorum bu olayı, istersen verdiğin kodlara göre arkadaşlar ve ben de bildiğim kadarıyla bir arayüz taslağı yapalım ?
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...