PDA

View Full Version : سوال: کلاسی با نام Set برای نگهداری مجموعه ای از کاراکترها



الهام21
جمعه 03 خرداد 1392, 21:31 عصر
1- کلاسی با نام Set برای نگهداری مجموعه ای از کاراکترها (حداکثر 50 کاراکتر) با امکانات زیر طراحی کنید.
* سازنده مناسب Set S1,S2
* سربارگذاری عملگر += برای اضافه کردن یک عضو S1+=’A’
* سربارگذاری عملگر << برای چاپ مجموعه cout<<S1
* سربارگذاری عملگر << برای متعلق بودن if (‘A’<<S1) …
*سربارگذاری عملگر < برای زیرمجموعه بودن if ( S1 < S2 ) …
* سربارگذاری عملگرهای & و | برای اشتراک و اجتماع S3=S1 & S2 S3=S1 | S2
* سربارگذاری عملگر == و != برای مقایسه دو مجموعه if( S1==S2) …. if( S1 != S2 )…

سلام
من این برنامه رو نوشتم ام اجرا نمیشه خودم متوجه نشدم مشکل کجاست.:افسرده:
اگه میشه برام چک کنید و بگید مشکلم کجاست:ناراحت:test.cpp (http://www.4shared.com/file/kKeXDrwH/test.html)

UfnCod3r
جمعه 03 خرداد 1392, 22:03 عصر
کلا همه چی مشکل داره . مهم ترینش اینه ک شما حافظه رو ب ی اندازه موقع سازنده گرفتی بعد توی عملگر های + و .. داری ب اون کاراکتر اضافه می کنی در صورتی ک جا نداره باید دوباره حافظه بگیری

الهام21
جمعه 03 خرداد 1392, 22:12 عصر
کلا همه چی مشکل داره . مهم ترینش اینه ک شما حافظه رو ب ی اندازه موقع سازنده گرفتی بعد توی عملگر های + و .. داری ب اون کاراکتر اضافه می کنی در صورتی ک جا نداره باید دوباره حافظه بگیری

یعنی بعد از سربارگذاری عملگرها باید مجدد براش حافظه بگیرم؟؟؟؟؟؟
حافظه اولیه کافی نیست؟؟؟

UfnCod3r
جمعه 03 خرداد 1392, 23:39 عصر
یکمی شو نوشتم بقیشو خودتون بنویسد

class Str
{
public:
char* ptr;
Str()
{
ptr = NULL;
}
Str(const char* chr)
{
size_t len = strlen(chr)+1;
ptr = new char[len];
memcpy(ptr, chr, len);
}
Str& operator += (const char* chr)
{
if(ptr)
{
size_t len1 = strlen(ptr);
size_t len2 = strlen(chr);
char* newChar = new char[len1+len2+1];
memcpy(newChar, ptr, len1);
memcpy(newChar+len1, chr, len2+1);
ptr = newChar;
}
else
{
size_t len = strlen(chr)+1;
ptr = new char[len];
memcpy(ptr, chr, len);
}
return *this;
}
};

اگه می خوای حداکثر 50 کاراکتر باشه میتونی حافظه پویا نگیری :لبخندساده:

الهام21
دوشنبه 13 خرداد 1392, 20:59 عصر
ممنون از کمکتون

shadijan
یک شنبه 19 خرداد 1392, 00:50 صبح
سلام
میتونم ازتون خواهش کنم همین برنامه رو کامل با حداکثر 50 کاراکتر واسه من بزارید
واسه فردا صبح لازمش دارم
ممنون

mohsen6
یک شنبه 08 دی 1392, 11:47 صبح
ببخشید میشه جواب این سوال رو برای من هم بفرستید تا بعدازظر کارش دارم خیلی مهمه:ناراحت: ممنون میشم

aidinMC
دوشنبه 09 دی 1392, 10:49 صبح
میگم چقد تابلوه یه نفر با سه اسم پست گذاشته ، الاناست که تاپیک بسته بشه :))