قرآن در کامپیوتر

دانلود نرم افزار های قرآنی یه صورت رایگان

قرآن در کامپیوتر

دانلود نرم افزار های قرآنی یه صورت رایگان

سورس برنامه کتابخانه

این یک برنامه ساده کتابخانه بکمک لیست پیوندی است.در این برنامه لیستی از کتابها از کاربر دریافت میشوند.این کتابها را میشود رزرو کرد،اطلاعات آنرا ویرایش کرد، و برای کتابها عمل جستجو را اجام داد.برای تکمیل برنامه باید امکانات دیگر مثل تاریخ امانت و تابع کنترل تاریخ ،قابلیت کاربری برای چند نفر،و...را به آن اظافه کرد.

یک کلاس برای ساختن اشیاء کتاب نوشته شده که اطلاعات کتاب را در خود نگه میدارد:نام کتاب،نویسنده،توضیحات کتاب،نام کسی که آنرا به امانت گرفته.
و دو تابع برای کنترل امانت و یک تابع برای ویرایش اطلاعات کتاب و یک تابع سازنده که اطلاعات را برای بار اول دریافت میکند.

 


class book
{
 friend class library;

 private:
 char book_name[11];
 char explain[51];
 char aouther[11];
 char part;

 char user[11];    //user[11][5];
  int reserved;

 book *next;

 public:
      book();
 void edit();
 void reserv();
 void getback();
}

 


یک تابع برای رزرو کردن کتاب است و یک تابع دیگر برای اینکه نشان دهد کتاب پس داده شده.و این دو تابع با دستکاری متغیر reserved
وضعیت کتاب را نشان میدهند.این توابع از طرف کلاس کتابخانه کنترل میشوند.
یک کلاس دیگر هم این کتاب ها را لیست میکند.در آن یک  لیست اشاره گر وجود دارد که 24 اشاره گر را درخود نگاه میدارد که هرکدام آنها برا ی عملیات بهتر جستجو برای یکی از حروف الفبا درنظرگرفته میشود.این را تابع دیگری که وظیفه جاگذاری اشیاء در لیست را دارد انجام میدهد.هر اشاره گر،یک اشاره گر به لیستی از اشیاء کتاب است.
در توابع جستجو نیز بر اساس حرف اول نام مورد جستجو، به یکی از این اشاره گرها مراجعه میشود و در لیست پیمایش انجام میشود.عمل جستجو ساده و خطی است:

 


out<<"\n\nenter exact name:";
    char name[10];
    gets(name);
    name[11]=NULL;

    int d=name[0]-97;
    book *p=parts[d];
    while(p!=NULL && strcmp(p->book_name,name)!=0)
    {
     p=p->next;
    }
    if(p==NULL)
    {
     cout<<"\nnot founded!";
    }
    else
    {
     cout<<"\n\n";
     cout<<"name:";puts(p->book_name);
     cout<<"aouther:";puts(p->aouther);
     cout<<"explain:";puts(p->explain);
     if(p->reserved==1)
     {
      cout<<"RESERVED by:";
      puts(p->user);
     }
     else
     {
      cout<<"NOT RESERVES";
     }
    }//else
    getch();

 

نکته دیگر در استفاده از تابع کتابخانه ای
strtok
است که کار ان جدا کردن کلمات داخل یک رشته است.این کار کمک میکند  در داخل توصیحات مربوط به کتاب به جستجو بپردازیم.

منبع http://kks.parsiblog.com/1257063.htm

دانلود فایل اجرایی و فایل متنی کتابخانه

 

 

-------------------------------------------------------

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>

//===========================
//===========================
class book
{
 friend class library;

 private:
 char book_name[11];
 char explain[51];
 char aouther[11];
 char part;

 char user[11];    //user[11][5];
  int reserved;

 book *next;

 public:
      book();
 void edit();
 void reserv();
 void getback();
}
//---------------------------
     book::book()
 {
  clrscr();

  cout<<"============ add a new book =================="
      <<"\n\nto insert new book ,enter flow informations:"
      <<"\n\nbook name?";
  gets(book_name);
  book_name[10]=NULL;

  cout<<"\naouther name?";
  gets(aouther);
  aouther[10]=NULL;

  cout<<"\nany explain?";
  gets(explain);
  explain[50]=NULL;

  part=book_name[0];

  reserved=0;

  next=NULL;

  cout<<"\n\ninformathions set!";
  getch();
 }
//---------------------------
void book::edit()
 {
  clrscr();

  char ch;

  cout<<"============= reset information ===================";
  cout<<"\n\nto chang this book infprmations ,enter flow informations:";

  cout<<"do you want to change book name?(yes:'y')"
      <<"\n{book name:";puts(book_name);cout<<"}\n";
  ch=getch();
  if(ch=='y')
  {
   cout<<"\n\nbook name?";
   gets(book_name);
   book_name[11]=NULL;
  }


  cout<<"do you want torename aouther name?(yes:'y')"
      <<"\naouther name:";puts(aouther);cout<<"\n";
  ch=getch();
  if(ch=='y')
  {
   cout<<"\naouther name?";
   gets(aouther);
   aouther[11]=NULL;
  }


  cout<<"do you want to change explains?";
  ch=getch();
  if(ch=='y')
  {
   cout<<"\nany explain?";
   gets(explain);
   explain[51]=NULL;
  }

  part=book_name[0];

  reserved=0;

  cout<<"informathins reseted!";
  getch();
 }
//---------------------------
void book::reserv()
 {
  clrscr();
  cout<<"\n=========== reserving book ===================";

  if(reserved==0)
  {
   cout<<"\n\nuser name?";
   gets(user);
   user[11]=NULL;

   reserved=1;
  }

  if(reserved==0)
  {
   cout<<"\n\nsorry! book has been reserved befor"
       <<"by user:";
   puts(user);
  }

  getch();
 }
//---------------------------
void book::getback()
 {
  reserved=0;

  cout<<"\n\nbook got bak.";
  getch();
 }
//===========================
//===========================
class library
{
 public:
       library();
  void run_menu();

 private:
  book *parts[24];
  void insert(book*);
  void find();
  void search();

}
//---------------------------
     library::library()
 {
  for(int i=0;i<=23;i++)
  parts[i]=NULL;

 }
//---------------------------
void library::run_menu()
 {

  char ch='n';

  while(ch!='4')
  {
   clrscr();

   cout<<"================= LIBRARY =================="
       <<"\n\n1:add a new book."
       <<"\n2:find a book."
       <<"\n3:search a book."
       <<"\n4:exit."
       <<"press numbers:";


   ch=getch();


   if(ch=='1')
   {
    book *n=new book;
    insert(n);
   }
   if(ch=='2')
   {
    find();
   }
   if(ch=='3')
   {
    search();
   }

  }//while
 }
//---------------------------
void library::insert(book *s)
 {
  int d=s->part-97;

  if(parts[d]==NULL)
  {
   parts[d]=s;
  }
  else
  {
   book *p=parts[d],*q;
   while(p!=NULL && strcmp(p->book_name,s->book_name)<0)
   {
    q=p;
    p=p->next;
   }
   q->next=s;
   s->next=p;
  }

 }
//---------------------------
void library::find()
 {
  clrscr();

  cout<<"=========== edit / delete books ============"
      <<"\nenter exact book name:";
  char name[11];
  gets(name);
  name[11]=NULL;
  int d=name[0]-97;

  book *p=parts[d],*q;
  while(p!=NULL && strcmp(p->book_name,name)!=0)
  {
   q=p;
   p=p->next;
  }
  if(p==NULL)
  {
   cout<<"not found!";
  }
  if(p!=NULL)
  {
   cout<<"\n\ndelete it?('d')  or edit?('e')"
       <<"  or reserv?('r')   or getback?('g') :";
   char ch=getch();
   if(ch=='d')
    {
     q->next=p->next;
     delete p;
    }
   if(ch=='e')
    {
     p->edit();
    }
   if(ch=='r')
    {
     p->reserv();
    }
   if(ch=='g')
   {
    p->getback();
   }
  }
  getch();
 }
//---------------------------
void library::search()
 {
  char ch='6';

  while(ch!='4')
  {
   clrscr();
   cout<<"================== SEARCH ===================";
   cout<<"\n\n1:search for name."
       <<"\n2:search for aouther."
       <<"\n3:search for explanations."
       <<"\n4:back to main menu.(press numbers)";

   ch=getch();

   if(ch=='1')
   {
    cout<<"\n\nenter exact name:";
    char name[10];
    gets(name);
    name[11]=NULL;

    int d=name[0]-97;
    book *p=parts[d];
    while(p!=NULL && strcmp(p->book_name,name)!=0)
    {
     p=p->next;
    }
    if(p==NULL)
    {
     cout<<"\nnot founded!";
    }
    else
    {
     cout<<"\n\n";
     cout<<"name:";puts(p->book_name);
     cout<<"aouther:";puts(p->aouther);
     cout<<"explain:";puts(p->explain);
     if(p->reserved==1)
     {
      cout<<"RESERVED by:";
      puts(p->user);
     }
     else
     {
      cout<<"NOT RESERVES";
     }
    }//else
    getch();
   }//1
   if(ch=='2')
   {
    cout<<"\n\nenter exact aouther name:";
    char name[11];
    gets(name);
    name[11]=NULL;
    int f=0;

    for(int i=0;i<=23;i++)
      {
       book *p=parts[i];
       while(p!=NULL)
    {
     if(strcmp(p->aouther,name)==0)
     {
      f++;
      cout<<"\n"<<f<<":";
      cout<<"name:";puts(p->book_name);
      cout<<"aouthor:";puts(p->aouther);
      cout<<"explain:";puts(p->explain);
      if(p->reserved==1)
      {
       cout<<"RESERVED BY";
       puts(p->user);
      }
      else
      {
       cout<<"NOT RESERVED";
      }
     }

     p=p->next;
    }//while
      }
    getch();
   }//2
   if(ch=='3')
   {
    cout<<"\n\nenter key(15char):";
    char name[16];
    gets(name);
    name[15]=NULL;
    int f=0;

    for(int i=0;i<=23;i++)
      {
       book *p=parts[i];
       while(p!=NULL)
    {
     char *tokenptr;
     tokenptr=strtok(p->explain," ");
     while(tokenptr!=NULL)
     {
      if(strcmp(tokenptr,name)==0)
      {
       f++;

       cout<<"\n"<<f<<":";
       cout<<"name:";puts(p->book_name);
       cout<<"aouthor:";puts(p->aouther);
       cout<<"explain:";puts(p->explain);
       if(p->reserved==1)
        {
         cout<<"RESERVED BY";
         puts(p->user);
        }
       else
        {
         cout<<"NOT RESERVED";
        }
      }
      tokenptr=strtok(NULL," ");
     }

     p=p->next;
    }//while
      }//for i
    getch();
   }//3

  }

 }
//===========================
//===========================
 int main()
 {
  clrscr();

  library l1;
  l1.run_menu();

  return(0);
 }

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد