C语言课程设计计算24游戏.docx
- 文档编号:8868552
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:16
- 大小:47.88KB
C语言课程设计计算24游戏.docx
《C语言课程设计计算24游戏.docx》由会员分享,可在线阅读,更多相关《C语言课程设计计算24游戏.docx(16页珍藏版)》请在冰豆网上搜索。
C语言课程设计计算24游戏
课程设计报告
学院、系:
吉林大学珠海学院计算机科学与技术系
专业名称:
软件工程
课程设计科目
C语言程序课程设计
学生姓名:
杨记祥
指导教师:
张东娜
完成时间:
2010年3月-5月
计算24游戏
一、设计任务与目标
题目要求在输入4个数后,程序对这个4个数进行运算,若能计算出结果等于24,即输出运算过程。
接到题目的时候,手上并无其他资料,需要自己全动手设计才能到达目标,而目标是在输入四个数之后,先进行全排列,然后进行全运算,从而最终得到结果以输出。
二、方案设计与论证
关于这个计算24游戏的设计,首先我将题目看成两部分,一部分为运算数,一部分为运算符。
首先由于有四个数,则只有三个运算符,由于涉及了括号,个人认为用穷举法才能全面地进行说有的运算,我们可以将运算符和括号这部分归为主运算部分,在这部分中,运算数的位置固定,但是运算符和括号的位置会改变,而且程序主要就是在这部分运算,直接将数值引入,然后计算判断是否等于24,若等于24,则输出数值和这些运算符、括号的位置构成的运算式;然而,这是不够全面的,因为还要考虑运算数的排列位置,于是有了第二部分,运算数的位置全排列,同样是采用穷举法,将运算数全排列,在每个排列后面调用主运算的方法,从而达到全面不遗漏地计算。
在MAIN函数中,我们仅需要记录输入的4个数字,然后将数值用在全排列函数中即可。
整个程序的设计看起来很繁琐,但在运用上很简单,能简明扼要地表现出来。
三、程序框图或流程图,程序清单与调用关系
四、全部源程序清单
#include
voidjisuan(floata,floatb,floatc,floatd)//进行运算符和括号的排列及计算
{
if(a+b+c+d==24){printf("%1.0f+%1.0f+%1.0f+%1.0f=24\n",a,b,c,d);}
if(a+b+c-d==24){printf("%1.0f+%1.0f+%1.0f-%1.0f=24\n",a,b,c,d);}
if(a+b+c*d==24){printf("%1.0f+%1.0f+%1.0f*%1.0f=24\n",a,b,c,d);}
if(a+(b+c)*d==24){printf("%1.0f+(%1.0f+%1.0f)*%1.0f=24\n",a,b,c,d);}
if((a+b+c)*d==24){printf("(%1.0f+%1.0f+%1.0f)*%1.0f=24\n",a,b,c,d);}
if(a+b+c/d==24){printf("%1.0f+%1.0f+%1.0f/%1.0f=24\n",a,b,c,d);}
if(a+(b+c)/d==24){printf("%1.0f+(%1.0f+%1.0f)/%1.0f=24\n",a,b,c,d);}
if((a+b+c)/d==24){printf("(%1.0f+%1.0f+%1.0f)/%1.0f=24\n",a,b,c,d);}
if(a+b-c+d==24){printf("%1.0f+%1.0f-%1.0f+%1.0f=24\n",a,b,c,d);}
if(a+b-c-d==24){printf("%1.0f+%1.0f-%1.0f-%1.0f=24\n",a,b,c,d);}
if(a+b-c*d==24){printf("%1.0f+%1.0f-%1.0f*%1.0f=24\n",a,b,c,d);}
if(a+(b-c)*d==24){printf("%1.0f+(%1.0f-%1.0f)*%1.0f=24\n",a,b,c,d);}
if((a+b-c)*d==24){printf("(%1.0f+%1.0f-%1.0f)*%1.0f=24\n",a,b,c,d);}
if(a+b-c/d==24){printf("%1.0f+%1.0f-%1.0f/%1.0f=24\n",a,b,c,d);}
if(a+(b-c)/d==24){printf("%1.0f+(%1.0f-%1.0f)/%1.0f=24\n",a,b,c,d);}
if((a+b-c)/d==24){printf("(%1.0f+%1.0f-%1.0f)/%1.0f=24\n",a,b,c,d);}
if(a+b*c+d==24){printf("%1.0f+%1.0f*%1.0f+%1.0f=24\n",a,b,c,d);}
if((a+b)*c+d==24){printf("(%1.0f+%1.0f)*%1.0f+%1.0f=24\n",a,b,c,d);}
if(a+b*(c+d)==24){printf("%1.0f+%1.0f*(%1.0f+%1.0f)=24\n",a,b,c,d);}
if((a+b)*(c+d)==24){printf("(%1.0f+%1.0f)*(%1.0f+%1.0f)=24\n",a,b,c,d);}
if(a+b*c-d==24){printf("%1.0f+%1.0f*%1.0f-%1.0f=24\n",a,b,c,d);}
if((a+b)*c-d==24){printf("(%1.0f+%1.0f)*%1.0f-%1.0f=24\n",a,b,c,d);}
if(a+b*(c-d)==24){printf("%1.0f+%1.0f*(%1.0f-%1.0f)=24\n",a,b,c,d);}
if((a+b)*(c-d)==24){printf("(%1.0f+%1.0f)*(%1.0f-%1.0f)=24\n",a,b,c,d);}
if(a+b*c*d==24){printf("%1.0f+%1.0f*%1.0f*%1.0f=24\n",a,b,c,d);}
if((a+b)*c*d==24){printf("(%1.0f+%1.0f)*%1.0f*%1.0f=24\n",a,b,c,d);}
if(a+b*c/d==24){printf("%1.0f+%1.0f*%1.0f/%1.0f=24\n",a,b,c,d);}
if((a+b)*c/d==24){printf("(%1.0f+%1.0f)*%1.0f/%1.0f=24\n",a,b,c,d);}
if((a+b)*(c/d)==24){printf("(%1.0f+%1.0f)*(%1.0f/%1.0f)=24\n",a,b,c,d);}
if(a+b/c+d==24){printf("%1.0f+%1.0f/%1.0f+%1.0f=24\n",a,b,c,d);}
if((a+b)/c+d==24){printf("(%1.0f+%1.0f)/%1.0f+%1.0f=24\n",a,b,c,d);}
if(a+b/(c+d)==24){printf("%1.0f+%1.0f/(%1.0f+%1.0f)=24\n",a,b,c,d);}
if((a+b)/(c+d)==24){printf("(%1.0f+%1.0f)/(%1.0f+%1.0f)=24\n",a,b,c,d);}
if(a+b/c-d==24){printf("%1.0f+%1.0f/%1.0f+%1.0f=24\n",a,b,c,d);}
if((a+b)/c-d==24){printf("(%1.0f+%1.0f)/%1.0f-%1.0f=24\n",a,b,c,d);}
if(a+b/(c-d)==24){printf("%1.0f+%1.0f/(%1.0f-%1.0f)=24\n",a,b,c,d);}
if((a+b)/(c-d)==24){printf("(%1.0f+%1.0f)/(%1.0f-%1.0f)=24\n",a,b,c,d);}
if(a+b/c*d==24){printf("%1.0f+%1.0f/%1.0f*%1.0f=24\n",a,b,c,d);}
if((a+b)/c*d==24){printf("(%1.0f+%1.0f)/%1.0f*%1.0f=24\n",a,b,c,d);}
if((a+b)/(c*d)==24){printf("(%1.0f+%1.0f)/(%1.0f*%1.0f)=24\n",a,b,c,d);}
if(a+b/c/d==24){printf("%1.0f+%1.0f/%1.0f/%1.0f=24\n",a,b,c,d);}
if((a+b)/c/d==24){printf("(%1.0f+%1.0f)/%1.0f/%1.0f=24\n",a,b,c,d);}
if((a+b)/(c/d)==24){printf("(%1.0f+%1.0f)/(%1.0f/%1.0f)=24\n",a,b,c,d);}
//-----------------------------------------------------------
if(a-b+c+d==24){printf("%1.0f-%1.0f+%1.0f+%1.0f=24\n",a,b,c,d);}
if(a-b+c-d==24){printf("%1.0f-%1.0f+%1.0f-%1.0f=24\n",a,b,c,d);}
if(a-b+c*d==24){printf("%1.0f-(%1.0f+%1.0f)*%1.0f=24\n",a,b,c,d);}
if(a-(b+c)*d==24){printf("%1.0f-%1.0f+%1.0f*%1.0f=24\n",a,b,c,d);}
if((a-b+c)*d==24){printf("(%1.0f-%1.0f+%1.0f)*%1.0f=24\n",a,b,c,d);}
if(a-b+c/d==24){printf("%1.0f-%1.0f+%1.0f/%1.0f=24\n",a,b,c,d);}
if(a-(b+c)/d==24){printf("%1.0f-(%1.0f+%1.0f)/%1.0f=24\n",a,b,c,d);}
if((a-b+c)/d==24){printf("(%1.0f-%1.0f+%1.0f)/%1.0f=24\n",a,b,c,d);}
if(a-b-c+d==24){printf("%1.0f-%1.0f-%1.0f+%1.0f=24\n",a,b,c,d);}
if(a-b-c-d==24){printf("%1.0f-%1.0f-%1.0f-%1.0f=24\n",a,b,c,d);}
if(a-b-c*d==24){printf("%1.0f-%1.0f-%1.0f*%1.0f=24\n",a,b,c,d);}
if(a-(b-c)*d==24){printf("%1.0f-(%1.0f-%1.0f)*%1.0f=24\n",a,b,c,d);}
if((a-b-c)*d==24){printf("(%1.0f-%1.0f-%1.0f)*%1.0f=24\n",a,b,c,d);}
if(a-b-c/d==24){printf("%1.0f-%1.0f-%1.0f/%1.0f=24\n",a,b,c,d);}
if(a-(b-c)/d==24){printf("%1.0f-(%1.0f-%1.0f)/%1.0f=24\n",a,b,c,d);}
if((a-b-c)/d==24){printf("%1.0f-%1.0f-%1.0f/%1.0f=24\n",a,b,c,d);}
if(a-b*c+d==24){printf("%1.0f-%1.0f*%1.0f+%1.0f=24\n",a,b,c,d);}
if((a-b)*c+d==24){printf("(%1.0f-%1.0f)*%1.0f+%1.0f=24\n",a,b,c,d);}
if(a-b*(c+d)==24){printf("%1.0f-%1.0f*(%1.0f+%1.0f)=24\n",a,b,c,d);}
if((a-b)*(c+d)==24){printf("(%1.0f-%1.0f)*(%1.0f+%1.0f)=24\n",a,b,c,d);}
if(a-b*c-d==24){printf("%1.0f-%1.0f*%1.0f-%1.0f=24\n",a,b,c,d);}
if((a-b)*c-d==24){printf("(%1.0f-%1.0f)*%1.0f-%1.0f=24\n",a,b,c,d);}
if(a-b*(c-d)==24){printf("%1.0f-%1.0f*(%1.0f-%1.0f)=24\n",a,b,c,d);}
if((a-b)*(c-d)==24){printf("(%1.0f-%1.0f)*(%1.0f-%1.0f)=24\n",a,b,c,d);}
if(a-b*c*d==24){printf("%1.0f-%1.0f*%1.0f*%1.0f=24\n",a,b,c,d);}
if((a-b)*c*d==24){printf("(%1.0f-%1.0f)*%1.0f*%1.0f=24\n",a,b,c,d);}
if(a-b*c/d==24){printf("%1.0f-%1.0f*%1.0f/%1.0f=24\n",a,b,c,d);}
if((a-b)*c/d==24){printf("(%1.0f-%1.0f)*%1.0f/%1.0f=24\n",a,b,c,d);}
if((a-b)*(c/d)==24){printf("(%1.0f-%1.0f)*(%1.0f/%1.0f)=24\n",a,b,c,d);}
if(a-b/c+d==24){printf("%1.0f-%1.0f/%1.0f+%1.0f=24\n",a,b,c,d);}
if((a-b)/c+d==24){printf("(%1.0f-%1.0f)/%1.0f+%1.0f=24\n",a,b,c,d);}
if(a-b/(c+d)==24){printf("%1.0f-%1.0f/(%1.0f+%1.0f)=24\n",a,b,c,d);}
if((a-b)/(c+d)==24){printf("(%1.0f-%1.0f)/(%1.0f+%1.0f)=24\n",a,b,c,d);}
if(a-b/c-d==24){printf("%1.0f-%1.0f/%1.0f+%1.0f=24\n",a,b,c,d);}
if((a-b)/c-d==24){printf("(%1.0f-%1.0f)/%1.0f-%1.0f=24\n",a,b,c,d);}
if(a-b/(c-d)==24){printf("%1.0f-%1.0f/(%1.0f-%1.0f)=24\n",a,b,c,d);}
if((a-b)/(c-d)==24){printf("(%1.0f-%1.0f)/(%1.0f-%1.0f)=24\n",a,b,c,d);}
if(a-b/c*d==24){printf("%1.0f-%1.0f/%1.0f*%1.0f=24\n",a,b,c,d);}
if((a-b)/c*d==24){printf("(%1.0f-%1.0f)/%1.0f*%1.0f=24\n",a,b,c,d);}
if((a-b)/(c*d)==24){printf("(%1.0f-%1.0f)/(%1.0f*%1.0f)=24\n",a,b,c,d);}
if(a-b/c/d==24){printf("%1.0f-%1.0f/%1.0f/%1.0f=24\n",a,b,c,d);}
if((a-b)/c/d==24){printf("(%1.0f-%1.0f)/%1.0f/%1.0f=24\n",a,b,c,d);}
if((a-b)/(c/d)==24){printf("(%1.0f-%1.0f)/(%1.0f/%1.0f)=24\n",a,b,c,d);}
//-----------------------------------------------------------
if(a*b+c+d==24){printf("%1.0f*%1.0f+%1.0f+%1.0f=24\n",a,b,c,d);}
if(a*(b+c)+d==24){printf("%1.0f*(%1.0f+%1.0f)+%1.0f=24\n",a,b,c,d);}
if(a*(b+c+d)==24){printf("%1.0f*(%1.0f+%1.0f+%1.0f)=24\n",a,b,c,d);}
if(a*b+c-d==24){printf("%1.0f*%1.0f+%1.0f-%1.0f=24\n",a,b,c,d);}
if(a*(b+c)-d==24){printf("%1.0f*(%1.0f+%1.0f)-%1.0f=24\n",a,b,c,d);}
if(a*(b+c-d)==24){printf("%1.0f*(%1.0f+%1.0f-%1.0f)=24\n",a,b,c,d);}
if(a*b+c*d==24){printf("%1.0f*%1.0f+%1.0f*%1.0f=24\n",a,b,c,d);}
if(a*(b+c)*d==24){printf("%1.0f*(%1.0f+%1.0f)*%1.0f=24\n",a,b,c,d);}
if(a*b+c/d==24){printf("%1.0f*%1.0f+%1.0f/%1.0f=24\n",a,b,c,d);}
if(a*(b+c)/d==24){printf("%1.0f*(%1.0f+%1.0f)/%1.0f=24\n",a,b,c,d);}
if(a*b-c+d==24){printf("%1.0f*%1.0f-%1.0f+%1.0f=24\n",a,b,c,d);}
if(a*(b-c)+d==24){printf("%1.0f*(%1.0f-%1.0f)+%1.0f=24\n",a,b,c,d);}
if(a*(b-c+d)==24){printf("%1.0f*(%1.0f-%1.0f+%1.0f)=24\n",a,b,c,d);}
if(a*b-c-d==24){printf("%1.0f*%1.0f-%1.0f-%1.0f=24\n",a,b,c,d);}
if(a*(b-c)-d==24){printf("%1.0f*(%1.0f-%1.0f)-%1.0f=24\n",a,b,c,d);}
if(a*(b-c-d)==24){printf("%1.0f*(%1.0f-%1.0f-%1.0f)=24\n",a,b,c,d);}
if(a*b-c*d==24){printf("%1.0f*%1.0f-%1.0f*%1.0f=24\n",a,b,c,d);}
if(a*(b-c)*d==24){printf("%1.0f*(%1.0f-%1.0f)*%1.0f=24\n",a,b,c,d);}
if(a*b-c/d==24){printf("%1.0f*%1.0f-%1.0f/%1.0f=24\n",a,b,c,d);}
if(a*(b-c)/d==24){printf("%1.0f*(%1.0f-%1.0f)/%1.0f=24\n",a,b,c,d);}
if(a*b*c+d==24){printf("%1.0f*%1.0f*%1.0f+%1.0f=24\n",a,b,c,d);}
if(a*b*(c+d)==24){printf("%1.0f*%1.0f*(%1.0f+%1.0f)=24\n",a,b,c,d);}
if(a*b*c-d==24){printf("%1.0f*%1.0f*%1.0f-%1.0f=24\n",a,b,c,d);}
if(a*b*(c-d)==24){printf("%1.0f*%1.0f*(%1.0f-%1.0f)=24\n",a,b,c,d);}
if(a*b*c*d==24){printf("%1.0f*%1.0f*%1.0f*%1.0f=24\n",a,b,c,d);}
if(a*b*c/d==24){printf("%1.0f*%1.0f*%1.0f/%1.0f=24\n",a,b,c,d);}
if(a*b*(c/d)==24){printf("%1.0f*%1.0f*(%1.0f/%1.0f)=24\n",a,b,c,d);}
if(a*b/c+d==24){printf("%1.0f*%1.0f/%1.0f+%1.0f=24\n",a,b,c,d);}
if(a*b/(c+d)==24){printf("%1.0f*%1.0f/(%1.0f+%1.0f)=24\n",a,b,c,d);}
if(a*b/c-d==24){printf("%1.0f*%1.0f/%1.0f-%1.0f=24\n",a,b,c,d);}
if(a*b/(c-d)==24){printf("%1.0f*%1.0f/(%1.0f-%1.0f)=24\n",a,b,c,d);}
if(a*b/c*d==24){printf("%1.0f*%1.0f/%1.0f*%1.0f=24\n",a,b,c,d);}
if(a*(b/c)*d==24){printf("%1.0f*(%1.0f/%1.0f)*%1.0f=24\n",a,b,c,d);}
if(a*b/(c*d)==24){printf("%1.0f*%1.0f/(%1.0f*%1.0f)=24\n",a,b,c,d);}
if(a*b/c/d==24){printf("%1.0f*%1.0f/%1.0f/%1.0f=24\n",a,b,c,d);}
if(a*(b/c)/d==24){printf("%1.0f*(%1.0f/%1.0f)/%1.0f=24\n",a,b,c,d);}
if(a*b/(c/d)==24){printf("%1.0f*%1.0f/(%1.0f/%1.0f)=24\n",a,b,c,d);}
//-----------------------------------------------------------
if(a/b+c+d==24){printf("%1.0f/%1.0f+%1.0f+%1.0f=24\n",a,b,c,d);}
if(a/(b+c)+d==24){printf("%1.0f/(%1.0f+%1.0f)+%1.0f=24\n",a,b,c,d);}
if(a/(b+c+d)==24){printf("%1.0f/(%1.0f+%1.0f+%1.0f)=24\n",a,b,c,d);}
if(a/b+c-d==24){printf("%1.0f/%1.0f+%1.0f-%1.0f=24\n",a,b,c,d);}
if(a/(b+c)-d==
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课程设计 计算 24 游戏