文档库 最新最全的文档下载
当前位置:文档库 › 教学计划编制问题 数据结构课程设计报告 湖南工程学院

教学计划编制问题 数据结构课程设计报告 湖南工程学院

教学计划编制问题 数据结构课程设计报告 湖南工程学院
教学计划编制问题 数据结构课程设计报告 湖南工程学院

课程设计报告

课程名称数据结构课程设计

课题名称教学计划编制问题

专业网络工程

班级0901

学号2009031201XX

姓名

指导教师刘长松陈华光李杰君

2011年7 月15 日

湖南工程学院

课程设计任务书

课程名称数据结构课程设计课题教学计划编制问题

专业班级网络工程0901

学生姓名X X

学号2009031201XX

指导老师刘长松陈华光李杰君

审批

任务书下达日期:2011 年6 月26 日

任务完成日期:2011 年7 月15 日

一、设计内容与设计要求

1.设计内容:

1)问题描述

大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每

学年含两学期,每学期的时间长度和学分上限均相等。每个专业开设的课程都是

确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课

程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样

的前提下设计一个教学计划编制程序。

2)基本要求

a.输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。

b.允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。

c.若根据给定的条件问题无解,则报告适当的信息;否则,将教学计划输出到用户指定的文件中。计划的表格格式自行设计。

3)测试数据

学期总数:6;

学分上限:10;

该专业共开设课数:12

课程号:从C01到C12;

学分顺序:2,3,4,3,2,3,4,4,7,5,2,3。

先修关系如下图:

4)实现提示

可设学期总数不超过12,课程总数不超过100。如果输入的先修课程号不在

该专业开设的课程序列中,则作为错误处理。应建立内部课程号与课程号之间的

对应关系。

2.设计要求:

●课程设计报告规范

1)需求分析

a.程序的功能。

b.输入输出的要求。

2)概要设计

a.程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块

的功能。

b.课题涉及的数据结构和数据库结构;即要存储什么数据,这些数据是什么样的

结构,它们之间有什么关系等。

3)详细设计

a.采用C语言定义相关的数据类型。

b.写出各模块的类C码算法。

c.画出各函数的调用关系图、主要函数的流程图。

4)调试分析以及设计体会

a.测试数据:准备典型的测试数据和测试方案,包括正确的输入及输出结果和

含有错误的输入及输出结果。

b.程序调试中遇到的问题以及解决问题的方法。

c.课程设计过程经验教训、心得体会。

5)使用说明

用户使用手册:说明如何使用你编写的程序,详细列出每一步的操作步骤。

6)书写格式

见附带说明。

7)附录

a.参考书目

b.源程序清单(带注释)

●考核方式

指导老师负责验收程序的运行结果,并结合学生的工作态度、实际动手能力、创新精神和设计报告等进行综合考评,并按优秀、良好、中等、及格和不及格五个等级给出每位同学的课程设计成绩。具体考核标准包含以下几个部分:

①平时出勤(占10%)

②系统需求分析、功能设计、数据结构设计及程序总体结构合理与否(占10%)

③程序能否完整、准确地运行,个人能否独立、熟练地调试程序(占40%)

④设计报告(占30%)

注意:不得抄袭他人的报告(或给他人抄袭),一旦发现,成绩为零分。

⑤独立完成情况(占10%)。

课程验收要求

①运行所设计的系统。

②回答有关问题。

③提交课程设计报告。

④提交电子文档(源程序、设计报告文档)。

⑤依内容的创新程度,完善程序情况及对程序讲解情况打分。

二、进度安排

附:

课程设计报告装订顺序:封面、任务书、目录、正文、评分、附件(A4大小的图纸及程序清单)。

正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。

正文的内容:一、课题的主要功能;二、课题的功能模块的划分(要求画出模块图);三、主要功能的实现(至少要有一个主要模块的流程图);四、程序调试;五、总结;六、附件(所有程序的原代码,要求对程序写出必要的注释)。

正文总字数要求在5000字以上(不含程序原代码)。

目录

1、需求分析 0

1.1程序的功能: 0

1.2输入输出的要求: 0

2、概要设计 0

2.1程序模块功能图 0

2.2数据结构 (1)

3、详细设计 (2)

3.1采用C语言定义相关的数据类型 (2)

3.2各模块的类C码算法 (2)

3.3各函数的调用关系图、主要函数的流程图 (8)

4、调试分析以及设计体会 (10)

4.1测试数据: (10)

4.2程序调试中遇到的问题以及解决问题的方法: (11)

4.3课程设计过程经验教训、心得体会: (11)

5、使用说明 (13)

6.参考书目 (18)

7、附录 (19)

7.1.源程序清单(带注释) (19)

1、需求分析

1.1程序的功能:

编制教学计划。大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。

1.2输入输出的要求:

a.输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。

b.允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。

c.若根据给定的条件问题无解,则报告适当的信息;否则,将教学计划输出到用户指定的文件中。计划的表格格式自行设计。

2、概要设计

2.1程序模块功能图

图2.1-1 功能模块图

2.2数据结构

int termtime=0;

//学期总数

int limitgrade=0; //学分上线

char str[100][4]; //课程号

int score[100]={0}; //课程学分

int totalcourse=0; //课程总数

struct node

//课程节点 { int variable; //标志属不属于同一个学期所修 int previous; //前修课程 int next;

//后学课程

struct node * courselink[100];

//后修课程的指针

}* coursenode[100]={NULL};

//课程数目节点

main() 主函数

initialNod e()

初始化课程节点 createNode ()

建立课程顺

sortNode() 课程 inputBasic

Informatio

n()

输入基本信

cls() 清空信息 menu() 主菜单

3、详细设计

3.1采用C语言定义相关的数据类型

FILE *fp //保存到文件

int termtime=0; //学期总数

int limitgrade=0; //学分上线

char str[100][4]; //课程号

int score[100]={0}; //课程学分

int totalcourse=0; //课程总数

struct node //课程节点

