文档介绍:《数据结构与算法》课程设计任务书
一、设计目的
培养学生运用算法与数据结构的基本知识解决实际编程中的数据结构设计和算法设计问题。
培养学生独立设计程序与解决问题的能力,培养学生团队协作集成程序模块及调试能力。
培养学生初步的软件设计及软件测试的能力。
课程设计报告
洗牌(随机数)
发牌(把54张牌平均发给三个玩家)
出牌(只支持单出)
计剩余牌(每次出完一轮牌自动显示每个玩家剩余手牌)
先出完牌的即为赢家
本程序主要是利用全局变量来统筹整个程序,辅之的是指针变量。总共有三个子函数,分别为洗牌子函数,排序子函数,发牌子函数。洗牌这个子函数利用了随机数的生成,而主函数通过指针变量把生成的随机数赋值给全局变量,再通过冒泡排序法对全局变量进行排序,最后按编号换算进行输出。
#include<>
#include ""
#include<>
#include<>
int v[54] = { 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 17 };
typedef int ElemType;
typedef int Status;
typedef struct LNode{//结点类型
ElemType data;
struct LNode *next;
}LNode, *LinkList;
void suiji_L() { //随机函数,发牌。
int i, a, k;
srand((unsigned)time(NULL));
for (i = 0; i <= 53; i++){
k = rand() % 53;
a = v[i];
v[i] = v[k];
v[k] = a;
}
}
int suiji_ren(){
int a;
srand((unsigned)time(NULL));
a = rand() % 3 + 1;
return a;
}
void ListInsert_L(LinkList &L, ElemType &e){ //插入函数,发牌。
LinkList s;
s = (LinkList)malloc(sizeof(LNode));
s->data = e; s->next = L->next;
L->next = s;
}
void Lisrdelete_L(LinkList &L, ElemType e){ //删除函数,出牌。
LinkList p = L;
LinkList q;
while (p->next->data != e)
p = p->next;
q = p->next; p->next = q->next;
free(q);
}
void xianshi(LinkList &L){
LinkList p, q; int a, i;
for (i = 1; i <= 17; i++){
p = L->next;
while (p->next != NULL){
q = p->next;
if (p->data>q->data){
a = p->data; p->data = q->data; q->data = a;
}
p = p->next;
}
}
LinkList x;
x = L;
while (x->next != NULL){
x = x->next;
printf("%d,", x->data);
}
}
int main(){
int i = 3, c1 = 1, c2 = 0, c3 = 0,a1, a2, a3, k;
int a;
LinkList L; L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
LinkList A; A = (LinkList)malloc(sizeof(LNode));
A->next = NULL;
LinkList S; S = (LinkList)malloc(sizeof(L