Selamün Aleyküm,
Arkadaşa okuldan ödev vermişler oda pek anlamadığı için bana devretti bende yaptım fakat bi yerde sıkıntı çıktı.
Ödev : Konsola isim ve numara girilecek(546 xisim xsoyisim) gibi bunlar kaydedilecek sonra o isim ve numaralar numara sırasıyla ekrana yazdırılacak.
Bende alttaki kod dizinini yazdım fakat sadece aynı haneli sayıları sıralıyor 2 haneli ise 2 haneli olarak sıralıyor. 10, 20, 210, 30, 40, 6 gibi. Bu sorunun çözümünü buldum ama koskoca bi koddu onu buraya entegre ettim fakat hoca kodlar basit değil diye kabul etmemiş zaten program yazmak için maksimum üşengeçlik olması lazım internetten bulup kopyala yapıştır yapmak pekde sorun olmaz ve zaten zamanla bunlar öğrenilir yani çok saçma insanlar. Bu sorunu basitçe nasıl çözebilirim ?
static private void menu()
{
Console.WriteLine("======= Menu =======\n");
Console.WriteLine("[1] isim listesi");
Console.WriteLine("[2] yeni isim gir");
Console.WriteLine("[3] cikis yap");
Console.Write("\nSeciminiz: ");
}
static private void dosyayiOku()
{
string dosya = "liste.txt";
if (File.Exists(dosya))
{
string[] isimler = File.ReadAllLines(dosya);
Array.Sort(isimler);
Console.WriteLine("\n--- isim listesi ---\n");
foreach(string isim in isimler)
Console.WriteLine(isim + "\n");
}
}
static private void dosyayaYaz(string yazilacakisim)
{
string dosya = "liste.txt";
using (StreamWriter sw = new StreamWriter(dosya, true))
{
sw.WriteLine(yazilacakisim);
}
}
static void Main(string[] args)
{
char secim;
do
{
menu();
secim = Convert.ToChar(Console.ReadLine());
switch (secim)
{
case '1':
dosyayiOku();
break;
case '2':
Console.Write("ismi giriniz: ");
string isim = Console.ReadLine();
dosyayaYaz(isim);
break;
case '3':
break;
default:
Console.WriteLine("Yanlis secim yaptiniz!!!");
break;
}
} while (secim != '3');
}
}
Arkadaşa okuldan ödev vermişler oda pek anlamadığı için bana devretti bende yaptım fakat bi yerde sıkıntı çıktı.
Ödev : Konsola isim ve numara girilecek(546 xisim xsoyisim) gibi bunlar kaydedilecek sonra o isim ve numaralar numara sırasıyla ekrana yazdırılacak.
Bende alttaki kod dizinini yazdım fakat sadece aynı haneli sayıları sıralıyor 2 haneli ise 2 haneli olarak sıralıyor. 10, 20, 210, 30, 40, 6 gibi. Bu sorunun çözümünü buldum ama koskoca bi koddu onu buraya entegre ettim fakat hoca kodlar basit değil diye kabul etmemiş zaten program yazmak için maksimum üşengeçlik olması lazım internetten bulup kopyala yapıştır yapmak pekde sorun olmaz ve zaten zamanla bunlar öğrenilir yani çok saçma insanlar. Bu sorunu basitçe nasıl çözebilirim ?
static private void menu()
{
Console.WriteLine("======= Menu =======\n");
Console.WriteLine("[1] isim listesi");
Console.WriteLine("[2] yeni isim gir");
Console.WriteLine("[3] cikis yap");
Console.Write("\nSeciminiz: ");
}
static private void dosyayiOku()
{
string dosya = "liste.txt";
if (File.Exists(dosya))
{
string[] isimler = File.ReadAllLines(dosya);
Array.Sort(isimler);
Console.WriteLine("\n--- isim listesi ---\n");
foreach(string isim in isimler)
Console.WriteLine(isim + "\n");
}
}
static private void dosyayaYaz(string yazilacakisim)
{
string dosya = "liste.txt";
using (StreamWriter sw = new StreamWriter(dosya, true))
{
sw.WriteLine(yazilacakisim);
}
}
static void Main(string[] args)
{
char secim;
do
{
menu();
secim = Convert.ToChar(Console.ReadLine());
switch (secim)
{
case '1':
dosyayiOku();
break;
case '2':
Console.Write("ismi giriniz: ");
string isim = Console.ReadLine();
dosyayaYaz(isim);
break;
case '3':
break;
default:
Console.WriteLine("Yanlis secim yaptiniz!!!");
break;
}
} while (secim != '3');
}
}