برنامه ي من چه مشکلي داره؟؟!!

در اين بخش مي‌توانيد به مباحث مربوط به انواع زبان هاي برنامه نويسي بپردازيد

مدیران انجمن: athlon64x2, abbas.m.k, شوراي نظارت

Major II
Major II
نمایه کاربر
پست: 258
تاریخ عضویت: پنج شنبه 29 تیر 1385, 3:36 am
محل اقامت: دانشگاه
سپاس‌های ارسالی: 6 بار
سپاس‌های دریافتی: 25 بار
تماس:

برنامه ي من چه مشکلي داره؟؟!!

پست توسط borhan » سه شنبه 10 بهمن 1385, 1:49 am

lسلام
رو ای برنامه خیلی زحمت کشیدم ولی نمیدونم مشکلش چیه؟ :sad:
اگه شما کمکم کنید خیلی ممنون میشم :(
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
typedef struct{
long int stid;
char name[20];
char major[20];
char city[20];
float avg;
int Valid;
}student;
char display(void);
cmptr(char[],char[]);
int stdinput(student arr[],int size);
void sortid(student arr[],int size);
void sortname(student arr[],int size);
void sortavg(student arr[],int size);
void findid(student arr[],int size);
void findname(student arr[],int size);
int main(void)
{
student data[100];
int size=0;
char key;
while((key=display())!='7')
{
clrscr();
switch(key)
{

case '1':size=stdinput(data,size);
break;
case '2':sortid(data,size);
break;
case '3':sortname(data,size);
break;
case '4':sortavg(data,size);
break;
case '5':findid(data,size);
break;
case '6':findname(data,size);
break;
case '7':return 0;
}
}
return 0;
}
////////////////////////////////////////////////////////////////////////////////
char display(void)
{
clrscr();
char ch;
cout<<"Student's DataBase\n";
cout<<"------------------\n\n";
cout<<"\t 1)Enter New student."<<endl;
cout<<"\t 2)View List by ID."<<endl;
cout<<"\t 3)View List by Name."<<endl;
cout<<"\t 4)View List by Average."<<endl;
cout<<"\t 5)Find by ID."<<endl;
cout<<"\t 6)Find by Name."<<endl;
cout<<"\t 7)Exit"<<endl<<endl;
cout<<"Select:";
ch=getch();
return ch;
}
////////////////////////////////////////////////////////////////////////////////
int cmpstr(char str1[],char str2[])
{

int flag=0,i=0;
while(str1[i]||str2[i]&&!flag)
{
if(str1[i]>str2[i])
flag=1;
else if(str1[i]<str2[i])
flag=-1;

i++;
}
return(flag);
}
////////////////////////////////////////////////////////////////////////////////
void findname(student arr[],int size)
{
cout<<endl<<"Find Student by Name"
<<endl<<"-------------------"
<<endl<<"Enter Student Name";
char Name[25];
int i;
gets(Name);
for(i=0;i<size;i++)
if(!cmpstr(arr[i].name,Name))
break;
if(i<size)
cout<<(i+1)<<")"<<"\t"
<<arr[i].stid<<"\t\t"
<<arr[i].name<<"\t\t"
<<arr[i].avg<<"\t\t"
<<arr[i].major<<"\t\t"
<<arr[i].city<<endl;


else
cout<<endl<<" not found.";

getch();
}
////////////////////////////////////////////////////////////////////////////////
int stdinput(student arr[],int size)
{
int n;
cout<<endl<<"Enter New Student's Information:"
<<endl<<"--------------------------------"
<<endl<<"How many student?";

cin>>n;
for(int i=0;i<n;i++)
{
cout<<(i+1)<<")"<<endl;
cout<<"Name:";
gets(arr[size].name);
cout<<"ID:";
cin>>arr[size].stid;
cout<<"Major:";
gets(arr[size].major);
cout<<"City:";
gets(arr[size].city);
cout<<"Average:";
cin>>arr[size].avg;
cout<<endl;
size++;
}

cout<<endl<<"New entry.";
getch();
return(size);
}
////////////////////////////////////////////////////////////////////////////////
void sortid(student arr[],int size)
{
student temp;
int j;
cout<<endl<<"Studen's Information(Sorted by ID)"
<<endl<"----------------------------------"
<<endl<<"ID\t\tName\t\tAverag\tMajor\tCity\n\n";
for(int i=0;i<size;i++)
{
j=i;
temp=arr[i];
while(j>0&&temp.stid<arr[j-1].stid)
{
arr[j]=arr[j-1];
j--;
}
arr[j]=temp;
}
for(int k=0;k<size;k++)
{
cout<<(k+1)<<")"<<"\t"
<<arr[k].stid<<"\t\t"
<<arr[k].name<<"\t\t"
<<arr[k].avg<<"\t\t"
<<arr[k].major<<"\t\t"
<<arr[k].city<<endl;
}

getch();
}

////////////////////////////////////////////////////////////////////////////////
void sortname(student arr[],int size)
{
student temp;
int j;
cout<<endl<<"Studen's Information(Sorted by Name)"
<<endl<<"----------------------------------"
<<endl<<"ID\t\tName\t\tAverag\tMajor\tCity\n\n";
for(int i=0;i<size;i++)
{

j=i;
temp=arr[i];
while(j>0&&cmptr(arr[j-1].name,temp.name)>0)
{
arr[j]=arr[j-1];
j--;
}
arr[j]=temp;

}

for(int k=0;k<size;k++)
{
cout<<(k+1)<<")"<<"\t"
<<arr[k].stid<<"\t\t"
<<arr[k].name<<"\t\t"
<<arr[k].avg<<"\t\t"
<<arr[k].major<<"\t\t"
<<arr[k].city<<endl;
}

getch();
}
////////////////////////////////////////////////////////////////////////////////
void sortavg(student arr[],int size)
{
student temp;
int j;

cout<<endl<<"Studen's Information(Sorted by Average)"
<<endl<<"----------------------------------"
<<endl<<"ID\t\tName\t\tAverag\tMajor\tCity\n\n";
for(int i=0;i<size;i++)
{

j=i;
temp=arr[i];
while(j>0&&temp.avg<arr[j-1].avg)
{
arr[j]=arr[j-1];
j--;
}
arr[j]=temp;

}

for(int k=0;k<size;k++)
{
cout<<(k+1)<<")"<<"\t"
<<arr[k].stid<<"\t\t"
<<arr[k].name<<"\t\t"
<<arr[k].avg<<"\t\t"
<<arr[k].major<<"\t\t"
<<arr[k].city<<endl;
}


getch();
}
////////////////////////////////////////////////////////////////////////////////
void findid(student arr[],int size)
{
int n,i;
cout<<endl<<"Find Student by Std ID"
<<endl<<"----------------------"
<<endl<<"Enter Student ID:";
cin>>n;
for(i=0;i<size;i++)
if(arr[i].stid==n)
break;
if(i<size)
cout<<(i+1)<<")"<<"\t"
<<arr[i].stid<<"\t\t"
<<arr[i].name<<"\t\t"
<<arr[i].avg<<"\t\t"
<<arr[i].major<<"\t\t"
<<arr[i].city<<endl;



else
cout<<endl<<"Not found";
getch();
}
فکر کنم مشکل از تابع سرت آی دی باشه :sad:[align=left]   

Major II
Major II
نمایه کاربر
پست: 258
تاریخ عضویت: پنج شنبه 29 تیر 1385, 3:36 am
محل اقامت: دانشگاه
سپاس‌های ارسالی: 6 بار
سپاس‌های دریافتی: 25 بار
تماس:

پست توسط borhan » سه شنبه 10 بهمن 1385, 1:42 pm

يعني هيچکي نيست به من کمک کنه؟ :sad:
زود ازدواج کردن اشتباهه،ولي دير ازدواج کردن اشتباهي بزرگتر..

Major II
Major II
نمایه کاربر
پست: 258
تاریخ عضویت: پنج شنبه 29 تیر 1385, 3:36 am
محل اقامت: دانشگاه
سپاس‌های ارسالی: 6 بار
سپاس‌های دریافتی: 25 بار
تماس:

اخطار در C ؟!!

پست توسط borhan » سه شنبه 10 بهمن 1385, 2:28 pm

این اخطار در C چرا پیش میاد؟
علت ای اخطار در C چیه؟
general protection exception
processor fault
زود ازدواج کردن اشتباهه،ولي دير ازدواج کردن اشتباهي بزرگتر..

Major I
Major I
نمایه کاربر
پست: 301
تاریخ عضویت: سه شنبه 14 شهریور 1385, 7:00 am
سپاس‌های ارسالی: 60 بار
سپاس‌های دریافتی: 44 بار

پست توسط bmyazdani » سه شنبه 10 بهمن 1385, 3:19 pm

این خط :

کد: انتخاب همه

cmptr(char[],char[]); 

چی هست؟ مطمئنی تعریفش کردی.فکر کنم یک تابع بوده :-(که جا افتاده.
شرمنده کد رو نخوندم :o

New Member
نمایه کاربر
پست: 2
تاریخ عضویت: جمعه 8 دی 1385, 12:26 am

پست توسط saalek » سه شنبه 10 بهمن 1385, 3:31 pm

در این قسمت:
cmptr(char[],char[]);
سریع اشکال رفع میشه.
قضیه اینه که موقع صدا کردن و دیکلر با تعریف تابع اسم یکی نیست. یکی cmptr است و دیگری cmpstr . که با رفع مشکل املایی حل میشه.
برنامه 3 نوع لیست گیری دارد و 2 تا سرچ .اکثر قسمتها درست کار می کند.

Major II
Major II
نمایه کاربر
پست: 258
تاریخ عضویت: پنج شنبه 29 تیر 1385, 3:36 am
محل اقامت: دانشگاه
سپاس‌های ارسالی: 6 بار
سپاس‌های دریافتی: 25 بار
تماس:

پست توسط borhan » سه شنبه 10 بهمن 1385, 4:22 pm

دستتون درد نکنه انارو درست کردم ولي الان يه مشکلديگه ميکيره که نميدونم تقصير چيه :sad:
اين اخطار رو ميده:
general protection exception
processor fault
الان چيکار کنم؟
زود ازدواج کردن اشتباهه،ولي دير ازدواج کردن اشتباهي بزرگتر..

Colonel II
Colonel II
پست: 90
تاریخ عضویت: پنج شنبه 9 شهریور 1385, 9:15 pm
سپاس‌های دریافتی: 9 بار

پست توسط athlon64x2 » سه شنبه 10 بهمن 1385, 4:38 pm

سلام دوست عزيز

1. از چه کمپايلر سي و در چه محيطي استفاده ميکنيد و چه نسخه اي ؟
2. روي چه ويندوزي کار ميکنيد يا اين خطا رو در داس گرفتيد ؟
3. اين خطار رو کجا ميگيريد ؟ داخل ide يا بعد از ساختن exe و با اجراي اون ؟


1. اجراي برنامه 16 بيتي (ide ها و کمپايلرهاي قديمي در حد بورلند سي نسخه هاي قديمي توربو سي و ميکروسافت سي و کوييک سي ) روي ويندوز اxp ميتونه چنين مشکلي ايجاد کنه. اين ويندوز فاقد مود real هست و داس اون عملا يک ماشين مجازي است (به چشم يک virtual pc که داس رو بوت کرده اما درست عمل نميکنه بهش نگاه کنيد). به نظر من مشکل شما از اين مورده چون اين خطا يک خطاي ويندوز هست که گرفتيد . در اينصورت يا در real dos بوت کنيد و کار کنيد (مثلا با ديسکت) يا راه بهترش نصب vmware که مجاني است و نصب داس روي اون هست که داس 7.1 که غير رسمي منتشر شده اما با هاردهاي بسيار بزرگ هم سازگاره (از لحاظ نشون دادن سايز فايل و حجم باقيمانده و ...) پيشنهاد ميکنم. اين روشي است که چندساليه استفاده ميکنم و تا حالا مشکلي نداشتم.

2. اگر در محيط IDE اين خطا رو ميگيريد احتمالا بخاطر قديمي بودن ide است مثلا ide ماکرو اسمبلر با سيستم هاي سريع و يا روي هاردديسک هاي بزرگ (بخاطر متغير 32 بيني که براي محاسبه حجم استفاده ميکنه) هنگ ميکنه . در اين موارد راه حل موقت اما موثر کمپايل کردن کد در کنسول و بدون استفاده از ide است يا استفاده از make که فوق العاده کارو آسون ميکنه

3. در ضمن بعضي اخلالات شناخته شده هستن . هر کمپايلري براي لينک کد نهايي يک بخش کد obj به obj کد شما اضافه ميکنه که در اين کد مثلا c0.obj آماده سازي stack انجام ميشه stack اختصاصي crt تنظيم ميشه و متغيرهاي گلوبال مربوطه ست ميشن . بعضي کمپايلرها کاراي ديگه اي هم ميکنن مثلا توربو پاسکال يک لوپ رو اجرا ميکنه که بتونه زمان تيک سي پي يو (عملا سرعت) رو براي sleep کردن بعدي محاسبه کنه . در اين بين اگر اختلالي پيش بياد با پيغام هاي خطايي که در اون کد هست مواجه ميشيد . مثلا توربوپاسکال 7 روي سي پي يو هاي سريع هم exe هايي که ميسازه اجرا نميشن . در اين موارد اگر نسخه جديدتري وجود داره معمولا مشکل رو حل ميکنه اگرم نبود پچ هايي هست که مشکل رو برطرف ميکنه

اگر جواب سوالهاي فوق رو بديد بيشتر ميتونم کمک کنم
ارادتمند
نعيمي

Major II
Major II
نمایه کاربر
پست: 258
تاریخ عضویت: پنج شنبه 29 تیر 1385, 3:36 am
محل اقامت: دانشگاه
سپاس‌های ارسالی: 6 بار
سپاس‌های دریافتی: 25 بار
تماس:

پست توسط borhan » سه شنبه 10 بهمن 1385, 9:07 pm

خواهش ميکنم يکي به من کمک کنه :sad:
زود ازدواج کردن اشتباهه،ولي دير ازدواج کردن اشتباهي بزرگتر..

Major I
Major I
نمایه کاربر
پست: 301
تاریخ عضویت: سه شنبه 14 شهریور 1385, 7:00 am
سپاس‌های ارسالی: 60 بار
سپاس‌های دریافتی: 44 بار

پست توسط bmyazdani » سه شنبه 10 بهمن 1385, 9:19 pm

کد: انتخاب همه

#include <stdio.h>
#include <conio.h>
#include <iostream.h>
typedef struct{
long int stid;
char name[20];                 
char major[20];
char city[20];
float avg;
int Valid;
}student;
char display(void);
cmpstr(char[],char[]);
int stdinput(student arr[],int size);
void sortid(student arr[],int size);
void sortname(student arr[],int size);
void sortavg(student arr[],int size);
void findid(student arr[],int size);
void findname(student arr[],int size);
int main(void)
{
student data[100];
int size=0;
char key;
while((key=display())!='7')
{
clrscr();
switch(key)
{

case '1':size=stdinput(data,size);
break;
case '2':sortid(data,size);
break;
case '3':sortname(data,size);
break;
case '4':sortavg(data,size);
break;
case '5':findid(data,size);
break;
case '6':findname(data,size);
break;
case '7':return 0;
}
}
return 0;
}
////////////////////////////////////////////////////////////////////////////////
char display(void)
{
clrscr();
char ch;
cout<<"Student's DataBase\n";
cout<<"------------------\n\n";
cout<<"\t 1)Enter New student."<<endl;
cout<<"\t 2)View List by ID."<<endl;
cout<<"\t 3)View List by Name."<<endl;
cout<<"\t 4)View List by Average."<<endl;
cout<<"\t 5)Find by ID."<<endl;
cout<<"\t 6)Find by Name."<<endl;
cout<<"\t 7)Exit"<<endl<<endl;
cout<<"Select:";
ch=getch();
return ch;
}
////////////////////////////////////////////////////////////////////////////////
int cmpstr(char str1[],char str2[])
{

int flag=0,i=0;
while(str1[i]||str2[i]&&!flag)
{
if(str1[i]>str2[i])
flag=1;
else if(str1[i]<str2[i])
flag=-1;

i++;
}
return(flag);
}
////////////////////////////////////////////////////////////////////////////////
void findname(student arr[],int size)
{
cout<<endl<<"Find Student by Name"
<<endl<<"-------------------"
<<endl<<"Enter Student Name";
char Name[25];
int i;
gets(Name);
for(i=0;i<size;i++)
if(!cmpstr(arr[i].name,Name))
break;
if(i<size)
cout<<(i+1)<<")"<<"\t"
<<arr[i].stid<<"\t\t"
<<arr[i].name<<"\t\t"
<<arr[i].avg<<"\t\t"
<<arr[i].major<<"\t\t"
<<arr[i].city<<endl;


else
cout<<endl<<" not found.";

getch();
}
////////////////////////////////////////////////////////////////////////////////
int stdinput(student arr[],int size)
{
int n;
cout<<endl<<"Enter New Student's Information:"
<<endl<<"--------------------------------"
<<endl<<"How many student?";

cin>>n;
for(int i=0;i<n;i++)
{
cout<<(i+1)<<")"<<endl;
cout<<"Name:";
gets(arr[size].name);
cout<<"ID:";
cin>>arr[size].stid;
cout<<"Major:";
gets(arr[size].major);
cout<<"City:";
gets(arr[size].city);
cout<<"Average:";
cin>>arr[size].avg;
cout<<endl;
size++;
}

cout<<endl<<"New entry.";
getch();
return(size);
}
////////////////////////////////////////////////////////////////////////////////
void sortid(student arr[],int size)
{
student temp;
int j;
cout<<endl<<"Studen's Information(Sorted by ID)"
<<endl<<"----------------------------------"
<<endl<<"ID\t\tName\t\tAverag\tMajor\tCity\n\n";
for(int i=0;i<size;i++)
{
j=i;
temp=arr[i];
while(j>0&&temp.stid<arr[j-1].stid)
{
arr[j]=arr[j-1];
j--;
}
arr[j]=temp;
}
for(int k=0;k<size;k++)
{
cout<<(k+1)<<")"<<"\t"
<<arr[k].stid<<"\t\t"
<<arr[k].name<<"\t\t"
<<arr[k].avg<<"\t\t"
<<arr[k].major<<"\t\t"
<<arr[k].city<<endl;
}

getch();
}

////////////////////////////////////////////////////////////////////////////////
void sortname(student arr[],int size)
{
student temp;
int j;
cout<<endl<<"Studen's Information(Sorted by Name)"
<<endl<<"----------------------------------"
<<endl<<"ID\t\tName\t\tAverag\tMajor\tCity\n\n";
for(int i=0;i<size;i++)
{

j=i;
temp=arr[i];
while(j>0&&cmpstr(arr[j-1].name,temp.name)>0)
{
arr[j]=arr[j-1];
j--;
}
arr[j]=temp;

}

for(int k=0;k<size;k++)
{
cout<<(k+1)<<")"<<"\t"
<<arr[k].stid<<"\t\t"
<<arr[k].name<<"\t\t"
<<arr[k].avg<<"\t\t"
<<arr[k].major<<"\t\t"
<<arr[k].city<<endl;
}

getch();
}
////////////////////////////////////////////////////////////////////////////////
void sortavg(student arr[],int size)
{
student temp;
int j;

cout<<endl<<"Studen's Information(Sorted by Average)"
<<endl<<"----------------------------------"
<<endl<<"ID\t\tName\t\tAverag\tMajor\tCity\n\n";
for(int i=0;i<size;i++)
{

j=i;
temp=arr[i];
while(j>0&&temp.avg<arr[j-1].avg)
{
arr[j]=arr[j-1];
j--;
}
arr[j]=temp;

}

for(int k=0;k<size;k++)
{
cout<<(k+1)<<")"<<"\t"
<<arr[k].stid<<"\t\t"
<<arr[k].name<<"\t\t"
<<arr[k].avg<<"\t\t"
<<arr[k].major<<"\t\t"
<<arr[k].city<<endl;
}


getch();
}
////////////////////////////////////////////////////////////////////////////////
void findid(student arr[],int size)
{
int n,i;
cout<<endl<<"Find Student by Std ID"
<<endl<<"----------------------"
<<endl<<"Enter Student ID:";
cin>>n;
for(i=0;i<size;i++)
if(arr[i].stid==n)
break;
if(i<size)
cout<<(i+1)<<")"<<"\t"
<<arr[i].stid<<"\t\t"
<<arr[i].name<<"\t\t"
<<arr[i].avg<<"\t\t"
<<arr[i].major<<"\t\t"
<<arr[i].city<<endl;



else
cout<<endl<<"Not found";
getch();
}

Major II
Major II
نمایه کاربر
پست: 258
تاریخ عضویت: پنج شنبه 29 تیر 1385, 3:36 am
محل اقامت: دانشگاه
سپاس‌های ارسالی: 6 بار
سپاس‌های دریافتی: 25 بار
تماس:

پست توسط borhan » سه شنبه 10 بهمن 1385, 9:33 pm

واقعا دستت درد نکنه... :razz:
ولي شما خودتون اين برنامه رو اجرا کردين؟
فکر کنم بازم مشکل داره...
يه اخطار جديد رو کامپيوتر من نشون ميده ولي نميدونم تقصير چيه :sad:
اخطار اينه:
general protection exception
processor fault
الان چيکار کنم؟ :lol:
زود ازدواج کردن اشتباهه،ولي دير ازدواج کردن اشتباهي بزرگتر..

Major I
Major I
نمایه کاربر
پست: 301
تاریخ عضویت: سه شنبه 14 شهریور 1385, 7:00 am
سپاس‌های ارسالی: 60 بار
سپاس‌های دریافتی: 44 بار

پست توسط bmyazdani » سه شنبه 10 بهمن 1385, 10:10 pm

من برنامه رو بدون مشکل اجرا کردم درست کار میکرد.با بورلند c++ 5 و توربو c
در مورد خطای بالا هم من هیچی نمی دونم :o
فکر کنم آقای athlon64x2 بتونه کمکت کنه
http://www.centralclubs.com/viewtopic.p ... ght=#78788

Major II
Major II
نمایه کاربر
پست: 258
تاریخ عضویت: پنج شنبه 29 تیر 1385, 3:36 am
محل اقامت: دانشگاه
سپاس‌های ارسالی: 6 بار
سپاس‌های دریافتی: 25 بار
تماس:

پست توسط borhan » سه شنبه 10 بهمن 1385, 10:35 pm

من با توربو c++ 4.5 اجرا کردم کار نميکنه :sad:
.
بابت زحمات شما هم خيلي دستتون درد نکنه :razz:
زود ازدواج کردن اشتباهه،ولي دير ازدواج کردن اشتباهي بزرگتر..

ارسال پست

بازگشت به “برنامه نويسي”