PDA

View Full Version : مبتدی: کمک در ایجاد یک کادر با gtk در C++‎



mohamnt
جمعه 11 تیر 1389, 21:33 عصر
سلام
بااینکه انجام طبق قانون انجام پروژه خلاف هست و تایپیک حذف میشه ولی یه در خواست دارم
من بسته های gtk -dev که برای آزمایش و توسعه نرم افزار توسط gtk در محیط برنامه نویسی ای مثل C++‎ هست رو نمی تونم نسب کنم چون اررور میده و می نویسه gtk

libgtk2.0-dev but it is not going to be installed در سیناپتیک
از طرفی من تازه اینکه باید از گرافیک هم استفاده کرد رو دیروز فهمیدم و مهلت انجام پروژه هم تا 12 هست
نمی خوام زیاد حرف بزنم در کل این کدیه که من نوشتم
#include <iostream>
#include <cstdlib>
#include <fstream>
#include <cstring>
using namespace std;
class info
{
public:
int stpass(bool ret);
void cadd();
void clist();
void alist();
void cinfo();
};
int info::stpass(bool ret) // if bool return true & exit program else run othr function
{
const char *mypass="123";
int retype=0;
for (int i=0;i<4;i++)
{
char *password=getpass(" \v please Enter your Password : ");
if (strcmp(password,mypass)==0) break;
else
{
system("clear");
cout<<"Sorry, try again\t\n\n";
++retype;
if(retype==3)
{
cout<<"3 incorrect password attempts\n";
{
ret=false;
return 0;}
}
}
}
return(ret);
}
void info::cadd()
{
system("clear");
ofstream myfile ("list.txt",ios::app);
char fname[20],lname[20],faname[20],err[2];
unsigned short int age;
long c_no;
for (;;)
{
system("clear");
cout<<"Enter customer information (0 = quit ) \n";
cout<<"number: \t";
cin>>c_no;
if(c_no!=0)
{
cout<<"name : \t";
cin.getline(err,2);
cin.getline(fname,20);
cout<<"last name : \t";
cin.getline(lname,20);
cout<<"father : \t";
cin.getline(faname,20);
cout<<"age : \t";
cin>>age;
myfile<<c_no<<"\n"<<fname<<"\n"<<lname<<"\n"<<faname<<"\n"<<age<<"\n";
}
else
{
myfile.close();
return ;
}
}
return ;
}
void info::clist()
{
string s;
ifstream Myfile("list.txt");
system("clear");
if( Myfile.is_open() )
{
while(!Myfile.eof())
{
int j=0;
for( int i = 0; i <5; i++)
{
getline( Myfile, s );
j++;
if(j==2||j==3)
cout<< s << " ";
}
cout<<"\n";
}
}
else
cout << "Can not open the file.\n";
cout<<"for continue press Enter\n";
char c,err[2];
cin.getline(err,1);
cin.get(c);
return ;

}
void info::alist()
{
string s;
ifstream Myfile("list.txt");
system("clear");
cout<<" \tname\tfamily\tfather\tcustomer.no \n\n";
if( Myfile.is_open() )
{
while(!Myfile.eof())
{
int j=0;
for( int i = 0; i <5; i++)
{
getline( Myfile, s );
j++;
if(j==2||j==3||j==4||j==5)
cout<<"\t"<<s ;
}
cout<<"\n\n";
}
}
else
cout << "Can not open the file.\n";
cout<<"for continue press Enter\n";
char c,err[2];
cin.getline(err,1);
cin.get(c);
return ;
}
void info::cinfo()
{
system("clear");
cout<<"enter your Customer Number for search :";
string s,numfs ;
char st[5];
cin>>numfs;
ifstream Myfile("list.txt");
system("clear");
if( Myfile.is_open() )
{
while(!Myfile.eof())
{
for( int i = 0; i <5; i++)
{
getline( Myfile, s );
cout<<s;
}
}
}
}

int main()
{
info pss;
bool ret=true;
pss.stpass(ret);
cout<<" ";
if (ret==true)
{
input:
system("clear");
cout<<"\t\t <<<<<<<<<<<<<choose 1 Number>>>>>>>>>>>>>>>>>\n\n ";
cout<<"1 - add a new customer \n\n 2 -customer list \n\n 3- account list ";
cout<<"\n\n 4 -customer information \n\n 5 -exit\n\n";
char choose;
cin>>choose;
switch (choose)
{
case '1':
pss.cadd();
break;
case '2':
pss.clist();
break;
case '3' :
pss.alist();
break;
case '4':
pss.cinfo();
break;
case '5':
return 0;
default :
cout<<"try again\n";
}
goto input;
}
return 0;
}
حالا باید در قسمتی که از من پسورد گرفته میشه توی stpass یک صفحه گرافیکی بیاد که در اون از من پسورد گرفته بشه (چیزی شبیه پسورد بایوس) و بعد سه اشتباه از برنامه بیاد بیرون ولی اگه درست بود ادامه برنامه اجرا بشه.:افسرده: