关键词不能为空

当前您在: 主页 > 英语 >

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

作者:高考题库网
来源: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

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

  • 爱心与尊严的高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊严高中作文题库

    1.关于爱心和尊严的作文八百字 我们不必怀疑富翁的捐助,毕竟普施爱心,善莫大焉,它是一 种美;我们也不必指责苛求受捐者的冷漠的拒绝,因为人总是有尊 严的,这也是一种美。

    小学作文
  • 爱心与尊重的作文题库

    1.作文关爱与尊重议论文 如果说没有爱就没有教育的话,那么离开了尊重同样也谈不上教育。 因为每一位孩子都渴望得到他人的尊重,尤其是教师的尊重。可是在现实生活中,不时会有

    小学作文
  • 爱心责任100字作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任心的作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文
  • 爱心责任作文题库

    1.有关爱心,坚持,责任的作文题库各三个 一则150字左右 (要事例) “胜不骄,败不馁”这句话我常听外婆说起。 这句名言的意思是说胜利了抄不骄傲,失败了不气馁。我真正体会到它

    小学作文