void Schedule_UI_MgtEntry(void) { int choice; initiateq(); while(1){ printf("********************************\n"); printf("*\t1、添加演出计划 *\n"); printf("*\t2、修改演出计划 *\n"); printf("*\t3、据ID删除演出计划 *\n"); printf("*\t4、据ID获取演出计划 *\n"); printf("*\t5、获取所有演出计划 *\n"); printf("*\t6、返回上一层 *\n"); printf("********************************\n"); printf("请选择:"); scanf("%d", &choice); switch(choice){ case 1: Schedule_UI_Add(); break; case 2: printf("请输入要修改的演出计划ID:"); scanf("%d", &choice); Schedule_UI_Modify(choice); break; case 3: printf("请输入要删除的演出计划ID:"); scanf("%d", &choice); Schedule_UI_Delete(choice); break; case 4: printf("请输入要获取的演出计划ID:"); scanf("%d", &choice); Schedule_UI_Query(choice); break; case 5: Schedule_UI_FetchAll(); break; case 6: return; } } }
void Schedule_UI_MgtEntry(int play_id){ int i, id; char choice; play_t pdata; schedule_list_t head; schedule_node_t *p; Pagination_t paging; Play_Srv_FetchByID(play_id, &pdata); 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\n\n\t ================================================================="); printf("\n\t **************************剧目%d的演出计划*************************",play_id); printf("\n\t ================================================================="); printf("\n\t\t\t %-5s%-10s %-12s %-12s %-12s %-5s", "ID", "剧目", "演出厅", "上映日期","上映时间","票价"); printf("\n\t -----------------------------------------------------------------"); //显示数据 for (i = 0, p = (schedule_node_t *) (paging.curPos);p != head && i < paging.pageSize; i++){ printf("\n\t\t\t %-3d 『%d』 \t 『%d』 ", p->data.id, p->data.play_id,p->data.studio_id); printf("\t%4d-%02d-%02d\t",p->data.date.year, p->data.date.month, p->data.date.day); printf("%2d:%02d:00", p->data.time.hour, p->data.time.minute); printf(" %-5d\n", p->data.price); p=p->next; } printf("\n\t =================================================================="); printf("\n\t |-------------总数%2d----------------------------%2d/%2d页-----------|",paging.totalRecords, Pageing_CurPage(paging),Pageing_TotalPages(paging)); printf("\n\t ******************************************************************"); printf("\n\t | [P]revPage | [N]extPage |"); printf("\n\t | [A]dd | [D]elete | [U]udate | [V]iew All |"); printf("\n\t ------------------------[R]eturn----------------------------------"); printf("\n\t =================================================================="); printf("\n\t Iput Your choice:"); choice=l_getc(); switch (choice) { case 'a': case 'A': { studio_list_t slist; List_Init(slist, studio_node_t); Studio_Srv_FetchAll(slist); if(!List_IsEmpty(slist) ){ if (Schedule_UI_Add(pdata.id)) //新添加成功,跳到最后一页显示 { paging.totalRecords =Schedule_Srv_FetchByPlay(head,play_id); Paging_Locate_LastPage(head, paging, schedule_node_t); } }else{ if(List_IsEmpty(slist)){ printf("\n **没有演出厅信息,无法添加计划!** /n"); } printf("\n -------------------------------按任意键返回-------------------------"); getchar(); } } break; case 'd': case 'D': printf("\n\t | 请输入计划ID:"); while(1){ if(scanf("%d",&id)==1){ cl_stdin(); break;} else{ cl_stdin();printf("\n\t **您的输入有误!请重新输入** ");} } if (Schedule_UI_Delete(id)) { //从新载入数据 paging.totalRecords = Schedule_Srv_FetchByPlay(head,play_id); List_Paging(head, paging, schedule_node_t); } break; case 'u': case 'U': printf("\n | 请输入计划ID:"); while(1){ if(scanf("%d",&id)==1){ cl_stdin(); break;} else{ cl_stdin();printf("\n\t **您的输入有误!请重新输入** "); } } if (Schedule_UI_Modify(id)) { //从新载入数据 paging.totalRecords = Schedule_Srv_FetchByPlay(head,play_id); List_Paging(head, paging, schedule_node_t); } break; case 'v': case 'V': Schedule_UI_ListAll(); break; case 't': case 'T': //(); break; case 24 : if (1 < Pageing_CurPage(paging)) { Paging_Locate_OffsetPage(head, paging, -1, schedule_node_t); } break; case 25 : if (Pageing_TotalPages(paging) > Pageing_CurPage(paging)) { Paging_Locate_OffsetPage(head, paging, 1, schedule_node_t); } break; } } while (choice != 'r' && choice != 'R'); //释放链表空间 List_Destroy(head, schedule_node_t); }
//由售票员页面转至增加演出计划页面 void Clerk_Menu_to_Schedule_add(GtkWidget *button,gpointer data) { gtk_widget_hide(menu_window); schedule_add_window = Schedule_UI_Add(); gtk_widget_show_all(schedule_add_window); }
//显示所有演出计划 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');