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 Studio_UI_Modify(int id) { studio_t rec; int rtn = 0; int newrow, newcolumn; seat_list_t list; int seatcount; /*Load record*/ if (!Studio_Srv_FetchByID(id, &rec)) { printf("The room does not exist!\nPress [Enter] key to return!\n"); getchar(); return 0; } printf("\n=======================================================\n"); printf("**************** Update Projection Room ****************\n"); printf("-------------------------------------------------------\n"); printf("Room ID:%d\n", rec.id); printf("Room Name[%s]:", rec.name); fflush(stdin); gets(rec.name); List_Init(list, seat_node_t); seatcount = Seat_Srv_FetchByRoomID(list, rec.id); if(seatcount){ do{ printf("Row Count of Seats should >= [%d]:", rec.rowsCount); scanf("%d", &(newrow)); printf("Column Count of Seats should >= [%d]:", rec.colsCount); scanf("%d", &(newcolumn)); }while( newrow<rec.rowsCount||newcolumn<rec.colsCount); rec.rowsCount=newrow; rec.colsCount=newcolumn; rec.seatsCount=seatcount; } else{ printf("Row Count of Seats:"); scanf("%d", &rec.rowsCount); printf("Column Count of Seats:"); scanf("%d", &rec.colsCount); rec.seatsCount=0; } printf("-------------------------------------------------------\n"); if (Studio_Srv_Modify(&rec)) { rtn = 1; printf( "The room data updated successfully!\nPress [Enter] key to return!\n"); } else printf("The room data updated failed!\nPress [Enter] key to return!\n"); getchar(); return rtn; }
int Studio_UI_Modify(int id){ studio_t rec; int rtn=0; char size; int newrow,newcolumn; seat_list_t list; int seatcount=1; getchar(); if (!Studio_Srv_FetchByID(id, &rec)) { printf("\t\t\t **没有演出厅信息!** "); printf("\n\t -----------------------------------------------------------------"); printf("\n\t ================================================================="); sleep(1); system("clear"); return 0; } printf("\n\n\n\t ================================================================="); printf("\n\t *****************************更新演出厅**************************"); printf("\n\t ================================================================="); printf("\n\t |演出厅ID:%-5d |", rec.id); printf("\n\t |演出厅名:%-20s |", rec.ROOM); printf("\n\t |演出厅规模:%-10s |", rec.SIZE); printf("\n\t -----------------------------------------------------------------"); //List_Init(list, seat_node_t); printf("\n\t\t\t|目前座位行数为:[%d] |", rec.rowsCount); printf("\n\t\t\t请输入更新的座位行数:"); scanf("%d", &(newrow)); printf("\t\t\t|目前座位列数为:[%d] |", rec.colsCount); printf("\n\t\t\t请输入更新的座位列数:"); scanf("%d", &(newcolumn)); rec.rowsCount=newrow; rec.colsCount=newcolumn; rec.seatsCount=seatcount; printf("\n\t ================================================================="); if (Studio_Srv_Modify(&rec)) { rtn = 1; printf("\n\t\t\t ** 更新完毕!** "); printf("\n\t -----------------------------------------------------------------"); printf("\n\t ================================================================="); } else{ printf("\n\t\t\t ** 更新失败!** "); printf("\n\t -----------------------------------------------------------------"); printf("\n\t ================================================================="); } sleep(1); return rtn; }
//根据计划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); }
int Schedule_UI_Add(int play_id) { int er=0,sid,newRecCount=0; char choice; schedule_t data; studio_t sdata; play_t pdata; cl_stdin(); do { system("clear"); printf("\n\n\n\t\t ================================================================="); printf("\n\t\t ***************************添加演出计划**************************"); printf("\n\t\t ================================================================="); data.id = EntKey_Srv_CompNewKey("schedule"); data.play_id=play_id; while(1){ printf("\n\t\t | 请输入演出厅ID:"); if(scanf("%d",&sid)==1){ cl_stdin(); if(!Studio_Srv_FetchByID(sid, &sdata)){ printf("\n\t\t\t\t **没有演出厅信息!请重新输入** "); continue; } data.studio_id=sdata.id; data.price=pdata.price; data.seat_count=Seat_Number_Count(data.studio_id); break; } else{ cl_stdin(); printf("\n\t\t\t您的输入有误!请重新输入** "); } } while(1){ printf("\n\t\t | 请输入演出日期:"); if(scanf("%d%d%d",&(data.date.year), &(data.date.month), &(data.date.day))==3){ cl_stdin(); if(data.date.month>12 || data.date.day>31){ printf("\n\t\t **您输入的日期有误!请重新输入** "); continue; } if(DateCmp(data.date, DateNow())==-1){ printf("\n\t\t **您输入的日期太早!请重新输入** "); continue; } break; } else{ cl_stdin();printf("\n\t **您的输入有误!请重新输入** "); } } while(1){ printf("\n\t\t | 请输入演出时间(h min):"); if(scanf("%d %d",&(data.time.hour), &(data.time.minute))==2){ data.time.second=0; cl_stdin(); if(data.time.hour>24 || data.time.minute>60){ printf("\n\t\t **您的输入有误!请重新输入** "); continue; } break; } else{ cl_stdin(); printf("\n\t **您的输入有误!请重新输入** "); } } printf("\n\t\t =================================================================="); if(Schedule_Srv_Add(&data)){ //Ticket_Srv_AddBatch(data.id, data.studio_id); newRecCount++; printf("\n\t\t ------------------------添加计划成功!--------------------------"); printf("\n\t\t ******************************************************************"); }else{ } printf("\n\t\t =================================================================="); printf("\n\t\t | [A]dd More | [R]eturn |"); printf("\n\t\t ******************************************************************"); printf("\n\t\t Iput Your choice:"); choice=l_getc(); } while ('a' == choice || 'A' == choice); return newRecCount; }
int Schedule_UI_Modify(int id){ int ret=0,sid; char choice; schedule_t data; studio_t sdata; if(Schedule_Perst_SelectByID(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 %-5s %-10s %-12s %-10s %-10s %-10s ", "ID", "剧目ID", "演出厅ID", "放映日期","放映时间","座位数"); printf("\n\t -----------------------------------------------------------------"); printf("\n\t\t\t%-3d 『%d』\t『%d』", data.id,data.play_id,data.studio_id); printf(" %4d-%2d-%2d",data.date.year, data.date.month,data.date.day); printf(" %2d:%2d:00 ", data.time.hour, data.time.minute); printf(" %5d", data.price); printf("\n\t\t =================================================================="); printf("\n\t\t | [S]tudio | [T]ime | [R]eturn |"); printf("\n\t\t ******************************************************************"); printf("\n\t\t Iput Your choice:"); choice=l_getc(); if('r'==choice || 'R'==choice) break; switch(choice){ case 's': case 'S': while(1){ printf("\n\t\t\t\t|\t请输入演出厅ID:"); if(scanf("%d",&sid)==1){ cl_stdin(); if(!Studio_Srv_FetchByID(sid, &sdata)){ printf("\n\t\t\t\t\t\t**没有演出厅信息!请重新输入** "); continue; } data.studio_id=sdata.id; data.seat_count=Seat_Number_Count(data.studio_id); break; } else{ cl_stdin(); printf("\n\t\t\t\t **您的输入有误!请重新输入** "); } } break; case 't': case 'T': while(1){ printf("\n\t\t | 请输入上映日期( 年 月 日): "); if(scanf("%d %d %d",&(data.date.year), &(data.date.month), &(data.date.day))==3){ cl_stdin(); if(data.date.month>12 || data.date.day>31){ printf("\n\t\t **您输入的日期有误!请重新输入** "); continue; } if(DateCmp(data.date, DateNow())==-1){ printf("\n\t\t **您输入的时间早于今天!请重新输入!** "); continue; } break; } else{ cl_stdin(); printf("\n\t\t **您的输入有误!请重新输入** ");} } printf("\n\t\t | 请输入上映时间(h min):"); while(1){ if(scanf("%d %d",&(data.time.hour), &(data.time.minute))==2){ data.time.second=0; cl_stdin(); if(data.time.hour>24 || data.time.minute>60){ printf("\n\t\t **您的输入有误!请重新输入** "); continue; } break; } else{ cl_stdin();printf("\n\t\t **您的输入有误!请重新输入** "); } } break; }//switch printf("\n\t\t =================================================================="); if(Schedule_Srv_Modify(&data)){ 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; }