예제 #1
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");
}
예제 #2
0
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;
}
예제 #3
0
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;
}
예제 #4
0
파일: Sale_UI.c 프로젝트: Jungzhang/-C-
//根据计划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);
}
예제 #6
0
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;
			
     
}
예제 #7
0
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;
}