{

int variable; //标志属不属于同一个学期所修

int previous; //前修课程

int next; //后学课程

struct node * courselink[100]; //后修课程的指针}* coursenode[100]={NULL}; //课程数目节点

3.2各模块的类C码算法

A. 初始化课程节点

void initialNode() //初始化课程节点

{

int i;

int j;

printf("\n正在初始化。。。。。。。\n");

for(i=0;i<100;i++)

{

后修课程的指针置零;

同学期学习的课程置零;

前修课程置零;

后修课程置零;

for(j=0;j<100;j++)

coursenode[i]->courselink[j]=NULL;

}

printf("\n初始化完毕。。。。。。。\n");

}

B. 建立课程顺序

void createNode() //建立课程顺序

{

int i;

int temp;

int flag;

for(i=0;i

{

printf("\n请输入%d的深入课程数目:",i+1);

scanf("%d",&(coursenode[i]->next));

printf("\n请输入%d的深入课程课程代号分别是什么(用空格分开):",i+1);

for(temp=0;tempnext;temp++)

{

scanf("%d",&flag);

coursenode[i]->courselink[temp]=coursenode[flag-1];

coursenode[flag-1]->previous++;

}

}

printf("\n课程代号\t前修课程数\t深入课程数\n");

for(temp=0;temp

{

printf("%d\t\t%d\t\t%d\n",temp+1,coursenode[temp]->previous,coursenode[temp]->next);

}

}

C.排课程

void sortNode() //排课程

{

int i,j,flag=0,session=1;

FILE *fp;

if((fp=fopen("d:\\course.txt","a"))==NULL) //如果文件已经存在,可以追加学生信息{

if((fp=fopen("d:\\course.txt","w"))==NULL) // 文件不存在时,创建新文件,输入学生信息

{

printf("文件打开失败!\n");

return;

}

}

printf("\n-----------------------------\n");

printf("课程代号\t课程号\t课程学分\n");

fprintf(fp,"课程代号\t课程号\t课程学分\n");

while(1)

{

flag=1;

for(i=0;i

if(课程数目节点为空)

if(同学期学习课程为空)

if(前修课程为0)

{

printf("%d\t\t%s\t%d\n",i+1,str[i],score[i]);

fprintf(fp,"%d\t%s\t%d\n",i+1,str[i],score[i]);

for(j=0;jnext;j++)

{

前修课程数目节点减一;

coursenode[i]->courselink[j]->variable=1;

coursenode[i]->courselink[j]=NULL;

}

coursenode[i]->next=0;

释放数目结点;

flag=0;

}

if(flag!=0)break;

else

{

if(session<=termtime)

{ printf("第%d学期课程结束\n------------------------------------\n",session);

fprintf(fp,"第%d学期课程结束\n------------------------------------\n",session) ;

session++;}

else

{

printf("学习时间不够!!!\n");

exit(0);

}if(session<=termtime);

}

for(i=0;i

if(课程节目数不为O)

coursenode[i]->variable=0;

}

fclose(fp); //关闭文件指针

}

D,输入基本信息

void inputBasicInformation() //输入基本信息

{

int i;

printf("请输入学期总数:");

scanf("%d",&termtime);

if(termtime>=12)

{

printf("\n对不起,学期总数不能超过12\n");

exit(0);

}

printf("\n请输入学分上限:");

scanf("%d",&limitgrade);

printf("\n请输入课程总数:");

scanf("%d",&totalcourse);

for(i=0;i

printf("请输入第%d门课程号(三个字符,回车结束):",i+1);

scanf("%s",&str[i]);

str[i][3]='\0';

printf("请输入第%d门课程学分(回车结束):",i+1);

scanf("%d",&score[i]);

if(学分高于上限)

{

printf("\n对不起,课程学分不能超过学分上限\n");

exit(0);

}

}

printf("\n您所输入的数据如下,请核实:\n");

printf("课程代号\t课程号\t课程学分\n");

for(i=0;i

{

printf("%d\t\t%s\t%d\n",i+1,str[i],score[i]);

}

}

E.清空信息

void cls()

{

int i=0;

学期数置零;

学分上限置零;

for(i=0;i<100;i++)

{

str[i][0]='\0';

score[100]=0;

}

总课程数置零;

printf("\n原来数据已经清空\n");

}

F.菜单

void menu()

{

printf(" ************************* 教学计划编制

************************\n ");

printf("\n 1 输入课程安排基本信息");

printf("\n 2 建立课程顺序");

printf("\n 3 排列课程顺序");

printf("\n 4 原来数据清空");

printf("\n 5 退出");

}

G.主函数

void main()

{

int n;

initialNode();

while(1)

{

menu();

printf("\n 请输入您要选择的操作序号,按回车键确认:");

scanf("%d",&n);

switch(n)

{

case 1: inputBasicInformation();;break;

case 2: createNode();;break;

case 3: sortNode();;break;

case 4: cls();break;

case 5: exit(0);

default: printf("输入错误,请输入列表中存在的序号!\n ");

}

}

}

3.3各函数的调用关系图、主要函数的流程图

图2.3-1 流程图

4、调试分析以及设计体会

4.1测试数据:

学期总数:6;

学分上限:10;

该专业共开设课数:12

课程号:从C01到C12;

学分顺序:2,3,4,3,2,3,4,4,7,5,2,3。

先修关系如下图:

图4.1-1 测试数据先修关系图

正确输入测试数据后,如果系统符合要求,正确排序,则如图4.1-2所示。

图4.1-2 正确的测试结果

4.2程序调试中遇到的问题以及解决问题的方法:

我们在实验过程中遇到的最大难题是课程排序算法的编写。刚开始的时候没有任何的思路,网上也只有拓扑排序的算法,对于课程设计要求的排序算法没有任何头绪。经过请教老师和同学以及翻阅了一些相关书籍,并在网上的搜索有了排序算法的大体思路。经过几天的修改,终于写出了符合要求的排序算法。

4.3课程设计过程经验教训、心得体会:

每一次读懂别人的代码都是一种提高。

每一次减少一个Error都是一种进步。

每当一个模块编译完成都是一种成就。

这次数据结构的课程设计着实是一件难事,平常很少动手编程序,课堂上也没太多关注把思路转化为代码。以至于最后要实现图的输入输出时,明明知道可以用邻接表或者拓扑排序,但就是不知道写代码。经过一个星期的课程设计,过程曲折可谓一语难尽。整天都是对着电脑,不然就是翻阅资料。在此期间我失落

过,也曾一度热情高涨。点点滴滴令我回味无长。这次课程设计使我体会到只有做到细心耐心,恒心才能做好事情。

通过本次课程设计,对图的概念有了一个新的认识,在学习离散数学的时候,总觉得图是很抽象的东西,但是在学习了《数据结构教程》这门课程之后,我慢慢地体会到了其中的奥妙,图能够在计算机中存在,首先要捕捉他有哪些具体化、数字化的信息,比如说权值、顶点个数等,这也就说明了想要把生活中的信息转化到计算机中必须用数字来完整的构成一个信息库,而图的存在,又涉及到了顶点之间的联系。图分为有向图和无向图,而无向图又是有向图在权值双向相等下的一种特例,如何能在计算机中表示一个双向权值不同的图,这是一件很巧妙的事情。在计算机中实现一个很简单的想法就需要涉及到很多专业知识,为了完成设计,在前期工作中,基本都是以学习 C 语言为主,所以浪费了很多时间,比如说在程序中,删除顶点和增加顶点的模块中都有和建图模块相互重复的函数,但是由于技术的原因,只能做一些很累赘的函数,可见在调用知识点,我没有掌握好。不过,有了这次课程设计的经验和教训,我能够很清楚的对自己定一个合适的水平,而且在这次课程设计中我学会了运用两个新的函数sprintf()和包涵在#include 头文件中的输入函数。

这次的课程设计使我懂得了理论与实际相结合是很非常重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在整个设计过程中,构思是很花费时间的。调试时经常会遇到这样那样的错误,有的是因为粗心造成的语法错误。当然,很多也时用错了方法,总是实现不了。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。

根据我在课程设计中遇到得问题,我将在以后的学习过程中注意以下几点。首先需要认真上好专业实验课,多在实践中锻炼自己。其次写程序的过程中要考虑周到,严密。再次,在做设计的时候要有信心,有耐心,切勿浮躁。然后,认真的学习课本知识,掌握课本中的知识点,并在此基础上学会灵活运用。最后,在课余时间里多写程序,熟练掌握在调试程序的过程中所遇到的常见错误,以便能节省调试程序的时间。每个实验通常都要花费很久的时间才能理清一个程序的思路,而且要不断的调试程序才能把程序调试正确,同时还要做到界面的输出也是需要美化的。这次课程设计终于顺利完成了,在设计中遇到了很多专业知识问

数据结构 教学计划编制问题 实验5报告

HUNAN UNIVERSITY 实验五最终报告 题目:教学计划编制问题 学生姓名 学生学号 专业班级 指导老师 完成日期2014年5月15日

一、需求分析 1.输入形式: 用户通过键盘输入课程总数、每门课的课程编号(固定占3位的字母数字串)和直 接先修的课程号等的参数。 不对非法输入做处理,假定输入的数据都合法。 2.输出形式: 如果拓扑排序成功,输出拓扑排序后的教学计划编制的顺序; 如果拓扑排序不成功,输出排序错误信息,结束程序。 3.程序功能:对于用户输入的一组课程编号,根据输入的先修顺序创建邻接矩阵进行存储,并输出拓扑排序后的课程编号的顺序。 4.测试数据 输入: 输入课程总数:3 输入每门课的课程编号:A01 是否有直接先修的课程(T/F):F 输入每门课的课程编号:A02 是否有直接先修的课程(T/F):T 先修课程编号:A01 是否有直接先修的课程(T/F):F 输入每门课的课程编号:A03 是否有直接先修的课程(T/F):T 先修课程编号:A02 是否有直接先修的课程(T/F):F 输出:教学计划编制完成,课程修读顺序为:A01,A02,A03 (输入有误)课程输入错误!教学计划编制失败,请重新输入。 二、概要设计 抽象数据类型 题设要求使用一个有向图表示教学计划,顶点表示某门课程,有向边表示课程之间的先修关系,数据的对象是图中的每一个顶点和有向边。由此为本问题确定一个图的数据关系。 拓扑排序可以用顶点入度为0的方法实现,所以为实现拓扑排序的顶点顺序的存放,创建一个队列来存放。 图的ADT 数据对象:V,R(分别代表某门课程的顶点组成的一个顶点集 V 和代表课程先修关系的有向弧边组成的一个弧集 R。) 数据关系:VR={| v,w∈V 且P(v,w)} 表示从v 到w 的一条弧,并称v 为弧头,w 为弧尾。 基本操作: int n(); //返回图中的顶点数 int first(int); //返回该点的第一条邻边 int next(int); //返回该店的下一条邻边 void setEdge(int,int,int); //为有向边设置权值 int getMark(int); //获得顶点的标志值 void setMark(int); //为顶点设置标志值 队列ADT

教学计划编制问题课程设计报告

教学计划编制问题课程设计报告

课程设计(论文) 题目名称教学计划编制问题 课程名称数据结构课程设计 学生姓名 学号 系、专业信息工程系、通信工程类 指导教师

2012年12 月23 日 摘要 教学计划是学校保证教学质量和人才培养的关键,也是组织教学过程、安排教学过程、安排教学任务、确定教学编制的基本依据和课程安排的具体形式。是稳定教学秩序、提高教学质量的重要保证。从教学计划的设计、实施等方面,阐明了如何搞好教学管理,从而为提高教学质量提供保证。随着教育改革的不断深入和社会发展的需要,原旧的教学计划在定位上的方向性偏差,已经不再适应社会的需求。因此,应重视教学计划的改革和修订工作,以确保教育教学质量,提高教育教学水平。教学计划编制中的思路:一是明确培养目标;二是注重学科设置的整体性、统一性和灵活性、全面性;三是与学分制改革有机结合。 教学计划是高校实施常规教学活动的基本管理文档,由于传统的手工编制方式存在诸多弊端,开发基于Web应用程序形式的教学计划编制系统具有很好的应用价值。使用C程序设计语言,研究开发教学计划编制系统Web应用系统。 关键词:教学计划;编制;培养目标;管理

目录 1 问题描述 ---------------------------------------------------------------------------------------------- 1 2 需求分析 ---------------------------------------------------------------------------------------------- 2 3 概要设计 ------------------------------------------------------- 2 3.1抽象数据类型定义 ---------------------------------------- 2 3.2模块划分------------------------------------------------- 2 4 详细设计 ------------------------------------------------------- 3 4.1数据类型的定义 ------------------------------------------ 4 4.2主要模块的算法描述 -------------------------------------- 5 5 测试分析 ------------------------------------------------------- 8 6 课程设计总结 ------------------------------------------------- 10 6.1问题和解决的方法及经验教训、心得体会﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍ 10 6.2 致谢 ---------------------------------------------------- 11参考文献 -------------------------------------------------------- 11附录(源程序清单) --------------------------------------------- 12

数据结构课程设计报告模板

《数据结构I》三级项目报告 大连东软信息学院 电子工程系 ××××年××月

三级项目报告注意事项 1. 按照项目要求书写项目报告,条理清晰,数据准确; 2. 项目报告严禁抄袭,如发现抄袭的情况,则抄袭者与被抄袭者均 以0分计; 3. 课程结束后报告上交教师,并进行考核与存档。 三级项目报告格式规范 1. 正文:宋体,小四号,首行缩进2字符,1.5倍行距,段前段后 各0行; 2. 图表:居中,图名用五号字,中文用宋体,英文用“Times New Roman”,位于图表下方,须全文统一。

目录 一项目设计方案 (3) 二项目设计分析 (4) 三项目设计成果 (4) 四项目创新创业 (5) 五项目展望 (6) 附录一:项目成员 (6) 附录二:相关代码、电路图等 (6)

一项目设计方案 1、项目名称: 垃圾回收 2、项目要求及系统基本功能: 1)利用数据结构的知识独立完成一个应用系统设计 2)程序正常运行,能够实现基本的数据增加、删除、修改、查询等功能3)体现程序实现算法复杂度优化 4)体现程序的健壮性 二项目设计分析 1、系统预期实现基本功能: (结合本系统预期具体实现,描述出对应基本要求(增、删、改、查等)的具体功能) 1. 2. 3. 4. 5. 6. 7. 2、项目模块功能描述 (基本分为组织实施组织、程序功能模块编写、系统说明撰写等。其中程序功能子模块实现) 模块一: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块二: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 模块n: 主要任务:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

数据结构(C++)课程设计报告--教学计划编制问题

数据结构(C++)课程设计报告--教学计划编制问题

上海电力学院 数据结构(C++)课程设计 题目: 教学计划编制问题 姓名:石鑫磊 学号:20113296 院系:计算机科学与技术学院 专业年级:信息安全2011级 2013年07月04日

一、设计题目 大学的每个专业都要编制教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限都相等。每个专业开设的课程都是确定的,而且课程的开设时间的安排必须满足先修关系。每个课程的先修关系都是确定的,可以有任意多门,也可以没有。每一门课程恰好一个学期。试在这样的情况下设置一个教学计划编制程序。 在大学的某个专业中选取几个课程作为顶点,通过各门课的先修关系来构建个图,该图用邻接表来存储,邻接表的头结点存储每门课的信息。 本程序的目的是为用户编排课程,根据用户输入的信息来编排出每学期要学的课程。 二、需求分析 (一)运行环境(软、硬件环境) 设计环境和器材—— 硬件:计算机 软件:Microsoft Visula C++ 在本课程设计中,系统开发平台为Windows XP或Win 7,程序运行环境为Visual C++ 6.0,程序设计语言为C++。Visual C++一般分为三个版本:学习版、专业版和企业版,不同版本适合于不同类型的应用开发。实验中可以使用这三个版本的任意一种,在本课程设计中,以Visual C++ 6.0为编程环境。 Visual C++以拥有“语法高亮”,IntelliSense(自动编译功能)以及高级除错功能而著称。比如,它允许用户进行远程调试和单步执行等。还有允许用户在调试期间重新编译被修改的代码,而不必重新启动正在调试的程序。其编译及建置系统以预编译头文件、最小重建功能及累加链接著称。这些特征明显缩短程式编辑、编译及链接的时间花费,在大型软件计划上尤其显著。 Visual C++ 6.0秉承Visual C++ 以前版本的优异特性,为用户提供了一套良好的开发环境,主要包括文本编辑器、资源编辑器、工程创建工具和Debugger调试器等等。用户可以在集成开发环境中创建工程,打开工程,建立、打开和编辑文本,编译、链接、运行和调试应用程序。 (二)输入的形式和输入值的范围 数据输入的方式是键盘输入。输入的数据多是整型的或是浮点型的,还有一些字符(以中文的形式)。输入的数值型的数据大都是小于100的数值。 (三)输出的形式描述 输出的是教学编制计划,就是形如:“第二学期学的课程有:普通物理线性代数汇编语言”这样的形式。 (四)功能描述 输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。

教学计划编制问题课程设计Word版

信息与电气工程学院 课程设计说明书 (2015/2016学年第一学期) 课程名称:软件算法分析与设计 题目:教学计划编制 专业班级:计算机1401 学生姓名:李丹丹 学号: 140210132 指导教师:陈丽 设计周数:一周 设计成绩: 2016年1月13日

目录 一、课题的主要功能 (1) 1.1程序的功能 (1) 1.2.输入输出的要求 (1) 1.3运行环境 (1) 1.4开发工具 (1) 二、概要设计 (2) 2.1程序的模块组成 (2) 2.2模块的层次结构及调用关系 (2) 2.3模块的主要功能 (3) 2.4数据结构和数据库结构 (3) 三.主要功能的实现 (3) 3.1采用C语言定义相关的数据类型。 (3) 3.2主要函数的流程图 (4) 3.3画出各函数的调用关系图 (11) 四、程序调试 (12) 4.1测试数据: (12) 4.2使用说明 (13) 五.心得体会 (14) 六、附录 (15) 6.1参考书目 (15) 6.2源程序清单(带注释) (16)

一、课题的主要功能 1.1程序的功能 大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。 本程序针对本科的学期内容,通过输入实际的课程及先后关系。结合每学期的学分及课程数,制定好学习计划。在输入相关数据后,程序会安排好每学期的课程。 1.2.输入输出的要求 输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。 输出要求输出各门课程所对应的学分,以及每学期各门课程的安排。 1.3运行环境 1. WINDOWS 7系统 2. Vc++6.0编译环境 1.4开发工具 C语言

数据结构课程设计报告

《数据结构与算法》课程设计报告 学号: 班级序号: 姓名: 指导教师: 成绩: 中国地质大学信息工程学院地理信息系统系 2011年12 月

1.需求规格说明 【问题描述】 利用哈夫曼编码进行对已有文件进行重新编码可以大大提高减小文件大小,减少存储空间。但是,这要求在首先对一个现有文件进行编码行成新的文件,也就是压缩。在文件使用时,再对压缩文件进行解压缩,也就是译码,复原原有文件。试为完成此功能,写一个压缩/解压缩软件。 【基本要求】 一个完整的系统应具有以下功能: (1)压缩准备。读取指定被压缩文件,对文件进行分析,建立哈夫曼树,并给出分析结果(包括数据集大小,每个数据的权值,压缩前后文件的大小),在屏幕上输出。 (2)压缩。利用已建好的哈夫曼树,对文件进行编码,并将哈夫曼编码及文件编码后的数据一起写入文件中,形成压缩文件(*.Haf)。 (3)解压缩。打开已有压缩文件(*.Haf),读取其中的哈夫曼编码,构建哈夫曼树,读取其中的数据,进行译码后,写入文件,完成解压缩。 (4)程序使用命令行方式运行 压缩命令:SZip A Test.Haf 1.doc 解压缩命令:SZip X Test.Haf 2.doc或SZip X Test.Haf 用户输入的命令不正确时,给出提示。 (5)使用面向对象的思想编程,压缩/解压缩、哈夫曼构建功能分别构建类实现。 2.总体分析与设计 (1)设计思想: 1、压缩准备:1> 读文件,逐个读取字符,统计频率 2> 建立哈夫曼树 3> 获得哈弗曼编码 2、压缩过程: 1> 建立一个新文件,将储存权值和字符的对象数组取存储在文件头

数据结构实验总结报告

数据结构实验总结报告 一、调试过程中遇到哪些问题? (1)在二叉树的调试中,从广义表生成二叉树的模块花了较多时间调试。 由于一开始设计的广义表的字符串表示没有思考清晰,处理只有一个孩子的节点时发生了混乱。调试之初不以为是设计的问题,从而在代码上花了不少时间调试。 目前的设计是: Tree = Identifier(Node,Node) Node = Identifier | () | Tree Identifier = ASCII Character 例子:a(b((),f),c(d,e)) 这样便消除了歧义,保证只有一个孩子的节点和叶节点的处理中不存在问题。 (2)Huffman树的调试花了较长时间。Huffman编码本身并不难处理,麻烦的是输入输出。①Huffman编码后的文件是按位存储的,因此需要位运算。 ②文件结尾要刷新缓冲区,这里容易引发边界错误。 在实际编程时,首先编写了屏幕输入输出(用0、1表示二进制位)的版本,然后再加入二进制文件的读写模块。主要调试时间在后者。 二、要让演示版压缩程序具有实用性,哪些地方有待改进? (1)压缩文件的最后一字节问题。 压缩文件的最后一字节不一定对齐到字节边界,因此可能有几个多余的0,而这些多余的0可能恰好构成一个Huffman编码。解码程序无法获知这个编码是否属于源文件的一部分。因此有的文件解压后末尾可能出现一个多余的字节。 解决方案: ①在压缩文件头部写入源文件的总长度(字节数)。需要四个字节来存储这个信息(假定文件长度不超过4GB)。 ②增加第257个字符(在一个字节的0~255之外)用于EOF。对于较长的文件,

会造成较大的损耗。 ③在压缩文件头写入源文件的总长度%256的值,需要一个字节。由于最后一个字节存在或不存在会影响文件总长%256的值,因此可以根据这个值判断整个压缩文件的最后一字节末尾的0是否在源文件中存在。 (2)压缩程序的效率问题。 在编写压缩解压程序时 ①编写了屏幕输入输出的版本 ②将输入输出语句用位运算封装成一次一个字节的文件输入输出版本 ③为提高输入输出效率,减少系统调用次数,增加了8KB的输入输出缓存窗口 这样一来,每写一位二进制位,就要在内部进行两次函数调用。如果将这些代码合并起来,再针对位运算进行一些优化,显然不利于代码的可读性,但对程序的执行速度将有一定提高。 (3)程序界面更加人性化。 Huffman Tree Demo (C) 2011-12-16 boj Usage: huffman [-c file] [-u file] output_file -c Compress file. e.g. huffman -c test.txt test.huff -u Uncompress file. e.g. huffman -u test.huff test.txt 目前的程序提示如上所示。如果要求实用性,可以考虑加入其他人性化的功能。 三、调研常用的压缩算法,对这些算法进行比较分析 (一)无损压缩算法 ①RLE RLE又叫Run Length Encoding,是一个针对无损压缩的非常简单的算法。它用重复字节和重复的次数来简单描述来代替重复的字节。尽管简单并且对于通常的压缩非常低效,但它有的时候却非常有用(例如,JPEG就使用它)。 变体1:重复次数+字符 文本字符串:A A A B B B C C C C D D D D,编码后得到:3 A 3 B 4 C 4 D。

数据结构 实验五 教学计划编制问题 最终实验报告

HUNAN UNIVERSITY 课程实习报告 题目教学计划编制问题 学生姓名 学生学号 专业班级 指导老师李晓鸿 完成日期2014年12月16日

一、需求分析 1.问题描述: 用有向网表示教学计划,其中顶点表示某门课程,有向边表示课程之间的先修关系(如果A课程是B课程的先修课程,那么A到B之间有一条有向边从A指向B)。设计一个教学计划编制程序,获取一个不冲突的线性的课程教学流程。(课程线性排列,每门课上课时其先修课程已经被安排)。 2.程序功能: 本程序要求根据所输入的课程及课程间的先修关系,得到一个不冲突的线性的课程表。 3.输入的形式和输入值的范围 用户通过键盘输入课程总数、每门课的课程编号(固定占3位的字母数字串)和直接先修的课程号等的参数。本程序不对非法输入做处理,即假设输入都是合法的。 4.输出的形式 如果排序成功,输出排序后的教学计划表;否则输出错误提示信息,表示所输入的课程不能构成一个完全满足教学要求的课程表。 5.测试数据: 输入: 请输入课程的个数和课程关系的个数:4 3 请输入点,即课程编号1:A1 请输入点,即课程编号2:A2 请输入点,即课程编号3:A3 请输入点,即课程编号4:A4 请输入有向边,即课程的先后关系1:A2 A4 请输入有向边,即课程的先后关系2:A4 A3 请输入有向边,即课程的先后关系3:A3 A1 请输入课程的个数和课程关系的个数:3 3 请输入点,即课程编号1:A1 请输入点,即课程编号2:A2 请输入点,即课程编号3:A3 请输入有向边,即课程的先后关系1:A2 A1 请输入有向边,即课程的先后关系2:A1 A3 请输入有向边,即课程的先后关系3:A3 A2 输出: 课程的选修的先后顺序为:A2 A4 A3 A1 课程的选修的先后顺序为:课程网络存在回路 二、概要设计 1.抽象数据类型的定义: 题设要求使用一个有向图表示教学计划,顶点表示某门课程,有向边表示课程之间的先修关系,数据的对象是图中的每一个顶点和有向边。由此为本问题确定一个图的数据关系。同时课程存储在顶点位置,所以创建节点类来存储课程信息。 在对图中所存储的课程进行排序时,使用拓扑排序可以完美得到所需顺序,而拓扑排序可以用顶点入度为0的方法实现,所以为实现拓扑排序的顶点的存放,创建一个线性表来存放。

数据结构教学计划编制问题课程设计

课程设计(论文) 题目名称教学计划编制问题 课程名称数据结构 学生姓名杨满平 学号1041302054 系、专业信息工程系、2010级计算机科学与技术指导教师黄同成 2011年12 月25 日

摘要 数据结构是计算机科学与技术专业的专业基础课,是一门十分重要的核心课程。数据结构的知识为后续专业课程的学习提供必要的知识和技能准备,学好“数据结构”这门课程,对于学习计算机专业的其他课程,如操作系统、编译原理、数据库管理系统、软件工程、人工智能等都是十分有益的,而且所有的计算机系统软件和应用软件都要用到各种类型的数据结构。因此,要想更好地运用计算机来解决实际问题,仅掌握几种计算机程序设计语言是难以应付众多复杂的课题的,要想有效地使用计算机、充分发挥计算机的性能,还必须学习和掌握好数据结构的有关知识。例如本次程序设计题目大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序

Abstract Data structures in computer science and technology professional courses, is a very important core curriculum. The data structure knowledge for the following courses to provide the knowledge and skills necessary to prepare, learn" data structure" of the course, for learning other computer science courses, such as operating system, compiler theory, database management system, software engineering, artificial intelligence, are very useful, and all of the computer system software and the application of software to use various types of data structure. Therefore, in order to better use the computer to solve practical problems, only to grasp some computer programming language is hard to cope with the many complex issues, in order to effectively use computers, give full play to the computer's performance, also must learn and master some knowledge about data structure.For example, the program design of University of each professional should develop teaching plans. The assumption that any profession has a fixed length, each school year with two semesters, each semester and the length of time equal to the credit limit are. Each professional courses are determined, and the creation of curriculum time arrangements must meet prevocational relations. Each course which is a pre-determined curriculum, can have any number of doors, there will be No. Each class just for a semester. Test this premise in the design of a teaching plan programming

数据结构课程设计报告模板

课程设计说明书 课程名称:数据结构 专业:班级: 姓名:学号: 指导教师:成绩: 完成日期:年月日

任务书 题目:黑白棋系统 设计内容及要求: 1.课程设计任务内容 通过玩家与电脑双方的交替下棋,在一个8行8列的方格中,进行棋子的相互交替翻转。反复循环下棋,最后让双方的棋子填满整个方格。再根据循环遍历方格程序,判断玩家与电脑双方的棋子数。进行大小判断,最红给出胜负的一方。并根据y/n选项,判断是否要进行下一局的游戏。 2.课程设计要求 实现黑白两色棋子的对峙 开发环境:vc++6.0 实现目标: (1)熟悉的运用c语言程序编写代码。 (2)能够理清整个程序的运行过程并绘画流程图 (3)了解如何定义局部变量和整体变量; (4)学会上机调试程序,发现问题,并解决 (5)学习使用C++程序来了解游戏原理。 (6)学习用文档书写程序说明

摘要 本文的研究工作在于利用计算机模拟人脑进行下黑白棋,计算机下棋是人工智能领域中的一个研究热点,多年以来,随着计算机技术和人工智能技术的不断发展,计算机下棋的水平得到了长足的进步 该程序的最终胜负是由棋盘上岗双方的棋子的个数来判断的,多的一方为胜,少的一方为负。所以该程序主要运用的战术有削弱对手行动战术、四角优先战术、在游戏开局和中局时,程序采用削弱对手行动力战术,即尽量减少对手能够落子的位置;在游戏终局时则采用最大贪吃战术,即尽可能多的吃掉对手的棋子;而四角优先战术则是贯穿游戏的始终,棋盘的四角围稳定角,不会被对手吃掉,所以这里是兵家的必争之地,在阻止对手进角的同时,自己却又要努力的进角。 关键词:黑白棋;编程;设计

教学计划编制问题课程设计报告

中北大学 数据结构与算法课程设计 说明书 学院、 系:软件学院 专 业:软件工程 学生姓名: 学号: 设计题 目:教学计划编制问题 起迄日期:2013年12月9日-2013年12月20 日 指导教 师: 2013年12月 20 日

1需求分析 1. 在大学的某个专业中选取几个课程作为顶点,通过各门课的先修关系来构建个图,该图用邻接表来存储,邻接表的头结点存储每门课的信息. 2. 本程序的目的是为用户编排课程,根据用户输入的信息来编排出每学期要学的课程. 3.测试数据: 学期总数:6;学分上限:9;本专业共开设12门课,课程号从C00到C11,学分顺序为2,3,4,3,2,3,4,4,7,5,2,3。 2概要设计 1.抽象数据类型图的定义如下: ADT Graph{ 数据对象V:V是具有相同特性的数据元素的集合,称为顶点集. 数据关系R: R={VR} VR={(v,w)|v,w∈V,(v,w)表示v和w之间存在直接先修关系} 基本操作P: void CreatGraph(ALGraph *); void FindInDegree(ALGraph , int * ); int TopologicalOrder(ALGraph G,AdjList R,struct Name name[]) int LocateVex(ALGraph G, VertexType u)/* 查找图中某个顶点位置 */ }ADT Graph 2.栈的定义如下: ADT Stack{ 数据对象:D={ai|ai∈ElemSet,i=1,2,…n,n>=0} 数据关系:R1={﹤ai-1 ai﹥|ai-1,ai∈D,i=2,…,n} 基本操作: void InitStack (SqStack *S); int StackEmpty(SqStack S);

数据结构课程设计报告

编号 课程设计 题目 1、一元稀疏多项式计算器 2、模拟浏览器操作程序 3、背包问题的求解 4、八皇后问题 二级学院计算机科学与工程学院 专业计算机科学与技术 班级 2011级 37-3班 学生姓名 XX 学号 XXXXXXXXXX 指导教师 XXXXX 评阅教师 时间 1、一元稀疏多项式计算器 【实验内容】 一元稀疏多项式计算器。

【问题描述】 设计一个一元稀疏多项式简单计算器。 【需求分析】 其基本功能包括: (1)输入并建立多项式; (2)输出多项式,输出形式为整数序列为:n,c1,e1,c2,e2,……,cn,en,其中n 是多项式的项数,ci,ei分别是第i项的系数和指数,序列按指数降序排序;(3)多项式a和b相减,建立多项a+b; (4)多项式a和b相减,建立多项式a-b; (5)计算多项式在x处的值; (6)计算器的仿真界面(选做); 【概要设计】 -=ADT=- { void input(Jd *ha,Jd *hb); void sort(dnode *h)

dnode *operate(dnode *a,dnode *b) float qiuzhi(int x,dnode *h) f",sum); printf("\n"); } 【运行结果及分析】 (1)输入多项式:

(2)输出多项式(多项式格式为:c1x^e1+c2x^e2+…+cnx^en): (3)实现多项式a和b相加: (4)实现多项式a和b相减: (5)计算多项式在x处的值:

2、模拟浏览器操作程序 【实验内容】 模拟浏览器操作程序 【问题描述】 标准Web浏览器具有在最近访问的网页间后退和前进的功能。实现这些功能的一个方法是:使用两个栈,追踪可以后退和前进而能够到达的网页。在本题中,要求模拟实现这一功能。 【需求分析】 需要支持以下指令: BACK:将当前页推到“前进栈”的顶部。取出“后退栈”中顶端的页面,使它成为当前页。若“后退栈”是空的,忽略该命令。 FORWARD:将当前页推到“后退栈”的顶部。取出“前进栈”中顶部的页面,使它成为当前页。如果“前进栈”是空的,忽略该命令。 VISIT:将当前页推到“后退栈”的顶部。使URL特指当前页。清空“前进栈”。 QUIT:退出浏览器。 假设浏览器首先加载的网页URL是:http:

最新数据结构实训总结

精品文档 这次课程设计的心得体会通过实习我的收获如下1、巩固和加深了对数据结构的理解,提高综合运用本课程所学知识的能力。2、培养了我选用参考书,查阅手册及文献资料的能力。培养独立思考,深入研究,分析问题、解决问题的能力。3、通过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。4、通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。从刚开始得觉得很难,到最后把这个做出来,付出了很多,也得到了很多,以前总以为自己对编程的地方还不行,现在,才发现只要认真做,没有什么不可能。 编程时要认真仔细,出现错误要及时找出并改正,(其中对英语的要求也体现出来了,因为它说明错误的时候都是英语)遇到问题要去查相关的资料。反复的调试程序,最好是多找几个同学来对你的程序进行调试并听其对你的程序的建议,在他们不知道程序怎么写的时候完全以一个用户的身份来用对你的用户界面做一些建议,正所谓当局者迷旁观者清,把各个注意的问题要想到;同时要形成自己的编写程序与调试程序的风格,从每个细节出发,不放过每个知识点,注意与理论的联系和理论与实践的差别。另外,要注意符号的使用,注意对字符处理,特别是对指针的使用很容易出错且调试过程是不会报错的,那么我们要始终注意指针的初始化不管它怎么用以免不必要麻烦。 通过近两周的学习与实践,体验了一下离开课堂的学习,也可以理解为一次实践与理论的很好的连接。特别是本组所做的题目都是课堂上所讲的例子,在实行之的过程中并不是那么容易事让人有一种纸上谈兵的体会,正所谓纸上得来终觉浅绝知此事要躬行。实训过程中让我们对懂得的知识做了进一步深入了解,让我们的理解与记忆更深刻,对不懂的知识与不清楚的东西也做了一定的了解,也形成了一定的个人做事风格。 通过这次课程设计,让我对一个程序的数据结构有更全面更进一步的认识,根据不同的需求,采用不同的数据存储方式,不一定要用栈,二叉树等高级类型,有时用基本的一维数组,只要运用得当,也能达到相同的效果,甚至更佳,就如这次的课程设计,通过用for的多重循环,舍弃多余的循环,提高了程序的运行效率。在编写这个程序的过程中,我复习了之前学的基本语法,哈弗曼树最小路径的求取,哈弗曼编码及译码的应用范围,程序结构算法等一系列的问题它使我对数据结构改变了看法。在这次设计过程中,体现出自己单独设计模具的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,也从中发现自己平时学习的不足和薄弱环节,从而加以弥补。 精品文档

教学计划编制问题 数据结构课程设计报告 湖南工程学院

课程设计报告 课程名称数据结构课程设计 课题名称教学计划编制问题 专业网络工程 班级0901 学号2009031201XX 姓名 指导教师刘长松陈华光李杰君 2011年7 月15 日

湖南工程学院 课程设计任务书 课程名称数据结构课程设计课题教学计划编制问题 专业班级网络工程0901 学生姓名X X 学号2009031201XX 指导老师刘长松陈华光李杰君 审批 任务书下达日期:2011 年6 月26 日 任务完成日期:2011 年7 月15 日

一、设计内容与设计要求 1.设计内容: 1)问题描述 大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。试在这样的前提下设计一个教学计划编制程序。 2)基本要求 a.输入参数包括:学期总数,一学期的学分上限,每门课的课程号(固定占3位的字母数字串)、学分和直接先修课的课程号。 b.允许用户指定下列两种编排策略之一:一是使学生在各学期中的学习负担尽量均匀;二是使课程尽可能地集中在前几个学期中。 c.若根据给定的条件问题无解,则报告适当的信息;否则,将教学计划输出到用户指定的文件中。计划的表格格式自行设计。 3)测试数据 学期总数:6; 学分上限:10; 该专业共开设课数:12 课程号:从C01到C12; 学分顺序:2,3,4,3,2,3,4,4,7,5,2,3。 先修关系如下图: 4)实现提示 可设学期总数不超过12,课程总数不超过100。如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。应建立内部课程号与课程号之间的 1 9 4 2 12 10 11 3 6 5 7 8

数据结构课程设计报告

数据结构课程设计 设计说明书 TSP 问题 起止日期:2016 年 6 月27 日至2016 年7 月 1 日 学生姓名 班级 学号 成绩 指导教师( 签字) 2016 年7 月 1 日

目录 第1 章需求分析.................................................................................1... 1.1 简介 (1) 1.2 系统的开发背景 (1) 1.3 研究现状 (1) 第2 章概要设计.................................................................................2... 2.1 系统开发环境和技术介绍 (2) 2.2 系统需求分析 (2) 2.2.1 总体功能分析 (2) 2.2.2 核心功能分析 (3) 第3 章详细设计...................................................................................4... 3.1 系统开发流程 (4) 3.2 系统模块设计 (4) 3.3 系统结构 (6) 3.2 系统流程图 (6) 第4 章调试分析...................................................................................7... 4.1 程序逻辑调试 (7) 4.2 系统界面调试 (8) 第5 章测试结果...................................................................................9... 5.1 测试环境 (9) 5.2 输入输出测试项目 (9) 5.3 测试结果 (10) 结论.....................................................................................................1..1.. 参考文献................................................................................................1..1. 附录.......................................................................................................1..2..

教学计划编制

教学计划编制问题 #include #include

#include #define null 0 #define MAXNODE 64 //最大课程个数 typedef struct { char c[3]; }cid; //课程号 typedef struct Course { cid id[3]; //课程号 char name[30]; //课程名 float xf; //学分 }Course; ////////////////////////////////////////////////课程 typedef struct PreCourse { int adjvex; //课程在数组中的下标 struct PreCourse *pre; //指向下一先修的课程节点 }PreCourse;/////////////////////////////////////////////////先修的课程节点typedef struct { Course course;//课程 PreCourse *firstnext; //指向第一个先修的课程节点 }CourseNode;////////////////////////////////////////////////////////////课程节点typedef struct { CourseNode courses[MAXNODE]; //邻接表 int xqs;//学期总数 int num; //课程的数目 float xfsx;/////学分上限 }AlGraph;///////////////////////////////////////////////////////////////课程图typedef struct { int data[MAXNODE];//队中元素 int f,r;//队头r 队尾f }queue; int IsCricle=0;//判断是否环1表示是0表示不是 int jxq;//用于计算学期的 ///////////////////////////////////////////////////////////////////////// void queueinit(queue *q)///////////////队初始化 { q->f=q->r=0; } void queuein(queue *q,int x)//入队 {

数据结构课程设计报告-学生成绩管理系统[]

武汉理工大学华夏学院课程设计报告书 课程名称:数据结构课程设计 题目:用C语言实现成绩统计程序的设计系名:信息工程系 专业班级:计算机1121 姓名:吴涛 学号:10210412104 指导教师:司晓梅 2016年3 月20日

武汉理工大学华夏学院信息工程系 课程设计任务书 课程名称:数据结构课程设计指导教师:司晓梅班级名称:计算机1121 开课系、教研室:信息系计算机 一、课程设计目的与任务 《数据结构》课程设计是为训练学生的数据组织能力和提高程序设计能力而设置的增强实践能力的课程。目的:学习数据结构课程,旨在使学生学会分析研究数据对象的特性,学会数据的组织方法,以便选择合适的数据的逻辑结构和存储结构以及相应操作,把现实世界中的问题转换为计算机内部的表示和处理,这就是一个良好的程序设计技能训练的过程。提高学生的程序设计能力、掌握基本知识、基本技能,提高算法设计质量与程序设计素质的培养就是本门课程的课程设计的目的。 任务:根据题目要求,完成算法设计与程序实现,并按规定写出课程设计报告。 二、课程设计的内容与基本要求 设计题目:用C语言实现成绩统计程序的设计 〔问题描述〕给出n个学生的m门课程的考试成绩信息,每条信息由姓名、课程代号与分数组成,要求设计算法: (1)输入每个人的各门课程的成绩,计算每人的平均成绩; (2)按平均成绩的高低次序,打印出个人的名次,平均成绩相同的为同一名次; (3)按名次列出每个学生的姓名和各科成绩; 〔基本要求〕学生的考试成绩必须通过键盘输入,且需对输出进行格式控制; 〔算法提示〕可以用选择排序、冒泡排序等多种排序算法求解; 具体要完成的任务是: A. 编制完成上述问题的C语言程序、进行程序调试并能得出正确的运行结果。 B. 写出规范的课程设计报告书; 三、课程设计步骤及时间进度和场地安排 时间:1周地点:现代教育中心 具体时间安排如下: 第一天:布置题目,确定任务、查找相关资料 第二天~第四天:功能分析,编写程序,调试程序、运行系统; 第五天上午:撰写设计报告; 第五天下午:程序验收、答辩。 四、课程设计考核及评分标准

