#include #include #include #include #include struct linklist { char Name[30]; long int Number; struct linklist *prev; struct linklist *next; }*p,*q,*r,*s,*New; long int sn; char ch,n[30]; int d; void load(); void save(); void main() { void Add(); void Delete(); void Search(); void print(); void load(); void save(); p=(struct linklist *)malloc(sizeof(struct linklist)); strcpy(p->Name,"0"); p->Number=0; p->prev=NULL; p->next=NULL; q=p; while(1) { clrscr(); printf("\n____________________________________________________________\n"); printf("* please insert one of choes:\n"); printf("\n____________________________________________________________\n"); printf("* 1 -add a node list :\n"); printf("\n____________________________________________________________\n"); printf("* 2 -delet a node list :\n"); printf("\n____________________________________________________________\n"); printf("* 3 -search a node from list :\n"); printf("\n____________________________________________________________\n"); printf("* 4 -print all nodes from list :\n"); printf("\n____________________________________________________________\n"); printf("* 5 -quit :\n"); printf("\n____________________________________________________________\n"); ch=getche(); load(); switch(ch) { case '1': {Add(); save();} break; case '2': Delete(); break; case '3': Search(); break; case '4': print(); break; case '5': exit(0); default:printf("\nError! (1/2/3/4/5):\n"); getch(); }//End of Switch }//End of While }//End of main /////////////////////////////////////////////////////////////////// void Add() { printf("\n lotfan name ra vared konid:\n "); scanf("%s",&n); printf("shomare daneshjoei : "); scanf("%li",&sn); New=(struct linklist *)malloc(sizeof(struct linklist)); strcpy(New->Name,n); New->Number=sn; New->next=NULL; New->prev=q; q->next=New; q=New; printf("\n etelat ezafe shod\n"); getch(); } void Delete() { printf("\n baraye hazf shomare danshgoei ra vared konid:\n"); int flag=0; scanf("%li",&sn); s=p; r=s->next; while(r) { if (r->Number==sn&&r==q) { s->next=NULL; free(r); flag=1; q=s; } else if (r->Number==sn&&r!=q) { s->next=r->next; r->next->prev=s; free(r); flag=1; } s=s->next; r=r->next; } if (flag==1) puts("\n etelat pak shod"); else puts("\n etelati baraye pak shodan nist"); getch(); } void Search() { printf("\n baraye jostojo shomare daneshjoei ra vard konid :\n "); int flag=0; scanf("%li",&sn); s=p; r=s->next; while(r) { if (r->Number==sn) { printf("\n nam: %s",r->Name); printf("\n shomare daneshjoei : %li\n",sn); flag=1; } s=s->next; r=r->next; } if (flag==1) puts("\n etelat pyda shod"); else puts("\n etelaat dar list mojood nemibashad"); getch(); } void print() { puts("\n etelaat shoma dar list mojod mibashad:"); r=p->next; if(!r) puts("\n list khali ast"); while (r) { printf("\n name : %s",r->Name); printf("\n shomare daneshjoei: %li",r->Number); printf("\n------------------------------"); r=r->next; } getch(); } //////////////////////////////////////////////////////////////////// void load(void) { FILE *fp; fp=fopen("hade.txt","r"); if(fp==NULL) return; while(!(New->next==NULL)) { New=(struct linklist *)malloc(sizeof (struct linklist)); New->next = NULL; fread(&New->Number,sizeof(struct linklist),1,fp); fread(&New->Name,sizeof(struct linklist),1,fp); New->prev = q; q->next = New; q=New; } fclose(fp); } //-------------------founction save to file---------------------------- void save() { FILE *fp; fp=fopen("hade.txt","w"); if(fp==NULL) return; r=p->next; while(r) { fwrite(&r->Number,sizeof(struct linklist),1,fp); fwrite(&r->Name,sizeof(struct linklist),1,fp); r=r->next; } printf("ok\n"); printf("\nSave To File Successfully"); fclose(fp); getch(); }