数据结构课程设计纸牌游戏
纸牌游戏—数据结构实训代码

纸牌游戏——数据结构实训代码实训要求:基本要求:一副没有花牌(J、Q、K、A、大小王)的扑克牌,两个人进行纸牌游戏,其中一个人为用户,另一个人为计算机;每轮每人各发 5 张牌,各自以这 5 张牌建立二叉排序树;由用户先出,轮流出牌,每次只能出一张并且要比别人出的大,如:用户出3,计算机则要出比 3 大的牌,没有则选择不出;最先出完的人获胜。
#include <iostream>#include<stdlib.h> // 产生随机数#include<time.h>#include <Windows.h>#include <iomanip>using namespace std;class PlayingCards{private:int card1[10][4];//标记发牌int card2[5][2];//标记出牌public:int b[5];char bhuase[5];int c[5];char chuase[5];PlayingCards(){};void yxsm(); //游戏说明void fp();//随机发牌void cp();//按顺序出牌,并显示void xswj();//显示获得的牌void xsdn();//显示获得的牌void qk();//清空标记数组的记录};PlayingCards a;typedef struct node{int data;struct node * LChild;struct node * RChild;}node;class tree{private:int data;struct node * LChild;struct node * RChild;public:void chushihua(node *t);node * charu(node *t , int key);node * jianlib(node *t);node * jianlic(node *t);void paixu1(node * t);void paixu2(node * t,int *p);void paixu3(node * t,int *p);};tree tr;void PlayingCards::yxsm(){cout<<" "<<"每轮每人各发5 张牌,各自以五张牌建立二叉树,由用户先出,轮流出牌,"<<endl;cout<<" cout<<" cout<<" } "<<"每次只能出一张并且要比别人出的大,"<<endl;"<<"如:用户出3,计算机则要出比3 大的牌,没有则选择不出;"<<endl; "<<"最先出完的人获胜。
纸牌游戏实验报告

纸牌游戏实验报告篇一:纸牌游戏Go Fish实验报告纸片游戏Go Fish课程设计一目的通过对GO FISH的课程设计,明白数据结构设计理念,理解并掌握链表的操作,进一步的了解数据结构的含义。
二需求分析决定玩家的数量,先简单化,建立两个玩家,完成设计;1、确定数据结构模版;2、建立数据结构类型;3、完成数据操作;4、确立算法设计。
三概要设计1、数据结构设计该课程设计采用链表和类相结合模式,建立牌堆和牌操作的链表结构:class Card{public:};牌堆类:采用整型数组建立牌堆,并用随机数打乱牌序。
class Node{public:Node(); Node(int value,Node *next);//初始化节点构造函数 int ListLength(Node* L); //链表的计数 int Search(Node* L , int num); //链表的查找Node* head_Insert(Node* head , int num);//从表头插入节点Node* Delete(Node* head , int num); //删除节点 void Print(Node *head);//链表输出 int card_num; char clore; Node *Link; void NewCard();//新建牌 void Shuffle();//洗牌int Licensing(int n);//发牌int CARD_A[52]; private: private:采用链表结构方式,来构造玩家手牌。
用链式结构进行操作进行删除和插入。
2、算法函数int Scoring(NodePtr &player,int score)//计分;int Players_operations(NodePtr &player1,NodePtr &player2,int Choose,int i,Card CardBign)//玩家操作;两个函数分别用来计算与进行牌的操作。
数据结构课程设计——纸牌游戏

题目:纸牌游戏目录一、需求分析 (3)二、概要设计 (3)三、详细设计 (4)四、调试分析和测试结果 (7)五、总结 (8)六、参考文献 (8)七、致谢 (8)八、附录 (9)一、需求分析按以下规则进行翻牌:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,最后输出正面向上的牌有哪些?用函数obv1 、obv2按照题目要求的规则,用for循环来实现.二、概要设计1.当从第二个编号开始的每张牌每次遇到是其倍数时,都会相应的翻一次,这样,每张牌会翻的次数就各不一样,可能很多次,也可能只有一两次,而结果只是要输出在经过各个不同次数的翻牌后,正面向上的牌都有哪几张。
比如24,第一次它是2的倍数时要从正面翻到背面,当进行到3时,就又要从背面翻回来,而到4时还要在翻,同理呢,到6.8.12…它都要来回的翻。
如果它在多次的翻牌后,正面还向上了,那么它就是要输出的结果之一。
2.建立代表52张牌的线性表——调用翻牌算法按照规则翻牌——输出翻牌算法的结果最为主要的翻牌算法的实现:void obv2 (SqList L,int n) {for (int i=2;i<=n;i++)for (int j=i;j<=L.length;j++)if (j%i==0){if (L.data[j]==1)L.data[j]=0;else if (L.data[j]==0)L.data[j]=1;}}以上是通过for循环对是当前基数倍数的牌进行翻牌3、根据算法思想,流程图如下:1、预处理#include<iostream.h>#include<stdlib.h>#define SIZE 100 //线性表存储空间的初始分配量2、数据类型定义定义一个结构体类型SqList,结构体中数组指针elem指示线性表的基地址,length指示线性表的当前长度。
数据结构与算法课设-纸牌游戏21点

目录备注: (2)一、游戏简介 (2)二、设计要求 (2)2.1 问题描述 (2)2.2 要求分析 (2)三、程序功能 (3)3.1 程序的主要功能描述 (3)3.2序流程图 (3)3.3主界面 (4)3.4功能测试 (4)四、源程序 (6)五、课设心得 (14)备注:由于这次课设开始时以为可以做其他题目,知道周四才知道不行。
但我的21点一几个基本成型,因此没有继续改动,希望老师能够理解。
一、游戏简介又名黑杰克,起源于法国,现已流传到世界各地。
现在在世界各地的赌场中都可以看到二十一点,随着互联网的发展,二十一点开始走向网络时代,比如菲律宾的博彩公司就有该游戏。
该游戏由 2 到 6 个人玩,使用除大小王之外的52 张牌,游戏者的目标是使手中的牌的点数之和不超过 21 点且尽量大。
有着悠久的历史。
1700年左右法国赌场就有这种21点的纸牌游戏。
1931年,当美国内华达州宣布赌博为合法活动时,21点游戏第一次公开出现在内华达州的赌场俱乐部,15年内,它取代掷骰子游戏,而一举成为非常流行的赌场庄家参与的赌博游戏。
二、设计要求编写程序实现游戏,该程序是模拟古老的“21点纸牌游戏”,实现一对一的人机大战。
要求游戏过程中任意一方牌的点数之和超过 21 点,则自动出局;在不超过 21 点的情况下,玩家下注由电脑随机发牌与庄家比累积牌的点数的大小,大者为赢家。
2.1 问题描述本次C++课程设计题目是“21点纸牌游戏”,系统的主要功能是娱乐游戏,有电脑和玩家一起玩这个游戏,玩家设法使自己的牌达到总分21并要比电脑开的点数大而且不超过这个数值。
扑克牌的分值取它们的面值。
J,Q,K分别是11, 12和13分。
2.2 要求分析编写程序实现游戏,该程序是模拟古老的“21点纸牌游戏”,实现1对1的人机大战。
要求游戏过程中任意一方牌的点数之和超过21点,则自动出局;在不超过21点的情况下,玩家下注由电脑随机发牌与庄家比累积牌的点数的大小,大者为赢家。
数据结构课程设计报告—纸牌游戏

课题设计2:扑克牌游戏1、问题描述编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?存储结构:源程序:#include <stdio.h>void main(){int i,j,a[52];for(i=2;i<=52;i++)for(j=i-1;j<52;j+=i)a[j]=!a[j];printf("正面向上的牌有:");for(i=0;i<52;i++)if(a[i])printf("%4d",i+1);}测试结果:正面向上的牌有:1 4 9 16 25 36 49算法的时间复杂度:T(n)=O(n2)课题设计3:joseph环一. 需求分析:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。
首先创建一个空链表,初始化链表,构造出一个只有头结点的空链表,建立好一个约瑟夫环。
1. 输入的形式和输入值的范围本程序中,输入报数上限值m和人数上限l,密码,均限定为正整数,输入的形式为一个以“回车符”为结束标志的正整数。
2. 输出的形式从屏幕显示出列顺序。
3. 程序功能提供用户从键盘输入,Joseph约瑟夫环的必要数据,并显示出列顺序。
二、概要设计以单向循环链表实现该结构。
1. 抽象数据类型的定义为:ADT LNode{数据对象:D={ai | ai∈CharSet,i= 1,2,…,n,n≥0}数据关系:R1={< ai-1 ,ai > | ai ∈D,I=2,…,n} 三.源程序:#include<stdio.h>#include<stdlib.h>typedef struct Node{int key;//每个人持有的密码int num;//这个人的编号struct Node *next;//指向下一个节点}Node,*Link;void InitList(Link &L) //创建一个空的链表{L=(Node *)malloc(sizeof(Node));if(!L) exit(1);L->key=0;L->num=0;L->next=L;}void Creater(int n,Link &L) //初始化链表{Link p,q;q=L;for(int i=1;i<=n;i++){p=(Node *)malloc(sizeof(Node));if(!p) exit(1);printf("the key_%d is:",i);scanf("%d",&p->key);p->num=i;L->next=p;L=p;}L->next=q->next;free(q);}void main(){Link L,p,q;int n,x;L=NULL;InitList(L);//构造出一个只有头结点的空链表printf("please input the totle number of people:"); scanf("%d",&n);//总共的人数nprintf("the start key is:");scanf("%d",&x);//初始密码为xCreater(n,L);//建立好一个约瑟夫环p=L;for(int i=1;i<=n;i++){for(int j=1;j<x;j++)p=p->next;q=p->next;x=q->key;printf("%d ",q->num);p->next=q->next;free(q);}}四、测试数据:m的初值为20,n=7 ,7个人的密码依次为3,1,7,2,4,7,4输出:6 7 4 1 5 3 2课题设计4:商品货架管理1、需求分析:设计一个算法,每一次上货后始终保持生产日期越近的商品越靠近栈底。
纸牌游戏课程设计

攀枝花学院课程设计题目:纸牌游戏的设计与实现院(系):年级专业:姓名:学号:指导教师:二〇〇九年十二月十四日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书注:任务书由指导教师填写。
摘要纸牌游戏是数据结构大作业中比较经典的一个大作业,通过此课程设计能够启发我们的思维,对数据结构中的函数有更加清楚的认识,建立我们对数据结构的兴趣,通过此课程设计设同时也能够使我们对各方面的知识有了更加全面的认识与了解,丰富了我们的知识面,扩展了我们的思维。
通过课程设计的实践,我们可以在程序设计方法、上机操作等基本技能和科学作风方面受到比较系统和严格的训练。
当前计算机软件技术和网络技术正飞速发展,软件系统日趋大型化、复杂化,软件对于一个计算机系统是至关重要的。
因此社会对软件开发者提出了比以往更高的要求,相应的系统要求也有了很大的提高。
本系统用C++作为程序语言,设计出的系统功能强大,操作方便灵活。
关键词纸牌游戏,数据结构,软件,系统-Ⅰ-目录摘要 (Ⅰ)1需求分析 (1)1.1需求来源 (1)1.2设计目的 (1)1.3设计要求 (1)2 功能需求描述 (1)3 总体设计 (1)3.1设计思想 (1)3.2系统模块结构 (2)3.3 系统总设计流程图 (2)4 概要设计 (4)4.1抽象数据类型定义 (4)4.2本程序所包含模块 (5)4.3系统功能的实现 (5)5 模块设计 (6)5.1洗牌模块 (6)5.2翻牌模块 (6)6 运行与分析 (6)6.1运行结果 (6)6.2结果分析 (7)致谢 (8)参考文献 (9)源程序 (10)1 需求分析1.1需求来源在本系统的需求分析环节中,会对软件开发的意图、开发的目标、作用范围和有关该软件开的背景材料进行详细的分析。
纸牌游戏作为一个用来娱乐的应用软件,在对其进行需求分析的过程中,需用要充分考虑系统的可用性和简单易用性,联系实际娱乐需要,从而得到合理的需求分析结论。
1.2设计目的该软件为用户提供一个在Windows系统上运行的纸牌游戏小系统。
数据结构课程设计纸牌游戏

数据结构课程设计纸牌游戏(共27页)-本页仅作为预览文档封面,使用时请删除本页-攀枝花学院学生课程设计(论文)题目:纸牌游戏学生姓名: 00000 学号:0000所在院(系):数学与计算机学院专业:网络工程班级: 2012级1班指导教师:李世文职称:教授2014年 01月 03日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书注:任务书由指导教师填写。
课程设计(论文)指导教师成绩评定表摘要数据结构课程是计算机专业中必修的核心课程之一,也是一门理论性很强的一门课程,同时也是一门锻炼程序涉及能力的实践课程,“数据结构”成为计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且已成为其它理工专业的热门选修课。
主要包括线性表、树和二叉树以及图等基本类型的数据结构。
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科,包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容,其中逻辑结构可分为线性结构和非线性结构;存储结构可分为顺序存储和链式存储两类,图则属于逻辑结构中的非线性结构。
广度优先搜索(BFS)用的队列一步一步完成的,从而找到的是最短路径。
纸牌游戏课程设计包括纸牌信息的建立、了解其翻拍的原理、并简明阐述翻牌的具体步骤与流程、最后输出与打印翻牌结果,整个过程使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
掌握一般软件设计的基本内容和设计方法,培养学生进行规范化软件设计的能力。
而且使学生掌握使用各种计算机资料和有关参考资料的方法,提高学生进行程序设计的基本能力。
关键词:数据结构,纸牌游戏,BFS,遍历AbstractData structure course is one of required core curriculum in computer major, course is a very practical, is also an exercise program involves the ability to practice curriculum, "has become an important theoretical and technical foundation of computer program design data structure", it is not only the core course of computer science, and has become a hot elective course for other science majors. Mainly includes the basic data structure type linear table, tree and binary tree and graph of two. Data structure is a research of non computer program of numerical calculation design problems in operating the objects and their relationships and operations and other disciplines, including logic structure, storage structure and data operation data of the three aspects of content, the logical structure can be divided into linear and nonlinear structures; storage structure can be divided into sequential storage and chain store two, graph belongs to nonlinear structure in the logical structure. Breadth first search (BFS) with cohort completed step by step, so as to find the shortest path.A card game Solitaire, curriculum design includes information about its principle, and expounds the flop remake of the concrete steps and processes, the final output and print flop results, the whole process to enable students to understand and master the various basic abstract data type science class logical structure, storage structure and operation of the realization of algorithm, and their in the process of using the method. To master the basic content and the general design method of software design, training students' ability of design software specification. And to make the students master the use of various computer data and methods for reference, to improve the students' basic ability of program design.Key words:data structure, card games, BFS, traversal目录摘要 ......................................................................................................................... Abstract .. (I)1 前言 (1)课题背景 (1)课程设计目的 (1)2 相关技术分析 (2)概要设计 (2)设计原始数据的输入及输出格式 (3)算法流程图 (5)3 设计与实现 (7)数据结构 (7)详细设计和编码 (7)定义全局变量: (7)主要程序代码与分析如下: (7)上机调试过程 (10)5 测试结果及其分析 (11)6 用户使用说明 (18)7 源代码 (18)结论 (19)参考文献 (20)附录 (21)1 前言《数据结构》是软件工程专业的必修课之一,是一门综合性的专业基础课。
纸牌游戏—数据结构实训报告

纸牌游戏—数据结构实训报告纸牌游戏—数据结构实训报告1. 项目背景和介绍1.1 项目背景在现代社会中,人们经常通过玩各种纸牌游戏来娱乐和消遣。
纸牌游戏可以帮助人们放松身心、提高思维能力和判断力。
为了更好地理解纸牌游戏的规则和操作方法,并掌握数据结构的应用,我们决定开展这个纸牌游戏的数据结构实训项目。
1.2 项目目标本项目的目标是设计并实现一个纸牌游戏系统,包括纸牌的洗牌、发牌和玩家的操作等。
通过这个项目,我们将学习和提高对数据结构的应用能力,同时也能够提高我们团队合作和项目管理的能力。
2. 需求分析2.1 功能需求2.1.1 纸牌洗牌功能实现纸牌的洗牌功能,确保每次发牌的牌都是随机的,避免出现重复或排序的情况。
2.1.2 纸牌发牌功能实现纸牌的发牌功能,能够按照规则将纸牌发给玩家,并保持每位玩家手中的牌都是不同的。
2.1.3 玩家操作功能实现玩家在游戏中的各种操作,如出牌、抽牌、跳过等,并能够根据规则进行相应的判断和处理。
2.1.4 游戏结束功能实现游戏的结束判断功能,当有玩家出完所有手牌时,游戏结束。
2.2 性能需求2.2.1 系统响应速度系统应能够在合理的时间内响应用户的操作,确保用户能够顺畅地进行游戏。
2.2.2 系统可扩展性系统应具备良好的可扩展性,方便后续的功能迭代和升级。
3. 系统设计3.1 数据结构设计3.1.1 纸牌数据结构设计设计一种合适的数据结构来表示一副纸牌,包括牌的花色、点数等信息,并能够支持洗牌、发牌和玩家操作等功能。
3.1.2 玩家数据结构设计设计一种合适的数据结构来表示玩家的手牌、出牌等信息,并能够支持玩家操作功能。
3.2 算法设计3.2.1 洗牌算法设计设计一种高效的洗牌算法,确保洗牌后每张牌的位置都是随机的。
3.2.2 发牌算法设计设计一种合理的发牌算法,保证每位玩家获得的牌都是不同的。
3.2.3 玩家操作算法设计设计一种算法来判断玩家的操作是否合法,并根据规则进行相应的处理。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
攀枝花学院学生课程设计(论文)题目:纸牌游戏学生姓名:***** 学号:************ 所在院(系):数学与计算机学院专业:网络工程班级:2012级1班指导教师:李世文职称:教授2014年01月03日攀枝花学院教务处制攀枝花学院本科学生课程设计任务书课程设计(论文)指导教师成绩评定表摘要数据结构课程是计算机专业中必修的核心课程之一,也是一门理论性很强的一门课程,同时也是一门锻炼程序涉及能力的实践课程,“数据结构”成为计算机程序设计的重要理论技术基础,它不仅是计算机学科的核心课程,而且已成为其它理工专业的热门选修课。
主要包括线性表、树和二叉树以及图等基本类型的数据结构。
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科,包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容,其中逻辑结构可分为线性结构和非线性结构;存储结构可分为顺序存储和链式存储两类,图则属于逻辑结构中的非线性结构。
广度优先搜索(BFS)用的队列一步一步完成的,从而找到的是最短路径。
纸牌游戏课程设计包括纸牌信息的建立、了解其翻拍的原理、并简明阐述翻牌的具体步骤与流程、最后输出与打印翻牌结果,整个过程使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
掌握一般软件设计的基本内容和设计方法,培养学生进行规范化软件设计的能力。
而且使学生掌握使用各种计算机资料和有关参考资料的方法,提高学生进行程序设计的基本能力。
关键词:数据结构,纸牌游戏,BFS,遍历AbstractData structure course is one of required core curriculum in computer major, course is a very practical, is also an exercise program involves the ability to practice curriculum, "has become an important theoretical and technical foundation of computer program design data structure", it is not only the core course of computer science, and has become a hot elective course for other science majors. Mainly includes the basic data structure type linear table, tree and binary tree and graph of two. Data structure is a research of non computer program of numerical calculation design problems in operating the objects and their relationships and operations and other disciplines, including logic structure, storage structure and data operation data of the three aspects of content, the logical structure can be divided into linear and nonlinear structures; storage structure can be divided into sequential storage and chain store two, graph belongs to nonlinear structure in the logical structure. Breadth first search (BFS) with cohort completed step by step, so as to find the shortest path.A card game Solitaire, curriculum design includes information about its principle, and expounds the flop remake of the concrete steps and processes, the final output and print flop results, the whole process to enable students to understand and master the various basic abstract data type science class logical structure, storage structure and operation of the realization of algorithm, and their in the process of using the method. To master the basic content and the general design method of software design, training students' ability of design software specification. And to make the students master the use of various computer data and methods for reference, to improve the students' basic ability of program design.Key words:data structure, card games, BFS, traversal目录摘要 (I)Abstract (II)1 前言 (2)1.1 课题背景 (2)1.2 课程设计目的 (2)2 相关技术分析 (3)2.1概要设计 (3)2.2设计原始数据的输入及输出格式 (4)2.3算法流程图 (5)3 设计与实现 (7)3.1 数据结构 (7)3.2详细设计和编码 (7)3.2.1 定义全局变量: (7)3.2.1主要程序代码与分析如下: (7)3.3 上机调试过程 (10)5 测试结果及其分析 (11)6 用户使用说明 (18)7 源代码 (18)结论 (19)参考文献 (20)附录 (21)1 前言《数据结构》是软件工程专业的必修课之一,是一门综合性的专业基础课。
本课程较系统地介绍了软件设计中常用的数据结构以及相应的实现算法,如线性表、栈、队列、树和二叉树,图、检索和排序等,并对性能进行分析和比较,内容非常丰富。
1.1 课题背景“数据结构”旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据逻辑结构和存储结构,以及相应的运算,把现实世界中的问题转化为计算机内部的表示和处理,这是一个良好的程序设计技能训练的过程。
“数据结构”课程设计不仅可以帮助学生充分理解、巩固所学的基本概念、原理和方法,更重要的是能够针对实际问题来选择数据结构,设计相应的存储结构并加以实现,从而最终解决问题。
结合数据结构所学知识,要求学生用C语言编程实现一个简单的纸牌游戏设计。
1.2 课程设计目的(1)使学生进一步理解和掌握课堂上所学各种基本抽象数据类型的逻辑结构、存储结构和操作实现算法,以及它们在程序中的使用方法。
(2)使学生掌握软件设计的基本内容和设计方法,并培养学生进行规范化软件设计的能力。
(3)使学生掌握使用各种计算机资料和有关参考资料,提高学生进行程序设计的基本能力。
2 相关技术分析2.1概要设计按照题目的要求,首先,应对52张牌进行编号并且保存它们的编号信息,编号的类型为整型,而对于这样固定的数据,使用整型数组是最好的,因此,我们需要在程序的开始定义一共整型的数组,同时,为了方便对翻转过程的记录,在定义记录编号信息的同时,定义一个与之相对应的标记数组,数组类型为整型。
该程序的核心为一个嵌套的循环,所以定义两个变量i,j作为循环条件。
接着开始对变量进行初始化,首先是编号信息数组,使用for循环对数组进行1到52的赋值,代表52张纸牌,然后对标记数组赋值,将数组内的所有的值初始化为零,方便在接下来的循环中统计每张牌的翻牌数。
数据初始化结束后,开始按照要求对纸牌进行翻转,在嵌套循环中,定义了一个全局变量Flag,值为-1,负数定义为向下,正数定义为向上,这样,翻转一次,即乘以Flag,同时,符合翻转条件时,标记数组相应的编号的纸牌翻牌次数+1。
当每个号码每次遇到是某个数的倍数时,都会相应的翻一次,这样,每张牌会翻的次数就各不一样,可能很多次,也可能只有一两次,结果就只是要输出在经过各个不同次数的翻牌后,正面向上的牌都有哪几个。
举例说明一下,比如24,第一次它是2的倍数时要从正面翻到背面,当进行到3时,就又要从背面翻回来,而到4时还要在翻,同理呢,到6.8.12…它都要来回的翻。
如果它在多次的翻牌后,正面还向上了,那么它就是要输出的结果之一。
循环结束后,编号数组中的数据已经更新,因此对数组进行扫描,大于零的即为正面向上的纸牌,输出其编号即可,同时,输出标记数组中的值,显示每张牌的翻牌记录,方便观察或者寻找规律。
到此,整个题目结束。
2.2设计原始数据的输入及输出格式原始数据要求输入纸牌的基础编号,编号的输入为整型。
输出的是经过规律翻转后正面向上的纸牌的编号。
输入的数据信息如下:纸牌:1、2、3……、51、52。
问题直观分析表:(注:图中“√”表示翻转一次。
)2.3算法流程图2.1:算法设计3 设计与实现3.1 数据结构按照题目要求,整个主体包括一个嵌套的循环,外循环控制从2开始每张纸牌都作为基数进行翻牌,内循环控制对所有纸牌进行判断,如果是当前循环中基数的倍数,则对其进行翻转操作。
具体代码如下:for(i=2;i<=52;i++){for(j=1;j<=52;j++){if(j%i==0)data[j-1]=data[j-1]*Flag;}}3.2详细设计和编码3.2.1 定义全局变量:作为判断纸牌是否向上的依据,我们需要定义一个全局变量Flag=-1,在循环中对所有纸牌进行操作。