0

دفتر تلفن ساده با کلاس ها

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

دفتر تلفن ساده با کلاس ها
پنج شنبه 28 شهریور 1392  11:35 PM

دفتر تلفن ساده با کلاس ها

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

//=====================================
//=====================================

struct address {
       
char name[30] ;
       
char street[30] ;
       
char city[20] ;
       
char state[3] ;
       
char number[14] ;
       
struct address *next ;
       
struct address *prior ;
list_entry ;
//=====================================
//=====================================

struct address *start ;
struct address *last ;

void enter() , display() , search() ;
void list() , del();
void display(struct address *infoint *row);

struct address *find(char *);
int menu_select();
struct address *store(struct address *, struct address *);
//=====================================
//=====================================




//****************


int menu_select()
{
      
char s[5];
      
system("cls");
      
gotoxy(25,4) ;
      
printf("1. enter a name ") ;
      
gotoxy(25,6) ;
      
printf("2. delete a name ") ;
      
gotoxy(258) ;
      
printf("3. list all files ") ;
      
gotoxy(2510) ;
      
printf("4. search ") ;
      
gotoxy(2512) ;
      
printf("5. quit ") ;
      do {
      
gotoxy(2018) ;
      
printf("enter your select--power By majid (1-5):");
      
gets(s);
      } while (
atoi(s) < || atoi(s) > 5) ;
      return 
atoi(s) ;
}

//*********************


void enter ()
{
   
struct address *info ;
   
int i ;
   
char ch ;
   
system("cls") ;
   
gotoxy(32) ;
   
printf("   name        street     city     state    number");
   
gotoxy(33) ;
   
printf(" ------------ -------- ");
   
printf("--------   -----  ------- ");
   
;
   for (;;) {
     
info = (struct address *)malloc(sizeof(list_entry)) ;
     if(!
info) {
    
printf("\n out of memory. press a key ") ;
    
getch();
    return ;
     }
     
gotoxy(3i) ;
     
gets(info -> name) ;
     if (!
info -> name[0]) {
      
gotoxy(151) ;
      
printf("press a key to continue");
      
getch() ;
      break ;
     }
//end of if
     
gotoxy(18i);
     
gets(info -> street) ;
     
gotoxy(28i) ;
     
gets(info -> city) ;
     
gotoxy(38i) ;
     
gets(info -> state) ;
     
gotoxy(45i) ;
     
gets(info -> number) ;
     
i++ ;
     
start store(infostart) ;
     } 
/* entry loop */
    
}
//**************


struct address *store(struct address *istruct address *top)
{
   
struct address *old, *;
   if(
last == NULL) {
    
-> next NULL ;
    
-> prior NULL ;
    
start i;
    
last ;
    return 
;
   }
   
top ;
   
old NULL ;
   while (
!= NULL) {
       if(
strcmp(-> name-> name) < 0) {
          
old ;
          
-> next ;
       }
//end of if
       
else {
         if (
-> prior) {
          
-> prior -> next=;
          
-> next=;
          
-> prior=-> prior;
          
-> prior=;
          return 
top ;
         }
//end of if
         
-> next ;
         
-> prior NULL ;
         
-> prior ;
         return 
;
       }
//end of if
   
// end of while
   
old -> next ;
   
-> next NULL ;
   
-> prior old ;
   
last ;
   return 
start ;
}

//******************


void del()
{
   
struct address *info;
   
char name[80];
   
gotoxy(2020) ;
   
printf(" enter name for delete : ") ;
   
gets(name) ;
   
info find(name) ;
   if(
info == NULL) {
       
gotoxy(1020) ;
       
printf(" name not found! press a key to continue.");
       
getch() ;
   }
   if (
info)
     if (
start == info)
    {
      
start info -> next ;
      if(
start)
         
start -> prior NULL ;
      else
         
last NULL ;
    } 
//end of if
     
else  {
       
info -> prior -> next info -> next;
       if(
info != last)
         
info -> next -> prior info -> prior;
       else
        
last info -> prior ;
     } 
//end of else
     
free(info) ;
     
gotoxy(10,20) ;
     
printf("name deleted, press a key to continue.");
     
getch() ;
}

//*******************************


struct address *find(char *name)
{
     
struct address *info ;
     
info start ;
     while(
info != NULL) {
    if (
strcmp(nameinfo -> name) == 0)
       return 
info;
    
info info -> next ;
     }
     return 
NULL ;
}

//*****************


void list ()
{
    
struct address *info ;
    
int i ;
    
info start ;
    
system("cls") ;
    
gotoxy(32) ;
    
printf("   name        street     city     state    number");
    
gotoxy(33) ;
    
printf(" ------------ --------  -");
    
printf("-------   -----  ------- ");
    
;
    while(
info != NULL) {
    
display(info, &i) ;
    
info info -> next ;
    }
    
gotoxy(152) ;
    
printf("press a key to continue.");
    
getch() ;
}

//*******************


void display(struct address *infoint *row)
{
      
gotoxy(3, *row) ;
      
printf("%s"info -> name) ;
      
gotoxy(18, *row) ;
      
printf("%s"info -> street) ;
      
gotoxy(28, *row) ;
      
printf("%s"info -> city) ;
      
gotoxy(38, *row) ;
      
printf(info -> state) ;
      
gotoxy(47, *row) ;
      
printf(info -> number) ;
      *
row = *row ;
}

//**************************


void search()
{
     
char name[40] ;
     
int i ;
     
struct address *info;
     
gotoxy(2020) ;
     
printf(" enter name to find : ");
     
gets(name) ;
     
info find(name) ;
     if(
info == NULL) {
      
gotoxy(1020) ;
      
printf(" name not found! press a key to continue.");
      
getch() ;
     }
//end of if
     
else  {
          
system("cls") ;
          
gotoxy(32) ;
          
printf("   name        street   city     state   number");
          
gotoxy(33) ;
          
printf(" ------------ -------");
          
printf("-  --------   -----  ------- ") ;
          
;
          
display(info ,&i) ;
          
gotoxy(152) ;
          
printf("press a key to continue.");
          
getch() ;
     }
//end of else
}
//*********************

int main()
{
       
start last NULL ;
       for(;;) {
         switch(
menu_select()) {
           case 
1:  enter();  break ;
           case 
del();    break ;
            case 
3:  list() ;  break ;
           case 
4:  search(); break ;
           case 
5:  exit(0) ;

        }
//end of switch
       
}//end of for
}//end of main 

Seyyed.Reza.Hashemian@Gmail.Com

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

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

تشکرات از این پست
دسترسی سریع به انجمن ها