关键词不能为空

当前您在: 主页 > 英语 >

数据结构课程设计排课系统 - 副本

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

-

2021年2月1日发(作者:翻船)



教学单位


计算机科学与技术





学生学号

















数据结构




课程设计报告书













教学计划安排系统



学生姓名













专业名称



计算机科学与技术


(


软件工程


)


指导教师



李志敏






吴先飞











课程设计评分



评分标准



1


、内容完整性(


20


分)


< p>
2


、报告撰写规范性(


10


分)



3


、问题描述正确性(


10


分)



4


、设计合理与有效性(


10


分)



5


、程序代码编写规范性(


20


分)



6


、程序运行正确性(


10


分)



7


、屏幕提示信息准确与充分性(


10


分)



8


、测试过 程充分性与正确性(


10


分)



合计












得分






平时成绩


(30%)








绩:




















课程设计报告成绩


(70%)




评阅人签名:
















目录





一、



课程设计的目的


.................... .................................................. ......


4



二、



设计的内容与要求


................... .................................................. ...


4



三、



总体设计


....................... ..............................


错误!未定义书签。



四、



详细设计


....................... .................................................. ...............


5



五、



调试与测试


...................... .................................................. ..........


1


5



六、



课程设计的总结


.................... .................................................. ....


1


7





























一、



课程设计的目的




1.


巩固和加深学生对


C

< p>
语言课程的基本知识的理解和掌握



2.


掌握


C


语言编程和程序调试的基本技能



3.


利用


C


语言进行基本的软件设计



4.


掌握书写程序设计说明文档的能力



5.


提高运用


C

语言解决实际问题的能力





二.设计的内容与要求







要建立 一个图,


因而要输入图的结点数和边数以及图的每一个结


点的名 称,


要对所输入课程进行排课,


因而要确定每一个结点的入度< /p>


是否为零


,


并且将入度为零的结点分别进 栈再出栈,再进另一个栈,


最后出栈,最后实现对所输入的课程进行排课






三.总体设计



1


)该教学计划安排系统分为


6


个 模块





1.


建立图





2.


栈的初始化





3.


出栈





4.


进栈



5


求结点的入度



6


拓扑排序




2


)算法描述(此程序中所包含的函数)


1.


主函数


main():


调用



C


reat eALGraph(G)


函数和


TopologicalSor t(G)



数。


ALGraph()


函数


:


从键盘 上输入所需要的值,


并对每一个结点的


*firstarc


赋值为


NULL




ack()


函数


:

将栈分配存储空间,并对


top



base


赋值。



()


函数


:


进满足条件的元素压入栈中,并改变


top


指针的值

< p>


5. Pop()


函数


:


开始判断栈中的


top


< p>
base


指针是否相等,若相等则返


回,否则进行 出栈操作。



mpty()


函数


:


通过判断栈是否为空来返回相应的值。


< /p>


Degree()


函数


:


通过循环求出每一个结点的入度



gicalSort ()


函数


:


通过拓扑排序将相应的课程 给输出来





四.详细设计






数据的组织描述(比如主要的变量 类型,结构体等等)


,模块


之间的参数设计(接口设计,模块的 功能说明)


,系统控制流程图,


各个模块的流程图,采用的算法





typedef struct


{



NULL




SElemType *top; //


栈顶指针



int stacksize; //


当前已分配的存储空间


,


以元素为单位



SElemType


*base;


//


在栈构造之前和销 毁之后


,base


的值为


}SqSta ck;


typedef struct ArcNode


{






int adjvex;//


该弧所指向的顶点的位置




struct ArcNode *nextarc;//


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



}ArcNode;


typedef struct VNode


{




char data[10];


ArcNode *firstarc;


}AdjList[max_vertex_num];


typedef struct


{




AdjList vertices;


int vexnum,arcnum;//


图的当前顶点数和弧数



}ALGraph;




1.


主函数模块




















CreateALGraph(G)


< p>


,



Topologi calSort(G)


函数。






2.


创建图的模块











从键盘上输入学期数,再输入课程数目(即结点数)和课程


之间的关 系数(即边数)


,并把指向第一条依附该顶点的弧的指针赋


值为


NULL


,同时把每一个结点所指向的其他结点形成一个链表。




NULL






3


栈的初始化模块











使栈中


base


指针分配一定的存储空间,


并使栈中


top


指针指



base


指针。





4.


栈的进栈模块










先开始 判断这个栈是否为满,若满了,则重新分配一定的存


储空间,栈中的

top


指针重新赋值之后,再使该元素进栈,并使


top< /p>


指针指向下一位。



5.


栈的出栈模块









判断栈的


top


指针和


base


指针是否相等,


若相等则为空,


否则


不为空。



6.


栈空的模块








通过判断栈的


top


指针和


base


指针是否相等,来返回相应的值













7.


求结点的入度模块



对每一个结点已经形成了一个链表进行查找,


若发现有一个结点指向


另一个结点,就把另一个结点的入度加


1


,直到 循环结束



8.


拓扑排序模块







首先对栈进行初始化,


然后找出结点的入度为零的结点,

< p>
若入度


为零,则进栈。


当是


S1


不为空时,就将栈中的


S1


进行 出栈操作,并


把序号所对应的结点给输出来。


与此同时,


把结点所对应的序号压入



S2


,同时将


count



1< /p>


,并判断栈


S2


是否为空,



若不为空,则把栈


S2


中 的元素进行出栈操作,并把该结点所形成的


链表中每一个结点的入度减一,


若减之后,


就把该结点的序号压入栈


S1

< p>
。如此循环,直到该循环结束






























(1)



CreateALGraph()


函数






CreateALGraph



函数










输入学期数



semester_


num>8


inti,semester_n


um,



v,w,vex




























N


vex>=20


Y




课程数目



输入课程之间



的关系数



输入课程的名




N


i


.vexnum


Y


输入课程的之间的先


后关系数


v,w




结束



i


.arcnum






(1)







(2)



Ini tStack()


函数



=(SEle mType*)malloc(stac


k_init_size*sizeof(SE lemType))



return 0




!=0






=,



ize=stack_init_size



return 1






(2)




(3)



Pop()


函数






return 0






==



e=*--




return 1






(3)
































(4)



Pus h


函数



>=


ize


=(SElemType


*)realloc(,(ize+cre


atestack) *sizeof(SElemType))




==0






return 0




=+ize,


ize+=createstack;


*++=e




return 1











(4)


-


-


-


-


-


-


-


-



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

数据结构课程设计排课系统 - 副本的相关文章