📄 hangkongdingpiao.c
字号:
{
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 + -