c程序课程设计报告(24点游戏)
课程设计报告
课程名称: C语言程序设计
课题名称: 二十四点速算王游戏
专 业: 通信工程专业
班 级: 12级通信工程1班
学 号: 2012167144
姓 名: 杨发斌
指导教师: 董万归
数学与计算机学院
目录
一、项目总体介绍
二、需求分析
三、总体设计
四、详细设计
五、系统测试及结果分析
六、总结
七、附件
八、参考文献
、
项目总体介绍
本项目主要设计一个24点游戏程序。程序主要负责实现随即发给出4个数,表达式运算,利用加减乘除和括号基本算法来实现,计算机给出解答,结果统计分析等基本功能。游戏者先开始游戏之后,系统随机给出4个整数,这4个整数在0~13之间,游戏者可输入算术运算表达式(利用+ - * / 运算),先判断表达式是否正确,计算是否满足24,不正确的话游戏将给出正确的表达式和结果,游戏者也可以放弃输入由游戏给出答案或者退出游戏。
需求分析
程序的功能
游戏运行后自动产生4个数,其中每个数字只能用一次,任意使用+ - * /(),构造出一个表达式,使得起结果等于24,这就是我的24点游戏。在游戏者输入表达式的同时程序自动检测用户的输入是否正确,是否是游戏给出的4个数,如果不是游戏会给出提示,重新输入或者退出游戏。
2.输入和输出的要求
输入的运算符只能是+ - * /()这6个,输入的整数必须是程序随机给出的4个数,并且每个数都要用一次不能重复出现。当用户正确输入算式后,游戏自动判断,判断完毕后求出结果并判断是否为24 ,给出游戏者是“对”还是“错”,输入结束后问游戏者是否继续游戏,是则继续游戏,否则退出游戏。
3.用户计算24点,计算机计算24点
总体设计
算法描述
主要方法:遍历和递归
主要思路
把输入的4个数放在一个数组n【4】中,然后任取2个数(不能取同一个数),然后用一个for和一个switch语句来实现这两个数的加减乘除运算,然后把运算结果放到另一个数组【4】中记录此运算的表达式(放到一个大一点的数组tm【4】【25】中),同时把其他两个没用到的数也该放在该数组中,然后重复以上过程(用遍历来实现),最后判定是不是最后一层运算,是的话在判定最后结果是不是等于24,等于24的话就把运算式输出。
3.主要函数与数组
主要有两个函数,一个主函数,用来输入4个数,并且完成初始化,还有一个COUNT(float a[] ,char tem[][25],int n)函数,用来完成遍历,递归与输出,其中
a[]中要存放输入的4个数,tem[][25]中放计算步骤,n是a[]中元素的个数。
详细设计
本项目主要设计一个24点游戏程序。程序主要负责实现随即发给出4个数,表达式运算,利用加减乘除和括号基本算法来实现,计算机给出解答,结果统计分析等基本功能。游戏者先开始游戏之后,系统随机给出4个整数,这4个整数在0~13之间,游戏者可输入算术运算表达式(利用+ - * / 运算),先判断表达式是否正确,计算是否满足24,不正确的话游戏将给出正确的表达式和结果,游戏者也可以放弃输入由游戏给出答案或者退出游戏。
#include
#include
#include
#include
#include
#include
#define MAX 4;
int k=0;char tp[4]={0,0,0,0},tpt[2000]={0},tptt[2000]={0},tre[2000]={0};char op[4]={'+','*','-','/'};
void count(float a[],char tem[][25],int n);
int q=0,p=0,e=0,w=0,t=0,r=0,g=0,h=0,v=0,u=0,tu=0,te=0;
float group[2]={0,0},flow[20]={0},flo[20]={0};
void main()
{
char br=1;
int d;
while (br==1)
{ float number[4];
char temp[4][25];
cout<
cout<
for(d=0;d<4;d++)