C课程设计报告链表Word格式文档下载.docx
- 文档编号:20314640
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:16
- 大小:211.45KB
C课程设计报告链表Word格式文档下载.docx
《C课程设计报告链表Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C课程设计报告链表Word格式文档下载.docx(16页珍藏版)》请在冰豆网上搜索。
(2)将这些正整数作为链表结点的data域建立一个非递减有序的单链表,并输出该单链表;
(3)往该链表中插入一个正整数,使其仍保持非递减有序,输出插入操作后的单链表;
(4)删除链表中第i个结点,输出删除操作后的单链表,i从键盘输入。
2.3设计环境
(1)WINDOWS2000/2003/XP/7/Vista系统
(2)VisualC++或TC集成开发环境
2.4开发语言
C语言
3分析和设计
(1)首先我们要定义一个函数用来建立一个链表;
要使这个链表中个数据能保持一个非递减有序。
(2)建立一个函数输出这个链表中的所有数据。
(3)然后我们要定义一个函数用来插入一个数链表任然要保持有序;
首先我们要通过for(q=h,p=h->
next;
p!
=NULL&
&
s->
data>
p->
data;
p=p->
next,q=q->
next);
这语句来找打其位置。
(4)最后一个函数用来删除第i个结点,关键要把指针指向第i个结点。
然后删除它。
3.1模块设计
设定一个总函数包括几个子函数还实现题目的功能。
程序中所用到的函数:
(1)定义函数create_list_sorted(),创建一个非递减有序的链表;
(2)定义函数output(),输出链表里的值;
(3)定义函数insert(),把一个数插入链表中,链表任然保持非递减有序。
(4)定义函数del(),输入i,然后删除链表中的第i个结点。
3.2系统流程图
图3.1系统流程图
3.3主要模块的流程图
4具体代码实现
/*单链表的基本操作*/
#include"
stdio.h"
math.h"
string.h"
stdlib.h"
typedefstructnode
{intdata;
structnode*next;
}NODE;
/*链表结点类型定义*/
/********函数声明********/
NODE*create_list_sorted();
/*建立一个非递减有序的带头结点的单链表,返回其头指针*/
voidoutput(NODE*h);
/*输出头指针h所指单链表*/
voidinsert(NODE*h,intx);
/*将元素x插入到单链表h中仍有序*/
voiddel(NODE*h,inti);
/*删除单链表h中第i个结点*/
/********主函数********/
voidmain()
{NODE*head;
intx,i,n;
printf("
********单链表的基本操作********\n"
);
/*输出菜单*/
1.建立\n"
2.输出\n"
3.插入\n"
4.删除\n"
0.退出\n"
while
(1)
{printf("
请选择:
"
scanf("
%d"
&
n);
switch(n)
{case1:
head=create_list_sorted();
break;
case2:
output(head);
case3:
printf("
pleaseinputinserteddata:
x);
insert(head,x);
case4:
pleaseinputdeletedlocation:
i);
del(head,i);
case0:
exit(0);
default:
输入错误,请重新选择!
\n"
}
}
}
/********子函数********/
NODE*create_list_sorted()
{intx;
NODE*h,*p,*q,*s;
/*p指向单链表中某一结点,q指向*p的前驱*/
h=(NODE*)malloc(sizeof(NODE));
h->
next=NULL;
while(x!
=-1)
{s=(NODE*)malloc(sizeof(NODE));
s->
data=x;
for(q=h,p=h->
/*不
断比较,找到插入位置。
注意:
循环条件p!
=NULL必须先判断,即放在&
左边*/
q->
next=s;
next=p;
returnh;
voidoutput(NODE*h)/*输出头指针h所指单链表*/
{NODE*p;
for(p=h->
=NULL;
next)
%d"
p->
data);
voidinsert(NODE*h,intx)/*将元素x插入到单链表h中仍有序*/
{NODE*p,*q,*s;
s=(NODE*)malloc(sizeof(NODE));
voiddel(NODE*h,inti)/*删除单链表h中第i个结点*/
{NODE*p,*q;
intj;
p=h;
q=h;
for(j=2;
j<
=i+1;
j++)
{q=p;
q->
next=p->
5课程设计总结
5.1程序运行结果
5.2课程设计体会
在课程设计中,我们遇到了大大小小很多个问题,在发现问题和解决问题的过程中我们学会很多。
知道一个小小的错误会导致整个程序的功能就不同了。
在程序设计中我们必须考虑程序的直观性和全面性,还有可读性;
让程序更容易让人看懂。
两周的课程设计结束了,在这次的课程设计中不仅检验了我所学习的知识,也培养了我如何去把握如何才能完成好一件事情。
在设计过程中,与同学分工设计,和同学们相互探讨,相互帮助,相互学习,相互监督。
设计从不同的方面考验着我们,不仅仅考验我们的知识,更重要的是考验我们的动手能力。
这件是要你说怎么做你会说,但是在真正的动手中你却有可能就不知道从何下手,所以在很多方面都要学习的。
课程设计培养了我们的动手能力,但它也不只是针对这一个方面,它涉及很多方面,能够全方面锻炼一个人。
参考文献
[1]黄同成,周红波.程序设计基础教程(C语言)[M].人民,2011.
[2]黄同成,黄磊.程序设计实践教程(C语言)[M].人民,2011.
[3]谭浩强.C程序设计(第三版)[M].:
清华大学,2005.
致
在这次课程设计的过程中,我得到了许多人的帮助。
首先我要感成老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把系统做得更加完善。
在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力,找到了自己的不足,然后能不断的改正自己,让自己越来越进步。
还要感和我同一设计小组的几位同学,是你们在我平时设计中和我一起探讨问题,并指出我设计上的误区,教我要如何改正,使我能及时的发现问题,让我能顺利的完成程序,没有你们的帮助我不可能这样顺利地完成,所以在此表示感。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 课程设计 报告