PDA

View Full Version : سوال: لطفا در مورد نوشتن یک کلاس(شی گرائی) در c++ کمکم کنید؟



mortaza_ngz
سه شنبه 22 تیر 1389, 18:26 عصر
سلام دوستان

لطفا کمکم کنید من یک پروژه دانشگاهی دارم در مورد سیستم خرید و فروش کالا به صورت شی گرائی (با استفاده از 4 کلاس ) هستش
و من اونو ابتدا به صورت ساخت یافته نوشتم با استفاده از فایلهای موجود در سی و struct ها و الان می خوام به صورت کلاس بندی شده پیاده سازی کنم و الان با مشکل روبرو شدم.
و سوالات زیر بوجود آمده برای من؟
1- من یک کلاس کالا دارم آیا میشه در کلاس فایلها و struct ها را نوشت؟
به این صورت :


class kalaha
{
long int recsize1, recsize2;
FILE *ka,*fc;این قسمت
public:
struct faktor{این قسمت
unsigned long int codekala;
long int codemoshtary;
unsigned long int tedadekala,codefactor;
long double mablage;
long double mablagepardakt;
char tarikefactor[20];
};
struct kala{ این قسمت
unsigned long int codekala;
char namekala[50];
unsigned long int tedad;
long double geimateforosh;
long double geimatekarid;
char tarikevorod[20];
char tarikekoroj[20];
};
kalaha();
struct kala info;
struct faktor fac;
void forush();
void viwefactor();
void karid();
void inputkala();
void viwekala();

};

و این جوری نوشتن درست هست؟
2- در پیاده سازی بعضی قسمت ها مثل تابع forush که این تابع از دیگر کلاس ها هم استفاده میکند آیا نوشتن کدهای آن به صورت زیر درست هست؟ :

rewind(mosh.fp);
while(fread(&mosh.e,mosh.recsize,1,mosh.fp)==1)
{
if(mosh.e.codemoshtary==num)
{

و در ضمن برنامه درست کار می کند

متشکرم از اینکه راهنمایم کنید؟

اوبالیت به بو
چهارشنبه 23 تیر 1389, 23:26 عصر
سلام

اول موجوديت هاي سيستمت رو شناسايي كن. بعد بع ازاي هر موجودي يك كلاس بساز.

برخي ميان struct رو يك موجودي در نظر مي گيرن

شما هر موجودي رو يك كلاس فرض كن و بعد توابع رو توش پياده سازي كن. مي توني struct رو هم داخل كلاس استفاده كني

mortaza_ngz
پنج شنبه 24 تیر 1389, 12:10 عصر
سلام دوباره

آیا در نوشتن کلاسها باید ترتیب رعایت بشه یا نه؟
مخصوصا در ارث بری چون من یک کلاس دارم به اسم "منو" اون هم از تمام کلاسها اطلاعات نیاز داره که کلاس "منو" از تمام کلاس ها ارث بری می کند و در این وسط یک کلاس گزارش هم دارم از کلاس "منو" اطلاعات می خواد و برعکس من این کلاس گزارش رو پایین کلاس "منو " نوشتم یک خطا داد که می گفت تابع کلاس گزارش موجود در کلاس "منو" عضو کلاس گزارش نیست و وقتی در بالای کلاس"منو " می نویسم بازم خطا میده که اون تابع کلاس"منو" موجود در کلاس گزارش عضو کلاس "منو " نیست. من کلاس ها رو به هم دوست کردم بازم نشد؟

لطفا راهنماییم کنید؟؟؟؟؟؟؟؟؟

hamedkh16522
شنبه 26 تیر 1389, 04:43 صبح
سلام ميتونيد اين برنامه اي رو كه گذاشتم نمونه كلاسها رو ببيني
http://www.barnamenevis.org/forum/showthread.php?t=234395

drstrike
شنبه 26 تیر 1389, 12:44 عصر
یک کلاس دارم به اسم "منو" اون هم از تمام کلاسها اطلاعات نیاز داره که کلاس "منو" از تمام کلاس ها ارث بری می کند و در این وسط یک کلاس گزارش هم دارم از کلاس "منو" اطلاعات می خواد و برعکس من این کلاس گزارش رو پایین کلاس "منو " نوشتم یک خطا داد که می گفت تابع کلاس گزارش موجود در کلاس "منو" عضو کلاس گزارش نیست و وقتی در بالای کلاس"منو " می نویسم بازم خطا میده که اون تابع کلاس"منو" موجود در کلاس گزارش عضو کلاس "منو " نیست


راستش تقریبا هیچی از صورت سوال نفهمیدم! برداشتی که کردم:
شما یه کلاس منو دارید که باید از توابع کلاسهای دیگه استفاده کنه. راه حل:
کلاس منو رو به عنوان کلاس فرزند تعریف کنید:

class menu: public x
{
private:
...
public:
....
}

اینطوری کلاس منو می تونه به صورت مستقیم به تمام توابع public کلاس x دسترسی داسته باشه.
همین کارو واسه کلاس گزارشتون هم پیاده سازس کنید.