تور لحظه آخری
امروز : یکشنبه ، 15 مهر 1403    احادیث و روایات:  امام علی (ع):روزه قلب از فکر (در گناهان)، برتر از روزه شکم از طعام است.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها




آمار وبسایت

 تعداد کل بازدیدها : 1821131553




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

برنامه نويسی c++ -


واضح آرشیو وب فارسی:سایت ریسک: t=42070">برنامه نويسی c++ jopeter 16 آبان 1384, 13:15ميشه تو نوشتن اين برنامه كمكم كنين بايد يك ارايه پويا از ستراكت ست درست كنيم بفرستيم به توبع زير 1)get_info اراي پويا رو به عنوان ورودي ميگيره واطلاعا ت دانشجو رو از صفحه كليد ميگيره ميذارهتو ارايه 2)average اين تابع معدل كل كلاسرو بر ميگر ونه 3)max اينم شماره دانشجويي كسي رو كه بيشترين معدل رو داره بر ميگردونه هر دانشجو 8 ترم داره هر ترم 7 واحد 4)report شماه دانشجوييرو ميگيره نمرات رو چاپ كنه #include<iostream.h> #include<stdlib.h> #include<conio.h> int i,j,k; int n; struct address{ char street[20]; char avenue[20]; int blook; long int phonenum; }; struct st{ char fname; char lname; long idnum; float gr[8][7]; struct address adr;}; int menu(); void get_info(struct st*); float average(struct st[]); int max(struct st*); void report(int,struct st*); void main() {int c,l; cin>>n; struct st *p; p=new st[n]; if(p==0) exit(1); cin>>c; for(;;){c=menu(); switch(c){ case 1: get_info(p); break; case 2: average(p); break; case 3: max(p); break; case 4: cin>>l; report(l,p); break; case5: exit(1); } } } void get_info(st &p) {int i,j,k; for(i=0;i<n;i++) { cin>>(p+i)->fname; cin>>(p+i)->lname; cin>>(p+i)-> idnum; for(j=0;j<n;j++) for(k=0;k<n;k++) cin>>(p+i)->gr[j][k]; cin>>(p+i)->adr.street[20]; cin>>(p+i)->adr.avenue[20]; cin>>(p+i)->adr.blook; cin>>(p+i)->adr.phonenum; } } float avreage(st &p) { float avekol; int f=0; float mhn[n]; for(i=0;i<n;i++) { for(j=0;j<n;j++) for(k=0;k<n;k++) f+=(p+i)->gr[8][7]; avekol=f/56; return avekol; } int max(st &p) {float maxm,mhn[n]; float f=0; for(i=0;i<n;i++) {for(j=0;j<n;j++) for(k=0;k<n;k++) {f+=p->gr[8][7]; mhn[i]=f/56;} } maxm=mhn[0]; for(i=0;i<n;i++) {if(maxm<mhn[i]) maxm=mhn[i];} return ((p+i)->idnum); } } void report(int id, st &p) { for(i=0;i<n;i++){ if(((p+i)->idnum)!=id) {cout<<"this id does not exist"; exit(1);} else {for(j=0;j<n;j++) for(k=0;k<n;k++) {cout<<(p+i)->gr[8][7]; cout<<" ";} } } } int menu() {int c; gotoxy(5,5); cout<<"1)enter the information of students"; gotoxy(5,6); cout<<"2)what is the average of class"; gotoxy(5,7); cout<<"3)who has max average"; gotoxy(5,8); cout<<"4)what are the grades of this idnumber"; gotoxy(5,9); cout<<"5)exit."; cin>>c; return c; } zfarhad 2003 16 آبان 1384, 20:12باشه برنامه ای رو که نوشتی بررسی می کنم. همینجا اگه مشکلی تو برنامه ات بود می گم. jopeter 16 آبان 1384, 22:02باشه برنامه ای رو که نوشتی بررسی می کنم. همینجا اگه مشکلی تو برنامه ات بود می گم. مکان داره زودتر جواب بدید اخه ضروریه تو این قسمتا که باید از (p+i) استفاده بشه مشکل دارم نمی دونم چطوری باید این قسمتا رو بنویسم zfarhad 2003 17 آبان 1384, 13:41من برنامه شما رو بررسی کردم و تقریبا اون رو بازسازی کردم تا کمی بهینه تر و البته کاملتر بشه. برنامه رو بررسی کنین اگه باز مشکلی داشت خوشحال می شم کمکتون کنم تا چیز خوبی از آب دربیاد. jopeter 17 آبان 1384, 17:18من برنامه شما رو بررسی کردم و تقریبا اون رو بازسازی کردم تا کمی بهینه تر و البته کاملتر بشه. برنامه رو بررسی کنین اگه باز مشکلی داشت خوشحال می شم کمکتون کنم تا چیز خوبی از آب دربیاد. ممنونم که برنامه رو اصلاح کردید چند جا مشکل داشتم: در قسمت هایی که پرو تایپها رو می خوایم بنویسیم (st p[]) در هر کدام از 4 تابع میشه به این شکل نوشت؟ (st *) در این صورت باید در ارسال پارامتر ها بنویسم (st *p) ? وموقع فراخوانی هم بنویسم )p) ؟ در موقع استفاده از پی در بدنه اون 4 تابع اگه پی رو به صورت اشاره گر در قسمت پرو تایپ بنویسیم ایا میشه نوشت p[i].field ? ایا اشاره گر پی که ما به توابع می فرستیم خودش طول ارایه پو یا رو با خودش می بره؟ در حالت کلی پی که یک اشاره گر به ارایه پو یاست موقع استفاده معمولی استفاده میشه و نیاز به رفرنس و اشارگر به اشا ره گر نداره؟ ذر بقیه موارد تقدیبا اشکالی ندارم راستی نمرات یک ارایه دو بود هشت ترم هفت درس که من خودم یه حلقه فر دیگه براش استفاده کردم باز هم به خاطر بر نا مه ممنونم البته دور از چشم استادمون وای چهقدر من حرف زدم ببخشید zfarhad 2003 17 آبان 1384, 20:58بله شما می تونین پروتوتایپ ها رو برای آرایه ها به صورت اشاره گر هم مشخص کنین. یه نکته ای رو می خوام بگم و اون اینه که در واقع یک آرایه که با حرف P مشخص می شه نوعش از نوع اشاره گر است یعنی اصلا عبارت p[] با *p در هنگام استفاده به عنوان پارامتر در تابع هیچ فرقی نمی کنه حتی شما نمی تونین آرایه ای رو که به تابع می فرستین تغییر بدین چون در این صورت خود اصل آرایه هم تغییر می کنه چون هخونطور که گفتن آرایه در واقع یک اشاره گره و وقتی به عنوان پارامتر استفاده می شه خاصیت call by pointer رو با خودش داره که در نتیجه تغییرات درون تابع در کل برنامه رو آرایه تاثیر می زاره. پس همونطور که گفتم فرق نمی کنه از *p یا P[] استفاده کنی و در هردو حالت می تونی از p[i].field به راحتی استفاده کنی. در ضمن هیچ وقت هیچ آرایه ای با خودش اندازه خودش رو منتقل نمی کنه و شما یا باید n که اندازه آرایه است رو خودت منتقل کنی و یا اینکه با محاسبات ریاضی اون رو توی خود تابع محاسبه کنی. jopeter 18 آبان 1384, 19:02بله شما می تونین پروتوتایپ ها رو برای آرایه ها به صورت اشاره گر هم مشخص کنین. یه نکته ای رو می خوام بگم و اون اینه که در واقع یک آرایه که با حرف P مشخص می شه نوعش از نوع اشاره گر است یعنی اصلا عبارت p[] با *p در هنگام استفاده به عنوان پارامتر در تابع هیچ فرقی نمی کنه حتی شما نمی تونین آرایه ای رو که به تابع می فرستین تغییر بدین چون در این صورت خود اصل آرایه هم تغییر می کنه چون هخونطور که گفتن آرایه در واقع یک اشاره گره و وقتی به عنوان پارامتر استفاده می شه خاصیت call by pointer رو با خودش داره که در نتیجه تغییرات درون تابع در کل برنامه رو آرایه تاثیر می زاره. پس همونطور که گفتم فرق نمی کنه از *p یا P[] استفاده کنی و در هردو حالت می تونی از p[i].field به راحتی استفاده کنی. در ضمن هیچ وقت هیچ آرایه ای با خودش اندازه خودش رو منتقل نمی کنه و شما یا باید n که اندازه آرایه است رو خودت منتقل کنی و یا اینکه با محاسبات ریاضی اون رو توی خود تابع محاسبه کنی. خيلي از جوابتون ممنونم مي تونم برنامه هاييرو كه مينويسم براي رفع اشكال اينجا بزارم? سعي مكنم برنمه ها ي كاملي رو بزارم zfarhad 2003 18 آبان 1384, 22:15حتما می تونین بزارین . من سعی می کنم در حد توان علمی خودم کمکتون کنم. stranger_in_rain 18 آبان 1384, 23:47سلام. دوست عزیز اگر لطف کنید و مسائل مربوط به C رو در انجمن اختصاصی C مطرح کنید، افراد بیشتری برای کمک پیدا خواهید کرد :) البته فرهاد جان سرور همه ی ما هستند :) با سپاس از همکاری و فعالیت شما. jopeter 19 آبان 1384, 07:33سلام. دوست عزیز اگر لطف کنید و مسائل مربوط به C رو در انجمن اختصاصی C مطرح کنید، افراد بیشتری برای کمک پیدا خواهید کرد :) البته فرهاد جان سرور همه ی ما هستند :) با سپاس از همکاری و فعالیت شما. سلام ضمن تشكر بسيار از فرهاد عزيز معذرت مي خوام كه تاپيك جدا و تازه اي از سي باز كردم و خوشحال ميشم كه در گروه هاي تخصصي سي فعاليت كنم




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 450]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن