مشروع متكامل لإدارة الموظفين في لغة ++c -مشاريع بلغة c++


مشروع متكامل لإدارة الموظفين في لغة ++c
Employee’s Management System

شرح المشروع :-

هذا المشروع يقوم او يحتوي على المهام التالية:

1- اضافة عدد n من سجلات الموظفين  واسم الدالة هي ()build
2- طباعه سجلات كافة الموظفين واسم الدالة هي ()list
3- اضافة سجل واحد من الموظفين واسم الدالة هي ()insert
4- حذف سجل معين من سجلات الموظفين واسم الدالة هي ()deletes
5- تعديل سجلات الموظفين واسم الدالة هي ()edit وفي هذه الدالة هنالك دوال اخرى مرتبطة بها ,وهذه الدوال كتالي:

- داله editname والتي تقوم بتعديل اسم الموظف فقط.
- داله editcode والتي تقوم بتعديل كود الموظف فقط.
- داله editexp والتي تقوم بتعديل سنين الخبرة للموظف فقط.
- داله editage والتي تقوم بتعديل عمر الموظف فقط.
- داله editdes والتي تقوم بتعديل تأريخ تعيين الموظف فقط.

6- البحث عن الموظفين واسم الدالة هي ()search .
6- ترتيب الموظفين واسم الدالة هي ()sort هذه الدالة هنالك دوال اخرى مرتبطة بها مثل دالة ()edit
-ترتيب حسب الاسم
-ترتيب حسب العمر
-ترتيب حسب سنين الخبر
-ترتيب حسب الكود
الخ


كود البرنامج

#include <iostream>
#include <windows.h>
#include <fstream>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <cctype>
#include <conio.h>
#include <ctime>
#include <dos.h>
#include <iomanip>

#define max 20

using namespace std;

struct employee

{

 char name[20];

 long int code;

 char designation[20];

 int exp;

 int age;

};

int num;

employee emp[max],tempemp[max],sortemp[max],sortemp1[max];

int main()

{

 system("cls");

 void build();

 void list();

 void insert();

 void deletes();

 void edit();

 void search();

 void sort();

 char option;

 void menu();

 menu();

 while((option=cin.get())!='e')

 {

  switch(option)

  {

   case '1':

         build();

         break;

   case '2':

         list();

         break;

   case '3':

         insert();

         break;

   case '4':

         deletes();

         break;

   case '5':

       edit();

        break;

   case '6':

        search();

        break;

   case '7':

         sort();

         break;

  }

   menu();

  }

  return 0;

 }

 void menu()

 {

  system("cls");

 // highvideo();

cout<<"          ";

printf("\n*****  Employees Management System 1.0 ***** ");



//normvideo();

cout<<endl;

cout<<"             ";

cout<<"\n\t\t Press  1---->Insert Many Records Of Employees  ";

cout<<"             ";

cout<<"\n\t\t Press  2---->Print List Of The Employee Records  ";

cout<<"             ";

cout<<"\n\t\t Press  3---->Insert New Employee        ";

cout<<"             ";

cout<<"\n\t\t Press  4---->Delete An Employee Record         ";

cout<<"             ";

cout<<"\n\t\t Press  5---->Edit An Employee Record           ";

cout<<"             ";

cout<<"\n\t\t Press  6---->Search for Employee          ";

cout<<"             ";

cout<<"\n\t\t Press  7---->Sort The List Of Employee          ";

cout<<"             ";

cout<<"\n\t\t Press  e---------->Exit Program              ";

cout<<"             ";

cout<<"\n\n \t\t Select Your Option Please ====> ";

}

// داله اضافة عدد من  الموظفين
void build()

{


 system("cls");

// highvideo();

 printf("Build The Table");

 cout<<endl;

 //normvideo();
 //عدد السجلات التي تريد ادخالها
 cout<<"maximum number of entries  -----  >  20"<<endl;

 cout<<"how many do you want    ----->";

 cin>>num;

 cout<<"Enter The Following Items"<<endl;

 for(int i=0;i<=num-1;i++)

 {

  cout<<" Name  ";

  cin>>emp[i].name;

  cout<<"Code  ";

  cin>>emp[i].code;

  cout<<"Designation  ";

  cin>>emp[i].designation;

  cout<<"Years of Experience  ";

  cin>>emp[i].exp;

  cout<<"Age  ";

  cin>>emp[i].age;

 }

  cout<<"going to main menu";

 Sleep(500);

}

//  داله طباعه كافة الموظفين
void  list()

{

 system("cls");

// highvideo();

 printf("       ********List The Table********");

 cout<<endl;

 //normvideo();

 cout<<"     Name     Code     Designation     Years(EXP)     Age "<<endl;

 cout<<"    ------------------------------------------------------"<<endl;

 for(int i=0;i<=num-1;i++)

 {

  cout<<setw(13)<<emp[i].name;

  cout<<setw(6)<<emp[i].code;

  cout<<setw(15)<<emp[i].designation;

  cout<<setw(10)<<emp[i].exp;

  cout<<setw(15)<<emp[i].age;

  cout<<endl;

 }

  cout<<"going to main menu";

 getch();

  }
// داله اضافة واحد من  الموظفين
  void insert()

  {

  system("cls");

  int i=num;

  num+=1;

 // highvideo();

  printf("Insert New Record");

  cout<<endl;

  //normvideo();

  cout<<"Enter The Following Items"<<endl;

  cout<<"Name  ";

  cin>>emp[i].name;

  cout<<"Code  ";

  cin>>emp[i].code;

  cout<<"Designation  ";

  cin>>emp[i].designation;

  cout<<"Years of Experience  ";

  cin>>emp[i].exp;

  cout<<"Age  ";

  cin>>emp[i].age;

  cout<<endl<<endl;

  cout<<"going to main menu";

 Sleep(500);


  }


// داله حذف  الموظفين
  void deletes()

  {

   system("cls");

  // highvideo();

   int code;

   int check;

   printf("Delete An Entry");

   //normvideo();

   cout<<endl;

   cout<<"Enter An JobCode To Delete That Entry  ";

   cin>>code;

   int i;

   for(i=0;i<=num-1;i++)

   {

    if(emp[i].code==code)

    {

      check=i;

    }

   }

   for(i=0;i<=num-1;i++)

   {

    if(i==check)

    {

    continue;

    }

    else

    {

    if(i>check)

    {

     tempemp[i-1]=emp[i];

    }

    else

    {

     tempemp[i]=emp[i];

    }

     }

   }

  num--;


  for(i=0;i<=num-1;i++)

  {

   emp[i]=tempemp[i];

  }

 }

// داله تعديل سجلات  الموظفين
void edit()

{

 system("cls");

 int jobcode;

// highvideo();

 printf("          Edit An Entry           ");

 cout<<endl;

 cout<<endl;

 int i;

 void editmenu();

 void editname(int);

 void editcode(int);

 void editdes(int);

 void editexp(int);

 void editage(int);

 char option;

 //normvideo();

 cout<<"Enter An jobcode To Edit An Entry----  ";

 cin>>jobcode;

  editmenu();

 for(i=0;i<=num-1;i++)

   {

    if(emp[i].code==jobcode)

    {


while((option=cin.get())!='q')

{

      switch(option)

      {

       case 'n':

            editname(i);

            break;

       case 'c':

            editcode(i);

            break;

       case 'd':

            editdes(i);

            break;

       case 'e':

            editexp(i);

            break;

       case 'a':

           editage(i);

           break;

     }

   editmenu();

    }

  }

  }

  }

  void editmenu()

  {

   system("cls");

   cout<<"        What Do You Want To edit";

   cout<<"          n--------->Name ";

   cout<<"          c--------->Code ";

   cout<<"          d--------->Designation";

   cout<<"          e--------->Experience ";

   cout<<"          a--------->Age        ";

   cout<<"              q----->QUIT                            ";

   cout<<"   Options Please ---->>>  ";

  }

  void editname(int i)

  {

     cout<<"Enter New Name----->  ";

     cin>>emp[i].name;

  }

  void editcode(int i)

  {

   cout<<"Enter New Job Code----->  ";

   cin>>emp[i].code;

  }

  void editdes(int i)

  {

   cout<<"enter new designation----->  ";

   cin>>emp[i].designation;

  }

  void editexp(int i)

  {

   cout<<"Enter new Years of Experience";

   cin>>emp[i].exp;

  }

  void editage(int i)

  {

   cout<<"Enter new Age ";

   cin>>emp[i].age;

  }

// داله البحث عن الموظفين
void search()

{

 system("cls");

 // highvideo();

  printf("Welcome To Search Of Employee Database ");

  //normvideo();

  cout<<endl;

  cout<<endl;

  int jobcode;

  cout<<"You Can Search Only By Jobcode Of An Employee";

  cout<<"Enter Code Of An Employee                    ";

 cin>>jobcode;

 for(int i=0;i<=num-1;i++)

   {

    if(emp[i].code==jobcode)

    {


    cout<<"     Name     Code     Designation     Years(EXP)     Age ";

 cout<<"     ------------------------------------------------------                                  ";

  cout<<setw(13)<<emp[i].name;

  cout<<setw(6)<<emp[i].code;

  cout<<setw(15)<<emp[i].designation;

  cout<<setw(10)<<emp[i].exp;

  cout<<setw(15)<<emp[i].age;

  cout<<endl;

 }


  }

    cout<<"going to main menu";

 getch();



}

// داله ترتيب الموظفين
void sort()

{

 system("cls");

// highvideo();

 printf("Sort The Databse By JobCode");

 //normvideo();

 void sortmenu();

 void sortname();

 void sortcode();

 void sortdes();

 void sortexp();

 char option;

 void sortage();


 cout<<endl;

 cout<<endl;

 sortmenu();

 while((option=cin.get())!='q')

 {

  switch(option)

  {

   case 'n':

          sortname();

          break;

   case 'c':

          sortcode();

          break;

   case 'd':

          sortdes();

          break;

   case 'e':

          sortexp();

          break;

   case 'a':

          sortage();

          break;

   }

   sortmenu();

  }

 }



 void sortmenu()

 {

    system("cls");

   cout<<"          What Do You Want To edit";

   cout<<"          n--------->Name         ";

   cout<<"          c--------->Code         ";

   cout<<"          d--------->Designation  ";

   cout<<"          e--------->Experience   ";

   cout<<"          a--------->Age          ";

   cout<<"                               q----->QUIT            ";

   cout<<"   Options Please ---->>>  ";  }



// داله ترتيب الموظفين حسب الاسم
void sortname()

{

 system("cls");

 int i,j;

 struct employee temp[max];

 for(i=0;i<=num-1;i++)

 {

  sortemp1[i]=emp[i];

 }

 for(i=0;i<=num-1;i++)

  {

   for(j=0;j<=num-1;j++)

   {

    if(strcmp(sortemp1[i].name,sortemp1[j].name)<=0)

    {

     temp[i]=sortemp1[i];

     sortemp1[i]=sortemp1[j];

     sortemp1[j]=temp[i];

    }

   }

 }


 for( i=0;i<=num-1;i++)

   {


    cout<<"     Name     Code     Designation     Years(EXP)     Age ";

 cout<<"     ------------------------------------------------------                                  ";

 for( i=0;i<=num-1;i++)

 {

  cout<<setw(13)<<sortemp1[i].name;

  cout<<setw(6)<<sortemp1[i].code;

  cout<<setw(15)<<sortemp1[i].designation;

  cout<<setw(10)<<sortemp1[i].exp;

  cout<<setw(15)<<sortemp1[i].age;

  cout<<endl;

 }

  cout<<"Press Any Key To Go Back";

 getch();


} }


void sortcode()

{

 system("cls");

 int i,j;

 struct employee temp[max];

 for(i=0;i<=num-1;i++)

 {

  sortemp1[i]=emp[i];

 }

 for(i=0;i<=num-1;i++)

  {

   for(j=0;j<=num-1;j++)

   {

    if(sortemp1[i].code<sortemp1[j].code)

    {

     temp[i]=sortemp1[i];

     sortemp1[i]=sortemp1[j];

     sortemp1[j]=temp[i];

    }

   }

 }


 for( i=0;i<=num-1;i++)

   {


    cout<<"     Name     Code     Designation     Years(EXP)     Age ";

 cout<<"     ------------------------------------------------------                                  ";

 for( i=0;i<=num-1;i++)

 {

  cout<<setw(13)<<sortemp1[i].name;

  cout<<setw(6)<<sortemp1[i].code;

  cout<<setw(15)<<sortemp1[i].designation;

  cout<<setw(10)<<sortemp1[i].exp;

  cout<<setw(15)<<sortemp1[i].age;

  cout<<endl;

 }

  cout<<"Press Any Key To Go Back";

 getch();


} }



void sortdes()

{

 system("cls");

 int i,j;

 struct employee temp[max];

 for(i=0;i<=num-1;i++)

 {

  sortemp1[i]=emp[i];

 }

 for(i=0;i<=num-1;i++)

  {

   for(j=0;j<=num-1;j++)

   {

    if(strcmp(sortemp1[i].designation,sortemp1[j].designation)<=0)

    {

     temp[i]=sortemp1[i];

     sortemp1[i]=sortemp1[j];

     sortemp1[j]=temp[i];

    }

   }

 }


 for( i=0;i<=num-1;i++)

   {


    cout<<"     Name     Code     Designation     Years(EXP)     Age";

 cout<<"     ------------------------------------------------------                                 ";

 for( i=0;i<=num-1;i++)

 {

  cout<<setw(13)<<sortemp1[i].name;

  cout<<setw(6)<<sortemp1[i].code;

  cout<<setw(15)<<sortemp1[i].designation;

  cout<<setw(10)<<sortemp1[i].exp;

  cout<<setw(15)<<sortemp1[i].age;

  cout<<endl;

 }

  cout<<"Press Any Key To Go Back";

 getch();


} }


void sortage()

{

 system("cls");

 int i,j;

 struct employee temp[max];

 for(i=0;i<=num-1;i++)

 {

  sortemp1[i]=emp[i];

 }

 for(i=0;i<=num-1;i++)

  {

   for(j=0;j<=num-1;j++)

   {

    if(sortemp1[i].age<sortemp1[j].age)

    {

     temp[i]=sortemp1[i];

     sortemp1[i]=sortemp1[j];

     sortemp1[j]=temp[i];

    }

   }

 }


 for( i=0;i<=num-1;i++)

   {


    cout<<"     Name     Code     Designation     Years(EXP)     Age";

 cout<<"     ------------------------------------------------------                                 ";

 for( i=0;i<=num-1;i++)

 {

  cout<<setw(13)<<sortemp1[i].name;

  cout<<setw(6)<<sortemp1[i].code;

  cout<<setw(15)<<sortemp1[i].designation;

  cout<<setw(10)<<sortemp1[i].exp;

  cout<<setw(15)<<sortemp1[i].age;

  cout<<endl;

 }

  cout<<"Press Any Key To Go Back";

 getch();


} }



void sortexp()

{

 system("cls");

 int i,j;

 struct employee temp[max];

 for(i=0;i<=num-1;i++)

 {

  sortemp1[i]=emp[i];

 }

 for(i=0;i<=num-1;i++)

  {

   for(j=0;j<=num-1;j++)

   {

    if(sortemp1[i].exp<sortemp1[j].exp)

    {

     temp[i]=sortemp1[i];

     sortemp1[i]=sortemp1[j];

     sortemp1[j]=temp[i];

    }

   }

 }


 for( i=0;i<=num-1;i++)

   {


    cout<<"     Name     Code     Designation     Years(EXP)     Age ";

 cout<<"  ------------------------------------------------------ ";

 for( i=0;i<=num-1;i++)

 {

  cout<<setw(13)<<sortemp1[i].name;

  cout<<setw(6)<<sortemp1[i].code;

  cout<<setw(15)<<sortemp1[i].designation;

  cout<<setw(10)<<sortemp1[i].exp;

  cout<<setw(15)<<sortemp1[i].age;

  cout<<endl;

 }

  cout<<"Press Any Key To Go Back";

 getch();


} }

مشاهدة المزيد

برنامج لطباعة الكروت بالارقام في المايكروتك( شبكات واي فاي ) مجانا

برنامج لطباعة الكروت بالارقام في المايكروتك

برنامج ادارة شبكات المايكروتك و طباعة الكروت بالارقام


طباعه الكروت بالارقام والحروف
طباعه الكروت من ملف csv
الحفظ الى ملف csv
انشاء مستخدمين ل user manager
انشاء طباعه الكروت بالارقام




النافذه الرئيسية



نافذه انشاء المستخدمين




نافذه الطباعه



فيديو




برمجة / عدي دماج-اليمن

ت/00967733474886

رابط تحميل البرنامج

انقر هنا

اذا حدثت مشكله اثناء تثبيت البرنامج يُرجى تحميل

Microsoft .NET Framework 3.5

على الرابط

جديد

الاصدار الثاني من البرنامج

 MUMS 2.0

انقر هنا

مشاهدة المزيد

كيف تحصل على 1000 جيجابايت للتخزين السحابي مجاناً

كيف تحصل على 1000 جيجابايت للتخزين السحابي مجاناً

كيف تحصل على 1000 جيجابايت للتخزين السحابي مجاناً 




يحتاج الكثير من المستخدمين إلى تخزين ملفاتهم سحابياً باستخدام إحدى خدمات التخزين السحابي مثل دروب بوكس، وكما نعلم فإن أغلب خدمات التخزين السحابي تتيح مساحة مجانية محدودة للمستخدمين، لكن ما رأيك بالحصول على مساحة تخزينية قدرها 1000 جيجابايت مجاناً (1 تيرابايت).


تطبيق Pibox المتوفر مجاناً لمستخدمي نظام أندرويد يتيح لك الحصول على خدمة تخزين سحابية قدرها 5 جيجابايت مجاناً، ويمكن من خلال التطبيق التراسل الفوري مع أصدقائك وإرسال ملفات كبيرة الحجم بسرعة وسهولة دون فقدان الجودة مثل إرسال فيديوهات مصورة بدقة 4K أو صور بصيغة RAW.



ويتيح التطبيق الحصول على مساحة تخزينية إضافية بالمجان عبر دعوة أصدقائك للاشتراك في التطبيق، حيث يُقدم التطبيق 3 جيجابايت لكل صديق تقوم بدعوته، وفي حال دعوتك لخمسة أصدقاء فقط فإن التطبيق سيوفر لك مساحة مجانية قدرها 50 جيجابايت.



وعند دعوتك من 7 – 9 أصدقاء فستحصل على 100 جيجابايت مجاناً، بينما ستحصل على 1000 جيجابايت مجاناً في حال دعوتك لعشرة أصدقاء للتسجيل في التطبيق.



مع العلم أن العرض الأخير سيكون متوفر فقط لأول 10 آلاف مستخدم للتطبيق، في حين العروض السابقة ستكون متاحة للجميع.
مشاهدة المزيد

جفوري تطلق نسخة بجلد التمساح الأميركية من الهاتف Galaxy S7 Edge

جفوري تطلق نسخة بجلد التمساح الأميركية من الهاتف Galaxy S7 Edge

جفوري تطلق نسخة بجلد التمساح الأميركية من الهاتف Galaxy S7 Edge







كشفت شركة “جفوري” GIVORI لتزيين وترصيع الهواتف عن نسخة من الهاتف الذكي جالاكسي إس7 إيدج Galaxy S7 Edge من سامسونج مع تصميم جديد ضمن سلسلة تصاميم “سيينا”.


وتقول جفوري إنها تحول أفضل الهواتف الذكية إلى إكسسوارات فاخرة، من خلال تعديلها باستخدام تصاميم مبتكرة تتبع في تنفيذها أرفع درجات الحرفية وتستخدم أرقى المواد.


وأضافت الشركة أن مجموعة الهواتف المعدلة ضمن علامة “سيينا” تتسم بالأناقة المبسطة واستخدام جلد التمساح ذي اللون البني المعروف بالاسم “سيينا” والذي يُضفي لمسة تعتيق مميزة على الهاتف الذي يأتي ببدن مطلي بالذهب الوردي.


وتُستخدم في تصميم الهاتف الذكي أفضل أنواع جلد التمساح الأميركي، المعروفة بمتانتها العالية وتتسم بملمس أكثر ليونة من ملمس جلد التمساح التقليدي. ويُعد جلد التمساح واحدًا من المواد الخام التي تحظى بإقبال كبير من مصنّعي السلع الفاخرة، ويمتاز بالنعومة وبتقاسيم نافرة تشكّل نمطًا متسقًا أكثر من غيره من الجلود.




وتقول جفوري إن الهاتف الذكي جالاكسي إس7 إيدج بتصميم “سيينا” استطاع بالأناقة البالغة التي استقطبت في السابق اهتمام محبي هاتف آيفون، أن يثير انتباه محبي هواتف الشركة الكورية المصنّعة لهواتف أندرويد.


وتتوفر هذه التصاميم بسعر 1،640 دولارًا في كل من “هارفي نيكولز” دبي، و”بلومينغديلز” دبي، وبوتيكات مختارة من “داماس” للمجوهرات، ومتاجر مختارة من محلات “محمد رسول خوري وأولاده” في أبوظبي، ومتاجر فيرجن ميغاستور في دبي وقطر، إضافة إلى عدد من متاجر “اكسيوم تليكوم” في دولة الإمارات والمملكة العربية السعودية.



يُشار إلى أن شركة جفوري تعمل على تعديل كل هاتف وبنائه باستخدام أرقى المواد، كالمعادن النفيسة والألماس الراقي والجلود الممتازة والعناصر النادرة والعتيقة. ويتم إجراء جميع عمليات التعديل والتصميم يدويًا وبدقة عالية في إيطاليا وبريطانيا وسويسرا، من أجل ابتكار نسخ حصرية من بعض أكثر الهواتف الذكية رواجًا.



ويجري طلاء أجهزة جفوري بطبقة فلمية نانووية مقاومة للأكسدة وآثار بصمات الأصابع وشحوب اللون، كما تتمتع بدعم واسع بعد البيع، يشمل ضمانًا لسنة على جميع البرمجيات وعناصر الزينة والجواهر.


ويمكن لعملاء جفوري كذلك الاستفادة من خدمة الاستلام والتوصيل للهواتف التي تحتاج إلى تصليح خلال الاثني عشر شهرًا الأولى من تاريخ الشراء.


مشاهدة المزيد

17 ألف دولار سعر "أفضل هاتف ذكي" على الإطلاق



17 ألف دولار سعر "أفضل هاتف ذكي" على الإطلاق







هل أنت مستعد لتنفق 17 ألف دولار أمريكي على هاتف ذكي؟ لا تتردد، إذ أن هذا الهاتف الذكي حصل على لقب "أفضل هاتف ذكي في العالم،" وحضر إطلاقه كبار الشخصيات مثل نجوم هوليوود ليوناردو دي كابريو وتوم هاردي.

وقد صممت شركة "سيرين لابز" الإسرائيلية الجديدة، هاتف "سولارين" الذكي، ليتضمن تقنية تشفير لحماية مكالمات المستخدمين ورسائلهم، تضاهي في فعّاليتها هواتف العسكرية، وتستهدف جمهور مكون من كبار رجال الأعمال والمشاهير وكبار الشخصيات وفاحشي الثراء.


وقد بدأت "سيرين لابز" بتطوير الهاتف الذكي منذ عامين ونصف، ليكون المنتج الأول الذي تكشف الشركة عنه منذ انطلاقها.


ويزعم مسؤولو الشركة، أن لدى هاتف "سولارين" الذكي والذي يعمل على برنامج أندرويد، أفضل شاشة وأفضل كاميرا هاتف ذكي وأعلى مكبرات صوت، وخدمة 4G LTE أفضل من أي هاتف آخر، واتصال واي فاي تصل سرعته إلى عشر مرات أكثر من سرعة شبكات اليوم.


أما بالنسبة للتصميم، فيعتمد الهاتف تصميماً بسيطًاً، إذ أنه مصنوع من التيتانيوم والجلد بحسب ذوق مصممه، الفنان الصناعي الشهير كريم رشيد، الذي سبق وأن عمل مع جورجيو أرماني، وأليسي وفوف كليكو.

ويكلف سعر النموذج الأساسي من الهاتف 16,560 دولار أمريكي مع سعر ضرائب الولايات المتحدة الأمريكية.
مشاهدة المزيد

آبل تطلق نسخة مُحدثة من نظام iOS 9.3.2 موجهة لأجهزة آيباد برو

آبل تطلق نسخة مُحدثة من نظام iOS 9.3.2 موجهة لأجهزة آيباد برو


آبل تطلق نسخة مُحدثة من نظام iOS 9.3.2 موجهة لأجهزة آيباد برو 





أصدرت شركة آبل يوم أمس نسخة جديدة من نظامها التشغيلي iOS 9.3.2 مُخصصة لحواسيب 9.7 إنش آيباد برو اللوحية، ويعمل التحديث على حل المشكلة التي تسببت بمشاكل لبعض أجهزة الحواسيب اللوحية التي ظهرت بعد تثبيت تحديث نسخة iOS 9.3.2.


ويُمكن لمُستخدمي حواسيب آيباد برو 9.7 إنش تحميل النسخة الجديدة من نظام التشغيل iOS 9.3.2 برقم البناء 13F72 عبر التحديثات الهوائية، كما يُمكن تثبيتها على أي جهاز آيباد برو يعمل على إصدار نظام تشغيل أقدم من الحالي.


ويتوفر تحديث نظام التشغيل iOS 9.3.2 الجديد للتحميل لأجهزة آيباد برو نسخة واي فاي عبر الرابط، ولأجهزة آيباد برو النسخة العادية عبر الرابط.


وكانت الشركة قد أصدرت التحديث الجديد iOS 9.3.2 لهواتف آيفون وحواسب آيباد اللوحية منتصف شهر أيار/مايو الماضي، ليقوم عدد من مُستخدمي حواسبب آيباد برو بعد فترة وجيزة بالإبلاغ عن ظهور المشكلة المعروفة باسم “الخطأ 56” Error 56، وذلك أثناء محاولة تثبيت التحديث.


ويتعين على المستخدم بعد ظهور الخطأ وصل حاسبه اللوحي بجهاز حاسب لإجراء عملية استعادة للنظام عبر برنامج آيتونز، ومع ذلك لم يفلح المستخدمون بحل المشكلة.


وأقرت الشركة بوجود المشكلة التي تؤثر على عدد صغير من حواسيب آيباد، وقالت إنها تعمل على إصلاحها وسترسل تحديث جديد في أقرب وقت ممكن.


كما قررت شركة آبل سحب التحديث الذي يحمل الرقم 9.3.2 من نظام آي أو إس التابع لها من حواسب آيباد اللوحية ريثما يتم إصلاحه، وذلك بعد أن واجه العديد من المستخدمين مشكلة مع هذا التحديث.
مشاهدة المزيد

واجهة سطر الأوامر لراوتر سيسكو (Router Command-Line Interface (CLI


Command-Line Interface (CLI)
واجهة سطر الأوامر


ستتعلم في هذا الموضوع عن كيفية استخدام CLI (واجهة سطر الأوامر) لسيسكو  وذلك لضمان تسليم بيانات على شبكة فيها موجّهات.

ستتعلم كيفية:


· تسجيل الدخول بواسطة كلمة مرور المستخدم

· دخول الصيغة ذات الامتيازات بواسطة كلمة مرور التمكين

· التعطيل أو الإنهاء

بالإضافة إلى ذلك، ستتعلم كيفية استعمال ميزات المساعدة المتقدمة التالية:


· إكمال الأوامر وطلبات الإدخال

· فحص التركيب النحوي

أخيراً، ستتعلم كيفية استعمال ميزات التحرير المتقدمة التالية:


· التمرير التلقائي للسطر

· أدوات تحكم المؤشر

· دارئ المحفوظات مع استرداد الأوامر

· نسخ ولصق، المتوفرين في معظم الحاسبات

  •  واجهة الموجّه (Router Interface)

1- صيغة المستخدم والصيغة ذات الامتيازات


لضبط تكوين موجّهات سيسكو، يجب عليك إما الوصول إلى الواجهة على الموجّه بواسطة محطة طرفية أو الوصول إلى الموجّه عن بُعد. عند الوصول إلى الموجّه، يجب أن تسجّل الدخول إلى الموجّه قبل أن تكتب أي أوامر أخرى.

لأهداف أمنية، الموجّه له مستويي وصول إلى الأوامر

- صيغة المستخدم : المهام النموذجية تتضمن تلك التي تفحص حالة الموجّه. في هذه الصيغة، تغييرات تكوين الموجّه غير مسموحة.

- الصيغة ذات الامتيازات : المهام النموذجية تتضمن تلك التي تغيّر تكوين الموجّه.

* عندما تسجّل الدخول إلى الموجّه، سترى سطر المطالبة التابع لصيغة المستخدم. الأوامر المتوفرة عند مستوى المستخدم هذا هي مجموعة فرعية من الأوامر المتوفرة عند المستوى ذي الامتيازات. معظم تلك الأوامر تتيح لك إظهار معلومات من دون تغيير إعدادات تكوين الموجّه.

* للوصول إلى مجموعة الأوامر الكاملة، عليك أولاً تمكين الصيغة ذات الامتيازات. عند سطر المطالبة <، اكتب enable. عند سطر المطالبة password، اكتب كلمة المرور التي تم ضبطها بواسطة الأمر enable secret. بعدما تكون قد أكملت خطوات تسجيل الدخول، يتغيّر سطر المطالبة إلى # (علامة الباوند) لأنك الآن في الصيغة ذات الامتيازات. من الصيغة ذات الامتيازات، يمكنك الوصول إلى صيغ كصيغة التكوين العمومي وصيغ معيّنة أخرى منها:

* الواجهة

* الواجهة الفرعية

* السطر

* الموجّه

* خريطة التوجيه

* عدة صيغ تكوين إضافية

* لتسجيل الخروج من الموجّه، اكتب exit.

- يختلف إخراج الشاشة بناءً على مستوى نظام سيسكو IOS وعلى تكوين الموجّه.

2- لائحة أوامر صيغة المستخدم


كتابة علامة استفهام (?) عند سطر مطالبة صيغة المستخدم أو سطر مطالبة الصيغة ذات الامتيازات تعرض لائحة مفيدة بالأوامر الشائعة الاستعمال. لاحظ --More-- في أسفل العرض المثال. تعرض الشاشة 22 سطراً في وقت واحد. لذا ستحصل أحياناً على النص --More-- في أسفل الشاشة. يحدّد هذا النص أن هناك عدة شاشات متوفرة كإخراج؛ بمعنى آخر، لا يزال هناك المزيد من الأوامر. هنا، أو في أي مكان آخر في نظام سيسكو IOS، كلما ظهر النص --More--، يمكنك متابعة معاينة الشاشة المتوفرة التالية بضغط مفتاح المسافة. لإظهار السطر التالي فقط، اضغط المفتاح Return (أو، في بعض لوحات المفاتيح، المفتاح Enter). اضغط أي مفتاح آخر للعودة إلى سطر المطالبة.

ملاحظة: يختلف إخراج الشاشة بناءً على مستوى نظام سيسكو IOS وعلى تكوين الموجّه.

3- لائحة أوامر الصيغة ذات الامتيازات


للوصول إلى الصيغة ذات الامتيازات، اكتب enable (أو كما هو مبيّن في الشكل، الاختصار ena). سيُطلب منك كتابة كلمة مرور. إذا كتبت ? (علامة استفهام) في سطر مطالبة الصيغة ذات الامتيازات، تعرض الشاشة لائحة أوامر أطول من التي تعرضها عند سطر مطالبة صيغة المستخدم.

ملاحظة: سيختلف إخراج الشاشة بناءً على مستوى نظام سيسكو IOS وعلى تكوين الموجّه.

4- استعمال وظائف مساعدة الموجّه


لنفترض أنك تريد ضبط ساعة الموجّه. إذا كنت لا تعرف الأمر لتحقيق ذلك، استعمل الأمر help لفحص التركيب النحوي لضبط الساعة.

يوضّح التمرين التالي إحدى الوظائف العديدة للأمر help. مهمتك هي ضبط ساعة الموجّه. بافتراض أنك لا تعرف الأمر، أكمل باستعمال الخطوات التالية:

1. استعمل help لفحص التركيب النحوي لكيفية ضبط الساعة. إخراج الأمر help يبيّن أن الأمر clock مطلوب.

2. افحص التركيب النحوي لتغيير الوقت.

3. اكتب الوقت الحالي باستعمال الساعات والدقائق والثواني كما هو مبيّن. يحدّد النظام أنك بحاجة إلى تزويد معلومات إضافية لإكمال الأمر. إخراج الأمر help في الشكل يبيّن أن الكلمة الأساسية set مطلوبة.

4. افحص التركيب النحوي لكتابة الوقت واكتب الوقت الحالي باستعمال الساعات والدقائق والثواني. كما هو مبيّن في الشكل ، يحدّد النظام أنك بحاجة إلى تزويد معلومات إضافية لإكمال الأمر.

5. اضغط Ctrl+P (أو السهم العلوي) لتكرار الأمر السابق تلقائياً. ثم أضف مسافة وعلامة استفهام (?) للكشف عن الوسيطات الإضافية. يمكنك الآن إكمال كتابة الأمر.

6. رمز الإقحام (^) وجواب المساعدة يحدّدان وجود خطأ. مكان رمز الإقحام يبيّن لك أين توجد المشكلة المحتملة. لإدخال التركيب النحوي الصحيح، أعد كتابة الأمر وصولاً إلى النقطة حيث يوجد رمز الإقحام ثم اكتب علامة استفهام (?).

7. اكتب السنة، باستعمال التركيب النحوي الصحيح، واضغط Return لتنفيذ الأمر.

تزوّد الواجهة فحصاً للتركيب النحوي بوضعها الرمز ^ حيث يظهر الخطأ. يظهر الرمز ^ في المكان في سلسلة الأمر حيث كتبت أمراً غير صحيح أو كلمة أساسية أو وسيطة غير صحيحة. يمكّنك مؤشر مكان الخطأ ونظام المساعدة التفاعلية من إيجاد وتصحيح أخطاء التركيب النحوي بسهولة.

ملاحظة: يختلف إخراج الشاشة بناءً على مستوى نظام سيسكو IOS وعلى تكوين الموجّه.

5- استعمال أوامر تحرير IOS


- تتضمن الواجهة صيغة تحرير محسّنة تزوّد مجموعة من وظائف التحرير الرئيسية التي تتيح لك تحرير سطر الأمر أثناء كتابته. استعمل تسلسلات المفاتيح المحدَّدة في الشكل لنقل المؤشر في سطر الأمر للقيام بالتصحيحات أو التغييرات. رغم أن صيغة التحرير المحسّنة ممكَّنة تلقائياً في الإصدار الحالي للبرنامج إلا أنه يمكنك تعطيلها إذا كنت قد كتبت نصوصاً برمجية لا تتفاعل بشكل جيد بينما يكون التحرير المحسّن ممكَّناً. لتعطيل صيغة التحرير المحسّنة، اكتب terminal no editing عند سطر مطالبة الصيغة ذات الامتيازات.

- مجموعة أوامر التحرير تزوّد ميزة تمرير أفقي للأوامر التي تمتد أكثر من سطر واحد على الشاشة. عندما يصل المؤشر إلى الهامش الأيمن، يزيح سطر الأمر 10 مسافات إلى اليسار. لا يمكنك رؤية أول 10 أحرف من السطر، لكن يمكنك التمرير إلى الخلف وفحص التركيب النحوي في بداية الأمر. للتمرير إلى الخلف، اضغط Ctrl+B أو مفتاح السهم الأيسر بشكل متكرر إلى أن تصبح في بداية الأمر المكتوب، أو اضغط Ctrl+A للعودة إلى بداية السطر فوراً.

- في المثال المبيّن في الشكل ، يمتد الأمر أكثر من سطر واحد. عندما يصل المؤشر إلى نهاية السطر، تتم إزاحة السطر 10 مسافات إلى اليسار ثم يعاد عرضه. علامة الدولار ($) تحدّد أن السطر قد تمرّر إلى اليسار. كلما وصل المؤشر إلى نهاية السطر، يزيح السطر 10 مسافات إلى اليسار مرة أخرى.

- ملاحظة: يختلف إخراج الشاشة بناءً على مستوى نظام سيسكو IOS وعلى تكوين الموجّه.

6- استعمال محفوظات أوامر IOS
- تزوّد الواجهة محفوظات، أو سجلاً، بالأوامر التي كنت قد كتبتها. هذه الميزة مفيدة بالأخص لاسترداد الأوامر أو الإدخالات الطويلة أو المعقّدة.

بواسطة ميزة محفوظات الأوامر يمكنك إنجاز المهام التالية:

* ضبط حجم دارئ محفوظات الأوامر.

* استرداد الأوامر.

* تعطيل ميزة محفوظات الأوامر.

- بشكل افتراضي، تكون محفوظات الأوامر ممكَّنة والنظام يسجّل 10 أسطر أوامر في دارئ محفوظاته. لتغيير عدد أسطر الأوامر التي يسجّلها النظام خلال الجلسة، استعمل الأمر terminal history size أو الأمر history size. عدد الأوامر الأقصى هو 256.

لاسترداد الأوامر في دارئ المحفوظات، بدءاً من أحدث أمر، اضغط Ctrl+P أو مفتاح السهم العلوي بشكل متكرر لاسترداد الأوامر القديمة بشكل متوالٍ. للعودة إلى الأوامر الحديثة أكثر في دارئ المحفوظات، بعد استرداد الأوامر بواسطة Ctrl+P أو مفتاح السهم العلوي، اضغط Ctrl+N أو مفتاح السهم السفلي بشكل متكرر لاسترداد الأوامر الحديثة أكثر بشكل متوالٍ.

- عند كتابة الأوامر، كاختصار لك، يمكنك كتابة الأحرف الفريدة في الأمر ثم ضغط المفتاح Tab، وستُكمل الواجهة الإدخال نيابة عنك. الأحرف الفريدة تعرّف الأمر، والمفتاح Tab فقط يقرّ بصرياً أن الموجّه قد فهم الأمر الذي قصدته.

- في معظم الحاسبات، قد تتوفر أمامك وظائف انتقاء ونسخ إضافية أيضاً. يمكنك نسخ سلسلة أمر سابق ثم لصقها أو إدراجها كإدخال أمرك الحالي، وضغط Return. يمكنك استعمال Ctrl+Z للخروج من صيغة التكوين.
مشاهدة المزيد