《数据结构》课程设计报告 教学计划编制问题 内部排序算法的性能分析 学院(系): 数学与统计学院 班 级: 110010101 学生姓名: 杨晓格 学 号: 11001010129 指导教师: 韩逢庆 时 间: 从2011年12月31日 到2012年1月 6日
一、课程设计概述:
本次数据结构课程设计共完成二个题:a.教学计划编制问题b.内部排序算法的性能分析 使用语言:C
二、课程设计题目一 [实验内容]
教学计划编制问题 [问题描述]
答学的每个专业都要制定教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限值均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序
[需求分析]
(1) 输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3
位的字母数字串)、学分和直接先修课的课程号。
(2) 允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽
量均匀;二是使课程尽可能地集中在前几个学期中。
(3) 若根据给定的条件问题无解,则报告适当的信息;否则将教学计划输出到用
户指定的文件中。计划的表格格式自行设计。
[概要设计]
md init() /*初始化教学计划*/
void select (int quee[],int i,int j,md a) /*使课程集中在前面*/ void arrage(md a) /*教学计划函数*/ [流程图]
编译环境:TC3.0 / VC6.0
2
初始化教学 课程 数 学期数 学分上限 输入后续课程 教学计划函数
[详细设计] #include
int number; int score; struct stu *next;
}node; typedef struct { }sd;
typedef struct {
3
int vex_num; int vex_sco; int have; node *first;
sd arry[maxsize]; int max_class; int max_term; int score_limit;
}md; md init() {
int i,x,c; md a; node *p;
printf(\scanf(\printf(\scanf(\
printf(\scanf(\printf(\for (i=1;i<=a.max_class;i++) { }
4
a.arry[i].first=NULL;
for(i=1;i<=a.max_class;i++)
printf(\
scanf(\printf(\c=0; do {
scanf(\if (x>0) { }
p=(node *)malloc(sizeof(node)); p->number=a.arry[i].vex_num; p->next=a.arry[x].first; a.arry[x].first=p; c++;
}while(x>0); a.arry[i].have=c;
}
return a;
/*void disp(md a) { node *p; int i;
for (i=1;i<=a.max_class;i++) {
printf(\ p=a.arry[i].first; while(p!=NULL) {
printf(\ p=p->next; }
printf(\ } } */
void select (int quee[],int i,int j,md a) { }
void arrage(md a) {
int k,temp,min; min=i;
for(k=i+1;k<=j;k++)
if (a.arry[quee[k]].vex_sco temp=quee[i]; quee[i]=quee[min]; quee[min]=temp; min=k; if(min!=i) int quee[maxsize],front,bare,i,j,total_score; node *p; front=bare=0; j=1; for(i=1;i<=a.max_class;i++) 5