PDA

View Full Version : چاپ درخت روی صفحه نمایش



saleh.hi.62
پنج شنبه 12 شهریور 1388, 07:30 صبح
با سلام
من میخوام یک درخت رو روی صفحه نمایش چاپ کنم.البته به شکلی که ترتیب سطوح و غیره رعایت بشه.
1 نفر دستور gotoxy() رو پیشنهاد داد.

کسی راه حل بهتری سراغ داره

mehdi5106
پنج شنبه 12 شهریور 1388, 08:00 صبح
از طريق مد گرافيك به راحتي مي توني چنين كاري رو انجام بدي.بهتره داده هاتو تو مد text دريافت و سپس براي رسم درخت به مد گرافيك بري .چون اونجا با مختصات كار مي كني راحتتر هست و شكل بهتري رو مي توني توليد كني...

saleh.hi.62
پنج شنبه 12 شهریور 1388, 11:14 صبح
حقیقتش من خیلی هجله دارم.
و هیچ یر رشته ای هم ندارم
کسی میتونه کد بزاره؟

deopen
پنج شنبه 12 شهریور 1388, 12:23 عصر
کسی میتونه کد بزاره؟

اینکه شما برنامه ای رو درخواست کنی که هیچ قسمتیش را انجام ندادی خلاف قوانین انجمن هست, شما با gotoxy می تونی براحتی یک درخت را چاپ کنی , این تمرین را معمولا برای آشنایی با حلقه ها می دهند , من اطمینان دارم که هدف از این برنامه خروجی خوب نیست بلکه یک تمرین است, ما سعی میکنیم شما را راهنمایی کنیم .

deopen
پنج شنبه 12 شهریور 1388, 12:37 عصر
شما با gotoxy میتونی پوینتر را به محل مورد نظرت تغییر مکان بدی مثلا :



#include<iostream>
using std::cout;

#include<conio.h>


#include <windows.h>

void gotoxy ( short x, short y )
{
COORD coord = {x, y};
SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord );
}


int main() {

gotoxy(12,20);
cout<<"this is a test";
getch();

return 0;
}

حالا برای شروع شما یک درخت در notepad با استفاده از علایم بکش , سپس سعی کن کاری رو که کردی با استفاده از برنامه نویسی انجام بدی , هر کاری که بصورت منطقی انجام بشه قابل انجام توسط ماشین است,اگر نتونستی درختی رو که با notepad درست کردی ضمیمه کن تا بیشتر کمکت کنم.

saleh.hi.62
شنبه 14 شهریور 1388, 08:39 صبح
COORD coord = {x, y};
SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord );


دوست عزیز میتونی در مورد این دوتاخط برام توضیح بدی چیکار میکنن؟ممنون

mortezamsp
شنبه 14 شهریور 1388, 09:28 صبح
با سلام.

نميدونم اين برنامه بدردتون ميخوره يا نه.اين برنامه يه درخت دودويي رو از كاربر دريافت ميكنه و اون رو نمايش ميده.فقط ممكنه در مورد نشان دادن اسمي گره ها مشكل داشته باشه.من درستش نكردم.ببين شايد بدردت بخوره.
راستي اول برنامه تايپ كنhelpوبعد فاصله بزن و اينتركن تا دستوراتشو ببيني.

deopen
شنبه 14 شهریور 1388, 21:51 عصر
COORD coord = {x, y};
SetConsoleCursorPosition ( GetStdHandle ( STD_OUTPUT_HANDLE ), coord );دوست عزیز میتونی در مورد این دوتاخط برام توضیح بدی چیکار میکنن؟ممنون

این 2 تا خط جزیی از تعریف تابع gotoxy هستند , ابتدا یک متغیر به نام coord از نوع COORD ایجاد میکنه سپس اونو با x و y مقدار دهی میکنه , و متغیر را به تابع setConsoleCusrsorPosition شیفت میده, تابع برای کارش به یک هندل هم نیاز داره که با استفاده از تابع مذکور هندل برگردانده شده تا کرسر به نقطه x و y منتقل بشه.