ورود

نسخه کامل مشاهده نسخه کامل : مرتب سازی رشته ها درc++



mahsa1469
21-05-2009, 22:14
سلام دوستان
من می خوام یه برنامه بنویسم که نام و نام خوانوادگی تعدادی دانشجو رو گرفته به صورت نزولی مرتب سازی کنه(مرتب سازی بر اساس نام خاوادگی هستش)
تقریبا برنامه رو نوشتم ولی تو مرتب کردنش موندم یا درست مرتب نمی کنه یا هم اصلا خروجی بهم نمی ده ممنون می شم حداکث تا فردا یه راهنمایی بهم بکنید البته اینم بگم برنامه باید بدون استفاده از تابع باشه:11::11::11::11:

DaneshD
22-05-2009, 05:31
من فرض میکنم شما برنامه رو به ++C میخواهید بنویسید و نه C. در اینصورت، حتما روش مرتب سازی دو آرایه عددی رو بلدید که ساده هست. مثل روش Bubble sort که ساده ترین هست. برای آرایه ای از رشته ها بخش انحرافی اون مقایسه دو رشته و تعیین اینکه کدام رشته از دیگری بزرگتره (از نظر رتبه تو لیست مرتب شده) هست که تو ++C آرایه رشته ها، مثلا آرایه نامها رو از نوع string بگیر و رزای مقایسه از تابع درونی کلاس string به نام compare استفاده کن. به این صورت



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداگر از C استفاده میکردی باید این تابع رو خودت مینوشتی که احتمالا به همین دلیل گفته شده که از تابع استفاده نکنید تا از کلاس string استفاده کنید.

فاطـمه
22-05-2009, 12:06
سلام دوست من می تونی از تابع strcmp استفاده کنی
توضیحات کامل رو خود راهنمای c داره

mahsa1469
22-05-2009, 13:12
من فرض میکنم شما برنامه رو به ++C میخواهید بنویسید و نه C. در اینصورت، حتما روش مرتب سازی دو آرایه عددی رو بلدید که ساده هست. مثل روش Bubble sort که ساده ترین هست. برای آرایه ای از رشته ها بخش انحرافی اون مقایسه دو رشته و تعیین اینکه کدام رشته از دیگری بزرگتره (از نظر رتبه تو لیست مرتب شده) هست که تو ++C آرایه رشته ها، مثلا آرایه نامها رو از نوع string بگیر و رزای مقایسه از تابع درونی کلاس string به نام compare استفاده کن. به این صورت



برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنیداگر از C استفاده میکردی باید این تابع رو خودت مینوشتی که احتمالا به همین دلیل گفته شده که از تابع استفاده نکنید تا از کلاس string استفاده کنید.
شرمنده می شه بیشتر توضیح بدین متوجه نمی شم ما تا حالا برنامه رو این شکلی ننوشتیم:11:

mahsa1469
22-05-2009, 13:14
سلام دوست من می تونی از تابع strcmp استفاده کنی
توضیحات کامل رو خود راهنمای c داره
چون این تکلیف ماله قبل از اینه که تابع رو درس بدن گفته شده بدون استفاده از تابه
تو ر خدا زودتر جواب بدین باید تا آخر امشب میل کنم

DaneshD
22-05-2009, 14:06
من فکر کنم منظور استاد شما این بوده که بدون استفاده از تابعی که خود شما در برنامه نوشته باشید که در اونصورت راه حل فاطمه هم خوب و ساده هست.

بطور کلی شما یک آرایه از string در ++C یا یک آرایه از *char در C دارید که هر عضو این آرایه نام خانوادگی هست که برای اینکه نام و نام خانوادگی هر کس بعد از مرتب شدن جابجا نشه، بهتره که از struct استفاده کنید که حالا بماند. برای مرتب کردن این آرایه، دقیقا یک الگوریتم ساده مرتب سازی آرایه عددی لازمه که به راحتی قابل نوشتن و حتی پیدا کردن تو اینترنت هست. حالا تنها جای مشکلش وقتی به جای عدد، رشته در آرایه داریم که قصد داریم مرتبش کنیم، مقایسه دو رشته هست که اونم یا راه حل من یا فاطمه کاملا مشکل رو حل می کنه.

اگر مایل بودید کدتون رو (کد کامل که میگید ایراد داره) رو اینجا بذارید تا ما برای شما اصلاحش کنیم یا زودتر بگیم چیکار کنید.

hobab1987
22-05-2009, 18:09
سلام
اين برنامه با strcmp،strcpy مرتب سازي ميكنه .


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

mahsa1469
22-05-2009, 18:55
مشکل اینجاست که تابع string برامون معرفی نشده می خواستم با استفاده از خواص کد اسکی نام خوانوادگی ها رو مقایسه کنم اما جواب نمی ده علت رو هم نمی دونم

DaneshD
23-05-2009, 02:10
منظورت از تابع string چی هست؟ منظورت کتابخانه string هست که اجازه ندارید اونو include کنید؟ در اینصورت چرا خودت تابع مقایسه دو رشته رو نمی نویسی؟ خیلی ساده هست. کدش رو نوشتم برات، البته امیدوارم دیر به دستت نرسه، نوشته های من نیاز به تایید داره هنوز، برای همین بابد صبر کنی تا صبح مدیر اینجا بیدار بشه!


برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

فاطـمه
23-05-2009, 09:19
خب دوست من پیاده سازی این تابع ها تو نت هست شما می تونید از اونا استفاده کنید

mahsa1469
23-05-2009, 17:53
نمی تونم پیدا کنم می شه برام بزارید

فاطـمه
24-05-2009, 09:06
سلام
این تابع strcpy

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

فاطـمه
24-05-2009, 09:07
اینجا رو ببین
روشهای مختلف پیاده سازی strcmp هست
هر کدوم دوست داری رو انتخاب کن
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
اینم یه نمونش

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید