⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hangkongdingpiao.c

📁 数据结构课程设计用C实现的航空订票系统
💻 C
📖 第 1 页 / 共 3 页
字号:
            {
                continue;
            }
            for(k=0;k<4;k++)
            {
                if(k==i||k==j)
                {
                    continue;
                }
                for(l=0;l<4;l++)
                {
                    if(l==i||l==j||l==k)
                    {
                        continue;
                    }
                    expression[1][0]=iNumInput[0][i];
                    expression[3][0]=iNumInput[0][j];
                    expression[7][0]=iNumInput[0][k];
                    expression[9][0]=iNumInput[0][l];

					expression[1][1]=eNumber;
					expression[3][1]=eNumber;
					expression[7][1]=eNumber;
					expression[9][1]=eNumber;
					for (ii=0;ii<4;ii++)
					{
						for (jj=0;jj<4;jj++)
						{
							for (kk=0;kk<4;kk++)
							{

									expression[2][0] = oper[ii];
									expression[2][1] = eOperator;
									expression[5][0] = oper[jj];
									expression[5][1] = eOperator;
									expression[8][0] = oper[kk];
									expression[8][1] = eOperator;
									expression[11][0] = oper[6];
									expression[11][1] = eOperator;
									expression[0][0] = oper[4];
									expression[0][1] = eOperator;
									expression[6][0] = oper[4];
									expression[6][1] = eOperator;
									expression[4][0] = oper[5];
									expression[4][1] = eOperator;
									expression[10][0] = oper[5];
									expression[10][1] = eOperator;

									
									dRes = CalcOneExpress(expression);
									if(Equal24(dRes))
									{
										printf("可以这样运算:%c%d%c%d%c%c%c%d%c%d%c\n",oper[4],expression[1][0],oper[ii],expression[3][0],oper[5],oper[jj],oper[4],expression[7][0],oper[kk],expression[9][0],oper[5]);
										return TRUE;
										
									}								
							}
						}
					}//end of for oper
				}
			}
		}
	}

	return FALSE;
}

int CalcArray6(int iNumInput[2][4])
{
	// ((a * b) * c) * d	//11 number
	int expression[12][2];
	int ii,jj,i,j,k,l,kk;
	int dRes;
//	printf("CalcArray6\n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)    
        {
            if(j==i)
            {
                continue;
            }
            for(k=0;k<4;k++)
            {
                if(k==i||k==j)
                {
                    continue;
                }
                for(l=0;l<4;l++)
                {
                    if(l==i||l==j||l==k)
                    {
                        continue;
                    }
                    expression[2][0]=iNumInput[0][i];
                    expression[4][0]=iNumInput[0][j];
                    expression[7][0]=iNumInput[0][k];
                    expression[10][0]=iNumInput[0][l];

					expression[2][1]=eNumber;
					expression[4][1]=eNumber;
					expression[7][1]=eNumber;
					expression[10][1]=eNumber;
					for (ii=0;ii<4;ii++)
					{
						for (jj=0;jj<4;jj++)
						{
							for (kk=0;kk<4;kk++)
							{

									expression[3][0] = oper[ii];
									expression[3][1] = eOperator;
									expression[6][0] = oper[jj];
									expression[6][1] = eOperator;
									expression[9][0] = oper[kk];
									expression[9][1] = eOperator;
									expression[11][0] = oper[6];
									expression[11][1] = eOperator;
									expression[0][0] = oper[4];
									expression[0][1] = eOperator;
									expression[1][0] = oper[4];
									expression[1][1] = eOperator;
									expression[5][0] = oper[5];
									expression[5][1] = eOperator;
									expression[8][0] = oper[5];
									expression[8][1] = eOperator;

									
									dRes = CalcOneExpress(expression);
									if(Equal24(dRes))
									{
										printf("可以这样运算:%c%c%d%c%d%c%c%d%c%c%d\n",oper[4],oper[4],expression[2][0],oper[ii],expression[4][0],oper[5],oper[jj],expression[7][0],oper[5],oper[kk],expression[10][0]);
										return TRUE;										
									}								
							}
						}
					}//end of for oper
				}
			}
		}
	}

	return FALSE;
}

int CalcArray7(int iNumInput[2][4])
{
	// (a * b * c) * d	//9 number
	int expression[12][2];
	int ii,jj,i,j,k,l,kk;
	int dRes;
//	printf("CalcArray7\n");
    for(i=0;i<4;i++)
    {
        for(j=0;j<4;j++)    
        {
            if(j==i)
            {
                continue;
            }
            for(k=0;k<4;k++)
            {
                if(k==i||k==j)
                {
                    continue;
                }
                for(l=0;l<4;l++)
                {
                    if(l==i||l==j||l==k)
                    {
                        continue;
                    }
                    expression[1][0]=iNumInput[0][i];
                    expression[4][0]=iNumInput[0][j];
                    expression[6][0]=iNumInput[0][k];
                    expression[10][0]=iNumInput[0][l];

					expression[1][1]=eNumber;
					expression[4][1]=eNumber;
					expression[6][1]=eNumber;
					expression[10][1]=eNumber;
					for (ii=0;ii<4;ii++)
					{
						for (jj=0;jj<4;jj++)
						{
							for (kk=0;kk<4;kk++)
							{

									expression[2][0] = oper[ii];
									expression[2][1] = eOperator;
									expression[5][0] = oper[jj];
									expression[5][1] = eOperator;
									expression[9][0] = oper[kk];
									expression[9][1] = eOperator;
									expression[11][0] = oper[6];
									expression[11][1] = eOperator;
									expression[0][0] = oper[4];
									expression[0][1] = eOperator;
									expression[3][0] = oper[4];
									expression[3][1] = eOperator;
									expression[7][0] = oper[5];
									expression[7][1] = eOperator;
									expression[8][0] = oper[5];
									expression[8][1] = eOperator;

									
									dRes = CalcOneExpress(expression);
									if(Equal24(dRes))
									{
										printf("可以这样运算:%c%d%c%c%d%c%d%c%c%c%d\n",oper[4],expression[1][0],oper[ii],oper[4],expression[4][0],oper[jj],expression[6][0],oper[5],oper[5],oper[kk],expression[10][0]);
										return TRUE;
										
									}								
							}
						}
					}//end of for oper
				}
			}
		}
	}

	return FALSE;
}

int Calc24(int number[2][4])
{
	int find=0;
	//括号的几种情况
	//1	无括号
	//2 (a b) c d		同a b (c d), 下省略
	//3 (a b c) d
	//4 a (b c) d
	//5 (a b) (c d)
	//6 ((a b) c) d
	//7 (a (b c)) d

	//计算不含括号的情况

	if (CalcArray1(number))
	{		
		find=1;
		return TRUE;
	}
	if (CalcArray2(number))
	{		
		find=1;
		return TRUE;
	}
	if (CalcArray3(number))
	{
		find=1;
		return TRUE;
	}
	if (CalcArray4(number))
	{
		find=1;
		return TRUE;
	}
	if (CalcArray5(number))
	{
		find=1;
		return TRUE;
	}
	if (CalcArray6(number))
	{
		find=1;
		return TRUE;
	}
	if (CalcArray7(number))
	{
		find=1;
		return TRUE;
	}
	if(find==0)
	{
		printf("这四个数字不能算出24点.\n");
	}
	return FALSE;	
}
	
void main()
{
	char choice,choice2,name[9],line_num[8],password[9],plane_num[8],end_place[9];
	char pass[9]="yangrj",re_pass_1[9],re_pass_2[9];
	int t=1,tt=1,total;

	airline *air=init_airline();
	customer *cus=init_customer();
	PR("    数据结构 课程设计 \n");
	PR("	 航空订票系统\n");
	PR("	      \n");
	creat_airline(&air);
	creat_customer(&cus);
	save_airline(air);
	save_customer(cus);
	while(t==1)
	{
		PR("*----------------------------*\n");
		PR("*--航空订票系统选择菜单------*\n");
		PR("*	 客票预订-------0        *\n");
		PR("*	 办理退票-------1        *\n");
		PR("*	 查询-----------2        *\n");
		PR("*	 修改航线-------3        *\n");
		PR("*	 休闲小站-------4        *\n");
		PR("*	 退出-----------5        *\n");
		PR("*----------------------------*\n");
		PR("请选择: ");
		choice =(char) getch();
		PR("%c",choice);
		if(choice=='0')
		{
			PR("\n请输入你要订的航班号: ");
			scanf( "%s",line_num);
			PR("请输入你的姓名: ");
			scanf( "%s",name);
			book(air,line_num,cus,name);
			save_airline(air);
			save_customer(cus);
		}
		else if(choice=='1')
		{
			PR("\n请输入你的姓名: ");
			scanf( "%s",name);
			delete_cus(cus,air,name);
			save_airline(air);
			save_customer(cus);
		}
		else if(choice=='2')
		{
			PR("\n  航班号  飞机号   目的地    总票数   余票数\n");
			print_airline(air);
			PR("    姓名            航班号      座位号\n");
			print_customer(cus);
		}
		else if(choice=='3')
		{
			tt=1;
			PR("请输入密码: ");
			scanf("%s",password);
			if(strcmp(password,pass)==0)
			{
				while (tt==1){
					PR("\n*------------------------------*\n");
					PR("*-------航线信息修改:----------*\n");
					PR("*	增加航班号-----'0'     *\n");
					PR("*	删除航班号-----'1'     *\n");
					PR("*	修改密码-------'2'     *\n");
					PR("*	查询航线信息---'3'     *\n");
					PR("*	退出航线修改---'4'     *\n");
					PR("*------------------------------*\n");
					PR("请选择: ");
					
					choice2=getch();
					PR("%c\n",choice2);
					if(choice2=='0')
					{
						PR("请输入你要增加的航班号: ");
						scanf("%s",line_num);
						PR("请输入飞机号: ");
						scanf("%s",plane_num);
						PR("请输入目的地: ");
						scanf("%s",end_place);
						PR("请输入座位总数: ");
						scanf("%d",&total);
						increase_air(air,line_num,plane_num,end_place,total);
						save_airline(air);
						save_customer(cus);
					}
					else if (choice2=='1')
					{
						PR("请输入你要删除的航班号: \n");
						scanf("%s",line_num);
						delete_airline(air,line_num);
						delete_customer(cus,line_num);
						save_airline(air);
						save_customer(cus);
					}
					else if(choice2=='2')
					{	
						PR("注意:密码不能超过8位!\n");
						PR("请输入新密码:");
						scanf("%s",re_pass_1);
						PR("请再输入一次: ");
						scanf("%s",re_pass_2);
						if(strcmp(re_pass_1,re_pass_2)==0)
						{
							strcpy(pass,re_pass_1);
							PR("密码修改成功!请记住.\n");
						}
						else {
							PR("你两次输入的密码不一致!\n");
						}
					}
					else if(choice2=='3')
					{
						PR("\n  航班号  飞机号   目的地    总票数   余票数\n");
						print_airline(air);
					}
					else if(choice2=='4')
					{
						tt=0;
					}
					else {
						PR("你的输入有误\n");
						tt=0;
					}
				}//end while
			}//end if
			else {
				PR("对不起!你输入的密码不正确!\n");
			}
		}//end else if 修改
		else if (choice=='4')
		{ char s[40],ch;
	      int result,t=1;
		  PR("\n");
		  PR("\n");
		  PR("\n");
	      printf("/***************************************************/\n");
	      printf("                 24点游戏   dos  版本1.0\n");
	      printf("                  版权所有\n");
	      printf("                 完成于2008年12月\n");
	      printf("/***************************************************/\n");
          //	printf("When you input the formula,\n");
          //	printf("you should look A as 1,J as 11,Q as 12,k as 13\n");
          //	number[2][4] = {5,5,5,1};
          while(t!=0){
			  number[2][4]=randomm();
            /*	number[0][0]= 5;
             	number[0][1]= 5;
	            number[0][2]= 5;
	            number[0][3]= 1;*/
          //	printf("When you input the formula,\n");

        	printf("这四个数字是: %d   %d    %d   %d\n",number[0][0],number[0][1],number[0][2],number[0][3]);
          //	printf("please input the arithmetic(算术)\n");
	        printf("请输入算式:\n");
         	printf("如果你认为这四个数算不出24点,请输入	?\n");
	        printf("计算机将会给出答案,算不出也是一种答案!\n");
	        printf("你的算式是:");
	        scanf ("%s",s);
	        if(s[0]=='?'){
		                Calc24(number);
			 }
	        else
			{
		         result=EvaluateExpression(s);
		         printf("你输入的算式的结果是: %d \n",result);
		         if(result==24){
				     printf("恭喜您,你算对了!\n");
				 }
		    else {
			       printf("对不起,你算错了,谢谢!\n");
			}
		}
		printf("继续吗?请选择: 'y':继续	'n':退出?\n");
   		scanf(" %c",&ch);
//		printf("the choic is %c\n",ch);
		if(ch=='n'||ch=='N'){
			t=0;			
		}
		else  if (ch=='Y'||ch=='y')   t=1;
		else{
			printf("你的选择(输入)有误!\n"); 
			t=0;
       	}
}//end while

}


		else if(choice=='5')
		{
			PR("再见!");
			t=0;
		}
		else 
		{
			PR("你的输入有误\n");
		}
	}
	getch();
}







	









⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -