int Schedule_UI_Query(int id){ int ret=0; schedule_t data; if(id==-1){ while(1){ printf("\n\t\t | 请输入计划ID:"); if(scanf("%d",&id)==1){ cl_stdin(); break;} else{ cl_stdin();printf("\n\t\t **您的输入有误!请重新输入** "); } } } if(Schedule_Srv_FetchByID(id, &data)){ //while(1){ system("clear"); printf("\n\n\n\t\t ================================================================="); printf("\n\t\t *************************根据ID查询演出计划*************************"); printf("\n\t\t ================================================================="); printf("\t\t\t\t %-4s %10s %-12s %-10s %-10s %-8s\n", "ID", "剧目编号", "演出厅编号", "上映日期","上映时间","票价"); printf("\n\t\t -----------------------------------------------------------------"); printf("\n\t\t\t\t %-3d 『%d』\t『%d』",data.id, data.play_id,data.studio_id); printf("%4d-%02d-%02d",data.date.year, data.date.month,data.date.day); printf(" %2d:%02d:00", data.time.hour, data.time.minute); printf(" %5d", data.price); printf("\n\t\t ================================================================="); }else{ printf("\n\t\t **未找到ID『%d』!请重新输入**",id); } sleep(1); return ret; }
inline int Sale_UI_SellTicket(ticket_list_t tickList, seat_list_t seatList){ int id; ticket_list_t head; schedule_t sch; printf("\n | 请输入演出计划ID:"); while(1){ if(scanf("%d",&id)==1){ cl_stdin(); break;} else{ cl_stdin();printf("\n **您的输入有误!请重新输入** ");} } if(!Schedule_Srv_FetchByID(id, &sch)){ printf("\n **未找到ID『%d』!按任意键返回** ",id); getchar(); return 0; } Ticket_Srv_FetchBySchID(tickList, sch.id); Seat_Srv_FetchValidByRoomID(seatList, sch.studio_id); Ticket_UI_ListBySch(&sch,tickList,seatList); return 1; }
void Ticket_Info(ticket_t *data) { schedule_t p; play_t buf; seat_t s; Seat_Srv_FetchByID(data->seat_id,&s); Schedule_Srv_FetchByID(data->schedule_id,&p); if(Play_Srv_FetchByID(p.play_id,&buf)) { printf("\n\t\t====================影票信息======================\n"); printf("\t\t剧目名称: %s\n",buf.name); printf("\t\t类型:%s\n",type(buf.type)); printf("\t\t出品地区:%s\n",buf.area); printf("\t\t剧目等级:%s\n",rating(buf.rating)); printf("\t\t时长: %d 分钟\n",buf.duration); printf("\t\t上映时间: %d年%d月 %d日\n",buf.start_date.year,buf.start_date.month,buf.start_date.day); printf("\t\t放映日期: %d时%d分%d秒\n",p.time.hour,p.time.minute,p.time.second); printf("\t\t结束放映时间:%d年%d月%d日\n",buf.end_date.year,buf.end_date.month,buf.end_date.day); printf("\t\t票价:%d 元\n",buf.price); printf("\t\t演出厅id :%d\n",p.studio_id); printf("\t\t位置: %d行%d列\n",s.row+1,s.column+1); printf("\t\t======================================================\n"); printf("Press Any Key To Continue......"); getchar(); } }
void Ticket_UI_Print(int ID){ ticket_t buf; seat_t sed; schedule_t scd; studio_t std; play_t pld; Ticket_Srv_FetchByID(ID,&buf); Seat_Srv_FetchByID(buf.seat_id, &sed); Schedule_Srv_FetchByID(buf.schedule_id, &scd); Studio_Srv_FetchByID(scd.studio_id, &std); Play_Srv_FetchByID( scd.play_id, &pld); char ptype[10]; switch(pld.type){ case PLAY_TYPE_FILE: strcpy(ptype,"电影"); break; case PLAY_TYPE_OPEAR: strcpy(ptype,"戏曲"); break; case PLAY_TYPE_CONCERT: strcpy(ptype,"音乐"); break; } system("clear"); printf("\n\n\n\n"); /* printf("\t\t\t╔================================================================================╗\n"); printf("\t\t\t‖"); printf("%80s‖\n"," "); printf("\t\t\t‖%30s %20s %30s ‖\n"," ","X X 电影院"," "); printf("\t\t\t‖"); printf("%80s‖\n"," "); printf("\t\t\t‖ \t%5s\t%-20s\t %5s\t%3d %3s %3d %3s","影厅:", std.name ,"座位:", sed.row ,"行", sed.column,"列"); printf("\t\t\t\t ‖\n"); printf("\t\t\t‖"); printf("%80s‖\n"," "); printf("\t\t\t‖\t%5s\t%-20s\t%5s\t%5s\t%5s%3d","剧名:", pld.name,"类别:",ptype,"票价:",pld.price); printf("\t\t ‖\n"); printf("\t\t\t‖"); printf("%80s‖\n"," "); printf("\t\t\t‖\t%10s\t%5d-%02d-%02d\t%5s\t%02d:%02d","放映日期:",scd.date.year,scd.date.month,scd.date.day,"时间:" ,scd.time.hour,scd.time.minute); printf("\t\t\t\t ‖\n"); printf("\t\t\t‖"); printf("%80s‖\n"," "); printf("\t\t\t‖\t%25s:%5d ","本票ID(退票时使用)",ID); printf("\t\t\t\t\t\t ‖\n"); printf("\t\t\t‖"); printf("%80s‖\n"," "); printf("\t\t\t‖"); printf("%80s‖\n"," "); printf("\t\t\t╚================================================================================╝\n\n"); */ printf("\t\t\t\t\033[34m☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ ☊ \033[0m\n"); printf("\t\t\t\t\033[36m♫\033[0m \033[36m♫\033[0m\n"); printf("\t\t\t\t\033[31m♫\033[0m\t\t\t\t\033[33m%-24s\033[0m\t\t\033[31m♫\033[0m\n",std.name); printf("\t\t\t\t\033[36m♫\033[0m \033[36m♫\033[0m\n"); printf("\t\t\t\t\033[31m♫\033[0m\t剧目名称: %s\t\t剧目类型: %s\t\t\033[31m♫\033[0m\n",pld.name,ptype); printf("\t\t\t\t\033[36m♫\033[0m \033[36m♫\033[0m\n"); printf("\t\t\t\t\033[31m♫\033[0m\t放映日期: %5d-%02d-%02d\t\t放映时间: %02d:%02d\t\t\033[31m♫\033[0m\n",scd.date.year,scd.date.month,scd.date.day,scd.time.hour,scd.time.minute); printf("\t\t\t\t\033[36m♫\033[0m \033[36m♫\033[0m\n"); printf("\t\t\t\t\033[31m♫\033[0m\t座位: %d 行 %d 列\t\t\t票价: %d\t\t\033[31m♫\033[0m\n",sed.row,sed.column,pld.price); printf("\t\t\t\t\033[36m♫\033[0m \033[36m♫\033[0m\n"); printf("\t\t\t\t\033[31m♫\033[0m\t本票ID (退票时使用) : %d\t\t\t\t\033[31m♫\033[0m\n",ID); printf("\t\t\t\t\033[36m♫\033[0m \033[36m♫\033[0m\n"); printf("\t\t\t\t\033[34m☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ ☋ \033[0m\n\n"); }
int Schedule_UI_Delete(int id){ int ret=0,sid; char choice; schedule_t data; studio_t sdata; if(Schedule_Srv_FetchByID(id, &data)){ while(1){ system("clear"); printf("\n\n\n\t\t ================================================================="); printf("\n\t\t ***************************删除演出计划****************************"); printf("\n\t\t ================================================================="); printf("\n\t\t\t\t%-3s %-10s %-12s %-10s %-10s %-8s", "ID", "剧目编号", "演出厅编号", "上映日期","上映时间","票价"); printf("\n\t\t -----------------------------------------------------------------"); printf("%-3d 『%d』『%d』", data.id, data.play_id,data.studio_id); printf(" %4d-%2d-%2d",data.date.year,data.date.month, data.date.day); printf(" %4d:%02d:00", data.time.hour, data.time.minute); printf(" %-4d", data.price); printf("\n\t\t ================================================================="); printf("\n\t\t | [D]elete | [R]eturn= |"); printf("\n\t\t ================================================================"); printf("\n\t\t Iput Your choice:"); choice=l_getc(); if('r'==choice || 'R'==choice) break; if('q'==choice || 'Q'==choice){ if(Schedule_Srv_DeleteByID(id)){ printf("\n\t\t --------------------------删除计划成功!----------------------------"); printf("\n\t\t ******************************************************************"); ret=1; }else{ printf("\n\t\t --------------------------删除计划失败!----------------------------"); printf("\n\t\t ******************************************************************"); } sleep(1); } }//while }else{ printf("\n\t\t **没有演出计划!按任意键继续修改**"); sleep(1); return 0; } return ret; }
int Ticket_Srv_AddBatch(int schedule_id, int studio_id){ int rtn,i,key; ticket_node_t *p; seat_node_t *q; ticket_list_t ticket_list; seat_list_t seat_list; schedule_t scd; play_t pld; Schedule_Srv_FetchByID(schedule_id, &scd); Play_Srv_FetchByID( scd.play_id, &pld); //Seat_Number_Count(studio_id); List_Init(ticket_list, ticket_node_t); List_Init(seat_list,seat_node_t); rtn=Seat_Srv_FetchValidByRoomID(seat_list, studio_id); key=EntKey_Srv_CompNewKeys("ticket",rtn); //Seat_Srv_FetchByRoomID(seat_list,studio_id); q=seat_list->next; for(i=1;i<=rtn;i++) { p=(ticket_node_t *)malloc(sizeof(ticket_node_t)); p->data.id=key; p->data.schedule_id=schedule_id; p->data.seat_id=q->data.id; p->data.price=pld.price; p->data.status=TICKET_AVL; List_AddTail(ticket_list,p); key++; q=q->next; } Ticket_Perst_Insert(ticket_list); return 1; }
void Schedule_UI_Mod(USER * user) { system("cls"); BIOS_GOTO_BOX(22, 100, 5, 25); BIOS_GOTO_BOX(22, 100, 8, 7); TTMS_GotoXY(52, 6); printf_s("请输入要修改的ID:"); int ID; scanf_s("%d", &ID); auto *schedule = Schedule_Srv_FetchByID(ID); if (schedule) { BIOS_GOTO_BOX(22, 100, 23, 22); BIOS_GOTO_BOX(58, 58, 8, 22); TTMS_GotoXY(35, 24); printf_s("请在右方对信息进行修改,若不需要修改请原封不动移过去"); int NewStartTime_Day, NewStartTime_Month, NewStartTime_Year, NewStartTime_Hour, NewStartTime_Minute, NewStudioID, NewPlayID,NewSeatCountMax; char key[15]; TTMS_GotoXY(52, 6); printf_s(" 第%d号演出计划 ", schedule->data.id); TTMS_GotoXY(25, 9); printf_s("放映厅ID: %d", schedule->data.studio_id); TTMS_GotoXY(25, 11); printf_s("剧目ID: %d", schedule->data.play_id); TTMS_GotoXY(25, 13); printf_s("计划开始时间:%d年%d月%d日%d时%d分", schedule->time.daytime.year, schedule->time.daytime.month, schedule->time.daytime.day, schedule->time.hour, schedule->time.minute); TTMS_GotoXY(25, 15); printf_s("最多座位数(票数): %d", schedule->data.seat_count); TTMS_GotoXY(60, 9); printf_s("修改后:"); TTMS_GotoXY(60, 11); printf_s("修改后: "); TTMS_GotoXY(60, 13); printf_s("修改后: "); TTMS_GotoXY(60, 15); printf_s("修改后: "); TTMS_GotoXY(67, 9); scanf_s("%d", &NewStudioID); TTMS_GotoXY(67, 11); scanf_s("%d", &NewPlayID); TTMS_GotoXY(67, 13); scanf_s("%d%d%d%d%d", &NewStartTime_Year, &NewStartTime_Month,&NewStartTime_Day, &NewStartTime_Hour, &NewStartTime_Minute); TTMS_GotoXY(67, 15); scanf_s("%d", &NewSeatCountMax); schedule->data.play_id = NewPlayID; schedule->data.studio_id = NewStudioID; schedule->time.daytime.year = NewStartTime_Year; schedule->time.daytime.month = NewStartTime_Month; schedule->time.daytime.day = NewStartTime_Day; schedule->time.hour = NewStartTime_Hour; schedule->time.minute = NewStartTime_Minute; schedule->data.seat_count = NewSeatCountMax; TTMS_GotoXY(35, 24); printf_s(" "); TTMS_GotoXY(52, 24); printf_s("Enter确认修改,Esc取消"); strcpy_s(key, 15, GET_KEY()); if (strcmp(key, "Enter") == 0) { Schedule_Srv_Mod(schedule); TTMS_GotoXY(35, 24); printf_s(" "); TTMS_GotoXY(50, 24); printf_s("修改成功,任意键退出!"); _getch(); Schedule_UI_MgtEntry(user); } if (strcmp(key, "Esc") == 0) { TTMS_GotoXY(35, 24); printf_s(" "); TTMS_GotoXY(50, 24); printf_s("取消成功,任意键退出!"); _getch(); Schedule_UI_MgtEntry(user); } } else { TTMS_GotoXY(35, 24); printf_s(" "); TTMS_GotoXY(50, 24); printf_s("无此剧目,按任意键退出"); _getch(); Schedule_UI_MgtEntry(user); } }
void Schedule_UI_Query(int choice) { Schedule_Srv_FetchByID(choice); }
//退票 void Sale_UI_ReturnTicket(){ char choice; int id,t=0; while(1){ system("clear"); printf("\n ================================================================="); printf("\n **************************剧目%s的演出计划************************"); printf("\n ================================================================="); printf("\n | 请输入演出计划ID:"); while(1){ if(scanf("%d",&id)==1){ cl_stdin(); break;} else{ cl_stdin();printf("\n **您的输入有误!**");} } ticket_t buf; schedule_t scd; Schedule_Srv_FetchByID(buf.schedule_id, &scd); if( Ticket_Srv_FetchByID(id,&buf) ){ if(buf.status==TICKET_SOLD){ Ticket_UI_Print(id); user_time_t nowtime=TimeNow(); if(DateCmp(DateNow(), scd.date)==-1 || (DateCmp(DateNow(), scd.date)==0 && scd.time.hour<nowtime.hour && scd.time.minute<nowtime.minute ) ){ t=1; Ticket_UI_Print(id); }else{ printf("\n **您的输入有误!按任意键继续**"); getchar(); break; } }else{ printf("\n **信息不存在!按任意键返回**"); getchar(); break; } } if(t){ printf("\n -----------------------------------------------------------------"); printf("\n | [Q]uik | [R]eturn |"); printf("\n ******************************************************************"); printf("\n =================================================================="); printf("\n Iput Your choice:"); choice=l_getc(); if('r'==choice || 'R'==choice) break; if('q'==choice || 'Q'==choice) { buf.status=TICKET_AVL; sale_t data; data.id=EntKey_Srv_CompNewKey("sale"); data.user_id=gl_CurUser.id; data.ticket_id=id; data.date=DateNow(); data.time=TimeNow(); data.value=buf.price; data.type=SALE_RETURN; Sale_Srv_Add(&data); Ticket_Srv_Modify(&buf); printf("\n ----------------------------**退票成功! **---------------------------------"); printf("\n =================================================================="); cl_stdin(); getchar(); break; } } } }
//根据计划ID,显示演出票 void Sale_UI_ShowTicket(int schID){ char choice;int i; ticket_list_t list; ticket_list_t pTemp; char status[10]; play_t play; schedule_t sch; studio_t stu; seat_list_t seat_l; seat_t seat; Pagination_t paging; List_Init(seat_l,seat_node_t); List_Init(list,ticket_node_t); Schedule_Srv_FetchByID(schID, &sch); Play_Srv_FetchByID(sch.play_id, &play); Studio_Srv_FetchByID(sch.studio_id, &stu); Seat_Srv_FetchByRoomID(seat_l,sch.studio_id); paging.offset = 0; paging.pageSize = 10; paging.totalRecords = Ticket_Srv_FetchBySchID(list,schID); Paging_Locate_FirstPage(list, paging); do{ system("clear"); printf("|=============================================================================================================================|\n"); printf("|-------------------------------------------------------票 信 息 输 出--------------------------------------------------------|\n"); printf("|-----------------------------------------------------------------------------------------------------------------------------|\n"); printf("%10s%20s%20s%20s%20s%20s%20s%20s\n","票ID","演出计划ID","剧目名称","演出厅名称","座位ID","座位行列号","票价","座位状态"); printf("|-----------------------------------------------------------------------------------------------------------------------------|\n"); Paging_ViewPage_ForEach(list, paging, ticket_node_t, pTemp, i) { Seat_Srv_FetchByID(pTemp->data.seat_id,&seat); if (pTemp->data.status == (ticket_status_t)0) strcpy(status,"待售"); else if (pTemp->data.status == (ticket_status_t)1) strcpy(status,"已售"); else if (pTemp->data.status == (ticket_status_t)9) strcpy(status,"预留"); printf("%9d%12d%18s%15s%18d (%d,%d) %18d%16s\n",pTemp->data.id,pTemp->data.schedule_id,play.name,stu.name,pTemp->data.seat_id,seat.row,seat.column,pTemp->data.price,status); } printf("|------------------------ 总条数:%2d ------------------------------------------------------ 页码 %2d/%2d ------------------------|\n", paging.totalRecords, Pageing_CurPage(paging), Pageing_TotalPages(paging)); printf("|-----------------------------[P]上一页 | [N]下一页 | [r]返回上一级 | [b]售票---------------------------------------|\n"); printf("|=============================================================================================================================|\n"); printf("请选择:"); scanf("%c",&choice); flu(); switch(choice) { case 'b': case 'B': if(Sale_UI_SellTicket(list,seat_l)) { printf("正在重载票....\n"); if (Ticket_Srv_FetchBySchID(list,schID)) printf("票信息重载成功!\n"); } printf("输入Enter返回..."); flu(); break; case 'p': case 'P': if (!Pageing_IsFirstPage(paging)) { Paging_Locate_OffsetPage(list, paging, -1, ticket_node_t); } break; case 'N': case 'n': if (!Pageing_IsLastPage(paging)) { Paging_Locate_OffsetPage(list, paging, 1, ticket_node_t); } break; //case 'r': //case 'R': // return; } }while(choice != 'R' && choice != 'r');
void Sale_UI_ShowTicket(USER* user) { system("cls"); BIOS_GOTO_BOX(22, 100, 5, 25); BIOS_GOTO_BOX(22, 100, 8, 7); TTMS_GotoXY(52, 6); printf_s("请输入查询的演出计划ID:"); int ID; scanf_s("%d", &ID); auto *schedule = Schedule_Srv_FetchByID(ID); if (!schedule) { TTMS_GotoXY(50, 24); printf_s("无此演出计划的信息"); } else { for (auto i = 11; i < 21; i++) { TTMS_GotoXY(30, i); printf_s("*"); TTMS_GotoXY(92, i); printf_s("*"); } for (auto i = 30; i < 92; i++) { TTMS_GotoXY(i, 11); printf_s("*"); TTMS_GotoXY(i, 21); printf_s("*"); } TTMS_GotoXY(92, 21); printf_s("*"); TTMS_GotoXY(55, 13); printf_s("没人来剧院"); TTMS_GotoXY(33, 15); auto *play = Play_Srv_FetchByID(schedule->data.play_id); switch (play->data.type) { case PLAY_TYPE_FLIM: printf_s("电影"); break; case PLAY_TYPE_OPEAR: printf_s("歌剧"); break; case PLAY_TYPE_CONCERT: printf_s("音乐会"); break; default: break; } printf_s("名称:%s", play->data.name); TTMS_GotoXY(70, 15); printf_s("#适用于"); switch (play->data.rating) { case PLAY_RATE_CHILD: printf_s("儿童"); break; case PLAY_RATE_TEENAGE: printf_s("青年"); break; case PLAY_RATE_ADULT: printf_s("成人"); break; default: break; } printf_s("观众#"); TTMS_GotoXY(33, 17); printf_s("播放地址:"); auto *studio = Studio_Srv_FetchByID(schedule->data.studio_id); printf_s("%s演出厅", studio->data.name); TTMS_GotoXY(70, 17); printf_s("全片时长:%d分钟", play->data.duration); TTMS_GotoXY(33, 19); printf_s("开始时间 %d年%d月%d日%d时%d分", schedule->time.daytime.year, schedule->time.daytime.month, schedule->time.daytime.day, schedule->time.hour, schedule->time.minute); TTMS_GotoXY(73, 19); printf_s("票价:¥%d", play->data.price); } _getch(); Main_UI_MgtEntry(user); }
//根据剧目ID显示演出计划 void Sale_UI_ShowScheduler(int playID) { play_t buf; if(Play_Srv_FetchByID(playID,&buf)) { int listSize,sal_id,i; char choice; Pagination_t paging; schedule_list_t list,pos; schedule_t buf; List_Init(list,schedule_node_t); listSize=Schedule_Srv_FetchByPlay(list,playID); paging.pageSize =PAGESIZE; paging.totalRecords = listSize; Paging_Locate_FirstPage(list, paging); do { system("clear"); printf("\n\t\t\033[32m************************* 计划表 **************************\n"); printf("\t\t %2s %10s %8s %10s %10s %10s\n", "ID", "剧目ID", "演出厅ID","放映日期","放映时间","座位数"); printf("\t\t***********************************************************\n"); Paging_ViewPage_ForEach(list,paging,schedule_node_t,pos,i) { printf("\033[34m\t\t %2d%10d%8d%6d-%2d-%2d%4d:%2d:%2d%10d\n",pos->data.id,pos->data.play_id,pos->data.studio_id,pos->data.date.year,pos->data.date.month,pos->data.date.day,pos->data.time.hour,pos->data.time.minute,pos->data.time.second,pos->data.seat_count); } printf("\t\t\033[32m-----------------------------------------------------------\n"); printf("\t\t-------总记录数:%2d ------------------- 页数: %2d/%2d -------\n",paging.totalRecords, Pageing_CurPage(paging), Pageing_TotalPages(paging)); printf("\t\t-----------------------------------------------------------\n"); printf("\t\t** 【P】上一页 【[N】下一页 【R】返回 【S】进入售票系统 **\n"); printf("\t\t===========================================================\033[0m\n"); printf("\t\tYour Choice:"); fflush(stdin); scanf("\t\t%c", &choice); getchar(); switch (choice) { case 'S': ; case 's': printf("请输入演出计划id :"); scanf("%d",&sal_id); getchar(); if(!Schedule_Srv_FetchByID(sal_id,&buf )) { printf("你输入的演出计划不存在!回车继续"); getchar(); } else { Sale_UI_ShowTicket(sal_id); } paging.totalRecords=Schedule_Srv_FetchByPlay(list,playID); List_Paging(list, paging, schedule_node_t); break; case 'r': case 'R':break; case 'p': case 'P': if (1 < Pageing_CurPage(paging)) { Paging_Locate_OffsetPage(list, paging, -1, studio_node_t); } choice='r'; break; case 'n': case 'N': if (Pageing_TotalPages(paging) > Pageing_CurPage(paging)) { Paging_Locate_OffsetPage(list, paging, 1, studio_node_t); } choice='r'; break; } } while (choice != 'r' && choice != 'R');
//显示所有演出计划 void Schedule_UI_MgtEntry(int play_id) { int i,id; char choice; schedule_t buf; schedule_list_t head; schedule_node_t *pos; Pagination_t paging; List_Init(head,schedule_node_t);//初始化链表 paging.offset = 0; paging.pageSize = SCHEDULE_PAGE_SIZE; paging.totalRecords =Schedule_Srv_FetchByPlay(head,play_id); Paging_Locate_FirstPage(head,paging); do { system("clear"); printf("\n\t\t\033[31m****************************** 计划表 ***************************\n"); printf("\t%12s %13s%14s %16s %16s%14s\n", "ID", "剧目ID", "演出厅ID","放映日期","放映时间","座位数"); printf("\t\t=================================================================\033[0m\n"); Paging_ViewPage_ForEach(head,paging,schedule_node_t,pos,i) { printf("\t\t\033[32m %2d%10d%12d %4d-%2d-%2d %2d:%2d:%2d%10d\n",pos->data.id,pos->data.play_id,pos->data.studio_id,pos->data.date.year,pos->data.date.month,pos->data.date.day,pos->data.time.hour,pos->data.time.minute,pos->data.time.second,pos->data.seat_count); } printf("\t\t\033[31m=================================================================\n"); printf("\t\t---------总记录数:%2d ------------------------ 页数: %2d/%2d ------\n",paging.totalRecords, Pageing_CurPage(paging), Pageing_TotalPages(paging)); printf("\t\t*****************************************************************\n"); printf("\t\t=================================================================\n"); printf("\t\t** [N]:下一页 [P]:上一页 [U]: 修改 **\n"); printf("\t\t** [A]: 添加 [D]: 删除 [R]: 返回 **\n"); printf("\t\t=================================================================\033[0m\n"); printf("\t\t Please Input :"); fflush(stdin); scanf(" %c",&choice); fflush(stdin); switch(choice){ case 'a': case 'A': if(Schedule_UI_Add(play_id)) { paging.totalRecords = Schedule_Srv_FetchByPlay(head,play_id); Paging_Locate_LastPage(head, paging, schedule_node_t); } break; case 'd': case 'D': printf("\t\t请输入ID:"); scanf("%d",&id); getchar(); if(Schedule_Srv_FetchByID(id,&buf)) { Schedule_UI_Delete(id); } else { printf("未找到!回车继续"); getchar(); } paging.totalRecords = Schedule_Srv_FetchByPlay(head,play_id); List_Paging(head, paging, schedule_node_t); break; case 'u': case 'U': printf("\t\t请输入ID:"); scanf("%d",&id); getchar(); if(Schedule_UI_Modify(id)) { paging.totalRecords =Schedule_Srv_FetchByPlay(head,play_id); List_Paging(head, paging, schedule_node_t); } break; case 'P': case 'p': if (!Pageing_IsFirstPage(paging)) { Paging_Locate_OffsetPage(head, paging, -1, schedule_node_t); } break; case 'n': case 'N': if (!Pageing_IsLastPage(paging)) { Paging_Locate_OffsetPage(head, paging, 1, schedule_node_t); } break; } }while(choice !='r'&&choice !='R');