Telefon Rehberi Hazırlama

Bu konuyu saçma buldunuz mu?


  • Oy verenlerin toplamı
    5

AnonyDNS

Hectopat
Katılım
25 Eylül 2016
Mesajlar
2
Daha fazla  
Cinsiyet
Erkek
Öncelikle herkese merhabalar... "Freedom" benim için Türkçesi olan "C programlama dili" ile bir telefon rehberi yazdım. Açıkçası iyi ya da kötü diyemiyorum kendime. Çünkü sınırı hiç görmedim. Sizlerden ricam bu işte uzman diyebileceğimiz arkadaşlar muhakkak vardır. Bu kodu incelemeniz ve genel olarak yorumlamanızdır. Değerli yorumlarınız için şimdiden çok teşekkürler. Bir de ben şu an c'de sınır olarak en son gördüğüm konular. Unions-Functions-Struct-FILE vb. bunların daha ötesi var mı? Bilen arkadaşlar bir el atabilirse minnettar olurum. Son olarak incelemem için ileri seviye diyebileceğimiz c bilgileri içeren bir programın kaynak kodlarını atabilir seniz çok sevinirim.

NOT: C programlama dilini bilmese de kodu denemek isteyen arkadaşlar için. Kodu derleyici de derlemeden önce kodların bulunduğu yere deneme adında txt uzantılı(metin belgesi) bir dosya açmalısınız.

NOT2: Normal program kodlarından sonra bir de rehberin içinden seçilen bir telefon numarasını silebilmek adına küçük bir algoritma yazdım. Tabi her ne kadar mantık doğru da olsa çalışmadı nedense onu da atayım göz atmak isteyen olursa ona da bakabilsin. Genel mantık şu şekilde;
Önce numarası silinecek kişinin isim-soyisim bilgilerini alıyoruz. Sonra txt dosyasındaki verilerin kelime cinsinden(aralarında boşluk olacak şekilde) sayısını öğreniyoruz. O sayıya oranla dizi oluşturup dosyadan çekilen verileri dizilere yerleştiriyoruz. Dosyanın içini temizliyoruz. Elimizde bulunan verileri kullanıcıdan aldığımız bilgiler doğrultusunda tarıyor. Seçilen kişiyi rehber den siliyor ve yeni verileri dosya ya yazıyoruz.


Genel mantık bu şekilde. Saçma diyenler olabilir, saygı duyarım... Bu da benim algoritmam muhakkak daha mantıklı fikirler-algoritmalar çıkacaktır.


Beklemedeyim. Saygılar...Sevgiler...


KODLAR:











#include<stdio.h>
#include<locale.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
struct program
{
char isim[20];
char soyisim[25];
char tel_no[12];
int yas;
};
char tablo()
{
printf("**********************************************************\n");
printf("* Telefon Rehberi Programına Hoşgeldiniz! *\n");
printf("* 1-Rehberi Görüntüle *\n");
printf("* 2-Telefon Numarası Ekle *\n");
printf("* 3-Rehberi Sil *\n");
printf("* 4-Çıkış *\n");
printf("**********************************************************\n");
}
int guncel_rehber()
{
char gecici_bellek[25];
int gecici_bellek2;
FILE *dosya;
if((dosya=fopen("deneme.txt","rb+"))==NULL)
{
printf("HATA: Kaynak Dosya(deneme.txt) Açma Hatası.\a\a\a\n||\nKaynak Dosya(deneme.txt) Bulunamadı!");
}
else
{
dosya=fopen("deneme.txt","rb+");
printf("\tİsim\t\tSoyisim\t\tNumara\t\tYaş\n");
printf("\t____\t\t_______\t\t______\t\t___\n\n");
do
{
for(int i=0;i<3;i++)
{
fscanf(dosya,"%s",&gecici_bellek);
printf("\t%s\t",gecici_bellek);
}
fscanf(dosya,"%d",&gecici_bellek2);
printf("%d\n",gecici_bellek2);
}
while(!feof(dosya));
}
fclose(dosya);
printf("\n\n\nRehber Başarılı Bir Şekilde Görüntülendi!..\nDevam Etmek İçin Bir Tuşa Basın...");
getch();
system("CLS");
}
int telefon_ekle()
{
FILE *dosya;
if((dosya=fopen("deneme.txt","ab+"))==NULL)
{
system("color ce");
printf("Kaynak Dosya(deneme.txt) Okuma Hatası!\a\a\a\n||\nKaynak Dosya(deneme.txt) Açılamadı!..");
printf("Çıkış için bir tuşa basın!");
getch();
system("color 2");
printf("\t\t Bizi Tercih Ettiğiniz İçin Teşekkürler.\n\n\n\t\t\t\t*****************\n\t\t\t\t*OZAN PRODUCTİON*\n\t\t\t\t*****************\n\n\n\t\t Çıkış İçin Herhangi bir Tuşa basmanız Yeterlidir...");
getch();
exit(1);
}
else
{
dosya=fopen("deneme.txt","ab+");
struct program rehber;
system("CLS");
bas1:
printf("Telefon Numarası Eklenecek Kişinin;\n\nAdı(Max 20 karakter!): "); scanf("%s",&rehber.isim);
system("CLS");
if((strlen(rehber.isim))>20)
{
system("color ce");
printf("Sınırlar Aşılmamalıdır!(Max 20 Karakter!)\nBaşa Dönmek İçin Bir Tuşa Basın...");
getch();
goto bas1;
system("CLS");
system("color 2");
}
fprintf(dosya,"\t%s",rehber.isim);
bas2:
printf("Telefon Numarası Eklenecek Kişinin;\n\nSoyadı(Max 25 Karakter!): "); scanf("%s",&rehber.soyisim);
system("CLS");
if((strlen(rehber.soyisim))>20)
{
system("color ce");
printf("Sınırlar Aşılmamalıdır!(Max 25 Karakter!)\nBaşa Dönmek İçin Bir Tuşa Basın...");
getch();
goto bas2;
system("CLS");
system("color 2");
}
fprintf(dosya,"\t%s",rehber.soyisim);
bas3:
printf("Telefon Numarası Eklenecek Kişinin;\n\nTelefon Numarası(Max 12 Karakter!): "); scanf("%s",&rehber.tel_no);
system("CLS");
if((strlen(rehber.tel_no))>20)
{
system("color ce");
printf("Sınırlar Aşılmamalıdır!(Max 12 Karakter!)\nBaşa dönmek için bir tuşa basın...");
getch();
goto bas3;
system("CLS");
system("color 2");
}
fprintf(dosya,"\t%s",rehber.tel_no);
bas4:
printf("Telefon Numarası Eklenecek Kişinin;\n\nYaşı(Max 10 Haneli!): "); scanf("%d",&rehber.yas);
system("CLS");
if(rehber.yas>9999999999)
{
system("color ce");
printf("Sınırlar Aşılmamalıdır!(Max 10 Karakter!)\nBaşa Dönmek İçin Bir Tuşa Basın...");
getch();
goto bas4;
system("CLS");
system("color 2");
}
fprintf(dosya,"\t%d",rehber.yas);
}
fclose(dosya);
printf("Girilen Bilgiler Rehbere Başarılı Bir Şekilde Aktarıldı!..\nDevam Etmek İçin Bir Tuşa Basın...");
getch();
system("CLS");
}
int rehberi_sil()
{
FILE *dosya;
if((dosya=fopen("deneme.txt","wb+"))==NULL)
{
system("color ce");
printf("Kaynak Dosya(deneme.txt) Oluşturma/Açma Hatası!\a\a\a\n||\nKaynak Dosya Oluşturulamadı/Açılamadı!");
printf("Çıkış Yapmak İçin Bir Tuşa Basın:");
getch();
system("color 2");
printf("\t\t Bizi Tercih Ettiğiniz İçin Teşekkürler.\n\n\n\t\t\t\t*****************\n\t\t\t\t*OZAN PRODUCTİON*\n\t\t\t\t*****************\n\n\n\t\t Çıkış İçin Herhangi bir Tuşa basmanız Yeterlidir...");
getch();
exit(1);
}
else
{
dosya=fopen("deneme.txt","wb+");
printf("Rehber Başarılı Bir Şekilde Temizlendi!\nDevam Etmek İçin Bir Tuşa Basın...");
getch();
system("CLS");
}
fclose(dosya);
}
int main()
{
setlocale(LC_ALL, "Turkish");
system("color 2");
int secim;
while(secim!=4)
{
tablo();
printf("\nSeçiminiz: "); scanf("%d",&secim);
system("CLS");
switch(secim)
{
case 1:{
guncel_rehber();
break;
}
case 2:{
telefon_ekle();
break;
}
case 3:{
rehberi_sil();
break;
}
case 4:{
system("CLS");
printf("\t\t Bizi Tercih Ettiğiniz İçin Teşekkürler.\n\n\n\t\t\t\t*****************\n\t\t\t\t*OZAN PRODUCTİON*\n\t\t\t\t*****************\n\n\n\t\t Çıkış İçin Herhangi bir Tuşa basmanız Yeterlidir...");
getch();
exit(1);
break;
}
}
}
}







Seçilen kişiyi silme algoritması;







char telefon_numarasi_sil()
{
int sayac=0;
char global_isim_soyisim_tel_no[sayac][25];
int global_yas[sayac];
FILE *dosya;
if((dosya=fopen("deneme.txt","wb+"))==NULL)
{
system("color ce");
printf("Kaynak Dosya Okuma/Açma Hatası!\a\a\a\nKaynak Dosya(deneme.txt) oluşturulamadı!..\nÇıkış İçin Bir Tuşa Basın!..");
getch();
system("color 2");
printf("\t\t Bizi Tercih Ettiğiniz İçin Teşekkürler.\n\n\n\t\t\t\t*****************\n\t\t\t\t*OZAN PRODUCTİON*\n\t\t\t\t*****************\n\n\n\t\t Çıkış İçin Herhangi bir Tuşa basmanız Yeterlidir...");
getch();
exit(1);
}
else
{
char dene[25];
do
{
for(int i=0;i<3;i++)
{
fscanf(dosya,"%s",&dene);
}
fscanf(dosya,"%d",&dene);
sayac+=4;
}
while(!feof(dosya));
char isim_soyisim_tel_no[sayac][25];
int yas[sayac],j=3,i=0,yass=0;
{
for(i;i<j;i++)
{
fscanf(dosya,"%s",&isim_soyisim_tel_no);
}
fscanf(dosya,"%d",&yas[yass]);
sayac+=4;
j+=3;
yass++;
}
while(!feof(dosya));
char silinecek_isim[20],silinecek_soyisim[25];
printf("Silinecek Numaranın Sahibinin Adını Ve Soyadını Girin:\n"); scanf("%s%s",&silinecek_isim,&silinecek_soyisim);
for(int i=0;i<sayac;i++)
{
if(isim_soyisim_tel_no==silinecek_isim && isim_soyisim_tel_no[i+1]==silinecek_soyisim)
{
break;
}
}
isim_soyisim_tel_no=NULL;
isim_soyisim_tel_no[i+1]=NULL;
isim_soyisim_tel_no[i+2]=NULL;
for(int i=0;i<sayac;i++)
{
isim_soyisim_tel_no=global_isim_soyisim_tel_no;
}
if(i!=1)
{
yas[(i-1)/3]==' ';
}
else
{
yas==' ';
}
}
for(int i=0;i<sayac/4;i++)
{
yas=global_yas;
}
if((dosya=fopen("deneme.txt","wb+"))==NULL)
{
system("color ce");
printf("Kaynak Dosya Yazma/Açma Hatası!\a\a\a\nKaynak Dosya(deneme.txt) oluşturulamadı!..\nÇıkış İçin Bir Tuşa Basın!..");
getch();
system("color 2");
printf("\t\t Bizi Tercih Ettiğiniz İçin Teşekkürler.\n\n\n\t\t\t\t*****************\n\t\t\t\t*OZAN PRODUCTİON*\n\t\t\t\t*****************\n\n\n\t\t Çıkış İçin Herhangi bir Tuşa basmanız Yeterlidir...");
getch();
exit(1);
}
else
{
dosya=fopen("deneme.txt","wb+");
}
if((dosya=fopen("deneme.txt","ab+"))==NULL)
{
system("color ce");
printf("Kaynak Dosya Yazma/Açma Hatası!\a\a\a\nKaynak Dosya(deneme.txt) oluşturulamadı!..\nÇıkış İçin Bir Tuşa Basın!..");
getch();
system("color 2");
printf("\t\t Bizi Tercih Ettiğiniz İçin Teşekkürler.\n\n\n\t\t\t\t*****************\n\t\t\t\t*OZAN PRODUCTİON*\n\t\t\t\t*****************\n\n\n\t\t Çıkış İçin Herhangi bir Tuşa basmanız Yeterlidir...");
getch();
exit(1);
}
else
{
dosya=fopen("deneme.txt","ab+");
for(int i=0;i<sayac/4;i++)
{
fprintf(dosya,"\t%s\t%s\t%s\t%d",global_isim_soyisim_tel_no,global_isim_soyisim_tel_no[i+1],global_isim_soyisim_tel_no[i+2],global_yas);
}
}
fclose(dosya);
fclose(dosya);
fclose(dosya);
}
 
Son düzenleyen: Moderatör:
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Yeni konular

Geri
Yukarı