C ödevi hakkında yardımlarınızı bekliyorum

Başlatan pwl, 25 Aralık 2009 - 05:02:34

« önceki - sonraki »

0 Üyeler ve 4 Ziyaretçi konuyu incelemekte.

sema

#25
Uygun olduğumda yanıt verecektim güya :(
susema

sema

#26
Ne kadar çok söz vermişim böyle, aklımdalar, sildim..
susema

pwl

@semagkyz  ilginiz için teşekkür ediyorum.

beklemedeyim uygun bir zaman denk getirdiğimizde etkileşimli bir şekilde halledelim derim bu projeyi.

sem

Yardım edebilmek için geç kalmışız bu ödev için maalesef. Bu projenin kodlarını verecek misiniz acaba? Bir iki kafama takılan şeyler oldu da, onları sormak için istiyorum... Bir sakıncası yoksa sizin için de şimdiden teşekkürler... Bir sakıncası varsa şimdiden yine teşekkürler...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

sema

@sem0900 kodları tamamlayacaktık ama bakamadım hiç ondan sonra, söz de vermiştim ve hatta bir sürü kişiye bir sürü konuda söz verdim hiçbirini yapamadım bir daha da kimseye söz vermeyi düşünmüyorum :)

Zamanı da geçtiği için uğraşasım da gelmiyor, dilerseniz siz uğraşın istediğiniz dilde sonra istenen dile çeviririz ama yine söz vermiyorum zaten bu günlerde olması mümkün değil benim açımdan..
susema

sem

#30
   Merhabalar semagkyz, anladım dediğini. Bu aralar yoğunsun bayağı demek.. kolay gelsin sana o zaman. Hatta yapabileceğimiz, yardım edebileceğimiz * bir şey varsa sen söyle istersen C ile ilgili mesela =). Elimizden ne gelirse artık.  Aynen dediğin gibi ben de uğraşayım bakayım nasıl olacak...
   pwl senin ilerleme durumu nedir acaba projen için? Bilgilendirebilir misin acaba beni? Takıntı haline mi geldi ben de ne olduysa bu kodlar =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

sema

@sem0900, @pwl projeyi teslim edeli yıllar oldu :P Yani hocasına verdi öyle konuşmuştuk. Yok bu aralar programlama ile değil uğraşılarım ama olursa hiç çekinmem :P
susema

sem

#32
   @semagkyz, Aynen zaman geçmiş biraz ama olsun gene harddiskinde tutmuştur diye düşündüm ben. O kadar emek verdiniz, teslim edip silmiş midir? diyorsun=). Olsun fizik sınavı da var haftaya ama bu hafta içi kesin denemem lazım bu programı  merak ettim... değişik bazı şeyler var çünkü de ondan =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

sema

Yok silmemiştir :P İyi tamam kolay gelsin size sınavlarınızda..

Bu arada nickim semagkyz (gökyüzü) :P
susema

sem

   Teşekkür ederim; kolay gelsin dilekleriniz için. Özür dilerim; ismi yanlış yazmamdan ötürü. Düzelttim hatalı yazdıklarımı...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

sem

Şu konu için, meraktan ötürü yazdığım program da sistemimle beraber gitmiş oldu... Erişemiyorum kendi dosyalarıma... Acaba pwl listele menüsünde nasıl bir algoritma ve hangi fonksiyonları kullandı merak ediyorum gerçekten... Sistemim kurulunca muhtemelen ilk yazacağım program bu olacak...
/*Bunları yazıyorum ki ben sistemimi yüklemeden pwl görürse kodları göndersin =)*/
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

ozdemir08

#36
Alıntı yapılan: semagkyz - 25 Aralık 2009 - 22:49:20
Alıntı yapılan: heartsmagic - 25 Aralık 2009 - 22:35:40
Ubuntu altında neden derlemiyorsunuz?

Birilerinin bunu sormasını bekliyordum aslında. @heartsmagic Ubuntu altında da derleyeceğim ama daha bakmadım, Ubuntu'dakine. Programı kurdum ama daha uğraşmadım. Sınavlardan sonra ilk işim o olacak.?

Ubuntu da debugging işlemleri çok kolay. gdb diye bir program var. Onda adım adım her şeyi takip edebiliyorsun. Bakmanı tavsiye ederim.

sema

susema

pwl

@sem0900, biraz geç oldu ama güç olmasın. projeyi teslim ettim, zaten bazı yerler eksik olduğundan dolayı pek iyi notta alamadım :)
@semagkyz olmasaydı onu da alamazdık, teşekkürlerimi birkez daha kendisine sunuyorum.
projenin eksik kalan yanlarını semagkyz ile daha da geliştiricektik bir türlü senkronize olamadık, herkesin kendine göre yoğunluğu var.
kodları bulabilirsem size en kısa zamanda gönderirim. silmedim de bulmak epey zaman alacak, hdd ler karman çorman 4TB disk var ve hiç düzenli değilim :D
ancak yapmak istediğiniz şey tam olarak nedir? nasıl bir algoritma dahilinde neye ulaşmak istiyorsanız bunu belirtirseniz işinize daha çok yarayacak kodlar varsa gönderebilirim.
belki de ben bu satırları yazarken siz çoktan köprüyü geçmişsinizdir, gecikme için tekrar özür dilerim.

Bu arada yeni bir projem daha var ve bu sefer son dakikaya bırakmadım birazcık zamanımız var, nesneye yönelik bir proje olması gerekiyor bunun (c++ ile kodlanacak)
yardımlarınızı şimdiden bekliyorum, bu yeni proje için yeni bir konu açmalı mıyım yoksa bu başlık altında devam etsek daha mı iyi olur?

sem

Tabi ki @pwl, dediğiniz gibi herkesin kendine göre yoğunluğu var. Özellikle benim bu aralar çok yoğun olacak ve C'ye vakit ayıramayacağım sanırım. 4 TB içinde, bir kodu bulmak çok zor olacaktır, hele de dosyanın adını hatırlamıyorsanız ve düzensizseniz =) Benim merak ettiğim, dosyalama tarzında mı yazmıştınız programın en son halini, yoksa tamamen txt dosyaları üzerinde mi hallettiniz, eğer öyle ise, listeme algoritmasını nasıl yaptığınzdı. Geri dönüş için teşekkürler...   İsterseniz yeni başlık altında devam edin, daha sonra herkes boşken bu programı beraber hallederiz, çözüldü olarak etiketlersiniz... Gerçi sorun sizin açınızdan teknik olarak çözülmüş gibi =)
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

virs

Alıntı yapılan: sem0900 - 15 Mayıs 2010 - 19:32:21
4 TB içinde, bir kodu bulmak çok zor olacaktır, hele de dosyanın adını hatırlamıyorsanız ve düzensizseniz =)

Dosya içindeki metnin bir kısmını biliyorsanız google desktop tarzı bir programla aradığınızı bulmanız birkaç saniyenizi alır.
Tabi bu hızlı arama öncesi dosya indekslemesi olacağı için onun ne kadar süreceğini bilemem.
İnsan için ancak çalıştığının karşılığı vardır. (Kur'an: Necm, 39)

pwl

teşekkür ederim, ptesi günü hocaya mail atacağım, bizzat kendisinden isteyeceğim :)

sem

pwl, o kadar uğraştırmak istemem, merak içindi benimkisi, bulamadıysa sorun değil, sen kendin için; o kadar yaptım bende de bulunsun diyerekten almıyorsan, benim için almana gerek yok. Kusura bakma uğraştırmıştım oldum seni...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

pwl

ne demek hocam, olur mu öyle şey. herkes burda paylaşım içerisinde, eğer bunu yapmazsam kendimi iyi hissetmem :)

sem

Ödevin zamanı geçti tabi ki, maalesef ödeve yetişemedik, hatta o aralar üye de değilmişim ben =) Fakat böyle bir ödevi olan arkadaşlar olursa ilerde aramızda, örnek kod olsun diye paylaşıyorum...

Bu ödev şöyle * bir şey olabilirdi;

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <dirent.h>

void doktorlar(void);
void hastalar(void);
void randevular(void);
void doktorekle(void);
void yeniisim(char isim[40], char sisim[20]);
void sil(void);
void duzelt(void);
void listele(void);
void hekle(void);
void hduzelt(void);
void rekle(void);
void rduzelt(void);
int KONTROL = 0;
char anadizin[150];

   char *const a = "\033[0m";
   char *const b = "\033[0;31;38m";
   char *const c = "\033[0;32;38m";
   char *const d = "\033[0;34;38m";



int main()
{

   getcwd(anadizin,150);
   puts(anadizin);

   if(KONTROL == 0)
   {
      if((access("Doktorlar",0)) != 0)
      {
         mkdir("Doktorlar");
         system("chmod +rwx Doktorlar");
      }
      if((access("Randevular",0)) != 0)
      {
         mkdir("Randevular");
         system("chmod +rwx Randevular");
      }
      if((access("Hastalar",0)) != 0)
      {
         mkdir("Hastalar");
         system("chmod +rwx Hastalar");
      }
   KONTROL = 1;
   }

   int secim;
   while(1)
   {
      system("clear");
      fprintf(stdout,"%s1.  Doktor Menü%s\n%s2.  Hasta Menü%s\n%s3.  Randevu Menü%s\n4.  ÇIKIŞ\n\nSeçiminiz:",b,a,c,a,d,a);
      fscanf(stdin,"%d",&secim);

      switch(secim)
      {
         case 1:
            doktorlar();
            break;
         case 2:
            hastalar();
            break;
         case 3:
            randevular();
            break;
         case 4:
            exit(0);
            break;
         default:
            fprintf(stdout,"Yanlış seçim...\n");
            sleep(1);
      }
   }
}

void doktorlar(void)
{
   chdir("Doktorlar");
   int secim;
   while(1)
   {
      system("clear");
      fprintf(stdout,"%s1.  Yeni doktor ekle\n2.  Listeden doktor sil\n3.  Doktor bilgisi düzelt\n4.  Doktor Listele\n5.  Önceki menüye dön\n\nSeçiminiz:%s",b,a);
      fscanf(stdin,"%d",&secim);
      switch(secim)
      {
         case 1:
            doktorekle();
            break;
         case 2:
            sil();
            break;
         case 3:
            duzelt();
            break;
         case 4:
            listele();
            break;
         case 5:
            chdir(anadizin);
            main();
            break;
         default:
            fprintf(stdout,"%sYanlış seçim...%s\n",b,a);
            sleep(1);
      }
   }

}


void hastalar(void)
{
   chdir("Hastalar");
   int secim;
   while(1)
   {
      system("clear");
      fprintf(stdout,"%s1.  Yeni hasta ekle\n2.  Listeden hasta sil\n3.  Hasta bilgisi düzelt\n4.  Hasta Listele\n5.  Önceki menüye dön\n\nSeçiminiz:%s",c,a);
      fscanf(stdin,"%d",&secim);
      switch(secim)
      {
         case 1:
            hekle();
            break;
         case 2:
            sil();
            break;
         case 3:
            hduzelt();
            break;
         case 4:
            listele();
            break;
         case 5:
            chdir(anadizin);
            main();
         default:
           fprintf(stdout,"%sYanlış seçim...%s",c,a);
           sleep(1);
      }
   }
}


void randevular(void)
{
   chdir("Randevular");
   int secim;
   while(1)
   {
      system("clear");
      fprintf(stdout,"%s1.  Yeni Randevu Ekle\n2.  Randevu Sil\n3.  Randevu Düzelt\n4.  Randevuları Listele\n5.  Önceki Menüye Dön\n\n\nSeçiminiz:%s",d,a);
      fscanf(stdin,"%d",&secim);
      switch(secim)
      {
         case 1:
            rekle();
            break;
         case 2:
            sil();
            break;
         case 3:
            rduzelt();
            break;
         case 4:
            listele();
            break;
         case 5:
            chdir(anadizin);
            main();
            break;
         default:
            fprintf(stdout,"%sYanlış seçim.%s\n",d,a);
            sleep(2);
      }
   }
}



void doktorekle(void)
{
   FILE *bilgiler;
   char isim2[20];
   char isim[40];
   char sisim[20];
   char secim;
   int id_num, dip_num, telno;
   char adres[50];
   char brans[20];
   fprintf(stdout,"%sEklenecek doktorun Adı:%s",b,a);
   fscanf(stdin,"%s",isim);
   fprintf(stdout,"%sEklenecek doktorun Soyadı:%s",b,a);
   fscanf(stdin,"%s",sisim);
   strcpy(isim2,isim);
   yeniisim(isim,sisim);

   if((access(isim,2)) == 0)
   {
yenisecim:
      fprintf(stdout,"%sBu isimde bir doktor mevcut, diğer isim silinerek devam edilsin mi?[e/h]:%s",b,a);
      getchar();
      secim = getchar();
      if(secim == 'h')
      {
         fprintf(stdout,"%sMenüye Dönülecek...%s\n",b,a);
         sleep(1);
         doktorlar();
      }
      if(secim == 'e')
      {
         if((bilgiler = fopen(isim,"w+")) == NULL)
         {
            fprintf(stdout,"%s%s dosyası açılamadı... Program kapatılacak...%s\n",b,isim,a);
            sleep(1);
            exit(EXIT_FAILURE);
         }

         fprintf(stdout,"%sTelefon numarası:%s",b,a);
         fscanf(stdin,"%d",&telno);
         fprintf(stdout,"%sAdresi:%s",b,a);
         getchar();
         gets(adres);
         fprintf(stdout,"%sBranşı:%s",b,a);
         gets(brans);
         fprintf(stdout,"%sDiploma no:%s",b,a);
         fscanf(stdin,"%d",&dip_num);
         fprintf(stdout,"%sID numarası:%s",b,a);
         fscanf(stdin,"%d",&id_num);
         fprintf(bilgiler,"%s\n%s\n%d\n%s\n%s\n%d\n%d",isim2,sisim,telno,adres,brans,dip_num,id_num);
         fclose(bilgiler);
      }
      else
      {
         fprintf(stdout,"%sYanlış seçim...%s\n",b,a);
         sleep(1);
         goto yenisecim;
      }
   }
   else
   {
         if((bilgiler = fopen(isim,"w+")) == NULL)
         {
            fprintf(stdout,"%s%s dosyası açılamadı... Program kapatılacak...%s\n",b,isim,a);
            sleep(1);
            exit(EXIT_FAILURE);
         }

         fprintf(stdout,"%sTelefon numarası:%s",b,a);
         fscanf(stdin,"%d",&telno);
         fprintf(stdout,"%sAdresi:%s",b,a);
         getchar();
         gets(adres);
         fprintf(stdout,"%sBranşı:%s",b,a);
         gets(brans);
         fprintf(stdout,"%sDiploma no:%s",b,a);
         fscanf(stdin,"%d",&dip_num);
         fprintf(stdout,"%sID numarası:%s",b,a);
         fscanf(stdin,"%d",&id_num);
         fprintf(bilgiler,"%s\n%s\n%d\n%s\n%s\n%d\n%d",isim2,sisim,telno,adres,brans,dip_num,id_num);
         fclose(bilgiler);
   }
}

void yeniisim(char isim[40], char sisim[20])
{
   int k;
   k = strlen(isim);
   isim[k]  = ' ';
   isim[k+1]= '\0';
   strcat(isim,sisim);
}

void sil(void)
{
   char isim[40];
   fprintf(stdout,"Silmek istediğiniz doktorun adı ve soyadını girin:");
   getchar();
   gets(isim);
   remove(isim);
}

void duzelt(void)
{
     FILE *bilgiler;
     char isim2[40];
     char sisim2[20];
     char isim[40];
     char sisim[20];
     int  dip_num, telno,id_num,secim,k;
     char adres[50];
     char brans[20];
     fprintf(stdout,"%sDuzeltmek istediğiniz doktorun adı ve soyadı:%s",b,a);
     getchar();
     gets(isim);
     if((access(isim,0)) == 0)
     {
        if((bilgiler = fopen(isim,"r")) == NULL)
        {
           fprintf(stdout,"%s%s dosyası açılamadı...Program kapatılacak\n%s",b,isim,a);
           perror("fopen");
           sleep(1);
           exit(EXIT_FAILURE);
        }
        else
        {
           fscanf(bilgiler,"%s",isim);
           fscanf(bilgiler,"%s",sisim);
           fscanf(bilgiler,"%d",&telno);
           fgetc(bilgiler);
           fgets(adres,50,bilgiler);
           k = strlen(adres);
           adres[k-1] = '\0';
           fgets(brans,20,bilgiler);
           k = strlen(brans);
           brans[k-1] = '\0';
           fscanf(bilgiler,"%d",&dip_num);
           fscanf(bilgiler,"%d",&id_num);
           fclose(bilgiler);
           fprintf(stdout,"%s%s Bilgiler:\n1-)Telefon:%d\n2-)Adres:%s\n3-)Brans:%s\n4-)Diploma no:%d\n5-)ID:%d%s\n",b,isim,telno,adres,brans,dip_num,id_num,a);
           fprintf(stdout,"%sDeğişiklik yapılacak olan bölümün numarasını girin:%s",b,a);
           fscanf(stdin,"%d",&secim);
           switch(secim)


           {
              case 1:
                 fprintf(stdout,"%sYeni telefon:%s",b,a);
                 fscanf(stdin,"%d",&telno);
                 break;
              case 2:
                 fprintf(stdout,"%sYeni adres:%s",b,a);
                 getchar();
                 gets(adres);
                 break;
              case 3:
                 fprintf(stdout,"%sYeni branş:%s",b,a);
                 getchar();
                 gets(brans);
                 break;
              case 4:
                 fprintf(stdout,"%sYeni Diploma numarası:%s",b,a);
                 fscanf(stdin,"%d",&dip_num);
                 break;
              case 5:
                 fprintf(stdout,"%sYeni ID:%s",b,a);
                 fscanf(stdin,"%d",&id_num);
                 break;
              default:
                 fprintf(stdout,"%sYanlış seçenek...\n%s",b,a);
                 sleep(1);

           }
           strcpy(isim2,isim);
           yeniisim(isim2,sisim);
           if((bilgiler = fopen(isim2,"w+")) == NULL)
           {
              fprintf(stdout,"%s%s dosyası açılamadı...Program kapatılacak...%s\n",b,isim2,a);
              perror("fopen");
              sleep(1);
              exit(EXIT_FAILURE);
           }
           else
           {
              fprintf(bilgiler,"%s\n%s\n%d\n%s\n%s\n%d\n%d",isim,sisim,telno,adres,brans,dip_num,id_num);
              fclose(bilgiler);
           }
         }
     }
     else
     {
          fprintf(stdout,"%sBöyle birisi kayıtlı değil... Menüye dönülecek%s\n",b,a);
          sleep(2);
          doktorlar();
     }

}


void listele(void)
{
   char budizin[150];
   DIR *dizin;
   struct dirent *elemanlar;
   getcwd(budizin,150);
   if((dizin = opendir(budizin)) == NULL)
   {
      fprintf(stdout,"Dizin açılamadı. Progam kapatılacak...\n");
      sleep(2);
      exit(EXIT_FAILURE);
   }
   else
   {
      while((elemanlar = readdir(dizin)) != NULL)
      {
         fprintf(stdout,"%s\n",elemanlar -> d_name);
      }
      closedir(dizin);
   }
   fprintf(stdout,"Menüye dönmek için enter'a basın...\n");
   getchar();
   getchar();

}



void hekle(void)
{
   char isim[40];
   char sisim[20];
   char isim2[20];
   int gun,ay,yil,telno,id_num;
   char hastalik[50];
   char adres[50];
   FILE *bilgiler;

   fprintf(stdout,"%sEklenecek hastanın\nAdı:%s",c,a);
   fscanf(stdin,"%s",isim);
   fprintf(stdout,"%sSoyadı:%s",c,a);
   fscanf(stdin,"%s",sisim);
   strcpy(isim2,isim);
   yeniisim(isim,sisim);
   if((access(isim,2)) == 0)
   {
      fprintf(stdout,"%sBöyle bir kişi zaten kayıtlı. Menüye dönülecek...%s\n",c,a);
      sleep(2);
      hastalar();
   }
   else
   {
      if((bilgiler = fopen(isim,"w+")) != NULL)
      {
         fprintf(stdout,"%sDoğum Tarihi (gg aa yyyy):%s",c,a);
         fscanf(stdin,"%d%d%d",&gun,&ay,&yil);
         fprintf(stdout,"%sTelefon Numarası:%s",c,a);
         fscanf(stdin,"%d",&telno);
         fprintf(stdout,"%sAdresi:%s",c,a);
         getchar();
         gets(adres);
         fprintf(stdout,"%sHastalığı:%s",c,a);
         gets(hastalik);
         fprintf(stdout,"%sID Numarası:%s",c,a);
         fscanf(stdin,"%d",&id_num);
         fprintf(bilgiler,"%s\n%s\n%d %d %d\n%d\n%s\n%s\n%d",isim2,sisim,gun,ay,yil,telno,adres,hastalik,id_num);
         fclose(bilgiler);
      }
      else
      {
         fprintf(stdout,"%s%s dosyası açılamadı...Program kapatılacak%s\n",c,isim,a);
         sleep(1);
         perror("fopen");
         exit(EXIT_FAILURE);
      }

   }
}

void hduzelt(void)
{
   FILE *bilgiler;
   char isim[40];
   char isim2[40];
   char sisim[20];
   char adres[50];
   char hastalik[20];
   int telno, id_num, gun,ay,yil,k,secim;
   fprintf(stdout,"%sDüzenlemek istediğiniz hastanın adını girin:%s",c,a);
   getchar();
   gets(isim);

   if((access(isim,0)) != 0)
   {
      fprintf(stdout,"%sBöyle bir kişi kayıtlı değil. Menüye dönülecek...%s\n",c,a);
      sleep(2);
      hastalar();
   }
   else
   {
      if((bilgiler = fopen(isim,"r+")) == NULL)
      {
         fprintf(stdout,"%s%s dosyası acılamadı... Program kapatılacak%s\n",c,isim,a);
         sleep(1);
         perror("fopen");
         exit(EXIT_FAILURE);
      }
      else
      {
         fscanf(bilgiler,"%s",isim);
         fscanf(bilgiler,"%s",sisim);
         fscanf(bilgiler,"%d%d%d",&gun,&ay,&yil);
         fscanf(bilgiler,"%d",&telno);
         fgetc(bilgiler);
         fgets(adres,50,bilgiler);
         k = strlen(adres);
         adres[k-1] = '\0';
         fgets(hastalik,20,bilgiler);
         k = strlen(hastalik);
         hastalik[k-1] = '\0';
         fscanf(bilgiler,"%d",&id_num);
         fclose(bilgiler);

         fprintf(stdout,"%s%s %s Bilgiler:\n1-)Doğum Tarihi:%d/%d/%d\n2-)Teleon numarası:%d\n3-)Adres:%s\n4-)Hastalık:%s\n5-)ID Numarası:%d%s\n",c,isim,sisim,gun,ay,yil,telno,adres,hastalik,id_num,a);
         fprintf(stdout,"%sDeğişiklik yapılacak bölümü seçin:%s",c,a);
         fscanf(stdin,"%d",&secim);
         switch(secim)
         {
            case 1:
               fprintf(stdout,"%sYeni Tarih (gg aa yyyy):%s",c,a);
               fscanf(stdin,"%d%d%d",&gun,&ay,&yil);
               break;
            case 2:
               fprintf(stdout,"%sYeni Telefon Numarası:%s",c,a);
               fscanf(stdin,"%d",&telno);
               break;
            case 3:
               fprintf(stdout,"%sYeni Adres:%s",c,a);
               getchar();
               gets(adres);
               break;
            case 4:
               fprintf(stdout,"%sYeni Hastalık:%s",c,a);
               getchar();
               gets(hastalik);
               break;
            case 5:
               fprintf(stdout,"%sYeni ID:%s",c,a);
               fscanf(stdin,"%d",&id_num);
         }
         strcpy(isim2,isim);
         yeniisim(isim2,sisim);
         if((bilgiler = fopen(isim2,"w+")) == NULL)
         {
            fprintf(stdout,"%s%s dosyası açılamadı. Program kapatılacak...%s\n",c,isim2,a);
            perror("fopen");
            sleep(1);
            exit(EXIT_FAILURE);
         }
         else
         {
            fprintf(bilgiler,"%s\n%s\n%d %d %d\n%d\n%s\n%s\n%d",isim,sisim,gun,ay,yil,telno,adres,hastalik,id_num);
            fclose(bilgiler);
         }


      }
   }
}

