如何区别哪些是因果图的原因与结果??
请问 各位大师兄,我今天写了个福彩3D的摇奖程序,流程图也画完了,但是还没有画因果图。目前,我还不能确定哪些是因果图的原因与结果?? 请问 是不是所有的输入条件都可以作为 原因?? 是不是最终的输出结果才算是 结果啊??
比如下面 我这个福彩3D的摇奖程序。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void RecordEnter(int En[],int n) //记录彩民购买3D幸运号码
{
int i;
printf("下面显示您所购买的3D彩票号码:\n");
for(i=0;i<n;i++)
printf("%d ",En[i]);
printf("\n");
}
void GameRule(int En[],int n) //3D彩票游戏玩法规则函数定义
{
int i,j,sing[3]; //sing[3]发出警报声
for(j=0;j<3;j++)
sing[j]=7;
for(i=0;i<n;i++)
while(En[i]<0||En[i]>9)
{
for(j=0;j<5;j++)
printf("%c",sing[j]); //警报声提示非法输入
printf("您输入的3D号码 %d 不符合3D游戏玩法规则 \n请在0-9范围内重新输入\n",En[i]);
scanf("%d",&En[i]);
}
}
void Prize(int En[],int Ball[],int n,int method,int count) //中奖号码查询 函数定义
{
int i,j,k; //method变量代表购买彩票哪种方式,比如直选,组选(组选三,组选六)。
int mark=0,sing=7; //mark代表中奖情况
if(method==1) //直选查询中奖号码
{
for(i=0;i<n;i++)
{
if(En[i]==Ball[i])
mark=mark+1;
}
if(mark==3)
{
printf("%c",sing); //中奖提示声
printf("*****************************************\n");
printf("恭喜您 您直选号码中奖了 奖金1000块\n");
printf("*****************************************\n");
if(1000-2*count>0)
printf("此次购买彩票您赚了%d块\n",1000-2*count);
if(1000-2*count==0)
printf("此次购买彩票您不亏 也不赚:\n");
if(1000-2*count<0)
printf("此次购买彩票您亏:%d\n",2*count-1000);
exit(1);
}
else
printf("此期开奖没有中奖哦\n感谢您对福利彩票事业的支持 欢迎您下次再来\n");
}
if(method==2) //组选查询中奖号码
{
for(i=0;i<n;i++)
{
k=i;
for(j=i;j<n;j++)
if(En[k]==Ball[j])
mark=mark+1;
}
if(mark==3) //比如:223和222就是组选三,123就是组选六
{
if(En[0]!=En[1]&&En[0]!=En[2]&&En[2]!=En[1])
if(Ball[0]!=Ball[1]&&Ball[0]!=Ball[2]&&Ball[2]!=Ball[1])
{
printf("%c",sing); //中奖提示声
printf("*****************************************\n");
printf("恭喜您 您组选六中奖了 奖金160块\n");
printf("*****************************************\n");
if(160-2*count>0)
printf("此次购买彩票您赚了%d块\n",160-2*count);
if(160-2*count==0)
printf("此次购买彩票您不亏 也不赚:\n");
if(160-2*count<0)
printf("此次购买彩票您亏:%d\n",2*count-160);
exit(1);
}
else
printf("此期开奖没有中奖哦\n感谢您对福利彩票事业的支持 欢迎您下次再来\n");
}
else
if(mark==5||mark==9)
{
printf("%c",sing); //中奖提示声
printf("*****************************************\n");
printf("恭喜您 您组选三中奖了 奖金320块\n");
printf("*****************************************\n");
if(320-2*count>0)
printf("此次购买彩票您赚了%d块\n",320-2*count);
if(320-2*count==0)
printf("此次购买彩票您不亏 也不赚:\n");
if(320-2*count<0)
printf("此次购买彩票您亏:%d\n",2*count-320);
exit(1);
}
else
printf("此期开奖没有中奖哦\n感谢您对福利彩票事业的支持 欢迎您下次再来\n");
}
}
void ThreeBall(int En[],int n,int method,int count) //3D彩票游戏玩法开奖结果函数定义
{
int Ball[3]; //记录开奖号码
int i,j; //j代表开奖期数
for(j=1;j<=count;j++)
{
printf("\n第 %d 期随机筛选的3D彩票开奖号码:\n",j);
for(i=0;i<3;i++)
{
Ball[i]=rand()%10;
printf(" %d ",Ball[i]);
}
printf("\n");
if(count==j)
{
printf("*****************************************\n");
printf("此次购买彩票 您亏了%d块\n",2*count);
printf("*****************************************\n");
}
Prize(En,Ball,3,method,count);
}
printf("\n祝君恭喜发财\n\n");
}
void Guide() //福彩3D 操作向导系统
{
int i,En[3],method,count,begin,money;
int sing[2]; //鸣叫声
printf(" 欢迎进入福利彩票3D阿浪摇奖系统 \n\n");
printf("*******************************************************\n");
printf("请在0-9范围内输入任意3个整型数字:\n");
for(i=0;i<3;i++)
scanf("%d",&En[i]);
GameRule(En,3);
RecordEnter(En,3);
printf("\n请输入您购买3D彩票的方式:\n直选 请按1\n组选 请按 2\n");
scanf("%d",&method);
while(method!=1&&method!=2)
{
for(i=0;i<2;i++)
{
sing[i]=7;
printf("%c",sing[i]);
}
printf("您操作出错:请重新选择\n\n直选 请按1\n组选 请按 2\n");
scanf("%d",&method);
}
printf("请输入您福彩3D摇奖期数:\n");
scanf("%d",&count);
while(count<=0||count>1000)
{
for(i=0;i<2;i++)
{
sing[i]=7;
printf("%c",sing[i]);
}
if(count>1000)
printf("从彩民利益出发 此系统不提倡购买彩票数量超过1000\n");
else
if(count==0)
printf("您还没有确定购买彩票的数量:\n");
else
printf("您输入非法数字:\n");
printf("请重新输入:\n");
scanf("%d",&count);
}
printf("您所需付款金额为:%d块\n",money=count*2);
printf("彩票费用您已经付款了\n");
printf("\n欢迎您进入3D游戏玩法界面:\n下面预测出未来%d期内的开奖号码\n",count);
printf("\n如果您决定购买 请按1\n 如果您暂时不购买 请按2\n");
scanf("%d",&begin);
while(begin!=1&&begin!=2)
{
for(i=0;i<3;i++)
printf("%c",sing[i]);
printf("您的操作方式错误\n如果您决定购买 请按1\n如果您暂时不购买 请按2\n");
scanf("%d",&begin);
}
if(begin==2)
{
printf("\n彩票费用 已退还\n");
printf("\n您已经退出了 摇奖系统\n");
}
else
ThreeBall(En,3,method,count);
}
void main()
{
void ThreeBall(int En[],int n,int method,int count); //3D彩票游戏玩法开奖结果函数声明
void RecordEnter(int En[],int n);//记录彩民购买3D幸运号码
void Prize(int En[],int Ball[],int n,int count); //3D彩票中奖查询函数
void GameRule(int En[],int n); //3D彩票游戏玩法规则函数
void Guide(); //福彩3D摇奖系统向导
srand((unsigned)time(NULL));
Guide();
}
[解决办法]
输入为因,输出为果
变化前的为因,变化后的为果
有因必有果,因果图反映的就是因果关系