مشكل كوچك با دو برنامه فوري

jafar2007

New Member
سلام
من يك كلاس تعريف كردم كلاس كارمندان
مشكل من اين اگه به صورت سويچ مينويسم موقعي كه براي بيشتر از يك نفر مي نويسم در موقع محاسبه فقط نفر آخر را رو محاسبه مي كند
اگه ممكن كسي به من كمك كنه
فوري است
با تشكر






LEFT]
کد:

HTML کد:

PHP:
cout<<"\nplease admin cod = \n";
		cin>>coda;
		cout<<"please enter number worker :\n";
		cin>>n;
		employee em;

	  char ch;
	while(1)
	{
	  clrscr();
	  cout<<"Select Option: ";
	  cout<<"\n\n i = input name ,hour , hp , base  , codw  :\n";

	  cout<<"\n p =  print :\n";
	  cout<<"\n c = chang  :\n";
	  ch=getch();
	  clrscr();
	  switch(ch)
	  {
	case 'I':
	case 'i':
	  {	for(int i=0;i<n;i++)
	  em.input();
		 em.calculate();}
	 break;
	 case 'P':
	 case 'p':
		 { for(int i=0;i<n;i++)
		 em.print(); }
		 break;
	 case 'C':
	 case 'c':
	  {
			 for(int i=0;i<n;i++)
			 em.chang();
			 }
		break;
	default:
	  cout<<"\nsyntax error.";
	}
	cout<<"\nfor exit enter <n> else press any key:";
	ch=getche();
	if(ch=='n' || ch=='N')
	  break;
				}
  return 0;
 

jafar2007

New Member
سلام
من تو فايل ها در قسمت كارنامه يعني تابع آخري مشكل دارم
تعداد جواب ها رو اشتباه مي ده
لطفا كمك
كنيد
پس فردا ا بايد تحويل بدم
با تشكر


نقل قول:
void pa(int n)
{

char c ,a[100];
ifstream q("soalat.txt");
ofstream p("pa.txt");
cout<<"-************************************************** \n\n";
cout<<"-************************************************** \n\n";

cout<<"\nplease enter pasokh gozineha ra :\n\n";

for(int i=1;i<=n;i++)
{
cout<<"\njavab soal "<<i<<" barabar :\n";
cin>>c;
a=c;
p<<i<<" = "<<a<<"\n";
}
}


void pasokh_sahih(int n)
{
ofstream pas ("pas.txt");
ifstream p("pa.txt");
char z[100];
cout<<" \nplease enter javab sahih soalat ra barai barrasi gozineha \n\n";

for(int i=1;i<=n;i++)
{ cout<<" \npasokh sahih soal "<<i<< " barabar =\n";
cin>>z;
pas<<i<<" = "<<z<<"\n";
}
cout<<"-************************************************** \n\n";
}



void karname(int n)
{
ofstream k("kar.txt");
ifstream p("pa.txt");
ifstream pas ("c:\pas.txt");
int a1=0,z1=0;
char z[100],a[100],s[100];

for(int i=0;i<n;i++)
{
p>>a;
s=a;
cout<<s;
pas>>z;
cout<<z;
if(z==a)
a1++;
else
z1++;
}
cout<< "\nnumber javabhai sahih barabar \n\n";
cout<<a1;
k<< "\nnumber javabhai sahih barabar \n\n";
k<<a1;
cout<<"\n\nnumber javabhai ghalat barabar ba\n\n";
cout<<z1;
k<<"\n\nnumber javabhai ghalat barabar ba\n\n";
k<<z1;
}
 

the_king

مدیرکل انجمن
هر دو کد ارسالی ناقص هستند و ارائه راه حل برای کدی که قابل کامپایل شدن نیست دشوار است.
در کد اولی که ارسال کردید حلقه for موجود در case با مقدار i و I صرفا یک متد ()em.input را اجرا می کند
در حالی که می بایستی با { و } بعد از حلقه آنرا به دو متد ()em.input و ()em.calculate محدود می کردید.
آن { و } هایی که در درون بدنه case ها نوشته اید بی استفاده و بی مورد اند. چون وجود و فقدانشان تاثیری در
برنامه ندارد.
 

jafar2007

New Member
#include<fstream.h>
#include<iostream.h>
#include<string.h>
#include<conio.h>

void qs(int);
void pa(int);
void viwe(int);
void pasokh_sahih(int);
void karname(int);
int main()
{
char ch;int n;
cout<<"please enter number of soalat :\n\n";
cin>>n;
clrscr();
cout<<"\n\ninput soalat :\n";
qs(n);
cout<<"\n vared konid javabhai sahih:\n";
pasokh_sahih(n);
while(1)
{
clrscr();
cout<<"Select Option: ";
cout<<"\n\n\n\nv=viwe soalat:\n";
cout<<"\np = input pasokh ha:\n";
cout<<"\nk = karname :\n";
ch=getch();
clrscr();
switch(ch)
{
case 'V':
case 'v':
viwe(n);
break;
case 'p':
case 'P':
pa(n);
break;
case 'K':
case 'k':
karname(n);
break;
default:
cout<<"\nsyntax error.";
}
cout<<"\nfor exit enter <n> else press any key:";
ch=getche();
if(ch=='n' || ch=='N')
break;
}
return 0;
}




void qs(int n)
{
char s[100],a[30];

ofstream q("soalat.txt");

cout<<"******************************************************************\n";
cout<<"please enter ? for end soal for example write << 1-how are you? >>. \n\n";
cout<<"please for 4 javabi ha press >>4 bar fasele<<example write >> 1-ok 2-yes 3-no 4-nobody <<. \n";
cout<<"******************************************************************\n";
for (int i =1;i<=n;i++)
{ cout<<"\nsoal "<< i<<" = ";
cin.getline(s,100,'?');
q<<"\n\n"<<i<<" = "<<s;
q<<"?\n\n";
cout<< " 4 is pasokh :"<<endl;
for(int j=1;j<=4;j++)
{ cout<<" "<<j <<" - ";
cin.getline(a,30,' ');
q<<j<< " - "<<a<<"\n";
}
}
}


void viwe(int n)
{ ifstream q("soalat.txt");
cout<<q;
}





void pa(int n)
{

char c ,a[100];
ifstream q("soalat.txt");
ofstream p("pa.txt");
cout<<"-**************************************************\n\n";
cout<<"-**************************************************\n\n";

cout<<"\nplease enter pasokh gozineha ra :\n\n";

for(int i=1;i<=n;i++)
{
cout<<"\njavab soal "<<i<<" barabar :\n";
cin>>c;
a=c;
p<<i<<" = "<<a<<"\n";
}
}


void pasokh_sahih(int n)
{
ofstream pas ("pas.txt");
ifstream p("pa.txt");
char z[100];
cout<<" \nplease enter javab sahih soalat ra barai barrasi gozineha \n\n";

for(int i=1;i<=n;i++)
{ cout<<" \npasokh sahih soal "<<i<< " barabar =\n";
cin>>z;
pas<<i<<" = "<<z<<"\n";
}
cout<<"-**************************************************\n\n";
}



void karname(int n)
{
ofstream k("kar.txt");
ifstream p("pa.txt");
ifstream pas ("c:\pas.txt");
int a1=0,z1=0;
char z[100],a[100],s[100];

for(int i=0;i<n;i++)
{
p>>a;
s=a;
cout<<s;
pas>>z;
cout<<z;
if(z==a)
a1++;
else
z1++;
}
cout<< "\nnumber javabhai sahih barabar \n\n";
cout<<a1;
k<< "\nnumber javabhai sahih barabar \n\n";
k<<a1;
cout<<"\n\nnumber javabhai ghalat barabar ba\n\n";
cout<<z1;
k<<"\n\nnumber javabhai ghalat barabar ba\n\n";
k<<z1;
}
 

jafar2007

New Member
#include <iostream.h>
#include <conio.h>



class employee
{
int hour , hp ,codw,a1,a2,coda;
char name;
long int salary,base;
public:
void input();
void calculate();
void print();
void chang();
void admin();
};
void employee::admin()
{ cout<<"\n\nplease select admin cod = \n\n";
cin>>coda;
}
void employee::input()
{
cout<<"\n\nplease enter:";
cout<<"\nname:";
cin>>name;
cout<<"\nhours : ";
cin>>hour;
cout<<"\nhourpay : ";
cin>>hp;
cout<<"\nbase hp : ";
cin>>base;
cout<<"\nplease enter worker cod : " ;
cin>>codw;
}
void employee::calculate()
{
salary = (long) hour* hp + base;
}
void employee::print()
{
cout<<"\n\nplease enter cod worker for viwe information :\n\n";
cin>>a1;
if(a1==codw)
{ cout<<"\n\nname"<<"\t\t"<<"hour"<<"\t"<<"hp"<<"\t"<<"base hp "<<"\t"<<"salary";
cout<<"\n"<<name<<"\t\t"<<hour<<"\t"<<hp<<"\t"<<base<<"\t\t "<<salary<<endl;}
else
cout<<"\n\neror cod worker is wrong \n\n" ;
}
void employee::chang()
{ cout<<"\n\nplease enter cod admin for chang information:\n\n";
cin>>a2;
if(a2==coda)
{cout<<"\n\n"<<name;
cout<<"\nplease enter hour and hp and base hp:\n\n";
cin>>hour>>hp>>base;
employee::print();
}
else
cout<<" \n\ncod admin is wrong\n\n";
}


int main()
{
clrscr();
int n,coda;

cout<<"\nplease admin cod = \n";
cin>>coda;
cout<<"please enter number worker :\n";
cin>>n;
employee em;

char ch;
while(1)
{
clrscr();
cout<<"Select Option: ";
cout<<"\n\n i = input name ,hour , hp , base , codw :\n";

cout<<"\n p = print :\n";
cout<<"\n c = chang :\n";
ch=getch();
clrscr();
switch(ch)
{
case 'I':
case 'i':
for(int i=0;i<n;i++)
em.input();
em.calculate();}
break;

case 'P':
case 'p':
for( i=0;i<n;i++)
em.print();
break;
case 'C':
case 'c':
for( i=0;i<n;i++)
em.chang();
break;
default:
cout<<"\nsyntax error.";
}
cout<<"\nfor exit enter <n> else press any key:";
ch=getche();
if(ch=='n' || ch=='N')
break;
}
return 0;

}





 

jafar2007

New Member
سلام
من دو تا كد برنامه قرار دادم ببين تو اون يكي با فايل نوشتمبرنامه طرح سوالات امتحاني و پاسخ به ان كه فقط در پاسخ نامه مشكل داره
در كد دومي كه با كلاس نوشتمبرنامه كلاس كارمندان است تعدادبيش از يك نفر را محاسبه نكرده و فقط آخرين نفر را محاسبه ميكنه
 

the_king

مدیرکل انجمن
ببینید، شما فرضا 5 تا کارمند داشته باشید، وقتی کلاس شما صرفا یک متغیر hour و hp و codw داره نباید انتظار داشته باشید
که برای 5 کارمند بتونه لیست ارائه کنه یا محاسبه انجام بده، چنین کلاسی قادر به ذخیره اطلاعات بیش از یک کارمند نیست.
اصولا اگر کلاس employee قراره کلاس یک کارمند باشه، بایستی یک آرایه از اشیاء کارمند رو ازش بسازید، یک نمونه شیء
برای اینکار کافی نیست.
 

جدیدترین ارسال ها

بالا