关于数据结构课程设计心得体会范文

关于数据结构课程设计心得体会范文 心得体会是指一种读书、实践后所写的感受性文字。是指将学习的东西运用到实践中去,通过实践反思学习内容并记录下来的文字,近似于经验总结。下面是小编搜集的关于数据结构课程设计心得体会范文,希望对你有所帮助。 关于数据结构课程设计心得体会(1) 这学期开始两周时间是我们自己选题上机的时间,这学期开始两周时间是我们自己选题上机的时间,虽然上机时间只有短短两个星期但从中确实学到了不少知识。上机时间只有短短两个星期但从中确实学到了不少知识。 数据结构可以说是计算机里一门基础课程,据结构可以说是计算机里一门基础课程,但我觉得我们一低计算机里一门基础课程定要把基础学扎实,定要把基础学扎实,然而这次短短的上机帮我又重新巩固了 c 语言知识,让我的水平又一部的提高。数据结构这是一门语言知识让我的水平又一部的提高。数据结构这是一门知识,纯属于设计的科目,它需用把理论变为上机调试。 纯属于设计的科目,它需用把理论变为上机调试。它对我们来说具有一定的难度。它是其它编程语言的一门基本学科。来说具有一定的难度。它是其它编程语言的一门基本学科。我选的上机题目是交叉合并两个链表,对这个题目,我选的上机题目是交叉合并两个链表,对这个题目,我觉得很基础。刚开始调试代码的时候有时就是一个很小的错觉得很基础。 刚开始调试代码的时候有时就是一个很小的错调试代码的时候误,导致整个程序不能运行,然而开始的我还没从暑假的状导致整个程序不能运行,态转到学习上,每当程序错误时我都非常焦躁,态转到学习上,每当程序错误时我都非常焦躁,甚至想到了放弃,但我最终找到了状态,一步一步慢慢来,放弃,但我最终找到了状态,一步一步慢慢来,经过无数次的检查程序错误的原因后慢慢懂得了耐心是一个人成功的必然具备的条件! 同时,通过此次课程设计使我了解到,必然具备的条件! 同时,通过此次课程设计使我了解到,硬件语言必不可缺少,要想成为一个有能力的人,必须懂得件语言必不可缺少,要想成为一个有能力的人,硬件

相关文档
相关文档 最新文档