关键词不能为空

当前您在: 主页 > 英语 >

教学计划数据结构课程设计说明书

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-01 21:51
tags:

-

2021年2月1日发(作者:authority是什么意思)



中北大学



数据结构



课程设计说明书






学生姓名


:





:




:




:





董媛杰






号:



软件学院



软件工程






教学计划编制问题




尹四清



薛海丽

















20XX



12



20




1



设计目的



《数据结构》


课程主要介绍最常用的数据结构,


阐明各种数据结构内在的逻


辑关系,


讨论其在计算机中 的存储表示,


以及在其上进行各种运算时的实现算法,


并对算法 的效率进行简单的分析和讨论。进行数据结构课程设计要达到以下目


的:



1


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


力;



2




初步掌 握软件开发过程的问题分析、系统设计、程序编码、测试等基本


方法和技能;

< p>


3




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



4




训练用 系统的观点和软件开发一般规范进行软件开发,培养软件工作者


所应具备的科学的工作方 法和作风。



…………………………


..



2.



设计内容和要求



设计内容:



(1)


设定专业开设课程(不少于


30


门,可参考本专业课程 计划)


,及课程之间


的依赖关系(如离散数学应在数据结构之前 开设)




(2)

制定课程安排计划,并满足各学期课程数目大致相同。




设计要求:



(1)


符合课题要求,实现相应功能;



(2)


要求界面友好美观,操作方便易行;



(3)


注意程序的实用性、安全性;




…………………………



3


.本设计所采用的数据结构



邻接表存储图结构,拓扑排序实现课程的先修依赖关系



………………………


.


4


.功能模块详细设计



4.1


详细设计思想



1


.程序主要包括五个模块



1



、图的邻接表的存储表示,即结构体的定义



typedef char VertexType[MAX_NAME];



typedef struct ArcNode


{









int adjvex;

























//


该弧所指向的顶点的位置










struct ArcNode *nextarc;












//


指向下一条弧的指针



}ArcNode;































//


链表结点




typedef struct


























//


链接表



{









VertexType data;




















//


顶点信息










int grades;

























//


存储学分信息










ArcNode *firstarc;


















//


指向第一条依附该顶点的弧的指针



}VNode, AdjList[MAX_VERTEX_NUM];








//


头结点




typedef struct


{









AdjList vertices;



















//vertices


存储课程名










int vexnum, arcnum;

















//


图的当前顶点数和边数



}ALGraph;



2

< p>


、利用前插法,建立图的邻接链表


< p>
printf(


请输入下列课程的先修课程


(


无先修课程输入


0


结束后也输入

< p>
0)n









for (k=0;k


.vexnum;++k) //


构造表结点链表


,










{

















pri ntf(


的先修课程


:


.vertic es[k].data);
















scanf(
















while (va[0]!='0')
















{























i = LocateVex(G


, va);//


弧头
























j = k;

















//


弧尾
























p = (ArcNode*)malloc(sizeof(ArcNode));























p->adjvex = j;























p->nextarc = G


.vertices[i].firstarc; //


插在表头
























G


.vertices[i].firstarc = p;























scanf(


































}









}



3



、输出 图的顶点和边



printf(


个顶点



.vexnum);









for (i = 0;i < G


.vexnum;++i)
















printf(









printf(


条弧边


:n


.arcnum);









for (i = 0;i < G


.vexnum;i++)









{
















p = G


.vertices[i].firstarc;
















while (p)
















{























printf(


.vertices[p->adjvex].da ta);























p = p->nextarc;
















}









}


< /p>


4



、通过栈实现拓扑排序










FindInDegree(G


, indegree);






//


对各顶点求入度










InitStack(S);



















//


初始化栈










for (i = 0;i < G


.vexnum;++i)




//


建零入度顶点栈


S
















if (!indegree[i]) Push(S, i);



//


入度为


0


者进栈










count = 0;






















//


对输出顶点计数










while (!StackEmpty(S))









{

















Pop(S, i);
















printf(


< br>),


.vertices[i].data,G


.ver tices[i].grades);
















Temp[j++] = es[i];



//


将当前的拓扑序列保存起来


















++count;

















//


输出


i


号顶点并计数

















for (p =G


.vertices[i].firstarc; p; p=p->nextarc)//



i


号顶点的每个邻接点


的入度减


1
















{
























k = p->adjvex;























if (!(--indegree[k])) //


若入度减为


0 ,


则入栈































Push(S, k);
















}









}









if (count < )









{
















printf(

< br>此有向图有回路无法完成拓扑排序

















return ERROR;









}









else printf(




为一个拓扑序列







printf(




Return OK


Return ERROR

< p>
依次将入度为


0


的顶点存入


InDegree




对每个顶点求 入度,并存入数组


InDegree[i]


中(


i=0



n




初始化栈


Stack,Counter=0


对以


i


号顶点为尾弧的每个邻接点的入度减< /p>


1



并将入度减


1


后为零的顶点号压入栈中,


输出


i< /p>


,计数器加


1(Counter++)


推出栈顶的一个元素(入度为零的顶点号)至


i


,输出


i


,计数器加


1



Counter++



< br>依次将入度为


0


的顶点存入


In Degree




5)


、解决问题


根据学分上限决定出每学期应学课程,其中


Temp[]


中 存储的是经过拓扑排序后的课程


先后顺序。

















int q=1,Z=0;









while (q <= TotalTerms)









{
















int C = Temp[Z].grades
















printf(

< br>第


%d


个学期应学课程


:
















while (C <= MaxScores)
















{
























C = C + Temp[Z+1].grades;























if (Z < G


.vexnum)



printf(























++Z;
















}
















printf(
















if (q == TotalTerms)printf(


课程编制完成!

















q++;









}


例如输出如下结果:




………………………


.


4.2


核心代码




#include


#include


#include


#include


#define TRUE 1


#define FALSE 0


#define OK 1


#define ERROR 0


#define MAX_NAME 3


#define MAXCLASS 100



















//


顶点字符串的最大长度



#define MAX_VERTEX_NUM 100













//


最大顶点数



#define N 35



typedef char VertexType[MAX_NAME];




int TotalTerms ;
























//


学期总数



int MaxScores;


























//


学分上限




/* ----


图的邻接表存储表示


---- */


typedef struct ArcNode


{









int adjvex;

























//


该弧所指向的顶点的位置



弧的节点结构










struct ArcNode *nextarc;












//


指向下一条弧的指针



}ArcNode;































//


链表结点




typedef struct


























//


链接表



{









VertexType data;




















//


顶点信息










int grades;

























//


存储学分信息










ArcNode *firstarc;


















//


指向第一条依附该顶点的弧的指针



}VNode, AdjList[MAX_VERTEX_NUM];








//


头结点




typedef struct


{









AdjList vertices;



















//vertices


存储课程名










int vexnum, arcnum;

















//


图的当前顶点数和弧数



}ALGraph;



void OUTPUT()


{









int s;






printf(











教学计划编制菜单

















n









printf(


课程代码





|


课程名称




















|


优先课程





n









printf(










|C++


语言程序设计














|











n









printf(










|


高等数学





















|











n













printf(










|


程序设计基础

















|











n









printf(










|


汇编语言





















| C1









n









printf(










|


线性代数





















| C2









n









printf(










|


数字逻辑





















| C2









n









printf(










|


计算机组成原理















| C11








n









printf(










|


离散数学





















| C3









n









printf(










|


语言的设计与分析













| C1,C3









n









printf(









|


数据结构





















| C3,C8








n









printf(









|


普通物理





















| C2









n









printf(









|


数值分析





















| C3,C5,C11 n









printf(









|


数据库系统原理















| C3,C4









n









printf(









|*


面向 对象程序设计(


C#







| C3








n













printf(









|


软件工程





















| C3



C10




n









printf(









|


面向对象系统分析













| C14,C15









n









printf(









|


操作系统





















| C7



C10




n









printf(









|


计算机通信与网络













| C11








n









printf(









|*UML



Rational Rose









| C7



C18





n









printf(









|*


编译原理




















| C9



C10




n









printf(









|


软件测试技术

















| C15







n









printf(









|*


新型计算机网络技术










| C18








n

-


-


-


-


-


-


-


-



本文更新与2021-02-01 21:51,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/595348.html

教学计划数据结构课程设计说明书的相关文章

  • 余华爱情经典语录,余华爱情句子

    余华的经典语录——余华《第七天》40、我不怕死,一点都不怕,只怕再也不能看见你——余华《第七天》4可是我再也没遇到一个像福贵这样令我难忘的人了,对自己的经历如此清楚,

    语文
  • 心情低落的图片压抑,心情低落的图片发朋友圈

    心情压抑的图片(心太累没人理解的说说带图片)1、有时候很想找个人倾诉一下,却又不知从何说起,最终是什么也不说,只想快点睡过去,告诉自己,明天就好了。有时候,突然会觉得

    语文
  • 经典古训100句图片大全,古训名言警句

    古代经典励志名言100句译:好的药物味苦但对治病有利;忠言劝诫的话听起来不顺耳却对人的行为有利。3良言一句三冬暖,恶语伤人六月寒。喷泉的高度不会超过它的源头;一个人的事

    语文
  • 关于青春奋斗的名人名言鲁迅,关于青年奋斗的名言鲁迅

    鲁迅名言名句大全励志1、世上本没有路,走的人多了自然便成了路。下面是我整理的鲁迅先生的名言名句大全,希望对你有所帮助!当生存时,还是将遭践踏,将遭删刈,直至于死亡而

    语文
  • 三国群英单机版手游礼包码,三国群英手机单机版攻略

    三国群英传7五神兽洞有什么用那是多一个武将技能。青龙飞升召唤出东方的守护兽,神兽之一的青龙。玄武怒流召唤出北方的守护兽,神兽之一的玄武。白虎傲啸召唤出西方的守护兽,

    语文
  • 不收费的情感挽回专家电话,情感挽回免费咨询

    免费的情感挽回机构(揭秘情感挽回机构骗局)1、牛牛(化名)向上海市公安局金山分局报案,称自己为了挽回与女友的感情,被一家名为“实花教育咨询”的情感咨询机构诈骗4万余元。

    语文