数据结构课程设计学生课表设计.doc
《数据结构课程设计学生课表设计.doc》由会员分享,可在线阅读,更多相关《数据结构课程设计学生课表设计.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程设计报告书题目:计算机专业教学计划编制 院 系: 信息学院计算机科学与技术 专业班级: 学 号: 学生姓名: 指导教师: 2012年 10月 23日 系:计算机科学与技术 2012 - 2013 学年度 第1 学期学 号学生姓名专业(班级)班设计题目计算机专业教学计划编制同组成员设计要求(1) 每学期选修学分不低于16,不超过35;(2) 每学期负担基本均衡;(3) 按学分收费,尽量节省学费开支;(4) 达到毕业要求的总学分为185,尽可能实现提前毕业。设计方法按设计要要求设计必修和选修课程,必修课与选修课不冲突,在满足学分要求下平衡学期负担,设计学分学费对应,提供最佳选择方案,提出最优毕
2、业方案。成果形式输入选修课,显示课表,提供最优毕业方案。工作进度及分工第2周,写出任务书,思考构架,共同完成。第3周,设计整体构架,查询资料确定课程,确定课程上课时间安排,共同完成。第4,5周,按照课程构架,完成相应C程序,并测试,共同完成。第6周,再次测试程序,整理资料,选出最佳毕业方案,并输入到程序中,填写资料。参考资料指导教师签字教研室主任签字一实验目的:1.通过计算机专业教学计划编制程序的编写,再次了解并掌握数据结构与算法的设计方法,具 备初步的独立分析和设计能力;2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3.提高综合运用所学的理论知识和方法独立分析
3、和解决问题的能力;二 问题描述:对计算机专业教学计划进行编制,达到以下要求:(1) 学期负担平衡(2) 尽量节省学费开支(3) 尽量实现提前毕业(4) 提出最佳培养方案三 需求分析: 该程序的主要目的是合理编制计算机专业教学计划,实现必修课与选修课不冲突,在满足学分要求下平衡学期负担,设计学分学费对应,提供最佳选择方案,提出最优毕业方案,是软工方向专业的一个课程设计。 此程序规定:(1) 学生每学期选修学分不低于16,不超过35;(2) 每学期负担基本均衡;(3) 按学分收费,尽量节省学费开支;(4) 达到毕业要求的总学分为185,尽可能实现提前毕业。四 概要设计:用到的主要知识有:(1) 图
4、 typedef struct ArcNode();图的邻接表存储结构 int LocateVex(ALGraph G, VertexType u) ;查找图中结点 nt CreateGraph(ALGraph &G) ;邻接表存储 void FindInDegree(ALGraph G, int indegree);用图求顶点入度 int TopoSort(ALGraph G,AdjList Temp,struct Name name);拓扑排序(2)栈: int InitStack(SqStack &S);初始化栈 int StackEmpty(SqStack S);栈判空 int Pus
5、h(SqStack &S, SElemType e);入栈 int Pop(SqStack &S, SElemType &e);出栈 利用栈来存储课程及涉及的学分,通过图的拓扑排序给出合理的专业课程编制。五 详细设计(伪代码): typedef char VertexTypeMAX_NAME存储学期数目,及每学期学分上限,提供课程编制条件;void OUTPUT()给出课程编制限制条件,给出可选课程项目,给出某些学某些课程前,必须先学另一些课程的提示int LocateVex(ALGraph G, VertexType u) 查找图中课程,在课程编制过程中int CreateGraph(ALG
6、raph &G) 用邻接表存储输入项目,输入课程编制条件(确定学习某课程的前提)(*程序执行输入课程,必要先驱课程,课程学分*)(*输入学期数,学分限制等*)void puanduan(VertexType str,struct Name name,int n)根据输入条件判断,形成图 void Display(ALGraph G)输出按给定输入条件所确定的课程编制信息stack(栈的应用,存储课程及学分)toposort(拓扑排序,形成教学计划编制)void main();主程序部分,函数调用及实现六 代码及运行结果:#include#include#include#include#defi
7、ne 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 19 typedef char VertexTypeMAX_NAME; int TotalTerms ; /学期总数int MaxScores; /学分上限 /* -图的邻接表存储表示- */typedef struct ArcNode int adjvex; / 该弧所指向的顶点的位置 弧的节点结构 stru
8、ct ArcNode *nextarc; /指向下一条弧的指针ArcNode; / 链表结点 typedef struct /链接表 VertexType data; /顶点信息 int grades; /存储学分信息 ArcNode *firstarc; /指向第一条依附该顶点的弧的指针VNode, AdjListMAX_VERTEX_NUM; / 头结点 typedef struct AdjList vertices; /vertices 存储课程名 int vexnum, arcnum; / 图的当前顶点数和弧数ALGraph; void OUTPUT() int s; printf(t
9、t-教学计划编制菜单-n); printf(tt课程代码 | 课程名称 |优先课程 n); printf(ttC1 |C+程序设计 | C10 n); printf(ttC2 |数据结构 | C11 n); printf(ttC3 |面向对象程序设计 | C11,C2 n); printf(ttC4 |计算机网络 | C2,C3 n); printf(ttC5 |操作系统原理 | C2 n); printf(ttC6 |数据库原理及应用 | C2 n); printf(ttC7 |软件项目管理 | C3 n); printf(ttC8 |软件工程 | C11,C3 n); printf(ttC
10、9 |软件测试技术 | C8 n); printf(ttC10 |高等数学A | 无 n); printf(ttC11 |C程序设计 | 无 n); printf(ttC12 |C语言课程设计 | C11 n); printf(ttC13 |数据结构课程设计 | C2 n); printf(ttC14 |面向对象课程设计 | C3 n); printf(ttC15 |计算机网络课程设计 | C4 n); printf(ttC16 |数据库课程设计 | C6 n); printf(ttC17 |软件工程课程综合设计 | C8 n); printf(ttC18 |Web应用技术课程设计 | C7
11、n); printf(ttC19 |毕业设计(论文)与答辩 | 无 n); printf(输入某个数字开始:); scanf(%d,&s);/* 查找图中某个顶点位置 */int LocateVex(ALGraph G, VertexType u) int i; for (i = 0;i G.vexnum;+i) if (strcmp(u,G.verticesi.data)=0) return i; return -1;/*采用邻接表存储结构*/int CreateGraph(ALGraph &G) int i, j, k; VertexType va; ArcNode *p; printf(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 学生 课表 设计
限制150内