C语言课程设计宾馆住宿系统 下载本文

sprintf(Buf[i],\

Rooms:%d\ } count=huodecaidan(Buf,i-1); for(i=0,pRST_temp=(*pRST);inext)

; Buf_Clear(); Buf_Fill_Tree(pRST_temp); Display();/*缓冲区中的信息*/ getch(); return 0; }

#define GCO_TITLES 2 #define TOP 10

int tongjijiemian(Pfangjianzhonglei * pRST) { char * szTitles[]={ \ \ \ Pfangjianzhonglei pRST2; int (*comp[GCO_TITLES])(void *,void *)={jiyushijian,jiyujiage};

int count; count=huodecaidan(szTitles,GCO_TITLES); pRST2=(*pRST); Buf_Clear(); while(pRST2){ Buf_Fill_Tree(pRST2); pRST2=pRST2->next; } Collect(comp[count],TOP); Display(); return 0; }

/*通过从硬盘读入来创建一个链表*/ int yindaozairu(Pfangjianzhonglei * pRST) { char * error=\ int i,j;

36

Pfangjianzhonglei pRST_temp,pRST_temp2; Pfangjian pRF,pRF2; Pkehu pC,pC2; FILE * fTree,* fRoom,* fCustom; fTree=fopen(\ fRoom=fopen(\ fCustom=fopen(\ if(!fTree||!fRoom||!fCustom){ printf(error); exit(0); }

(*pRST)=(Pfangjianzhonglei)malloc(sizeof(fangjianzhonglei));pRST_temp=(*pRST); while(1){ if(!huodekefangzhonglei(fTree,pRST_temp)) break; pRST_temp->first=(Pfangjian)malloc(sizeof(fangjian)); for(pRF=pRST_temp->first,i=pRST_temp->shuliang;i;i--){ huodekefang(fRoom,pRF); pRF->Record=(Pkehu)malloc(sizeof(kehu)); for(pC=pRF->Record,j=pRF->times;j;j--){ huodekehu(fCustom,pC); pC->next=(Pkehu)malloc(sizeof(kehu)); pC2=pC; pC=pC->next; }/*for(j*/ pC2->next=NULL; free(pC); pRF2=pRF; pRF->next=(Pfangjian)malloc(sizeof(fangjian)); pRF=pRF->next; }/*for(i*/ pRF2->next=NULL; free(pRF);/*free the last one*/ pRST_temp2=pRST_temp; pRST_temp->next=(Pfangjianzhonglei)malloc(sizeof(fangjianzhonglei));

pRST_temp=pRST_temp->next;

}/*while(!feof*/ pRST_temp2->next=NULL;

free(pRST_temp); fclose(fTree); fclose(fRoom); fclose(fCustom);

37

return 0; }

/*将当前链表保存到磁盘*/ int yindaobaocun(Pfangjianzhonglei * pRST) { char * error=\ int i,j; Pfangjianzhonglei pRST_temp; Pfangjian pRF; Pkehu pC; FILE * fTree,* fRoom,* fCustom; fTree=fopen(\ fRoom=fopen(\ fCustom=fopen(\ if(!fTree||!fRoom||!fCustom){ printf(error); exit(0); } pRST_temp=(*pRST); while(pRST_temp){ xierukefang(fTree,pRST_temp); for(pRF=pRST_temp->first,i=pRST_temp->shuliang;i;i--){ xierukefangxinxi(fRoom,pRF); for(pC=pRF->Record,j=pRF->times;j;j--){ xierukehuxinxi(fCustom,pC); pC=pC->next; }/*for(j*/ pRF=pRF->next; }/*for(i*/ pRST_temp=pRST_temp->next; }/*while(pRST_temp*/ fclose(fTree); fclose(fRoom); fclose(fCustom); return 0; } /*退出*/

int yindaotuichu(Pfangjianzhonglei * pRST) { exit(0); return 0; }

/*功能向导,function(int)是之前菜单中选中的功能,pRST是指向主链表头指针的指针*/

38

int xiangdaohejiemian(int function,Pfangjianzhonglei * pRST) { /*功能函数,用于在显示区域显示相关信息*/ int (* fun[])(Pfangjianzhonglei *)={ yindaochuangjian,charujiemian,xiugaijiemian,shanchujiemian,

suousuojiemian,yindaoshuru,tongjijiemian,yindaozairu,

fun[function](pRST); return 0;

yindaobaocun,yindaotuichu};

39