void rekle(void)
{
     int gun,ay,yil,dakika,saat,dok_id,hasta_id;
     FILE *bilgiler;
     char randevuadi[50];
yeniad:
     fprintf(stdout,"%sRandevu adı girin:%s",d,a);
     getchar();
     gets(randevuadi);

     if((access(randevuadi,0)) == 0)
     {
        fprintf(stdout,"%sBu isimde bir randevu kayıtlı, başka bir isim ile deneyin...%s\n",d,a);
        goto yeniad;
     }
     else
     {
        if((bilgiler = fopen(randevuadi,"w+")) == NULL)
        {
           fprintf(stdout,"%s%s dosyası oluşturulamadı. Program kapatılacak...%s\n",d,randevuadi,a);
           sleep(2);
           perror("fopen");
           exit(EXIT_FAILURE);
        }
        else
        {
           fprintf(stdout,"%sRandevu tarihi (gg aa yyyy):%s",d,a);
           fscanf(stdin,"%d%d%d",&gun,&ay,&yil);
           fprintf(stdout,"%sRandevu saati (ss:dd):%s",d,a);
           fscanf(stdin,"%d%d",&saat,&dakika);
           fprintf(stdout,"%sDoktor ID:%s",d,a);
           fscanf(stdin,"%d",&dok_id);
           fprintf(stdout,"%sHasta ID:%s",d,a);
           fscanf(stdin,"%d",&hasta_id);

           fprintf(bilgiler,"%d %d %d\n%d %d\n%d\n%d",gun,ay,yil,saat,dakika,dok_id,hasta_id);
           fclose(bilgiler);
        }
     }
}

void rduzelt(void)
{
   int gun,ay,yil,saat,dakika,dok_id,hasta_id,secim;
   char randevuadi[50];
   FILE *bilgiler;
yeniad:
   fprintf(stdout,"%sDüzeltme yapılacak randevunun adı:%s",d,a);
   getchar();
   gets(randevuadi);
   if((access(randevuadi,0)) != 0)
   {
      fprintf(stdout,"%sBoyle bir kayıt yok.%s\n",d,a);
      sleep(2);
      goto yeniad;
   }
   else
   {
      if((bilgiler = fopen(randevuadi,"r")) == NULL)
      {
         fprintf(stdout,"%s%s dosyası açılamadı. Program kapatılacak...%s\n",randevuadi,d,a);
         sleep(2);
         perror("fopen");
         exit(EXIT_FAILURE);
      }
      else
      {
         fscanf(bilgiler,"%d%d%d",&gun,&ay,&yil);
         fscanf(bilgiler,"%d%d",&saat,&dakika);
         fscanf(bilgiler,"%d",&dok_id);
         fscanf(bilgiler,"%d",&hasta_id);
         fclose(bilgiler);
      }
      fprintf(stdout,"%s1-)Tarih:%02d/%02d/%04d\n2-)Saat:%d:%d\n3-)Doktor ID:%d\n4-)Hasta ID:%d%s\n",d,gun,ay,yil,saat,dakika,dok_id,hasta_id,a);
      fprintf(stdout,"\n\n\n%sDüzeltmek istediğiniz bölümün numarasını girin:%s",d,a);
      fscanf(stdin,"%d",&secim);

      switch(secim)
      {
         case 1:
            fprintf(stdout,"%sYeni Tarih:%s",d,a);
            fscanf(stdin,"%d%d%d",&gun,&ay,&yil);
            break;
         case 2:
            fprintf(stdout,"%sYeni Saat:%s",d,a);
            fscanf(stdin,"%d%d",&saat,&dakika);
            break;
         case 3:
            fprintf(stdout,"%sYeni Doktor ID:%s",d,a);
            fscanf(stdin,"%d",&dok_id);
            break;
         case 4:
            fprintf(stdout,"Yeni Hasta ID:");
            fscanf(stdin,"%d",&hasta_id);
            break;
         default:
            fprintf(stdout,"%sYanlış seçim. Menüye Dönülecek...%s\n",d,a);
            sleep(2);
      }
      if((bilgiler = fopen(randevuadi,"w+")) == NULL)
      {
         fprintf(stdout,"%s%s dosyası açılamadı. Program kapatılacak%s\n",d,randevuadi,a);
         sleep(2);
         perror("fopen");
         exit(EXIT_FAILURE);
      }
      else
      {
         fprintf(bilgiler,"%d %d %d\n%d %d\n%d\n%d",gun,ay,yil,saat,dakika,dok_id,hasta_id);
         fclose(bilgiler);
      }


   }
}

