1、 C C 语言课程设计语言课程设计 题题 目:目:程序设计基础课程设计程序设计基础课程设计 班班 级:级: 姓姓 名:名: 指导教师:指导教师: 所属系部:所属系部: 2009年年 6 月月24 日日 21 点游戏设计 1 游戏规则 此游戏,原则上是可以由不限定的人数来玩,但是随着参与人数的增加,在最后成绩的 比较方面会比较的繁琐, 不像两个人之间的比赛结果那么明显, 所以也应该将参与人数控制 在一定的范围之内。确定参与人数后,系统会随机为每个人发三张牌,然后计算这三张牌的 和进行比较。如果这三张牌的和大于 21,则此人将会输掉比赛,除非其他人的和也大于 21 (即假若每个人的三张牌的和都大于
2、 21 时,该局为平局,打成平手) 。如果有的和大于 21, 有的和小于 21,则大于 21 的人输掉比赛,再比较小于 21 的部分,谁的三张牌的和最接近 21,则谁是该局的赢家。一局玩完后,玩者可以根据自己情况进行选择是否要再玩一局。若 选择再玩时,系统会再进行下一次的循环。 2 程序算法 1 由系统随机产生几组随机数,每组 3 个随机数。 2 计算每一组的三个随机数的和。 3 比较每组和的大小。 4 得出比赛结果 3 关键算法流程图 总体框架 开始 4 程序代码 /* Note:Your choice is C IDE */ C =Y 输入字 符 C Y 结束 N Y 产生随机数,求和,
3、比较,得结果 开始 Flag=1 #include #include #include #define N 5 main( ) int i,t,flag, j,m; int b8,a3*N; char c; b1=0;flag=1; while (flag) /控制循环 srand(time(NULL); / scanf(“%d“, /用 j 控制组数 for(t=0;t3*j;t+) /产生几组随机数 if (t%3=0) printf(“n“); at=rand()%13+1; printf(“%5d“,at); printf(“n“); for(i=1;i=j;i+) /求每组随机数的和
4、 for(t=3*(i-1);t3*i;t+) bi=bi+at; printf(“b%d=%dn“,i,bi); bi+1=0; printf(“n“); for(t=1;tj;t+) /对和的大小进行排序 for(i=1;ibi+1) m=bi+1; bi+1=bi; bi=m; for (i=1;i=j;i+) printf(“%5d“,bi); printf(“n“); for (i=1;i21) printf(“这一局为第%d 个人赢n 是否再玩一局,若输入Y则继续游戏, 输入N结束游戏n“,i-1); getchar(); /与 while 语句是一个系统 c=getchar(); if(c=Y) flag=1; else flag=0; 5 在程序设计中,出现的问题和解决方案: