** 大学数据结构课程设计报告题目:纸牌游戏院(系):计算机工程学院学生姓名 : 班级:学号 :起迄日期 : 2011
21---2011
1 指导教师 : 2010— 2011 年度 第 2 学期一、需求分析1
问题描述 :随机产生 52 个数按照某一规则计算正面牌数
编号为1-52 张牌,正面向上,从第2 张开始,以 2 为基数,是2 的倍数的牌翻一次,直到最后一张牌;然后,从第3 张开始,以3为基数,是3 的倍数的牌翻一次,直到最后一张牌;然后⋯从第 4 张开始,以4 为基数,是 4 的倍数的牌翻一次,直到最后一张牌;
再依次 5 的倍数的牌翻一次,6 的, 7 的 直到 以 52 为基数的翻过,输出:这时正面向上的牌有哪些
基本功能:选择纸牌是顺序排序还是随机排序随机,1 为随机排序,其他数字为顺序排序,输入一个数使程序运行,随机产生52 张纸牌,运行之后输出正面向上的牌
之后输入1 重新运行,输入其他数字回车停止3
输入输出:1)输入一个数字选择是使用顺序放牌还是随机放牌,1 为随机放牌,其他数字为顺序放牌,输入一个正整数种子值,程序运行,输出52 张纸牌的排列顺序,列出纸牌序列,输出正面向上的牌,进入选择语句,是否再玩一局,输入1,程序从新运行,输入其他,程序运行结束
二、 概要设计1
设计思路:当每个号码每次遇到是某个数的倍数的时候,都会相应的翻一次牌,这样,每张牌翻得次数就个不一样,可能很多次, 也可能只有一两次,结果就只是要输出在经过各个不同次数的反派后,正面向上的牌都有哪几个
例如 24,第一次他是2 的倍数时要从背面翻到背面,当进行到3 时,又要从背面返回来
如果他在多次翻拍后,正面还向上了,那么他就是要输出的结果之一
// 操作函数void operate(void) { rcard rc; int i,j; rc=Rando