0

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

 
rezahashemian1374
rezahashemian1374
کاربر برنزی
تاریخ عضویت : مهر 1391 
تعداد پست ها : 254
محل سکونت : تهران

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

قبلا چند تا سورس مدیریت کتابخانه دیگه هم ارسال کرده بودم ولی این رو هم براتون آماده کردم شاید استاد ها به یکی بودن کد هاتون گیر بدن یا علاقه مندان بخوان که با سبک های مختلف برنامه نویسی به زبان سی آشنا بشن آخه هر کسی یه روش مخصوص خودش رو داره.

#include <iostream>
#include <conio>
#include <fstream>
#include <algorithm>
#include <stdio>
#include <stdlib>
# define esc 27
#define enter 13
#define up 72
#define down 80
#define tab 9

class library
{
 public:
  
struct book
   
{
     
char name[20];
     
char writer[20];
     
char date[15];
     
char publisher[20];
     
char subject[20];
     
int id,price;
   }
book1,booktemp;
  
int menu();
  
char addmenu(int *,char *);
  
void add();
  
void searchmenu(int *,char *);
  
void search();
  
void show(int*,char*,char *);
  
void deletmenu(char *);
  
void delet();
}
book;
//***********************main***************************************************
int main()
{
while(
1)
{

window(1,1,80,25);
textbackground(0);
textcolor(15);
clrscr();
gotoxy(29,3);
cprintf("WELCOM TO MY LIBRARY");
gotoxy(55,23);
cprintf("***  SPRING OF 1387  **");
int select=book.menu();
 switch(
select)
 {
  case 
1:book.add();break;
  case 
2:book.search();break;
  case 
3:book.delet();
  case 
4:
  
cout<<"\a";
  
window(10,5,70,20);
  
textbackground(1);
  
textcolor(15);
  
clrscr();
  
gotoxy(15,7);
  
cprintf("ARE YOU SURE (y/n)?");
  
char ex=getch();
  if(
ex==13||ex==121||ex==89)
   return 
0;
 }
}
return 
0;
}

//******************************functions***************************************
int library::menu()
{
 
char item[4][20]={
  
"1->Insert","2->Search","3->Delet","4->Exit"},key;
  
int i=0,j=0;
  
window(10,5,70,20);
  
textbackground(3);
  
clrscr();
  
window(1,1,25,80);
  while(
1)
  {
   for(
i=0;i<4;i++)
    {
     
textbackground(3);
     
textcolor(14);
     if(
i==j)
     {
      
textbackground(1);
      
textcolor(15);
     }
     
gotoxy(2,2+(2*i));
     
cprintf("%s",item[i]);
    }
    
gotoxy(2,2+(2*j));
    
key=getch();
    switch(
key)
    {
     case 
49:j=0;break;
     case 
50:j=1;break;
     case 
51:j=2;break;
     case 
52:j=3;break;
     case 
up:if(j==0)j=3;else j--;break;
     case 
down:if(j==3)j=0;else j++;break;
     case 
tab:if(j==3)j=0;else j++;break;
     case 
enter:break;
     case 
esc:return 4;
    }
   if(
key==13)break;
  }
 return 
j+1;
}

//*****************************************
char library::addmenu(int *j,char *key)
{
 
char add[7][20]={
 
"Name :","Writer :","Date publisher :","Price :","publisher :","Subject :","Code:"};
 
int i,flag=0;
 
window(21,5,50,20);
 
textbackground(1);
 
clrscr();
 while(
1)
  {
   for(
i=0;i<7;i++)
    {
     
textbackground(1);
     
textcolor(14);
     if(
i==*j)
     {
      
textbackground(3);
      
textcolor(15);
     }
     
gotoxy(2,2+(2*i));
     
cprintf("%s",add[i]);
    }
    
gotoxy(2,2+(2*(*j)));
    *
key=getch();
    switch(*
key)
    {
     case 
up:if(*j==0)*j=6;else (*j)--;break;
     case 
down:if(*j==6)*j=0;else (*j)++;break;
     case 
tab:if(*j==6)*j=0;else (*j)++;break;
     case 
enter:break;
     case 
esc:break;
    }
    if(*
key==13||*key==27)break;
   }
}

//****************************************************
void library::add()
{

char add[7][20]={
 
"Name :","Writer :","Date publisher :","Price :","publisher :","Subject :","Code:"},key;
int j=0;
char ch=addmenu(&j,&key);
ofstream file1("C:\\library.dat",ios::app);
if(!
file1cout<<"\ncan not open file";
if(
ch==13)
 {
  
gotoxy(2,2+(2*j));textbackground(1);textcolor(14);cprintf("%s",add[j]);
  
gotoxy(2,2);textbackground(3);textcolor(15);cprintf("%s",add[0]);
  
gotoxy(8,2);cin.get(book1.name,20);cin.get();
  
gotoxy(10,4);cin.get(book1.writer,20);cin.get();
  
gotoxy(18,6);cin.get(book1.date,20);cin.get();
  
gotoxy(9,8);cin>>book1.price;cin.get();
  
gotoxy(13,10);cin.get(book1.publisher,20);cin.get();
  
gotoxy(11,12);cin.get(book1.subject,20);cin.get();
  
gotoxy(7,14);cin>>book1.id;cin.get();
  
file1.write((char*)&book1,sizeof(struct book));
  
file1.close();
 }
}

//********************************************************
void library::searchmenu(int*j,char*key)
{
 
char add[3][20]={"Name :","subject :","Code:"};
 
int i,flag=0;
 
window(21,7,50,15);
 
textbackground(1);
 
clrscr();
 while(
1)
  {
   for(
i=0;i<3;i++)
    {
     
textbackground(1);
     
textcolor(14);
     if(
i==*j)
     {
      
textbackground(3);
      
textcolor(15);
     }
     
gotoxy(2,2+(2*i));
     
cprintf("%s",add[i]);
    }
    
gotoxy(2,2+(2*(*j)));
    *
key=getch();
    switch(*
key)
    {
     case 
up:if(*j==0)*j=2;else (*j)--;break;
     case 
down:if(*j==2)*j=0;else (*j)++;break;
     case 
tab:if(*j==2)*j=0;else (*j)++;break;
     case 
enter:break;
     case 
esc:break;
    }
   if(*
key==13||*key==27)break;
  }
 }

//*************************************************************
void library::search ()
{
 
char add[3][20]={"Name :","subject :","Code:"},ch,n[20];
 
int i,j,cod;
 
searchmenu(&j,&ch);
if(
ch!=27)
 {
  switch(
j)
  {
   case 
0:gotoxy(8,2);cin.get(n,20);cin.get();i=1;break;
   case 
1:gotoxy(11,4);cin.get(n,20);cin.get();i=2;break;
   case 
2:gotoxy(7,6);cin.get(n,20);cin.get();i=3;break;
  }
 }

int x=atol(n);
show(&x,n,&ch);
}

//*************************************************************
void library::show(int *x,char*n,char *ch)
{

char item[7][20]={
                  
"Name :",
                  
"Writer :",
                  
"Date publisher :",
                  
"Price :",
                  
"publisher :",
                  
"Subject :",
                  
"Code:"
                 
};
if(*
ch!=27)
{

ifstream file1("C:\\library.dat",ios::out);
if(!
file1cout<<"\ncan not open file";
int j=0;
if((*
x)>0) while(file1.read((char*)&book1,sizeof(struct book)))
        if(*
x==book1.id)
        {
          
j=1;
          
booktemp=book1;
          break;
        }
if(*
x==0) while(file1.read((char*)&book1,sizeof(struct book)))
        if(
strcmp(book1.name,n)==0||strcmp(book1.subject,n)==0)
        {
          
j=1;
          
booktemp=book1;
          break;
        }

file1.close();
window(10,5,70,20);
textbackground(6);
clrscr();
if(
j==0)
 {
  
textcolor(1);
  
gotoxy(6,7);
  
cprintf("!!!  NOT FOUND THIS BOOK IN THE LIBRARY  !!!");
  
gotoxy(15,10);
  
cprintf("PRESS ANY KEY TO COMTINUE :");
 }
else
{
 for(
int i=0;i<7;i++)
 {
  
textcolor(1);
  
gotoxy(2,(i+1)*2);
  
cprintf("%s",item[i]);
 }
  
gotoxy(8,2);cprintf("%s",book1.name);
  
gotoxy(10,4);cprintf("%s",book1.writer);
  
gotoxy(18,6);cprintf("%s",book1.date);
  
gotoxy(9,8);cout<<book1.price;
  
gotoxy(13,10);cprintf("%s",book1.publisher);
  
gotoxy(11,12);cprintf("%s",book1.subject);
  
gotoxy(7,14);cout<<book1.id;
}
 
getch();
}
}

//**********************************************
void library::deletmenu(char *key)
{
 
window(20,9,35,11);
 
textbackground(1);
 
textcolor(14);
 
clrscr();
 
textcolor(15);
 
textbackground(3);
 
gotoxy(2,2);cprintf("Book code :");
 
gotoxy(2,2);
 *
key=getch();
}

//********************************
void library::delet()
{

char add[7][20]={
                
"Name :",
                
"Writer :",
                
"Date publisher :",
                
"Price :","publisher :",
                
"Subject :",
                
"Code:"};
 
char ch;
 
int code,i,f;
 
ofstream file2("C:\\temp.dat",ios::in);
 if(!
file2cout<<"\ncan not open file";
 
ifstream file1("C:\\library.dat",ios::out);
 if(!
file1cout<<"\ncan not open file";
 
deletmenu(&ch);
 if(
ch!=27)
 {
   
gotoxy(13,2);
   
cin>>code;
 }
 while(
file1.read((char*)&book1,sizeof(struct book)))
  {
    if(
book1.id!=code)
    
file2.write((char*)&book1,sizeof(struct book));
    if(
book1.id==code)
    {
      
window(10,5,70,22);
      
textbackground(1);
      
textcolor(15);
      
clrscr();
      
gotoxy(10,2);cprintf("PLEASE ENTER NEW INFORMATION OF BOOK");cin.get();
        
gotoxy(2,4);cprintf("%s",add[0]);cin.get(booktemp.name,20);cin.get();
        
gotoxy(2,6);cprintf("%s",add[1]);cin.get(booktemp.writer,20);cin.get();
        
gotoxy(2,8);cprintf("%s",add[2]);cin.get(booktemp.date,20);cin.get();
        
gotoxy(2,10);cprintf("%s",add[3]);cin>>booktemp.price;cin.get();
        
gotoxy(2,12);cprintf("%s",add[4]);cin.get(booktemp.publisher,20);cin.get();
        
gotoxy(2,14);cprintf("%s",add[5]);cin.get(booktemp.subject,20);cin.get();
        
gotoxy(2,16);cprintf("%s",add[6]);cin>>booktemp.id;cin.get();
        
file2.write((char*)&booktemp,sizeof(struct book));
    }
  }
//end of while
  
file1.close();
  
file2.close();
  
remove("C:\\library.dat");
  
rename("C:\\temp.dat","C:\\library.dat");
}

Seyyed.Reza.Hashemian@Gmail.Com

دوستانی که سوالی دارند یا مایل به تماس هستند می توانند از اطلاعات بالا استفاده نمایند.

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

جمعه 29 شهریور 1392  7:53 AM
تشکرات از این پست
دسترسی سریع به انجمن ها