ورود

View Full Version : سوال: سلام مشکل این برنامه ی منو چیه؟



lordofphp
دوشنبه 22 خرداد 1391, 16:50 عصر
به نام خدا
سلام دوستان من یه برنامه میخوام بنویسیم که اینطوری باشه

وارد شد:

1.vorood matn
2.jostejoo
3.jabejaei(replace(
4.exit
این هم کدهای من:


#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
char sent[20];
void menu(int);
void enter();
void search();
void replace();
void main(){
clrscr();
int a;
cout<<"Please Choose\n";
cout<<"1.Enter\n";
cout<<"2.Search\n";
cout<<"3.Replace\n";
cout<<"4.Exit";
cin>>a;
menu(a);
getch();
}
void menu(int a){
switch(a){
case 1:
clrscr();
enter();
main();
break;

case 2:
clrscr();
search();
break;
case 3:
replace();
break;
case 4:
clrscr();

exit(0);
}
}
void enter(){
cin.get(sent,20,'.');
cin.get();
}
void search(){
int i=0,j,k,count=0;
char a[20];
clrscr();
cin.get(a,20,'.');
cin.get();
while(1){
if(a[i]==sent[0]){
k=i;
for(j=0;j<strlen(sent);j++){
if(a[k]==sent[j]){
count++;
}
k++;
}
if(count==strlen(sent)){
cout<<"Find";

main();
}
if(a[i]=='\0') break;
i++;
}
}
}
void replace(){
char c[20];
cout<<"Enter:";
cin.get(c,20,'.');
cin.get();
cout<<strcpy(sent,c);
main();
}

ولی اشکالشون اینه که وقتی جمله وارد میکنی جست جو رو غلط انجام میده دوستان بابت کمکی میکنید ممنون

موفق و موید باشید

یاحق

BEHNAM7
سه شنبه 23 خرداد 1391, 12:48 عصر
سلام

دوست عزیز من تو برنامه شما دوتا تابع MAIN دیدم. دارم درست میبینم؟

lordofphp
سه شنبه 23 خرداد 1391, 18:49 عصر
سلام
خیر
اینطور نیست

shahmohammadi
سه شنبه 23 خرداد 1391, 22:01 عصر
سلام.
من يكي سه تا main(); مي بينم.

lordofphp
سه شنبه 23 خرداد 1391, 22:16 عصر
سلام
بله درسته عذرخواهی میکنم

برای فراخونی بود

jannatmakan
چهارشنبه 24 خرداد 1391, 02:39 صبح
به نام خدا
سلام دوستان من یه برنامه میخوام بنویسیم که اینطوری باشه

وارد شد:

1.vorood matn
2.jostejoo
3.jabejaei(replace(
4.exit
این هم کدهای من:


#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
char sent[20];
void menu(int);
void enter();
void search();
void replace();
void main(){
clrscr();
int a;
cout<<"Please Choose\n";
cout<<"1.Enter\n";
cout<<"2.Search\n";
cout<<"3.Replace\n";
cout<<"4.Exit";
cin>>a;
menu(a);
getch();
}
void menu(int a){
switch(a){
case 1:
clrscr();
enter();
main();
break;

case 2:
clrscr();
search();
break;
case 3:
replace();
break;
case 4:
clrscr();

exit(0);
}
}
void enter(){
cin.get(sent,20,'.');
cin.get();
}
void search(){
int i=0,j,k,count=0;
char a[20];
clrscr();
cin.get(a,20,'.');
cin.get();
while(1){
if(a[i]==sent[0]){
k=i;
for(j=0;j<strlen(sent);j++){
if(a[k]==sent[j]){
count++;
}
k++;
}
if(count==strlen(sent)){
cout<<"Find";

main();
}
if(a[i]=='\0') break;
i++;
}
}
}
void replace(){
char c[20];
cout<<"Enter:";
cin.get(c,20,'.');
cin.get();
cout<<strcpy(sent,c);
main();
}

ولی اشکالشون اینه که وقتی جمله وارد میکنی جست جو رو غلط انجام میده دوستان بابت کمکی میکنید ممنون

موفق و موید باشید

یاحق

اینم خدمت شما با قالبی ساده و کار راه بنداز

#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>



int main()
{
int a;

while(1)
{
clrscr();
cout<<"1.voroode matn:\n";
cout<<"2.jostejoo\n";
cout<<"3.jabejaee\n";
cout<<"4.Exit\n\n";

cin>>a;
switch(a)
{
case 1:
{
cout<<"voroode matn anjam mishavad";//ya har tabe ya kodi ke khastid
getch();
break;
}
case 2:
{
cout<<"jostejoo anjam mishavad";//ya har tabe ya kodi ke khastid
getch();
break;
}
case 3:
{
cout<<"jabejaee anjam mishavad";//ya har tabe ya kodi ke khastid
getch();
break;
}
case 4:
{
return 0;
}
}
}
}

Cancer
چهارشنبه 24 خرداد 1391, 03:17 صبح
سلام سلام سلام.
این تابع search شما:
void search()
{
int i=0,j,k,count=0;
char a[20];
clrscr();
cin.get(a,20,'.');
cin.get();
while(1)
{
if(a[i]==sent[0])
{
k=i;
for(j=0;j<strlen(sent);j++)
{
if(a[k]==sent[j])
{
count++;
}
k++;
}
if(count==strlen(sent))
{
cout<<"Find";
main();
}
if(a[i]=='\0')
break;
i++;
}//end of if(a[i]==sent[0])
}//end of while
}//end of func

البته یکم مرتب شده تر:لبخند:
شما مطمئنی که با این تابع می خوای یه کلمه رو داخل مثلاً یه جمله جستجو کنی؟
خط شماره 10 رو نگاه کن، اون if که اونجا گذاشتی میگه که (چون i=0) اولین عنصر آرایه a رو با اولین عنصر آرایه sent مقایسه می کنه اگه برابر نباشه دیگه نمیاد عنصر اول آرایه a رو با عنصر بعدی آرایه sent مقایسه کنه.
این تابع فکر کنم این طوریه که با روش (:گیج:) آرایه a رو با آرایه s مقایسه می کنه اگه برابر باشن می گه find.
راستی اون جاهایی که تابع main() رو فراخوانی کردی خطا نمی ده؟:متفکر: با چی کامپایل می کنی؟
اگه قرار باشه از داخل تابع main یه تابع دیگه رو فراخوانی کنی و باز از داخل اون تابع دوباره main رو فراخوانی کنی که .... (مطمئنی برنامه پایان داره؟:متفکر:)

lordofphp
جمعه 26 خرداد 1391, 20:55 عصر
به نام خداوند بخشنده و مهربان

سلام و خسته نباشید!!

وقت بخیر دوستان بازم نشد این کد تکمیلی نوشتم ولی مشکل داره تو جواب دادن به نظرتون مشکل از کجاست؟ باتشکر


#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdlib.h>
void menu(int,char[]);
void enter(char[]);
void search(char[]);
void main(){
textbackground(BLUE);
int ans;
char sen[20];
clrscr();
gotoxy(35,2);
cout<<"Wel Come\n";
cout<<"Please Choose Your Option\n";
cout<<"1.Enter Text\n";
cout<<"2.Search\n";
cout<<"3.Replace\n";
cout<<"4.Exit\n";
cin>>ans;
menu(ans,sen);
getch();
}
void menu(int ans,char sen[]){
switch(ans){
case 1:
enter(sen);
break;
case 2:
search(sen);
break;
/*case 3:
Replace();
break; */
case 4:
exit(0);
break;
}//of switch
}//of menu func
void enter(char sen[]){
clrscr();
char ent[20];//For cin.get//
int con;//For Countinue Or Exit//
cout<<"Please Enter Your Text(Enter . at End of sentences)\n";
cin.get(ent,20,'.');
cin.get();
sen[20]=ent[20];
cout<<"Do You Like Back and Countinue Or Exit(1.Yes And 2.No)\n ";
cin>>con;
if(con==1)
main();
else
exit(0);
}//of enter func//
void search(char sen[]){
char temp[20];
clrscr();
gotoxy(30,10);
cout<<"Enter a Word for Search : ";
cin>>temp;



int k,co=0,x=1,y=1,h;
int index=0;

while(1)
{
if(sen[index]==temp[0])
{
k=index;
for(int j=0;j<strlen(temp);j++)
{
if(sen[k]==temp[j])
{
co++;
}//agar ==
k++;
}///end of for j
if(co==strlen(temp))
{
co=0;
textbackground(5);
for(h=0;h<strlen(temp);h++)
{
gotoxy(x,y);
putch(temp[h]);
x++;
}//end of internal
index=k;
}//agar find
else
{
co=0;
textbackground(2);
gotoxy(x,y);
putch(sen[index]);
x++;
index++;
}//else not found
//cocococo

}//end of if
else
{
textbackground(2);
gotoxy(x,y);
putch(sen[index]);
x++;
index++;
}
if(sen[index]=='`') break;
if(sen[index]=='~')
{
x=1;
y++;
index++;
}
}//end of while
getch();

}//end of search

lordofphp
شنبه 27 خرداد 1391, 09:03 صبح
سلام
کسی نیست؟

دوستان فوریه منتظرم دوستان