数据结构课程设计

发布 2022-10-01 21:24:28 阅读 3827

《数据结构》

课程设计报告。

猴子吃桃子问题》

学院。班级。

学号。姓名。

指导教师。完成日期。

目录。需求分析。

概要设计。详细设计。

调试分析。用户使用说明。

测试结果。附录。

一。 需求分析。

本课程设计要求采用三种方法计,即数组数据结构,链数据结构,递归方法计算出猴子摘的桃子数,设计如下:

1) 输入:输入的形式为整型,输入值的范围是1-10。

2) 输出:显示数据为猴子一共摘的桃子数,输出的形式为整型。

3) 程序以用户和电脑的对话方式执行,由用户在键盘上输入演示程序中规定的运算命令,即在电脑上显示“猴子共摘的桃子数为”,运算结果在后显示“1534”。

4) 程序执行的命令包括:数组数据结构,定义一维数组,构造数组公式,求结果,结束。链数据结构,结点存储字符,指针链表。递归,构造if语句,返回值输出结果。

5) 测试数据

a[1] ,eat(1)

a[2] ,eat(2)

a[3] ,eat(3)

a[4] ,eat(4)

a[5] ,eat(5)

a[6] ,eat(6)

a[7] ,eat(7)

a[8] ,eat(8)

a[9] ,eat(9)

a[10] ,eat(10)

二.概要设计。

猴子分n天吃完了桃子,要想求出第1天的桃子数,就先要求出第2天的桃子数,..因此,有:

a1=(a2+1)*2;

a2=(a3+1)*2;

a3=(a4+1)*2;

a9=(a10+1)*2;

a10=1;

现在就知道了算法,我们可以用递归来求解:

初始条件:int sum=1;

定义函数。int eat(int day)

算法(if条件语句)

if(day==10如果是第10天。

return sum; /则只有1个。

elsesum=(sum+1)*2; /前一天的桃子比后一天的桃子多一半加一个。

return eat(day+1);

数组法:初始化。

int a[10];

void main()

int i;

初始条件:i为整型。

初始条件:a[10]=1

for (i=10; i>0; i--)给i赋初值10;判断i是否大于0,若是则执行语句,执行后自减;若不是则结束循环*/

printf("第一天的桃子数:%d",a[1]);输入第一天的值*/

链数据函数的设计:

struct link

int data;

struct link *next;

主函数:int main()

link *p,*q;

int i;

为p开辟内存空间。

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

为q开辟内存空间。

q = struct link*)malloc(sizeof(struct link));

p->data = 1;

链表指针:

for(条件语句)

三.详细设计。

1.数组数据结构。

#include <>

int a[10]; 定义一个一维数组*/

void main()

int i; /定义天数为i*/

a[10]=1; /给数组a[1]赋值为1*/

for (i=10; i>0; i--)给i赋初值10;判断i是否大于0,若是则执行语句,执行后自减;若不是则结束循环*/

printf("第一天的桃子数:%d",a[1]);输入第一天的值*/

2.链数据结构。

#include <>

#include <>

struct link

int data;

struct link *next;

int main()

link *p,*q;

int i;

p = struct link*)malloc(sizeof(struct link));为p开辟内存空间。

q = struct link*)malloc(sizeof(struct link));为q开辟内存空间。

p->data = 1; /p的值为1

for(i=0;i<9;i++)条件语句。

printf("%d",q->data);

return 0;

3.递归。#include<>

/递归函数的定义。

int sum=1; /定义sum的值为1

int eat(int day) /eat函数调用day的类型。

if(day==10如果是第10天。

return sum; /则只有1个。

elsesum=(sum+1)*2; /前一天的桃子比后一天的桃子多一半加一个。

return eat(day+1);

int main()

printf("第一天的桃子数:%d",eat(1));最后输出第一天的值。

return 0;

流程图:四.调试分析。

主函数的设计较为简单,主要功能包含在函数里。

核心算法为数学计算公式sum=(sum+1)*2

当天的桃子数等于后一天的桃子数加1再乘以2

三种设计方法均使用了核心算法,依题目要求最后输出第一天的桃子数,通过算法其实稍加改进可显示任一天的桃子数。

五.用户使用说明。

本程序的运行环境为windows 7系统,执行文件。

编译运行随即输出各天的桃子数。

六.测试结果。

三种方法输出结果均如下:

七。附录。递归**:

#include<>

int sum=1;

int eat(int day)

if(day==10)

return sum;

elsesum=(sum+1)*2;

return eat(day+1);

int main()

printf("第一天的桃子数:%d",eat(1));

return 0;

链数据。#include <>

#include <>

struct link

int data;

struct link *next;

int main()

link *p,*q;

int i;

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

q = struct link*)malloc(sizeof(struct link));

p->data = 1;

for(i=0;i<9;i++)

printf("%d",q->data);

return 0;

数组结构。#include <>

int a[10];

void main()

int i;

a[10]=1;

for (i=10; i>0; i--)给i赋初值10;判断i是否大于0,若是则执行语句,执行后自减;若不是则结束循环*/

printf("第一天的桃子数:%d",a[1]);输入第一天的值*/

数据结构课程设计

课程设计说明书 题目哈夫曼编码问题的设计和实现。课程名称数据结构课程设计。院 系 部 中心。专业。班级。学生姓名。学号。设计地点。指导教师。设计起止时间 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 初始化时每个方格都是关闭的,一个...