Sorunu Anlayamadım (C#)
-
Aradaşlar bunar program sınıfının kodları
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { method m = new method(); Console.WriteLine("yapmak istediğiniz işlemi seçiniz\n1 - kitap ekle\n2 - kitap sil\n3 - kitap kirala"); while (true) { kitap k = new kitap(); Console.WriteLine("Kitabın Adını Giriniz"); k.isim = Console.ReadLine(); Console.WriteLine("Türünü yazınız"); k.tur = Console.ReadLine(); m.ekle(k); break; } foreach (kitap item in m.kitaplar) { Console.WriteLine(item.isim + item.tur ); } } } }
Buda kitap sınıfının kodları
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace ConsoleApplication5
{
class kitap
{
public string tur;
public string isim;
public string yazar;
public int basimYili;}
}yazdırmıyor hocalar
-
O while-break olayı tam olarak ne işe yarıyor hocam?
-
k nesnesinin isim değişkenini al tur değikenini al ve döngüden çık break yaptım çünkü bi kere sorsun yeter bi denem amaçlı bakayım dedim yoksa devam edilsin mi diye sorup if else ile h ye basarsa kullanıcı break yapıp çıkacaktı
-
hocalar yardım lütfen
-
kütüphane sınıfının kodları dediğin yerde de üstteki kodlar yazıyor bi düzenlesen olay anlaşılabilir
-
düzelttim hocam
-
method sınıfına bakalım bir de, ayrıca propertylere get set yaz
yani
public string isim {get; set; } gibiayrıca holyone'ın dediği gibi while(1) break gereksiz olmuş hocam kullanıcı -1 girerse break gibi bir işlem mantıklı olabilir.
Fdumanli tarafından 27/Ağu/14 15:50 tarihinde düzenlenmiştir -
Kitap.cs
namespace Kitaplık { public class Kitap { public enum TURLER { Roman, Hikaye, Ders } private string ad_; private string yazar_; private TURLER tur_; private int basimyili_; public Kitap(string ad, string yazar, TURLER tur, int basimyili) { ad_ = ad; yazar_ = yazar; tur_ = tur; basimyili_ = basimyili; } public string Ad { get { return ad_; } } public string Yazar { get { return yazar_; } } public TURLER Tur { get { return tur_; } } public int BasimYili { get { return basimyili_; } } } }
Program.cs
using System; using System.Collections.Generic; namespace Kitaplık { class Program { static void Main(string[] args) { List<Kitap> kitaplar = new List<Kitap>(); Console.WriteLine("yapmak istediğiniz işlemi seçiniz\n1 - kitap ekle\n2 - kitap sil\n3 - kitap kirala"); while (true) { Console.WriteLine("Kitabın Adını Giriniz"); var isim = Console.ReadLine(); string[] kitapturleri = Enum.GetNames(typeof(Kitap.TURLER)); Console.WriteLine("Türünü yazınız: {0} - {1}", kitapturleri.GetLowerBound(0), kitapturleri.GetUpperBound(0)); for(int i = 0; i <kitapturleri.Length; ++i) { Console.WriteLine(kitapturleri[i]); } var tur = Int16.Parse(Console.ReadLine()); Console.WriteLine("Kitabın Yazarını Giriniz:"); var yazar = Console.ReadLine(); Console.WriteLine("Kitabın Basım Yılını Giriniz:"); var yil = Int16.Parse(Console.ReadLine()); kitaplar.Add( new Kitap(isim, yazar, (Kitap.TURLER)tur, yil)); break; } int f = 0; foreach (Kitap item in kitaplar) { Console.WriteLine("-"+ (f++).ToString()+ "-\r\n" + item.Ad + "\r\n" + item.Yazar + "\r\n" + item.Tur + "\r\n" + item.BasimYili); } Console.ReadKey(); } } }
Öncelikle Kitap sınıfının yapısı hatalı. Bir kitabın bilgileri daha sonra değişemez (değişirse bu farklı bir kitaptır). O yüzden read-only property kullandık ve parametreleri sınıfın kurucularında verdik.
Kodu basitleştirmek adına Main işlevi parçalara bölünmeli.