数据结构课程设计报告—纸牌游戏

阅读: 评论:0

课题设计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
算法的时间复杂度:Tn=On2
课题设计3joseph
. 需求分析:利用单向循环链表存储结构模拟此过程,按照出列的顺序输出各个人的编号。首先创建一个空链表,初始化链表,构造出一个只有头结点的空链表,建立好一个约瑟夫环。
1. 输入的形式和输入值的范围
   本程序中,输入报数上限值m和人数上限l,密码,均限定为正整数,输入的形式为一个以回车符为结束标志的正整数。
2. 输出的形式
   从屏幕显示出列顺序。
3. 程序功能
   提供用户从键盘输入,Joseph约瑟夫环的必要数据,并显示出列顺序。
二、    概要设计
以单向循环链表实现该结构。
1. 抽象数据类型的定义为:
ADT LNode
{
   数据对象:D={ai | aiCharSeti= 12nn≥0}
   数据关系:R1={< ai-1 ai > | ai D I=2n}
三.源程序:#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);//总共的人数n
printf("the start key is:");
scanf("%d",&x);//初始密码为x
Creater(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的初值为20n=7 ,7个人的密码依次为3172474
输出:6 7 4 1 5 3 2
课题设计4商品货架管理
1、需求分析:设计一个算法,每一次上货后始终保持生产日期越近的商品越靠近栈底。求货架上剩余货物M、每天销售件数N、员工每天上货工作时间T,三者之间有何关系及T的最小值。
2、源程序:#include<iostream.h>
#include"string.h"
#include"stdio.h"
const int maxsize=100;
const int k=10;
#define elemtype char
typedef struct
{
int Month;
int Day;
int Year;
}DATE;
typedef struct 远山的红叶主题曲
{
int num;
DATE date;
} Node;
class seqstack
{
public:
Node stack[maxsize];
int top;
void inistack()
{
top=0;
}
void push(int x,int day,int month,int year)
{
if(top==maxsize)
cout<<"货架已满"<<endl;
else
{
top++;
stack[top].num=x;
stack[top].date.Day=day;
stack[top].date.Month=month;
stack[top].date.Year=year;
}
}
void pop()
{
if(top==0)
cout<<"货架已空"<<endl;
else
top--;
}
elemtype gettop()
{
if(top==0)
cout<<"货架已空"<<endl;
else
return top;}
bool empty()
{
return top==0;
}
};
void main()
{
seqstack c[k+1]; //存放k种商品的数组,c[0]来做中介货架
int Txq[k+1]; //i种取货用的时间
int Txs[k+1]; //i种上货用的时间
int Nx[k+1]; //i种每天的销售数量
int N=0; //每天销售总量
int Tx[k+1]; //i种每天上货的总时间
int T=0; //每天上货用的总时间
char yn='Y';
for(int i=1;i<=k;i++)
{
cout<<" ******************************"<<endl;
cout<<" 商品货架管理系统"<<endl;
cout<<" ******************************"<<endl;
Node store[20];
char year,month;
int count; //货架上第i种商品的数目
int x,d,m,y; //x为第i种商品的序号
cout<<"请输入货架上第"<<i<<"种货物的详细信息:"<<endl;
cout<<"(序号,吹来一缕春风生产日期(年、月、日如2006.2.13),现在货架上的存货数目,上货用时和取货用时)"<<endl;
cin>>x>>y>>year>>m>>month>>d>>count>>Txs[i]>>Txq[i];
Nx[i]=maxsize-count;
cout<<"货架上还需上"<<i<<"货物"<<Nx[i]<<""<<endl;
Tx[k]=Txs[i]*(maxsize+count)+2*Txq[i]*count;
cout<<"该货架满货需要用时"<<Tx[k]<<endl;
cout<<"是否要上货?(Y/N)"<<endl;
cin>>yn;
if(yn=='Y'||yn=='y')
{
int numbers,nian,yue,ri;
cout<<"请输入要上货物的数目及生产日期(年、月、日)"<<endl; //上的是同一日期生产的货物
cin>>numbers>>nian>>yue>>ri;
if(numbers>maxsize-count)
{
cout<<"要上的货物数目超出了货架的最大容量,请重新输入"<<endl;
cin>>numbers>>nian>>yue>>ri;
}
for(int j=1;j<=numbers;j++)
{
}
}
N+=Nx[i];
T+=Tx[i];
}
cout<<"每天销售总量为:"<<N<<endl;
cout<<"每天上货用的总时间为:"<<T<<endl;
}
3、测试结果:
五、课程设计5:航空客运订票系统
1、需求分析:
对于本设计,可采用基数排序法对于一组具有结构特点的飞机航班号进行排序,利用二分查法对排好序的航班记录按航班号实现快递查,按其他次关键字的查可采用最简单的顺序查方法进行,因为它们用的较少。
2、源程序:#include <stdio.h>
#include <string.h>
#define maxspace 100
#define keylen 7
#define radix_n 10
#define radix_c 26
typedef char keytype;
typedef struct
{
char start[6];
char end[6];
美商业飞船将首飞char sche[10];
char time1[5];
char time2[5];
char model[4];
int price;
}infotype;
typedef struct
{
keytype keys[keylen];
infotype others;
int next;
}slnode;
typedef struct
{
slnode sl[maxspace];
int keynum;
int length;
}sllist;
typedef int arrtype_n[radix_n];

本文发布于:2023-07-05 13:40:05,感谢您对本站的认可!

本文链接:https://patent.en369.cn/xueshu/173558.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:货架   输入   链表   商品   货物   查找
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图