数据结构课程设计

发布 2022-10-05 01:24:28 阅读 8266

目录。1、课程设计的目的1

2、课程设计的要求1

3、课程设计的方案1

4、课程设计的内容1

4.1设计的内容1

4.2算法思路1

4.2.1算法的内容2

4.2.2算法中函数的流程图5

4.3程序调试与测试以及结果的分析6

4.3.1程序调试6

4.3.2程序测试6

4.3.3结果分析7

4.4程序源**7

5、总结11

参考文献11

纸牌游戏。1、课程设计的目的。

1)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;

2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

3)提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

4) 训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风;

2、课程设计的要求。

1)设计的课题能够体现数据结构和算法的算法分析、设计、算法实现。

2)根据自己对数据结构和算法的基本概念、原理和机制的理解,自拟题目和设计内容,选题尽可能结合实际的应用。

3、课程设计的方案。

纸牌游戏具体内容如下:编号为1-52张牌,正面向上,从第2张开始,以2为基数,是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3为基数,是3的倍数的牌翻一次,直到最后一张牌;然后,从第4张开始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;再依次5的倍数的牌翻一次,6的,7的直到以52为基数的牌翻过,输出,这时正面向上的牌有哪些?运行程序,进入用户选择界面,用户选择1输出52张牌编号和最后正面向上牌的编号;用户选择2输出要求输入牌数,用户输入牌数后,输出所有牌的编号和最后正面向牌的编号;用户选择0退出执行程序;用户输入其他信息时,输出错误信息提示并要求用户重新选择操作。

4、课程设计的内容。

4.1设计的内容。

因为要有编号为1-52张纸牌,则需要先创建链表,运用mallac函数申请内存空间,存储纸牌编号信息;然后设计翻牌程序,利用 j%i==0的思想,使用指针存储最后正面向上的牌编号;最后编写主函数,判断链表建立是否成功,输出全部纸牌编号与程序运行结果,让用户能够直接的看到求解结果。

4.2算法思路。

4.2.1算法的内容。

1)定义node节点,用于存储单张牌的信息。

struct node //定义结点。

int data;

int key;/*标志位*/

struct node *next;

2)创建链表建立creat()函数,用于建立和存储所有纸牌编号,运用malloc函数申请内存空间时若申请失败,输出相应提示信息。

struct node *creat定义链表建立函数creat()

struct node *p,*head,*s其返回值为结构指针。

int i;

head=null; /初始化。

p=(struct node*)malloc(sizeof(*p));

if(p==null)

head=p;

head->key=1;

head->data=1;

head->next=null;

for(i=2;i<=n;i建立n个结点的链表。

p->next=null;

return(head);

3)建立fanpai()函数,利用 j%i==0的思想,使用指针存储最后正面向上的牌编号。

void fanpai(struct node *p)

struct node *p1,*p2;

for(p1=p->next;p1!=null;p1=p1->next)

4)建立obj()函数,用于创建有n张纸牌信息的链表并输出最后正面向上的纸牌编号。

void obj()

struct node *head,*np;

head=creat();

printf("显示全部纸牌编号:")

if(head==null)

printf("creat link error!");

elsefor(np=head;np!=null;np=np->next)

fanpai(head);

printf("最后正面向上的纸牌编号为:");

for(np=head;np!=null;np=np->next)

5)最后编写main()主函数,输出用户选择界面,并对错误输入输出提示信息,完成总的设计任务。

void main()

char ch;

cout<<"n\t\t\t 纸牌游戏"< cout<<"t\t< cout<<"t\t 1 标准52张牌 2 任意输入牌数 0 退出"< cout<<"t\t< cout< cin>>ch;

switch(ch)

4.2.2算法中函数的流程图。

翻牌函数:函数的调用关系图:

4.3程序调试与测试以及结果的分析。

4.3.1程序调试。

在结点定义中没有定义data导致错误,修改后运行正常。

4.3.2程序测试。

1)用户输入1,输出52张纸牌编号和最后正面向上的纸牌编号:

2)用户输入2,提示用户输入纸牌数目,输出任意个数纸牌的编号和最后正面向上的纸牌编号:

3)用户输入0,提示用户是否确定退出,用户输入y后,退出程序执行:

4)用户输入错误字符时,提示输入错误:

4.3.3结果分析。

本程序最后采用比较简单算法实现,时间复杂度仅为o(n)。

4.4源程序**。

*纸牌游戏源程序*/

#include <>

#include <>

#include<>

#include<>

struct node定义结点。

int data;

int key;/*标志位*/

struct node *next;

int n=52;

struct node *creat定义链表建立函数creat()

struct node *p,*head,*s其返回值为结构指针。

int i;

head=null; /初始化。

p=(struct node*)malloc(sizeof(*p));

if(p==null)

head=p;

head->key=1;

head->data=1;

head->next=null;

for(i=2;i<=n;i建立52个结点的链表。

p->next=null;

return(head);

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 2008 年6月 2日至 2008 年 6月 6 日。目录。1 问题描述 2 1.1 题目内容 2 1.2 基本要求 2 1.3 测试数据 2 2...

数据结构课程设计

数据结构 课程设计。实验报告。学院 信息工程学院。班级 姓名 学号 指导老师 题目2 一元多项式的计算。1 实验目的。1 掌握链表的灵活运用 2 学习链表初始化和建立一个新的链表 3 知道怎样去实现链表删除结点操作与插入结点 4 理解链表的基本操作 包括数据域数据的相加 并能灵活运用。2 实验内容。...

数据结构课程设计

班级 信计 1102 姓名 李娜娜。学号 1108060209 设计日期 2013.07.15 西安科技大学计算机学院 1.实验题目 编制一个演绎扫雷游戏的程序。2.问题描述。做一个n x m的扫雷游戏,每个方格包含两种状态 关闭 closed 和打开 opened 初始化时每个方格都是关闭的,一个...