毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

VC++暗记扑克牌问题代码+流程图

更新时间:2011-4-29:  来源:毕业论文

VC++暗记扑克牌问题代码+流程图
需求分析:
     本程序主要解决的是: 编程序,让计算机来猜测用户“暗记”的某张扑克牌:计算机从一副扑克牌(54张)中任意抽出27张,摆放在不同的三行上(每行9张),用户“暗记”某张纸牌,而后告诉计算机所“暗记”的那张纸牌处于哪一行中;之后计算机再两次将纸牌重新摆放,并让用户再回答两次相同的提问(那张纸牌在重新摆放后又处在哪一行上);此时计算机会将用户所“暗记”的那张纸牌给挑出来。
1.2概要设计:

本程设计思路: 1)要从一副54张的扑克牌中任意抽出27张,可通过“rand()%54”所产生的随机值来确定。但注意,一旦随机抽走哪张,下次牌中就没有这张了。
2)程序总按照一种策略将三行纸牌重新“摆放”,而后进一步让用户进行指定。上述所谓的策略指的是,总将纸牌“一分为三”:第一次要将每一行的9张分散到不同的3行上(每行仅“剩”3张),而第二次则要将上次“确定”出的某3张进一步分散到不同的3行上(每行只“剩”1张。此时靠用户再指定一次行号则可唯一确定所“暗记”的那张纸牌)。

程序流程图:
 
1.3   详细设计与编码:
设计起来比较简单:
1. 产生三行9列的随机数,不能有重复。
2. 当输入数据时将三行数字看似随机的打乱
3. 在打乱过程中以三个为单位不重复有规律打乱
4. 再次输入数字时,重复23
5. 最后得到结果
编码的几个主要点在于:
1.产生三行九列的无重复随机数
void ran(int a[],int al,int n)        //产生不同随机数函数
{
  int i,j;                           //循环控制变量
  time_t t;                         //时间变量
  srand((unsigned)time(&t));        //种下随即发生器必须的种子
  
  a[0]=rand()%n;
  for(i=1;i<al;i++)
  {
    a[i]=rand()%n;
 for(j=0;j<i;)
 {
  if(a[i]!=a[j]) { j++;}
  else{ a[i]=rand()%n;j=0;}
2.看似随机打乱的方法:
(1)for(i=1;i<=27;i++)
  {  
   if(i==1){j=0;}
      if(i==4){j=9;}
  原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn/    if(i==19){j=6;}
      if(i==22){j=15;}
      if(i==25){j=24;}
    if(i==1||i==10||i==19){cout<<"Line"<<i/9+1<<":  ";}
   printf("%2d ",a[j]);
   j++;
      if((i)%9==0) cout<<endl;
(2)for(i=0,j=0;j<27;j++)
   { 
   if(i>=27){
    if(j>8){i=1;}
    if(j>17){i=2;}
   }
      if(j==0||j==9||j==18){cout<<"Line"<<j/9+1<<":  ";}
      printf("%2d ",a[i]);
   i=i+3;
      if((j+1)%9==0) cout<<endl;

程序执行的结果:1805

VC++暗记扑克牌问题代码+流程图下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。