Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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();
	}
}
Exemplo n.º 4
0
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");
}
Exemplo n.º 5
0
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;
}
Exemplo n.º 6
0
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);
	}
}
Exemplo n.º 8
0
void Schedule_UI_Query(int choice)
{
    
Schedule_Srv_FetchByID(choice);
}
Exemplo n.º 9
0
//退票
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;
       			}
       					
       		}
     			
		
	}
	
}
Exemplo n.º 10
0
//根据计划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);
}
Exemplo n.º 12
0
//根据剧目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');
Exemplo n.º 13
0
//显示所有演出计划
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');