Yaklaşık bir günümü aldı diyebilirim program ... Biraz acele ile yazıldığı belli zaten (Ara vermiştim C'ye, benim için kısa bir süre bunu bir günre yazmak, o bakımdan =))... Nereden belli;
1.) Bütün hata kontrolleri yapılmadı, yani sizden sayı istenen yerde harf girerseniz, ya da tam tersi bir durum olursa istenmeyen hareketlerde bulunacaktır program...
2.)Ad ve soyad değil sadece ad sorulan sorularda fscanf kullanıldı (alışkanlık), yani isminiz Şuayip Behçet Candangil ise, isme Şuayip ya da Behçet yazmak zorundasınız... Yoksa yine istenmeye sonuçlar alınır...
3.)Bütün yazıları renklendirdiğime emin değilim... Gözden akaçmış olan olabilir... (sil ve listeleme fonksiyonları, bütün menülerde ortak kullanıldığı için hangi renge boyayacağıma karar veremedim, kendi halinde bıraktım...)
4.)Dizi uzunluklarına dikkat edilmesi lazım... İsimler, adresler gibi yerlerde. (Bu bir hata değil, sadece uyarı)...
5.)Anlamadığım bir şekilde, "permission denied" hatası alıyorum bazen. Programı root kullanıcı ile çalışrıp ya da "chmod +rwx DOSYANIN KENDİ" şeklinde aştım.


5. madde hariç, istenilen değişik kodlamalarla bütün sorunlar hemen aşılabilir. Fakat şu anda gerek olmadığı için uğraşmadım. Buna benzer ödevi olursa birisinin, yani uğraşılması gerekirse o zaman uğraşırız. Zaten o hataların da kontrolü yapılsa kullanışlı program olacak =)
 
5. madde ile ilgili bir fikri olan varsa da beni de aydınladıtırsa çok makbule geçer... Ek olarak, GCC derleyicileri, gets() kullanımında uyarı veriyorlar, onu da dikkate almadan yazdım programı. Zaten o yüzden dizi uzunluklarına dikkat etmek gerekiyor...



".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?

sem

Alıntı yapılan: sem0900 - 17 Haziran 2010 - 01:01:05
5. madde hariç, istenilen değişik kodlamalarla bütün sorunlar hemen aşılabilir. Fakat şu anda gerek olmadığı için uğraşmadım. Buna benzer ödevi olursa birisinin, yani uğraşılması gerekirse o zaman uğraşırız. Zaten o hataların da kontrolü yapılsa kullanışlı program olacak =)
 
5. madde ile ilgili bir fikri olan varsa da beni de aydınladıtırsa çok makbule geçer... Ek olarak, GCC derleyicileri, gets() kullanımında uyarı veriyorlar, onu da dikkate almadan yazdım programı. Zaten o yüzden dizi uzunluklarına dikkat etmek gerekiyor...

Hataları giderilse güzel program olacakmış =) Programı da iletimi de unutmuşum... Ama 5. madde ile ilgili olarak şunu söylemek isterim;

Mesela;
mkdir("/dosya/olustur", 0777)

Şeklinde bu sorunu aşabilirsiniz...


Bunu söylememe gerek yok ama ne olur olmaz, belki yeni başlayan arkadaşlar varsa diye;

gets() fonksiyonu ile klavyeden okuma yapabilirsiniz. Ama 50 karakter uzunduğunluğundaki dizini 100 karakter de basabilirsiniz. Allah korusun başınıza stack smash detected diye bir şey gelebilir =)

fgets() fonksiyonu ile de dosyadan okuma yapabilirsiniz. Ve de prototipini incelerseniz okunacak kararkter sayısını belirtebiliyorsunuz. Yani bu fonkisyonda sınırı 50 olarak belirtirseni 100 karakter girilse bile belirnen sınır kadar (belirlediğiniz sınıra satır sonu karakteri de dahil) okuma yapılır...

stdout -> standart çıkış (monitör)
stdin   -> standart giriş (klavye)

Bu durumda yapmanız gereken fgets ile stdin dosyasını kullanarak, klavyden giriş almak... Kolay gelsin herkese...
".NET çemberinden geçen lirisist etkisi bir 'Volcano', bir yüzüm Java bir yüzüm Badalamenti Don Tano"
----------------------------------------------------------------------------------------------------------------------
"Her yer ölüm yine, burası dünya
Derken ölüm bile bu nasıl dünya?
Benden ölüm dile, batıyor gün yine
Burası dünya?