敢死队问题Word文件下载.docx
《敢死队问题Word文件下载.docx》由会员分享,可在线阅读,更多相关《敢死队问题Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
一:
需求分析
二:
概要设计
三:
详细设计
四:
调试分析
五:
运行结果
六:
心得体会
七:
参考文献
一、需求分析:
分析题目要完成的功能,叙述每个模块的功能要求。
程序执行命令包括;
(1)构造数据结构
(2)输入数据
(3)执行的战士出列
(4)输入要求数值
(5)结束
二、概要设计
说明每个功能部分的算法设计(可以使用文字描述,也可以用算法流程图)、系统使用的软件环境。
算法实现:
1,定义类型
2,定义变量并初始化
3,线性表初始化
文字描述:
声明数据类型
定义变量并初始化
输入敢死队总数(20)
创建循环链表,并且输出初始化链表
输入从那个战士开始
输出需要完成任务的战士并且删掉该节点
当出列的战士为10个则退出该循环
输出剩下来的战士
软件环境
Vc,6.0
三、详细设计
程序使用的存储结构设计说明(包括主要数据类型、变量、函数介绍)、各个算法实现的源程序(主要功能代码,标注清晰的程序注释)。
#include<
stdio.h>
iostream.h>
stdlib.h>
structnode
//创建结构体节点
{
intdata;
structnode*next;
};
structnode*create(inta)
//为带结构体指针的函数
structnode*p,*q,*t;
inti;
q=p=(structnode*)malloc(sizeof(structnode));
//在内存中开辟一段空间
p->
data=1;
for(i=2;
i<
=a;
i++)
t=(structnode*)malloc(sizeof(structnode));
next=t;
next->
data=i;
//令第i个的内容为i
p=p->
next;
}
next=q;
//使成为一个数据环
for(i=1;
i++)
//输出整个结构体链表
printf("
%d\t"
p->
data);
returnq;
select(structnode*p,intb,inta)
structnode*q;
intcounter;
intn,i,m=2;
这些是输出的是要去完成任务的战士:
\n"
);
while
(1)
//这个循环是为了找到从第几个战士开始
if(m==b)
break;
else
m++;
next=p->
//删除该节点
counter=1;
//这个循环是找出剩余的九名去完成任务的战士
if(counter==10)
{break;
n=0;
while
(1)
if(n==4)
{
n++;
counter++;
这些是输出的是要去完成剩下任务的战士:
=a-10;
voidmain()
inti=0,a,b;
structnode*p;
\t\t这是一个求敢死队问题的程序:
这个程序要求从总共M人中选出来的10个战士,和剩下的战士,挑选方法是从所有的战士中任选一个然后按顺序每隔4个选一个战士。
请输入所有战士的人数:
"
scanf("
%d"
&
a);
p=create(a);
\n请输入从第几个战士开始:
1~M:
b);
if(b>
a)
{printf("
请重新输入:
else{break;
select(p,b,a);
//传值,传入的p是整个数据链的头结点,b,是从第几个战士开始
\n此程序已结束了!
谢谢使用!
四、调试分析
选用合法和非法测试数据,测试系统运行结。
思考系统存在的问题、解决思路。
五、运行结果
六、总结:
包括:
课程设计过程中的收获,遇到问题、解决问题的过程,算法的改进设想,对《数据结构》这门课程的认识等内容。
这次的课程设计让我学会了很多东西。
同时加深了我对数据结构这门课的理解,学会了如何在实际应用中数据结构编程。
我是用线性表来做的,首先我完成了结构体的初始化和创建链表。
链表的所有人数为M,然后输入从那个战士开始出列,建立一个循环当出列的战士为10时结束循环。
出列的要求是每隔4个人出列一个战士。
输出需要完成任务的战士和剩下的战士。
通过这次的编程体会,让我对编程有了一定的认识,第一:
也是最重要的一点,就是要不懂就要问,就要看书,知识不是与生俱来的,在此次课程设计中我有很多不懂,通过问同学,查资料,一点点掌握,最后完成了此次课程设计;
第二:
要有耐心,变成容不得一丁点的错误,一个数百行的程序往往因为一个小错误而无法运行,这是我们就需要耐心地细心地排除错误。
我在编的时候就常常因为一两个错误,老是无法运行,心里一急,脑子一乱,别说改对了,错误一次比一次多,最后想办法让自己冷静下来,慢慢排除错误;
第三:
对知识的掌握和运用,俗话说:
“磨刀不误砍柴工”,在编的时候,先要把知识掌握好,什么不懂先搞懂,这样在编程的时候才能得心应手。
这是我和我的同伴的一点感想。
七、参考文献:
谭浩强的《c语言程序设计》
大二的《数据结构》课本