:( :( :(
الآن صادفتني المشكلة مرة أخرى وهي الترتيب!!!
قمت بعمل هذا الكود مرة ثانية ولكن يختلف عن سابقتها .فهذا الكود عبارة عن static queue
يعني البيانات تكون ادخالها بالFIFO
عملت كل شي صح ومتأكد منه بس الإختيار(الدالة 3 )للعرض
لم تمشي معي حاولت أن اجعلها تقوم بعرض نرتيب البيانات المدخلة في حال عرضها ولكن لم ينفع.أرجو مرة أخرى ان يفيدني من لديه عن الخطأ الذي اقترفته ويفيدني بلكود الصحيح الذي يقوم بعرض البيانات وبالترتيب التصاعدي:(
/* static queue */
#include<stdio.h>
#include<string.h>
# define max 5
int a;
int i;
int b;
int araivno;
struct data_type
{
int araivno;
char name[20];
char msg[30];
};
void add (struct data_type);
struct data_type remove1(void);
void display(void);
void disno(struct data_type);
void adjustq(void);
int rear = -1;
int count = 0;
struct data_type q[max];
main()
{
int option=0;
struct data_type tempdata;
clrscr();
do
{
printf("\n\n\n\n\t\t\t\t THE MENU");
printf("\n\t\t\t-----------------------------------");
printf("\n\n\t\t\t 1- Add\n");
printf("\t\t\t 2- Remove\n");
printf("\t\t\t 3- Display\n");
printf("\t\t\t 4- Display by number\n");
printf("\t\t\t 5- Quit\n");
printf("\n\t\t\t-----------------------------------");
printf("\n\t\t\t Enter your choice please:");
scanf(" %d",&option);
switch(option)
{
case 1:
clrscr();
if (count==max)
{
printf("\n\n\t\t\t Queue is FULL");
getch();
clrscr();
}
else
{
clrscr();
printf("\n\n\n\t\t\t Araival Number:");
scanf("%d",&tempdata.araivno);
printf("\n\t\t\t Name:");
scanf("%s",&tempdata.name);
printf("\n\t\t\t Message:");
scanf("%s",&tempdata.msg);
add (tempdata);
clrscr();
}
break;
case 2:
clrscr();
if (count==0)
{
printf("\n\n\t\t\t Queue is EMPTY");
getche();
}
else
{
tempdata=remove1();
clrscr();
printf("\n\n\n\n\t\t The Removed Araival Number: %d",tempdata.araivno);
printf("\n\n\t\t The Removed Name : %s",tempdata.name);
printf("\n\n\t\t The Removed Message : %s", tempdata.msg);
getche();
clrscr();
}
break;
case 3:
clrscr();
display();
break;
case 4:
clrscr();
a=0;
b=0;
printf("\n\n\n\n\t\t Enter Arrival Nnumber: ");
scanf("%d",&araivno);
for(i=0;i<count;i++)
{
tempdata=i[q];
if (araivno==tempdata.araivno)
{
a=1;
if(b==0)
{
printf("\t%s \t%s \t%s \n","Arrival No","Name","Message");
b=1;
}
printf("\t\t %d \t%s \t%s \n",tempdata.araivno,tempdata.name,tempdata.msg);
}
else
{
if(a==1)
{
a=1;
}
}
}
if(a==0)
{
printf("\n\n\t This number is not available \n\t Please try again ...\n");
getche();
clrscr();
}
break;
case 5:
clrscr();
printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t End of the Program\n");
getche();
default:
printf("\n\n\t\t\t Wrong Choice!!!! .... Try again");
break;
}
}
while (option!=5);
}
void add (struct data_type data)
{
rear = rear + 1;
count = count + 1;
q[rear] = data;
}
struct data_type remove1(void)
{
struct data_type temp;
temp = q[0];
adjustq();
return temp;
}
void display(void)
{
struct data_type data;
int araivno;
char name[20];
char msg[30];
int opt=0;
int f=0;
int i;
do
{
clrscr();
for (i=f; i<f+4; i++)
{
data = q;
printf("\t%s \t%s \t%s \n","Arrival No","Name","Message");
printf("\t\t %d \t%s \t%s \n",data.araivno,data.name,data.msg);
printf("\n\t\t================================\n");
}
printf("\n\n Do you want to continue?? \n\n\t\t 1-Yes \n\t\t 2-No\n\n\t\t");
scanf("%d",&opt);
f=f+2;
clrscr();
}
while (opt==1);
}
void adjustq(void)
{
int i;
for (i=0; i<rear; i++)
{
q = q[i+1];
rear = rear - 1;
count = count -1;
}
}Attached Files Booking.C (3.5 KB, 1 views)مرفق لكم ملف من البرنامج
البرنامج أشغله ب
TURBO C
