صفحه 1 از 2

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

ارسال شده: سه‌شنبه ۱۰ بهمن ۱۳۸۵, ۱:۴۹ ق.ظ
توسط borhan
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]   

ارسال شده: سه‌شنبه ۱۰ بهمن ۱۳۸۵, ۱:۴۲ ب.ظ
توسط borhan
يعني هيچکي نيست به من کمک کنه؟ :sad:

اخطار در C ؟!!

ارسال شده: سه‌شنبه ۱۰ بهمن ۱۳۸۵, ۲:۲۸ ب.ظ
توسط borhan
این اخطار در C چرا پیش میاد؟
علت ای اخطار در C چیه؟
general protection exception
processor fault

ارسال شده: سه‌شنبه ۱۰ بهمن ۱۳۸۵, ۳:۱۹ ب.ظ
توسط bmyazdani
این خط :
Please Login or Register to see this code
چی هست؟ مطمئنی تعریفش کردی.فکر کنم یک تابع بوده :-(که جا افتاده.
شرمنده کد رو نخوندم :o

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

ارسال شده: سه‌شنبه ۱۰ بهمن ۱۳۸۵, ۴:۲۲ ب.ظ
توسط borhan
دستتون درد نکنه انارو درست کردم ولي الان يه مشکلديگه ميکيره که نميدونم تقصير چيه :sad:
اين اخطار رو ميده:
general protection exception
processor fault
الان چيکار کنم؟

ارسال شده: سه‌شنبه ۱۰ بهمن ۱۳۸۵, ۴:۳۸ ب.ظ
توسط athlon64x2
سلام دوست عزيز

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 هايي که ميسازه اجرا نميشن . در اين موارد اگر نسخه جديدتري وجود داره معمولا مشکل رو حل ميکنه اگرم نبود پچ هايي هست که مشکل رو برطرف ميکنه

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

ارسال شده: سه‌شنبه ۱۰ بهمن ۱۳۸۵, ۹:۰۷ ب.ظ
توسط borhan
خواهش ميکنم يکي به من کمک کنه :sad:

ارسال شده: سه‌شنبه ۱۰ بهمن ۱۳۸۵, ۹:۱۹ ب.ظ
توسط bmyazdani
Please Login or Register to see this code

ارسال شده: سه‌شنبه ۱۰ بهمن ۱۳۸۵, ۹:۳۳ ب.ظ
توسط borhan
واقعا دستت درد نکنه... :razz:
ولي شما خودتون اين برنامه رو اجرا کردين؟
فکر کنم بازم مشکل داره...
يه اخطار جديد رو کامپيوتر من نشون ميده ولي نميدونم تقصير چيه :sad:
اخطار اينه:
general protection exception
processor fault
الان چيکار کنم؟ :lol:

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

ارسال شده: سه‌شنبه ۱۰ بهمن ۱۳۸۵, ۱۰:۳۵ ب.ظ
توسط borhan
من با توربو c++ 4.5 اجرا کردم کار نميکنه :sad:
.
بابت زحمات شما هم خيلي دستتون درد نکنه :razz: