Konuyu görüntüle
IUCODERS FORUM > Duyurular > Okul ile ilgili > C++ - Telefon Rehberi ödevi.
Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
29.04.2008-17:28 #43642
naranja yazdi
 
fonksiyonlarımı rehber.h dosyası içerisinde tanımladım, sonra rehber.cpp dosyasına rehber.h include edip içerisine fonksiyonları yazdım, ancak proje.cpp dosyamda rehber.h dosyasını include etmeme rağmen fonksiyonlardan birisini kullanınca "undeclared" diyor. rehber.cpp dosyasına rehber.h dosyasından başka include edilecek bir şey var mı? veya rehber.h dosyasında başta yapılacak farklı tanımlamalar falan var mı (ilk dönem ki ödevde _ROOT_h falan vardı ilk satırlarda bunların ne anlama geldiğini de bilmiyorum, acaba bunlarla alakalı olabilir mi?)
yardımcı olursanız sevinirim.

VS'da sol tarafta (workspace frame) FileView sekmesinde cpp dosyaları Source Files ve h dosyaları da Header Files altında projeye dahil edimiş olarak görünüyor mu?





Let`s make this world a better place to live !

Yazar
naranja


avatar
Kraliyet Ailesinden
Kayıt: 18.10.2007
29.04.2008-17:29 #43643
ben dev c++ kullanıyorum, sol tarafta projemin isminin altında kullandığım 3 dosya var, prj.cpp,rehber.h,rehber.cpp





Kaybolur hayatIn tarifsiz ahengi;
Zaman bir tablodur düser duvarlardan.






Yazar
naranja


avatar
Kraliyet Ailesinden
Kayıt: 18.10.2007
29.04.2008-17:36 #43644
clairvoyant yazdi
 

VS'da sol tarafta (workspace frame) FileView sekmesinde cpp dosyaları Source Files ve h dosyaları da Header Files altında projeye dahil edimiş olarak görünüyor mu?


ben prj.cpp dosyasına
#include "rehber.h"
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

rehber.h dosyasına
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>

rehber.cpp dosyasına
#include rehber.h

şeklinde include yaptım, acaba burada başka tanımlamalar da gerekiyor mu?






Kaybolur hayatIn tarifsiz ahengi;
Zaman bir tablodur düser duvarlardan.






Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
29.04.2008-17:44 #43646
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>


gibi dosyaları rehber.h dosyasında değil de rehber.cpp dosyasında kullanmayı dene.





Let`s make this world a better place to live !

Yazar
naranja


avatar
Kraliyet Ailesinden
Kayıt: 18.10.2007
29.04.2008-17:47 #43648
clairvoyant yazdi
 
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>


gibi dosyaları rehber.h dosyasında değil de rehber.cpp dosyasında kullanmayı dene.


o halde rehber.h dosyasında hiçbir tanımlama olmayacak? yani sadece
void fonksyion();
void fonksyion_2();
gibi fonksiyonları tanımlayacağım. bunun dışında bir şey kullanmama gerek yok mu?

define falan da kullanmama gerek yok sanırsam?





Kaybolur hayatIn tarifsiz ahengi;
Zaman bir tablodur düser duvarlardan.






Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
29.04.2008-17:52 #43649
Eğer h dosyası içinde bir kütüphaneye ait bir fonksiyon adı ya da değişken adı geçmiyorsa gerek yok. Örneğin yazdığın class başka bir kütüphane ile friend fonksiyon içeriyorsa, prototipin geçerli sayılması için o fonksiyonun tanımlı olduğu kütüphanenin h dosyasının senin h dosyan içinde include edilmesi gerekebilir.





Let`s make this world a better place to live !

Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
29.04.2008-17:55 #43650
#define kullanımı önlem amaçlıdır. Yani çok sayıda dosya içeren bir projede aynı modülün farklı modüllerce kullanılması durumunda, linking işlemi sonucunda ortaya çıkabilecek karışıklıkları önlemek amacıyla kullanılır genelikle.





Let`s make this world a better place to live !

Yazar
alew


avatar
istanbul
Kayıt: 01.04.2007
29.04.2008-18:02 #43653
naranja senin yaptığın doğru olması laım dediğin gibi.....benim bi sorum olcak arkadaşlar bir class da tanımlanan pointer in gösterdiği başka bir class türündeki nesnenin içindeki char dizisine mainde erişmek istiyorum yazmam gereken kodu bilen var mı?
(pointer kullanarak !!!!)

benimn yazdıgımama hata yaptıgım teknik sorun
Birinci class rehber - verilerin tutuldugu class
ikinci class - kayit classı -

main de iken rehber classı içindeki pointer ile kayit classı içindeki char disine ulasamamak..
cout<<





Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
29.04.2008-18:40 #43656
alew yazdi
 
naranja senin yaptığın doğru olması laım dediğin gibi.....benim bi sorum olcak arkadaşlar bir class da tanımlanan pointer in gösterdiği başka bir class türündeki nesnenin içindeki char dizisine mainde erişmek istiyorum yazmam gereken kodu bilen var mı?
(pointer kullanarak !!!!)

benimn yazdıgımama hata yaptıgım teknik sorun
Birinci class rehber - verilerin tutuldugu class
ikinci class - kayit classı -

main de iken rehber classı içindeki pointer ile kayit classı içindeki char disine ulasamamak..
cout<<


Yapmak istediğin şey böyle bir şey mi?
#include <stdio.h>

class Rehber {
public:
	char *dizi;
};

class Kayit {
public:
	char dizi[33];
};

int main() {
	
	Rehber R;
	Kayit K;

	sprintf(K.dizi, "asdfgh");

	R.dizi = K.dizi;

	printf(R.dizi);

	return 0;
}






Let`s make this world a better place to live !

Yazar
neurorebel


avatar

Kayıt: 15.08.2007
29.04.2008-19:16 #43661
sanırım şöyle birşey
class Kayit
{
    ...
    char dizi[20];
};

class Rehber
{
    ...
    Kayit **kayitlar;
};

int main()
{
    Rehber r;
    ...
    cout << r.kayitlar[42]->dizi; // misal..
}






Do weird and difficult things.

Yazar
mrflz


avatar
Luleburgaz
admin
Kayıt: 15.06.2006
29.04.2008-19:25 #43662
neurorebel yazdi
 
sanırım şöyle birşey
class Kayit
{
    ...
    char dizi[20];
};

class Rehber
{
    ...
    Kayit **kayitlar;
};

int main()
{
    Rehber r;
    ...
    cout << r.kayitlar[42]->dizi; // misal..
}


su misal kısmını tam olarak yazabilmeniz mumkun mu acaba?

yani

class.pointer -> class.pointer.dizi ( Kod olarak blushing nasıl olur acaba)





I see the ghosts of navigators but they are lost







Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
29.04.2008-19:51 #43664
mrflz yazdi
 
su misal kısmını tam olarak yazabilmeniz mumkun mu acaba?

yani

class.pointer -> class.pointer.dizi ( Kod olarak blushing nasıl olur acaba)

"r" isimli Rehber tipindeki nesnenin içinde tutulan "kayıtlar" isimli pointer dizisinin 43. elemanının işaret ettiği Kayıt tipindeki nesnenin içinde tutulan "dizi" isimli karakter dizisi. biggrin





Let`s make this world a better place to live !

Yazar
esma


avatar

Kayıt: 26.04.2008
29.04.2008-20:04 #43666
Arkadaşlar benim de bir sorunum var şöyle ki. Mesela rehberde 1 ve 2 numaralı kayıtlarım var.Bu kayıtlardan 1. si için bağlı liste ile başka dosyada tuttuğum ve 1 ID sini verdiğim ikinci iletişim bilgisi ekledim.
Ancak kayıt silerken rehberde 1 numaralı kaydı silince 2 numaralı kayıt 1 numaralı kayıt oluyor ve dolayısiyle bağlı listede bulunan ikinci iletişim bilgisi de ona ait görünüyor.Bağlı listedeki kayıtları silmek için kullandığım kodu kayıt sil fonksiyona da ekledim ikincil kayıtlarıda silmesi için ancak hata vermediği halde program sonlandırılıyor.
Karışık oldu ama bu sorunu nasıl çözebileceğim konusunda bir fikri olan var mı(delirmeme az kaldı dabeat up)?






Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
29.04.2008-20:18 #43668
esma yazdi
 
Arkadaşlar benim de bir sorunum var şöyle ki. Mesela rehberde 1 ve 2 numaralı kayıtlarım var.Bu kayıtlardan 1. si için bağlı liste ile başka dosyada tuttuğum ve 1 ID sini verdiğim ikinci iletişim bilgisi ekledim.
Ancak kayıt silerken rehberde 1 numaralı kaydı silince 2 numaralı kayıt 1 numaralı kayıt oluyor ve dolayısiyle bağlı listede bulunan ikinci iletişim bilgisi de ona ait görünüyor.Bağlı listedeki kayıtları silmek için kullandığım kodu kayıt sil fonksiyona da ekledim ikincil kayıtlarıda silmesi için ancak hata vermediği halde program sonlandırılıyor.
Karışık oldu ama bu sorunu nasıl çözebileceğim konusunda bir fikri olan var mı(delirmeme az kaldı dabeat up)?

Ne demek istediğini anladım ve silme konusunda kurduğun mantık da doğru gibi görünüyor. Fakat dosyaya erişim yöntemlerini bilmediğimiz için nerede hata yaptığın konusunda yorum yapmamız zor olur. Örneğin başlangıçta bütün dosyalar belleğe aktarılıp da işlemler bellek üzerinde mi yapılıyor yoksa her işlem için dosya açılıp işlem sonunda kapatılıyor mu?





Let`s make this world a better place to live !

Yazar
esma


avatar

Kayıt: 26.04.2008
29.04.2008-20:23 #43669
clairvoyant yazdi
 
esma yazdi
 
Arkadaşlar benim de bir sorunum var şöyle ki. Mesela rehberde 1 ve 2 numaralı kayıtlarım var.Bu kayıtlardan 1. si için bağlı liste ile başka dosyada tuttuğum ve 1 ID sini verdiğim ikinci iletişim bilgisi ekledim.
Ancak kayıt silerken rehberde 1 numaralı kaydı silince 2 numaralı kayıt 1 numaralı kayıt oluyor ve dolayısiyle bağlı listede bulunan ikinci iletişim bilgisi de ona ait görünüyor.Bağlı listedeki kayıtları silmek için kullandığım kodu kayıt sil fonksiyona da ekledim ikincil kayıtlarıda silmesi için ancak hata vermediği halde program sonlandırılıyor.
Karışık oldu ama bu sorunu nasıl çözebileceğim konusunda bir fikri olan var mı(delirmeme az kaldı dabeat up)?

Ne demek istediğini anladım ve silme konusunda kurduğun mantık da doğru gibi görünüyor. Fakat dosyaya erişim yöntemlerini bilmediğimiz için nerede hata yaptığın konusunda yorum yapmamız zor olur. Örneğin başlangıçta bütün dosyalar belleğe aktarılıp da işlemler bellek üzerinde mi yapılıyor yoksa her işlem için dosya açılıp işlem sonunda kapatılıyor mu?


Once dosyayı okuyorum daha sonra dosyayı belleğe aktarıyorum.Yani işlemleri bellek üzerinde yapıyorum.Normalde yazdığım fonksiyonları kayıt görüntüle içinde hatasız kullanabiliyorum.Yani sonsuz adres ekleyip,silebiliyorum ancak dediğim ID meselesinden dolayı kayıt sil içine yazınca kodları hata vermediği halde program sonlanıyor.





1 2 3 4 5 6 7
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb