资源描述:
《数据结构课程设计报告—纸牌游戏》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、课题设计2:扑克牌游戏1、问题描述编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后…从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;...再依次5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这时正面向上的牌有哪些?存储结构:源程序:#includevoidmain(){inti,j,a[52];for(i=2;i<=52;i++)for(j=i-1;j<52;j+=i)a[j]=!a[j];printf("正面向上的牌有
2、:");for(i=0;i<52;i++)if(a[i])printf("%4d",i+1);}测试结果:正面向上的牌有:14916253649算法的时间复杂度:T(n)=O(n2)课题设计3:joseph环一.需求分析:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。首先创建一个空链表,初始化链表,构造出一个只有头结点的空链表,建立好一个约瑟夫环。1.输入的形式和输入值的范围 本程序中,输入报数上限值m和人数上限l,密码,均限定为正整数,输入的形式为一个以“回车符”为结束标志的正整数。2.输出的形式 从屏幕显示出列顺序。3.程序功能 提供用户从键盘输入,Jo
3、seph约瑟夫环的必要数据,并显示出列顺序。二、 概要设计以单向循环链表实现该结构。1.抽象数据类型的定义为:ADTLNode{ 数据对象:D={ai
4、ai∈CharSet,i=1,2,…,n,n≥0} 数据关系:R1={<ai-1,ai>
5、ai∈D,I=2,…,n}三.源程序:#include#includetypedefstructNode{intkey;//每个人持有的密码intnum;//这个人的编号structNode*next;//指向下一个节点}Node,*Link;voidInitList(Link&L)//创建一
6、个空的链表{L=(Node*)malloc(sizeof(Node));if(!L)exit(1);L->key=0;L->num=0;L->next=L;}voidCreater(intn,Link&L)//初始化链表{Linkp,q;q=L;for(inti=1;i<=n;i++){p=(Node*)malloc(sizeof(Node));if(!p)exit(1);printf("thekey_%dis:",i);scanf("%d",&p->key);p->num=i;L->next=p;L=p;}L->next=q->next;free(q);}voidmain(){Lin
7、kL,p,q;intn,x;L=NULL;InitList(L);//构造出一个只有头结点的空链表printf("pleaseinputthetotlenumberofpeople:");scanf("%d",&n);//总共的人数nprintf("thestartkeyis:");scanf("%d",&x);//初始密码为xCreater(n,L);//建立好一个约瑟夫环p=L;for(inti=1;i<=n;i++){for(intj=1;jnext;q=p->next;x=q->key;printf("%d",q->num);p->next=q->nex
8、t;free(q);}}四、测试数据:m的初值为20,n=7,7个人的密码依次为3,1,7,2,4,7,4输出:6741532课题设计4:商品货架管理1、需求分析:设计一个算法,每一次上货后始终保持生产日期越近的商品越靠近栈底。求货架上剩余货物M、每天销售件数N、员工每天上货工作时间T,三者之间有何关系及T的最小值。2、源程序:#include#include"string.h"#include"stdio.h"constintmaxsize=100;constintk=10;#defineelemtypechartypedefstruct{intMonth;i
9、ntDay;intYear;}DATE;typedefstruct{intnum;DATEdate;}Node;classseqstack{public:Nodestack[maxsize];inttop;voidinistack(){top=0;}voidpush(intx,intday,intmonth,intyear){if(top==maxsize)cout<<"货架已满"<