当前位置:文档之家› C语言程序设计

C语言程序设计

ht[i].parent=ht[i].lchild=ht[i].rchild=0;
}
for (i=n+1;i<=m;i++)
{
Select(ht,i-1,&s1,&s2);
ht[s1].parent=i; ht[s2].parent=i;
ht[i].lchild=s1; ht[i].rchild=s2;
显然是一个单向循环链表。链表的特点就是用彝族任意的存储单元存储线性表的数据元素,这些组存储单元可以是连续的,也可以不是连续的。数据域为猴子的编号,指针域为下一个猴子的地址。整个链表的存取必须从头指针开始进行,头指针指示链表中的第一个节点的存储位置,同时由于最后一个数据元素没有直接后继,则线性表中最后一个结点的指针为“空”。
报数实际上是计数,只要设一个计数器就可以了。当计数器由0变化到m时,删除该结点,计数器回0继续计数。对于一个算法来说,它的性能是非常主要的,一个完整的算法包括:有穷性,确定性,可行性,输入和和输出。同时,对于你个好的算法也要有良好的效率,一般情况下算法中的基本操作重复执行的次数是问题规模N的某个函数f(n),算法的时间量度为:
ht[i].weight=ht[s1].weight+ht[s2].weight;
cd[n-1]='\0';
for (i=1;i<=n;i++)
{
start=n-1;
for (c=i,f=ht[i].parent;f;c=f,f=ht[f].parent)
if (ht[f].lchild==c) cd[--start]='0';
scanf("%d",&(*n));
printf("\ninput %d character\n",*n);
for (i=1;i<=*n;i++) hc[i].data=getch();
printf("\ninput %d weight\n",*n);
沈 阳 大 学
课程设计说明书NO.4
for (i=1;i<=*n;i++) scanf("%d",&(hc[i].weight));
[3] 王士元. C高级实用程序设计[M]. 第二版.北京:清华大学出版社,1996-6:78-93
[4] 谭浩强. C程序设计[M]. 第二版.北京:清华大学出版社,2005-7:95-112
[5]丁爱萍,郝小会,孙宏莉.C语言程序设计实例教程(第二版)[M].西安电子科技大学出版社,2002-3
1.1课程设计的基本要求
设计中要求学生能够综合运用所学知识,上机解决一些与实际应用结合密切的、规模较大的问题。通过分析、设计、编码、调试等各环节的训练,使学生了解C语言的基本概念、语法、语义和数据类型的使用特点;掌握最基本算法的设计与实现方法;掌握用C语言开发应用程序设计的一般步骤和方法及编程技巧;掌握调试程序的基本方法及上机操作方法;能够利用所学的基本知识和技能,独立完成一个综合应用程序的开发,提高学生分析问题和解决问题的能力。除此以外,还应达到以下几点要求:
for (i=1;i<=n;i++)printf("\n%c --- %s",hc[i].data,hc[i].code);
}
C语言2
#include "stdlib.h"
#include "alloc.h"
#include "stdio.h"
struct monkey
{
int order;
struct monkey *next;/ };
[10] 苏小红, 陈惠鹏, 温东新,李秀坤.C语言程序设计教程[M].北京:电子工业出版社,2004-1(3):123-133
2.2设计方法
新的m值编号为1,2,...,n的n只猴子按顺时针方向围坐一圈,每猴子持有一个密码(正整数)。开始选一个作为报数上限值m,从第一只猴子按顺时针方向自1开始顺序报数,报到 m 时停止报数。报m的猴子出列,将它的密码作为,从他在顺时针方向上的下一个猴子开始重新从1报数,在输入猴子个数后,建立节点,每出去一只,指针就向下一位移动,Q指向P的下一个,并计算输出的都猴子,如果是最后一个猴子,把最后一个的next域指向头节点,构成循环链表,删掉Q所指的节点。直道删除到P指向自己。这时打印出是第几个猴子。
[6]黄明,梁旭,万洪莉.C语言课程设计[M].电子工业出版社,2006-6
[7]王敬华,林萍,陈静.C语言程序设计[M].清华大学出版社,2005-10-2006-3
[8] 冼镜光.C语言名题精选百则(技巧篇)[M].北京:机械工业出版社,2005-7: 225-254
[9] Harvery M.Deitel, Paul.Deitel, Tem.R.Nieit.C++大学教程实验指导书[M].北京:电子工业出版社,2003-1:43-53
T(n)=O(f(n))
它表示随问题的规模N的增大,短法执行时间增长率和f(n)的增长
率相同。
沈 阳 大 学
课程设计说明书NO.11
参考文献
[1] 王敬华,林 萍,陈 静. C语言程序设计教程[M]. 北京:清华大学出版社,2005- 10:184
[2] 鲁沐浴. C语言最新编程技巧200例[M]. 第三版.北京: 电子工业出版社,1997- 1:35-48
{
q=(struct monkey *)malloc(sizeof(struct monkey));
q->order=i;
沈 阳 大 学
课程设计说明书NO.7
if(head==NULL) {
head=p=q;
}
if(i==m)
{
p->next=q;
q->next=head;
}
p->next=q; p=q; }
while(p->next!=p)
{
for(i=1;i<n;i++) p=p->next;
q=p->next;
p->next=q->next; p=q->next;
free(q);
}
printf("the king of the monkey is : %d \n",p->order);
沈 阳 大 学
(1)充分认识课程设计的重要性,认真做好设计前的各项准备工作。
(2) 既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。
(3) 独立按时完成规定的工作任务,不弄虚作假,不抄袭他人内容。
(4) 严格遵守学校的学习和劳动纪律、规章制度、按时出勤。
(5) 在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。
ad[--start]='1';
strcpy(hc[i].code,&cd[start]);
}
}
main(){
int i,m,n,w[N+1];
HTNode ht[M+1];
沈 阳 大 学
课程设计说明书NO.6
HTCode hc[N+1];
Init(hc,&n); HuffmanCoding(ht,hc,n);
沈 阳 大 学
课程设计说明书NO.10
5.程序设计结论
5.1运算结果
HOW MANY MONKEY?\nM=60
WHICH MONKEY TO GO OUT?\nN=
the king of the monkey is 35
5.2分析
通过设计的程序,可以计算出输入一组数据后,得到最后的结果。从而在一定数目的猴子中选出大王,这就是我们想要的结果,通过这个程序我们还可以在其他方面也利用这一程序来解决问题。
}
void Select(HTNode ht[],int k,int *s1,int *s2){
int i;
for (i=1;i<=k && ht[i].parent!=0 ;i++);
*s1=i;
for (i=1;i<=k;i++)
if (ht[i].parent==0 && ht[i].weight<ht[*s1].weight) *s1=i;
(3)输入参数后按回车如图5所示:
图5 运行程序
沈 阳 大 学
课程设计说明书NO.9
(4)运行结果,得到猴子大王的编号如图6所示:
图6 运行结果
(5)程序启动后,自动从指定的文件中读取信息。程序运行结束后,又自动将内存中修改过的信息保护到文件中。通过对这个小程序的调试发现本程序的输入、查找、删除、列表等功能的调试比较成功,可以生成.exe可执行文件.
1)主函数程序算法流程图
沈 阳 大 学
课程设计说明书NO.3
2)创建单循环链表函数流程图
3)删除结点函数(出列函数)程序流程图
3.设计方案论证
#include <stdio.h>
#define N 10
#define M 2*N-1
typedef struct{
unsigned int weight;
课程设计说明书NO.8
4.程序运行结果
(1).在Turbo C2.0环境中输入源程序,在没有提示错误的情况下编译,生成.exe可执行文件。
通过程序运行进行输入,双击文件,会看到如图3所示:
相关主题