سئوالات و مشکلات برنامه نویسی به زبان C و ++C

mahdieh721

عضو جدید
یه برنامه می خوام که اطلاعات چند تا دانشجو که در یه فایل ذخیره شده را بخواند و چاپ کندالبته با استفاده از کلاس !!!
البته یه چیزی خودم نوشتم ولی درست کار نمیکنه نمی دونمم اشکالش کجاست میزارم اگر میشه کمکم کنید
#include <iostream>
#include <fstream>
using namespace std;
class student
{
char name[20];
long int stdnum;
float average;
public:
student(char fname[]){
ifstream f(fname);
f>>name>>stdnum>>average;
}
void print();
};
void student::print()
{

cout<<name<<"\t"<<stdnum<<"\t"<<average;
}

int main()
{
student stdlist("a.txt");
// for(int i=0;i<3;i++)
stdlist.print();
char ch;
cin>>ch;
return 0;
}
 

khanommohandes

عضو جدید
کاربر ممتاز
سلام من اینودارم امیدوارم بدردت بخوره
;)
- برنامه اي بنويسيد که مشخصات ده دانشجو شامل نام، نام خانوادگي، شماره دانشجويي و نمرات 3 درس را گرفته و در آرايه اي ذخيره نمايد. کارنامه هر دانشجو را به ترتيب معدل چاپ کند.
#include <cstdlib>
#include <iostream>
#include <string.h>

using namespace std;

int main(int argc, char *argv[])
{struct data
{int year;
int month;
int day;
};
{char name[10];
char family[10];
float math;
float physics;
float programming;
}
int i,s[0],name,family,year,month,day,math,physics,programming;
float avg;
cout<<"data enterance:\n";
for(i=0;i<5;i++)
{cout<<"name:";
cin>>s[10],name;
cout<<"family:";
cin>>s[10],family;
cout<<"birth of dat:";
cin>>s[10],year>>s[10],month>>s[10],day;
cout<<"cards:";
cin>>s[10],month>>s[10],physics>>s[10],programming;
}
cout<<"name family _card_avrag\n";
cout<<"--------------------------\n";
for(i=0;i<5;i++)avg=(s[10],math+s[10],physics+s[10],programming)/3;
cout<<"s[10],name<<" "<<s[10],family<<" "<<s[10],math<<" "<<s[10],programming<<" "<<avg";
cout<<"\n";

system("PAUSE");
return 0;
}
 

mahdieh721

عضو جدید
میشه اشکال این برنامه رو هم بهم بگید ترو خدا برای فردا این دوتا برنامه رو می خوام
#include <iostream>
#include <string.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>

using namespace std;
class function
{
public:
virtual float value(float x);
};
class sinf:public function
{
public:
virtual float value(float x){return sin(x);}
};
class xf:public function
{
public:
virtual float value(float x){return x;}
};
class number:public function
{
const float num;
public:
number(float n=0):num(n){}
virtual float value(float x){return num;}
};


int main()
{
// vector < function * > flist( 3 );
float sum=0;

function *flist[2];
flist[0]=new xf;
flist[2]=new sinf;
flist[1]=new number(7);
for(int i=0;i<3;i++)
{

sum+=flist->value(3.14);
}
cout<<sum;
system("pause");
return 0;
}
 

mahdieh721

عضو جدید
ممنون دوست عزیز
ولی باید با فایلا باشه
باید اطلاعات رو از فایل بخونه:(
 

javadj02

عضو جدید
دوستان ترخدا کمکم کنید.
برای پنج شنبه این هفته باید پروژه تحویل بدم .
جووووون هرکی دوست دارید کمکم کنید .
خداوکیلی اگر من این ترم مشروط شم از دانشگاه اخراج میشم و باید برم خدمت.
به خدااااااااااا جبران می کنم .
جججووووووووووووووووووووووووووووون مادراتون کمکم کنید.
حتی اگر تونستی بعضی از سوال هارو جواب دادید بازم خوبه .
منتظرم.
------------------------------------
++C
برنامه ای بنویسید که عملیات زیر را با کلاس انجام دهد
1- کد ، نام خانوادگی ، نام درس ، نمره درس ، تعدا واحد درس را به عنوان داده در نظر بگیرد.
2-تابعی بنویسید که تعداد 10 دانجو را همراه با مشخصات بالا ثبت نماید ( که دانجویی دریافتی باید تکراری نباشد .
3- تابعی بنویسید که بر حسب کد دریافتی نام خانوادگی دریافتی آن دانشجو را جستجو نماید.
4-تابعی بنویسید که بر حسب کد دریافتی نام خانوادگی دریافتی آن دانشجو را حذف نماید.
5-تابعی بنویسید که معدل دانشجو را بر حسب تعداد واحد اخذ شده محاسبه و چاپ نماید.
6-تابعی بنویسید که تعداد دانشجویان مشروط به همراه مشخاصت آن ها را چاپ نماید(معدل زیره 12)
7-تابعی بنویسید که تعداد دانشجویان ممتاز را به همراه مشخصات آن ها را چاپ نماید ( معدال بالای 18)
 

khanommohandes

عضو جدید
کاربر ممتاز
دوستان ترخدا کمکم کنید.
برای پنج شنبه این هفته باید پروژه تحویل بدم .
جووووون هرکی دوست دارید کمکم کنید .
خداوکیلی اگر من این ترم مشروط شم از دانشگاه اخراج میشم و باید برم خدمت.
به خدااااااااااا جبران می کنم .
جججووووووووووووووووووووووووووووون مادراتون کمکم کنید.
حتی اگر تونستی بعضی از سوال هارو جواب دادید بازم خوبه .
منتظرم.
------------------------------------
++C
برنامه ای بنویسید که عملیات زیر را با کلاس انجام دهد
1- کد ، نام خانوادگی ، نام درس ، نمره درس ، تعدا واحد درس را به عنوان داده در نظر بگیرد.
2-تابعی بنویسید که تعداد 10 دانجو را همراه با مشخصات بالا ثبت نماید ( که دانجویی دریافتی باید تکراری نباشد .
3- تابعی بنویسید که بر حسب کد دریافتی نام خانوادگی دریافتی آن دانشجو را جستجو نماید.
4-تابعی بنویسید که بر حسب کد دریافتی نام خانوادگی دریافتی آن دانشجو را حذف نماید.
5-تابعی بنویسید که معدل دانشجو را بر حسب تعداد واحد اخذ شده محاسبه و چاپ نماید.
6-تابعی بنویسید که تعداد دانشجویان مشروط به همراه مشخاصت آن ها را چاپ نماید(معدل زیره 12)
7-تابعی بنویسید که تعداد دانشجویان ممتاز را به همراه مشخصات آن ها را چاپ نماید ( معدال بالای 18)
دوست عزیزنمونش توپستاهس بگردبنویس دیگه......
 

joghd123

عضو جدید
کاربر ممتاز
کدایی که میزارین از تگ کدی چیزی استفاده کنین که خوانا باشه:cool:
 

H.r.Ghanbari

عضو جدید
نوش دارو پس از مرگ سهراب

نوش دارو پس از مرگ سهراب

کد:
class function
{
    public:
    //1
    virtual float value(float x)=0;
};
//2
class sinf2:public function
{
    public:
      virtual float value(float x){return sin(x);}
};
class xf:public function
{
public:
    virtual float value(float x){return x;}
};
class number:public function
{
const float num;
public:
    number(float n=0):num(n){}
    virtual float value(float x){return num;}
};

int main(int argc, char *argv[])
{
    float sum=0;
    function* flist[3];
    flist[0]= new xf();
    //3
    flist[2]= new sinf2();
    flist[1]= new number(7);
    for(int i=0;i<3;i++)
        sum+=flist[i]->value(3.14);
    cout<<sum;
    system("pause");
    return 0;
}
:redface:
 

antengogoli21

عضو جدید
class Expression{


public:
//Expression stringtoExpression(string &s);
virtual float value(){return 0;}
};
class leaf:public Expression
{
virtual float value()=0 ;
};
class Breanch:public Expression
{
mainopr *node;
mathfunc node2;
Expression right,left;
public:
Breanch(char a,Expression &l,Expression &r);
Breanch(char *a,Expression &l);
virtual float value(){
return node->calculate(right.value(),left.value());}


};
Breanch::Breanch(char a,Expression &l,Expression &r)
{
if(a=='+')
node=new plus;
right=r;
left=l;
}
/*Breanch::Breanch(char *a,Expression &l)
{
node2=a;
left=l;
}*/
class number:public leaf{
const float num;
public:
number(float n=0):num(n){}
virtual float value(){return num;}
};
/*Expression Expression::stringtoExpression(string &s)
{
int len=s.length();
if((s[0]=='(')&&(s[len-1]==')')
*/


int main()
{


/* mainopr *m=new plus;
operators *p=m;
cout<<p->calculate(2,3);
system("pause");*/
Expression *n1=new number(3);
Expression *n2=new number(4);
Expression *b1=new Breanch('+',*n1,*n2);
cout<<b1->value();
system("pause");
return 0;
}
دوستان یه سوال داشتم چرا توی اون خط که بزرگترش کردم وقتی دارم right.value() به جای این که تابع value کلاس number فراخوانی بشه value کلاس پایه فراخونی میشه ؟؟؟؟!!!
اشکال کارم کجاست؟!
 

khanommohandes

عضو جدید
کاربر ممتاز
عزیزم آپولو نیس که...به یکی بگو که دستش توو کار نباشه...من با c++ مشکل دارم وگرنه خود برنامه خیلی قوول نیست...
اگر بلد هستید لطف کنید بنویسید...البته توو مملکت ما همه مهندس ها زپرتی شدن و فقط مدرک دارن...دریغ از یکم سواد...
قسمتیشونوشتم امیدوارم کمکت کنه(بقیش باخودت)
class Str
{
public:
char* ptr;
Str()
{
ptr = NULL;
}
Str(const char* chr)
{
size_t len = strlen(chr)+1;
ptr = new char[len];
memcpy(ptr, chr, len);
}
Str& operator += (const char* chr)
{
if(ptr)
{
size_t len1 = strlen(ptr);
size_t len2 = strlen(chr);
char* newChar = new char[len1+len2+1];
memcpy(newChar, ptr, len1);
memcpy(newChar+len1, chr, len2+1);
ptr = newChar;
}
else
{
size_t len = strlen(chr)+1;
ptr = new char[len];
memcpy(ptr, chr, len);
}
return *this;
}
};
 

zahra1386

مدیر بازنشسته
کاربر ممتاز
دوستان محترم لطفا بحث رو تمومش کنید....

دوست عزیزی که درخواست داشتی روال این تاپیک یه طوریه که بچه ها سوالشون رو میذارن و بقیه اگر تونستن و وقت کردن جواب میدن!

هیچ کس بابت جواب دادن مزدی دریافت نمیکنه و بابت جواب ندادن هم مواخذه نمیشه!

اگر بقیه جواب سوال شما رو نمیدن دلیلی نداره ناراحت بشین و این طور تاپیک رو به اسپم بکشونید!

بقیه دوستان هم لطف کنید فقط در راستای پاسخ به سوالات برنامه نویسی پاسخگو باشید

ممنون :gol:
 

antengogoli21

عضو جدید
این کل برناممه !!کامل نیست ولی سوال من توی همین قسمتشه
لینک
سوال من اینجاست
Breanch(char *a,Expression &l);
virtual float value(){

return node->calculate(right.value(),left.value());}
نمی دونم چرا در خط آخر این تابع به جای این که تابع valueکلاس number فراخونی بشه تابع کلاس پایه فراخونی میشه!!؟در صورتی که من توی مینم جوری تعریف کردم که اینجا باید کلاس مشتق فراخونی بشه
و همچنین این برنامه کامل نیست و نقصم زیاد داره خودم می دونم این رفع بشه اونا رو رفع می کنم

فقط خواهشا اگر کسی می دونه کمکم کنه
 

hkhalaj

عضو جدید
مشکل با کد gotoxy در dev-c++

مشکل با کد gotoxy در dev-c++

سلام دستور gotoxy در dev کامپایل نمیشه ممنون اگه راهنمایی کنین باید چکار کنم.
 

H.r.Ghanbari

عضو جدید
این کل برناممه !!کامل نیست ولی سوال من توی همین قسمتشه
لینک
سوال من اینجاست
Breanch(char *a,Expression &l);
virtual float value(){

return node->calculate(right.value(),left.value());}
نمی دونم چرا در خط آخر این تابع به جای این که تابع valueکلاس number فراخونی بشه تابع کلاس پایه فراخونی میشه!!؟در صورتی که من توی مینم جوری تعریف کردم که اینجا باید کلاس مشتق فراخونی بشه
و همچنین این برنامه کامل نیست و نقصم زیاد داره خودم می دونم این رفع بشه اونا رو رفع می کنم

فقط خواهشا اگر کسی می دونه کمکم کنه

یکی از راهاش می تونه این باشه اینطوری کد رو اصلاح کن:

کد:
class Breanch:public Expression 
{ 
    mainopr*node; 
    mathfunc*node2; 
    Expression *right, *left; 
public: 
    Breanch(char a,Expression *l,Expression *r); 
    Breanch(char *a,Expression &l); 
    virtual float value(){ 
    return node->calculate(right->value(), left->value()); 
} 
}; 
Breanch::Breanch(char a,Expression *l,Expression *r) 
{
    if(a == '+')
        node=new plus;  
    right=r; 
    left=l;
}

کد:
Expression *b1=new Breanch('+',n1,n2);
 

antengogoli21

عضو جدید
یکی از راهاش می تونه این باشه اینطوری کد رو اصلاح کن:

ممنون دوست عزیز
اتفاقا قبل از این که شما بگید خودم این کارو کردم و اتفاقا درستم شد ولی نمی دونم دلیلش چیه ؟!!!:Dو خوبیش اینه که الان مطمئن شدم راهم درسته چون قبلا فکر می کردم غلطه:smile:
میشه توضیح بدید که چه اتفاقی می افته که وقتی اشاره گر می گیریم درست در میاد!!
 

naimi ali

عضو جدید
دوستان ترخدا کمکم کنید.
برای پنج شنبه این هفته باید پروژه تحویل بدم .
جووووون هرکی دوست دارید کمکم کنید .
خداوکیلی اگر من این ترم مشروط شم از دانشگاه اخراج میشم و باید برم خدمت.
به خدااااااااااا جبران می کنم .
جججووووووووووووووووووووووووووووون مادراتون کمکم کنید.
حتی اگر تونستی بعضی از سوال هارو جواب دادید بازم خوبه .
منتظرم.
------------------------------------
++C
برنامه ای بنویسید که عملیات زیر را با کلاس انجام دهد
1- کد ، نام خانوادگی ، نام درس ، نمره درس ، تعدا واحد درس را به عنوان داده در نظر بگیرد.
2-تابعی بنویسید که تعداد 10 دانجو را همراه با مشخصات بالا ثبت نماید ( که دانجویی دریافتی باید تکراری نباشد .
3- تابعی بنویسید که بر حسب کد دریافتی نام خانوادگی دریافتی آن دانشجو را جستجو نماید.
4-تابعی بنویسید که بر حسب کد دریافتی نام خانوادگی دریافتی آن دانشجو را حذف نماید.
5-تابعی بنویسید که معدل دانشجو را بر حسب تعداد واحد اخذ شده محاسبه و چاپ نماید.
6-تابعی بنویسید که تعداد دانشجویان مشروط به همراه مشخاصت آن ها را چاپ نماید(معدل زیره 12)
7-تابعی بنویسید که تعداد دانشجویان ممتاز را به همراه مشخصات آن ها را چاپ نماید ( معدال بالای 18)

بفرما یه چیزی شبیه اونی که می خوایی می تونه باشه ولی باید تغییراتی بدی ( که بستگی داره که واقعا بچه درس خون باشی یا نه) از سایت برنامه نویس گرفتمش. امیدوارم به کارت بیاد.
توی یه باکس دیگه جدا می دارمش نتونستم باکس کد رو پیدا کنم... :)
 
آخرین ویرایش:

naimi ali

عضو جدید
نتونستم باکسی رو که دیگران داخل تاپیک استفاده می کنن برای کد نویسی پیدا کنم به صورت یه فایل متنی ارسال کردم( متذکر بشم که این برنامه رو از سایت برنامه نویس پیداش کردم)
 

پیوست ها

  • New Text Document.txt
    1 کیلوبایت · بازدیدها: 0
آخرین ویرایش:

ali.dadash

عضو جدید
تایم در c++

تایم در c++

سلام به همه دوستان عزیز...
میخواستم ببینم کسی می دونه چه جوری و با چه دستوری می تونم زمان سیستم رو بخونم؟با زبان سی پلاس پلاس...
میخوام مثلا در خط 7 برنامه زمان سیستم رو بخونم و در چند خط جلو تر مثلا در خط 30 دو باره زمانو بخونم و این دو مقدار را از هم کم کنم و در خروجی چاپ کنم....فک کنم هدر فالیش time.h باشه،اما نمیدونم باید چه جوری استفاده کنم...الان تقریبا کدو بلدم بزنم اما نمیدونم زمانو باید چی کار کنم.اگه کسی از دوستان بلده با مثال توضیح بده که شرمندم می کنه...

(اصل قضیه اینه که باید یه سری عملگر و عملوند به صورت رندوم تولید کنم سپس عبارت تولیدی را مقدارشو پیدا کنم و بگم چند ثانیه طول داشته تا این فرایند اجرا بشه،این کارو باید 5 بار انجام بدم و کمترین زمانو به خروجی ببرم..)
 

naimi ali

عضو جدید
سلام به همه دوستان عزیز...
میخواستم ببینم کسی می دونه چه جوری و با چه دستوری می تونم زمان سیستم رو بخونم؟با زبان سی پلاس پلاس...
میخوام مثلا در خط 7 برنامه زمان سیستم رو بخونم و در چند خط جلو تر مثلا در خط 30 دو باره زمانو بخونم و این دو مقدار را از هم کم کنم و در خروجی چاپ کنم....فک کنم هدر فالیش time.h باشه،اما نمیدونم باید چه جوری استفاده کنم...الان تقریبا کدو بلدم بزنم اما نمیدونم زمانو باید چی کار کنم.اگه کسی از دوستان بلده با مثال توضیح بده که شرمندم می کنه...

(اصل قضیه اینه که باید یه سری عملگر و عملوند به صورت رندوم تولید کنم سپس عبارت تولیدی را مقدارشو پیدا کنم و بگم چند ثانیه طول داشته تا این فرایند اجرا بشه،این کارو باید 5 بار انجام بدم و کمترین زمانو به خروجی ببرم..)

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

http://www.functionx.com/cppbuilder/topics/datetime.htm
 

H.r.Ghanbari

عضو جدید
ممنون دوست عزیز
اتفاقا قبل از این که شما بگید خودم این کارو کردم و اتفاقا درستم شد ولی نمی دونم دلیلش چیه ؟!!!:Dو خوبیش اینه که الان مطمئن شدم راهم درسته چون قبلا فکر می کردم غلطه:smile:
میشه توضیح بدید که چه اتفاقی می افته که وقتی اشاره گر می گیریم درست در میاد!!

مثال:
کد:
    class base1{
    public:
        virtual int getX(){
            return x;
        }
        int x;
};
class derived: public base1{
    public:
        virtual int getX(){
            return x+1;
        }
};[COLOR=#000000]
[/COLOR]

کد:
1    derived d;
2   base1 b;
3    base1* ptrBase;
4    b = (base1)d;
5    ptrBase = &d;
6    ptrBase = &b;

فرقی نمی کنه شما شی b رو یا با خط 2 و یا با خط 4 تعریف کنید شی b از نوع کلاس base1 ساخته می شه.
ولی اشاره گر یک ادر س فقط حالا شما اگه ادرس شی d رو در اشاره گر ptrBase قرار بدید شی ای ساخته نمی شه بلکه فقط با استفاده از جایی که به اون اشاره می کنه توابع خودش رو فراخوانی می کنه, حالا می تونه ادرس تابع getX در کلاس مشتق شده عوض شده باشه یعنی همون کاری که ما با کلمه کلیدی virtual انجام می دیم.
 

MunderLine

عضو جدید
سلام

دستور gotoxy در کتابخانه conio.h قرار داره. باید include بشه. اگه هم include شده احتمالاً فایل conio.h وجود نداره و اگه هم وجود داره احتمالاً تابع gotoxy رو نداره.

این روش رو امتحان کنید:
- ابتدا کتابخونه windows.h رو include کنید
- سپس کد زیر رو به برنامه اضافه کنید
کد:
void gotoxy(int x, int y)  {
      COORD coord;
     coord.X = x;
      coord.Y = y;
     SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
 }

امیدوارم مفید باشه
 

antengogoli21

عضو جدید
سلام
دوستان می خوام یک داده از نوع string رو توی یک متغیر دیگه کپی کنم کسی میدونه تابعش چیه؟!!
 

antengogoli21

عضو جدید
Expression Expression::stringtoExpression(string &s)
{

int len=s.length();
string s1;
if((s[0]=='(')&&(s[len-1]==')'))
{
int len2=len-2;

for(int i=1;i<=len2;i++)
s1[i-1]=s;
}


}

این طوری نوشتم برای کپی کردنش البته من می خوام بدونم تابع داره یانه؟!!
ولی الان یه سوال دیگه دارم اونم اینکه من بعد از این که این شرطو نوشتم می خوام همین تابع رو برای s1 فراخونی کنم ولی نمی دونم چجوری ؟!(به جوابم اطمینان ندارم)
در اصل من توی این تابع می خوام بررسی کنم که اگر اول و آخر عبارتم پرانتز بود اونا رو حذف کنه بعد بررسی کنه و +و- را پیدا کنه بعدش *و/ و همین طوری به صورت یک درخت بازش کنه و به صورت بازگشتی از این تابع استفاده کنه !!!
دوستان اگر کسی می تونه کمک کنه!
 

Similar threads

بالا