PDA

View Full Version : دستور خارج شدن و چاپ خروجی توسط case



Jamshid.Bastani
سه شنبه 20 دی 1390, 12:18 عصر
با سلام و عرض خسته نباشید.

ببخشید من این کد را نوشته ام.

اما الان می خواهم اگر کسی دکمه 9 را که زد از برنامه خارج شود و اگر کسی دکمه 8 را زد X,Y به نمایش در آید.

من این گونه تصور کردم.

کد اصلی :
// fin.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
# include<iostream>
using namespace std;
int x=0,y=0;
int Num=0;
char a[20][20];

void execution()
{int l=1,u=1;
if (Num==1)
u=-1;
if(Num!=1 && Num!=2)
u=0;
if(Num==3)
l=-1;
if(Num!=3 && Num!=4)
l=0;
if(l==-1 && x>1 || l==1 && x<19 || u==-1 && y>1 || u==1 && y<19 )
x+=l;y+=u;
a[x][y]='#';
}
void print()
{
system("cls");
for(int i=0;i<20;i++)
a[0][i]='|';
for(int i=0;i<20;i++)
a[i][0]='-';

for(int i=0;i<20;i++)
a[19][i]='|';
for(int i=0;i<20;i++)
a[i][19]='-';

for(int j=0;j<20;j++)
{for(int i=0;i<20;i++)
cout<<a[i][j];
cout<<endl;
}
cin.get();
cin.get();
}

void Help()
{
system("cls");
int m;
cout<<"1 -_- Up\n\n";
cout<<"2 -_- Down\n\n";
cout<<"3 -_- Left\n\n";
cout<<"4 -_- Right\n\n";
cout<<"5 -_- GO\n\n";
cout<<"6 -_- Back\n\n";
cout<<"7 -_- Print\n\n";
cout<<"8 -_- Show X/Y\n\n";
cout<<"9 -_- Exit\n\nEnter Number:";
cin>>m;
switch (m)
{
case 5:
execution();
break;
case 7:
print();
break;
default:
if (m>=1 && m<=4)
Num=m;
}

}
void main()
{
for(int j=0;j<20;j++)
for(int i=0;i<20;i++)
a[i][j]=' ';
while (true)
{

Help();
}
}



حالا من می گم که
if (Num==8)
goto exit;

بعدش بیام exit رو در آخرین خط برنامه بنویسم که نمی شه. چه طور باید دستور خارج شدن از برنامه را بنویسم ؟؟؟

بعدیش هم این است که اگر کسی دکمه 8 رو زد XوY به نمایش در بیاید اما بدون اینکه اطلاعات قبلی که شخص وارد کرده پاک شود. ؟؟؟؟

یک راهنمایی بکنید.
سپاس

b.saminjad
سه شنبه 20 دی 1390, 13:06 عصر
سلام

برای خروج از برنامه از توابع زیر استفاده کن


exit(0)
or
abort()



برای پاک نشدن اطلاعات وارد شده توسط کاربر هم نباید دستورات پاک کردن صحفه نمایش
رو ذکر کنی یعنی بین ورود اطلاعات و چاپ اون کد system("cls نباشه

موفق باشی

Jamshid.Bastani
سه شنبه 20 دی 1390, 13:32 عصر
نشد.

این طوری نوشتم.

void exit()
{
(Num==9)?abort():cout<<"Pleas Enter invalid Number ";
}

و

case 9:
exit();
break;

کد کلی تغییر داده شده هم به شکل زیر است :

// fin.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
# include<iostream>
using namespace std;
int x=0,y=0;
int Num=0;
char a[20][20];
void execution()
{
int q=1,w=1;
(Num==1)?w=-1:-1;
(Num!=1 && Num!=2)?w=0:0;
(Num==3)?q=-1:-1;
(Num!=3 && Num!=4)?q=0:0;
if(q==-1 && x>1 || q==1 && x<19 || w==-1 && y>1 || w==1 && y<19 )
x+=q;y+=w;
a[x][y]='*';
}
void print()
{
system("cls");
for(int i=0;i<20;i++)
a[0][i]='|';
for(int i=0;i<20;i++)
a[i][0]='__';

for(int i=0;i<20;i++)
a[19][i]='|';
for(int i=0;i<20;i++)
a[i][19]='__';

for(int j=0;j<20;j++)
{
for(int i=0;i<20;i++)
cout<<a[i][j];
cout<<endl;
}
cin.get();
cin.get();
}
void exit()
{
(Num==9)?abort():cout<<"Pleas Enter invalid Number ";
}
void Help()
{
system("cls");
int m;
cout<<"1 -_- Up\n\n";
cout<<"2 -_- Down\n\n";
cout<<"3 -_- Left\n\n";
cout<<"4 -_- Right\n\n";
cout<<"5 -_- GO\n\n";
cout<<"6 -_- Back\n\n";
cout<<"7 -_- Print\n\n";
cout<<"8 -_- Show X/Y\n\n";
cout<<"9 -_- Exit\n\nEnter Number:";
cin>>m;
switch (m)
{
case 5:
execution();
break;
case 7:
print();
break;
case 9:
exit();
break;
default:
if (m>=1 && m<=4)
Num=m;
}

}
void main()
{
for(int j=0;j<20;j++)
for(int i=0;i<20;i++)
a[i][j]=' ';
while (true)
{

Help();
}
}

b.saminjad
سه شنبه 20 دی 1390, 14:05 عصر
برای خروج از برنامه یه این صورت عمل کن


if (x== 8)
exit(0);

//ya benevis

if(x==8)
abort();




اگه میخای فقط از تابع جاری خارج شی


if(x==8)
return ;



البته اگه تابع دارای نوع بازگشتی بود جلوی return بنویسش مثلا اگه int بود


if(x==8)
return 0;

b.saminjad
سه شنبه 20 دی 1390, 14:10 عصر
دوست عزیز تو نباید تابعی هم نام با exit بنویسی خودت exit یک تابع اماده است فقط call تابع رو