PDA

View Full Version : سوال: چند تا سوال در مورد زبان سی



tibadan
پنج شنبه 08 تیر 1391, 09:24 صبح
سلام
یه چند تا سوال دیگه تو ذهنم مونده که اینا رو هم خیلی نیاز دارم بدونم برای برنامه کتابخانه ای که میخوام بنویسم .
1- معنی این {std::cout<<"\n Phone Book Is Full";return; یعنی بنویس تو خروجی که لیستمون پر شده و جایی برا اضافه کردن نداره خوب این معنی همون ریترنشه دیگه آره ؟
2- نوشتن تاریخ رو هم در زبان c میخواستم اینو برای قسمت امانت کتاب میخوام که تاریخ امانت و تاریخ تحویل رو دریافت کنه اینطوری مثلا 1391/04/10 دریافت کنه چطوری میشه نوشت کدشو ؟
3- اگر بخوايم در برنامه کتابخانه طوري تعريف کنيم که هر کاربر حداکثر بتونه دو کتاب در هر لحظه امانت بگيره چيکار کنيم؟ چطوري تابع يا کد اين قسمتشو بنويسم که اگه سه کتاب در یک لحظه نوشته بشه یک پیام بده که این کاربر دو کتاب گرفته ؟
7- اگر بخوايم در برنامه کتابخانه مدت زمان مجاز رو براي تحويل کتاب يک هفته بزاريم چطوري بايد کدشو بنويسم ؟ (زمان رو با توجه به تاریخی که در سوال دو گفتم بگیره حساب کنه ) یعنی مدت زمان برگشت یک هفته باشه که اگه طرف اومد و مثلا بعد از ده روز کتاب رو بیاره و وقتی شماره عضویتشو میزنه برای تحویل کتاب برنامه بیاد و این فرومول رو حساب کنه

s=تاریخ امانت کتاب (منهای) تاریخ تحویل کتاب
if s>14
s*(قیمت در نظر گرفته شده برا هر روز تاخیر جریمه)=jarime
printf("meghdare jarime shoma = %c",jarime);
else
if s<=14
s=0
printf("jarime=0");
و جریمه رو بگه فلان قدره .
خیلی ممنون

aqawae
پنج شنبه 08 تیر 1391, 09:47 صبح
در مورد جواب سئوال يك:به اين معنا است كه دفترچه تلفن پر است و معناي return از اين قسمت خارج و بقيه كدها اجرا نكن.مثلا من مي خوام يك عدد بگيرم اگر زوج بود ضربدر 2 كنم والا پيغام بده عدد زوج نيستif(number mod 2!=0)
{
cout<<"عدد زوج نيست";return;
}
int a=number*2;
cout<<a;
اگر كلمه return ننويسيم هم پيغام نشان ميده و هم عدد در دو ضرب ميشه

maktoom
پنج شنبه 08 تیر 1391, 22:26 عصر
سلام
یه ساختمان واسه کتابها و یکی هم واسه اعضا درنظر بگیر.
یه آرایه پویا واسه امانتها در نظر بگیر. و اینکه سعی کن چیزی از توش پاک نکنی.
برای اینکه چک کنی که کسی مجاز هست واسه امانت یه سرچ کن چنتا کتاب توی این امانتها به اسم طرف ثبت شده که تاریخ برگشت نداره. اگه 2 تا بود مجاز نیست.
تاریخ رو می تونی عدد 8رقمی وارد کنی. هم امانت و هم برگشت و با این فرمول تعداد روزهاشو حساب کنی:
int d=days%100,d1=(days)/100;
int m=d1%100,m1=(d1)/100;
int y=m1%100;
days=(d+(m*30)+(y*365));
و مابقی هم که دیگه چک کردن سایر فرضیات مسئلست.

maktoom
جمعه 09 تیر 1391, 02:56 صبح
چیز دیگه ای که باید در نظر بگیری فیلدای کنترلیه. یعنی یه سری متغیر بگیری توی ساختارهات که با اونا مجاز بودن یا نبودن کاربر و یا در دسترس بودن یا نبودن یک کتاب رو مشخص کنی.
معمولا برای هر موجودیت مثل کتاب یا کاربر یه شماره در نظر گرفته میشه بعنوان Id اون. بخاطر اینکه کار راحت باشه.(که اگه آرایه ای کار کنی میشه همون اندیس آرایت)
یعنی واسه ساختار امانت، آی دی کاربر و آی دی کتاب و زمان امانت گرفتن و زمانت پس دادن کتاب باید ذخیره بشه.
واسه کاربر باید مجاز بودن یا نبودنش چک بشه و متغیر مربوطش در هربار گرفتن یا پس دادن بررسی بشه.
برای کتاب هم همینطور.
برای محاسبه جریمه باید تاریخ فعلی از تاریخ امانت گرفتن کم بشه اگه بیشتر از حد مجاز بود در میزان جریمه ضرب بشه.
فقط نکته ای که هست باید دقت کنی که یک کتاب وقتی به امانت برده میشه برای هیچ کس دیگه در دسترس نباشه.