الســــــــــلام عليكم ورحمة الله وبركاته
اتمنا ان تكونوا في صحه وعافيه
كل اللي اطلبه منكم ان تخبروني ماهي اخطائي في كود البرنامج هذا
اولا سوف اشرح البرنامج وماهي فكرته
فكرة البرنامج هي ان نعمل طابور في اي مكان نفرض انه بنك مثلا
فطبعا هذا الطابور يوجد فيه اضافه وحذف ومثلا لوكان عندنا عدد الاماكن المتاحه هي 6
ودخلنا 6اشخاص ومن ثم بدنا نحذف فالحذف لايتم الا من بداية الاشخاص اللي ادخلوا هم اول من ينحذف يعني حذفا نفرض منهم 3 اشخاص واردنا ان نضيف شخص اخر برغم من انه عدد الاشخاص الذي وصل عندهم العدد هو 6 فيضيف شخص اخر بشكل يشبه الدائره على اسم اول شخص تم ادخاله وهكذا
نستخدم back للاضافه و front للحذف
frunt تقف عن اول شخص في الطابور
back اخر شخص فيه
شرح اخر عن طريق الارقام
مثلا
21 34 5 6
8 ........ 8
8 ........ 8
|| ........||
back .... front \\هنا مكان وقوف المؤشرات
الخطوه الثانيه نفرض اننا نريد حذف رقم 1
1 2 3 4 5 6
...8 ........8
..||........||
back..... front // هنا بانتقال الفرونت الى رقم 2 فهذا يعني انه تم حذف رقم واحد واصبح اول الطابور هو رقم 2 واخره 6
لو اردنا الطباعه الطابور
2 3 4 5 6 //هكذا يطبعه
الخطوه الثالثه لو اردنا اضافة رقم اخر مثلا 7
7 2 3 4 5 6
8 8
|| ||
front.. back // اصبح اخر الطابور هو 7 واعتبرها كان ال arry دائره
لو اردنا الطباعه من اول عنصر الى اخر عنصر تكون
2 3 4 5 6 7
الخطوه الثالثه لو طلب منا طباعة اول عنصر
2//سيطبع 2
الرابعه طباعة اخر عنصر
7 //سيطبع 7
وهذه هيه طريقة حلي يوجد بها اخطاء ولالاسف لا اعلم ماهيه فاتمنى ان تساعدوني
#include<iostream.h>
#include<string.h>
#include<stdio.h>
#include<conio.h>
const int max=6;
int front;
int back;
int count;
struct Queue
{
name;
id;
};
void intilization(int f);
Queue add(Queue x[max]);
void remove(Queue x[max]);
void display(Queue x[max]);
void main()
{
Queue x[max];
char choes;
char ans;
cout<<"menu";
cout<<"\n (A)dd";
cout<<"\n (R)emove";
cout<<"\n (F)irst";
cout<<"\n (L)ast";
cout<<"\n (D)isplay";
cout<<"\n (Q)uit";
do{
cout<<"\npleas choes from menu:";
cin>>choes;
switch(choes)
{
case 'A':add(x);
break;
case 'R':remove(x);
break;
case 'F':cout<<"\nthe first person:"<<x.name[front]<<"\nsocal security number:"<<x.id[front];
break;
case 'L':cout<<"\nthe last person:"<<x.name[back]<<"\nsocal security number:"<<x.id[back];
break;
case 'D':display(x);
break;
case 'Q':cout<<"exit";
break;
}
cout<<"\n we whant choes anther time y/n";
cin>>ans;
}while(ans=='y' || ans=='Y' );
getche();
}
//********fun intilization************
void intilization()
{
front=0;
back=max-1;
count=0;
};
//*************functoin add***********
Queue add(Queue x[max])
{
if (count<max)
{
count++;
back=(back+1)%max;
cin>>x.name[back]<<x.id[back];
}
else
cout<<"is full";
}
//*******fun remove************
void remove(Queue x[max])
{
if(count>0)
{
count--;
cout<<"the person remorv"<<x.name[front]<<"\nsocal security number:"<<x.id[front];
cout<<"\n size:"<<count;
front=(front+1)%max;
else
cout<<"is empty";
}
//***********fun display********
void display(Queue x[max])
{
cout<<"\people witing in the queue"<<"\t\t\tssn";
for(int i=front;i<back;i++)
{
cout<<"\n"<<x.name<<"\t\t\t"<<x.id;
}
cout<<"\n size:"<<count;
}ولكم مني جزيل الشكر