1、 题题 目:目: 纸牌游戏纸牌游戏 目录 一、 需求分析3 二、 概要设计3 三、 详细设计4 四、 调试分析和测试结果7 五、 总结8 六、 参考文献8 七、 致谢8 八、 附录9 一、一、 需求分析需求分析 按以下规则进行翻牌:编号为 1-52 张牌,正面向上,从第 2 张开始,以 2 为基数,是 2 的倍数的牌翻一次,直到最后一张牌;然后,从第 3 张开始,以 3 为基数,是 3 的倍数的牌翻一次,直到最后一张牌;然后从第 4 张开始,以 4 为基数,是 4 的倍数的牌翻一次, 直到最后一张牌;.再依次 5 的倍数的牌翻 一次,6 的,7 的 直到 以 52 为基数的翻过,最后输出正面向
2、上的牌有哪些? 用函数 obv1 、obv2 按照题目要求的规则,用 for 循环来实现. 二、二、 概要设计概要设计 1.当从第二个编号开始的每张牌每次遇到是其倍数时,都会相应的翻一次, 这样,每张牌会翻的次数就各不一样,可能很多次,也可能只有一两次,而结果 只是要输出在经过各个不同次数的翻牌后,正面向上的牌都有哪几张。比如 24, 第一次它是 2 的倍数时要从正面翻到背面, 当进行到 3 时, 就又要从背面翻回来, 而到 4 时还要在翻,同理呢,到 6.8.12它都要来回的翻。如果它在多次的翻 牌后,正面还向上了,那么它就是要输出的结果之一。 2.建立代表 52 张牌的线性表调用翻牌算法按
3、照规则翻牌输出翻牌 算法的结果 最为主要的翻牌算法的实现: void obv2 (SqList L,int n) for (int i=2;i=n;i+) for (int j=i;j=2 /存储空间基址 int * data; int length; /当前长度 int listsize; /当前分配的存储容量 SqList; 3、主要函数功能介绍 构造一个空的线性表 L 用来存储分配: void InitList_Sq(SqList if (!L.elem) cout“ERROR“; / 存储分配失败 L.data = (int *)malloc(SIZE*sizeof(int); if (!L.data) cout“ERROR“; / 存储分配失败 L.length = 0; / 空表长度为 0 L.listsize = SIZE; / 初始存储容量 / InitList_Sq 调用 PrintList_Sq 函数用来显示线性表中的数据: void PrintList_Sq(SqList L) /显示线性表中所有数据 for(int i=1;i=L.length;i+) if (L.datai=1) coutL.elemi“ “; coutendl; 调用函数 obv1,确保翻牌前每张牌都