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

合集下载

教学计划编排实验报告

教学计划编排实验报告

程序设计实验报告题目:关于课程编排的报告姓名贾雨飞学号2010434096年级专业10数电类(四班)指导教师王苗2011年12月13日一、需求分析1.程序的功能大学中的每个专业都有几十门基础课程、专业课程及选修课程,学生必须分几个学期完成这些课程才能毕业。

教学计划的制定就是合理的编排这些课程,使得学生能够顺利的进行学习。

这些课程中,有些课程是独立于其它课程的基础课,有些课程却需要其它先行课程;一般四年制本科教学前7个学期(三年半)进行理论课程的学习,第8个学期实习;教学计划的编排必须充分考虑这些因素,编排出一个合理的教学大纲计划。

一、概要设计1、抽象数据类型的定义//边表的结点结构可描述为:typedef struct node{int adjvex; /*邻接点域*/struct node *next; /*指向下一个邻接点的指针域*/}EdgeNode; /*边表结点*///顶点表的结点结构可描述为:typedef struct vnode /*顶点表结点*/{int num; /*课程号*/char name[20]; /*课程名*/int chour; /*课程的学分*/int indegree; /*顶点的入度*/EdgeNode * firstedge; /*边表头指针*/}VNode;//AOV网的类型可描述如下:typedef struct{VNode AdjList[MaxVerNum]; /*邻接表*/int n, e; /*顶点数和边数*/}AOVGraph; /*AOV网是以邻接表方式存储的类型*/ 2、主模块的流程以及各子模块的主要功能主模块:负责调控整个程序,提示功能项,根据用户选择调用相应子模块。

输入模块:根据用户输入的信息建立有向图的邻接表存储,为后续课程安排做铺垫。

编排模块:根据前一个过程创建的邻接表生成拓扑排序,然后根据课程数和平均学分安排课程到各学期。

三、详细设计1、各模块的伪代码void input(AovGraph *A){char na[15];cout<<" 请输入课程数目__"<<endl;cin>>A->n;while(A->n>99||A->n<1){cout<<"课程科目数不正确,请重新输入!"<<endl;cin>>A->n;}for(int i=1;i<=A->n;i++)A->AdjList[i].firstedge=NULL;cout<<" 请输入边数__"<<endl;cin>>A->e;cin.get();for( i=1;i<=A->n;i++){cout<<"请输入第"<<i<<"科课程的课程号"<<endl;cin>>A->AdjList[i].num;cin.get();cout<<"请输入第"<<i<<"科课程的课程名"<<endl;cin.getline(A->AdjList[i].name,15);cout<<"请输入第"<<i<<"科课程的学分"<<endl;cin>>A->AdjList[i].chour;cout<<"请输入第"<<i<<"科课程结点的入度"<<endl;cin>>A->AdjList[i].indegree;cin.get();}for(i=1;i<=A->n;i++){cout<<"请输入"<<A->AdjList[i].name<<"的相邻后续课程数"<<endl;cin>>c;cin.get();while(!(c>=0&&c<=100)){cout<<"输入错误,请重新输入!";cin>>c;}if(c==0)continue;cout<<"请输入第1个相邻的后续课程的课程名"<<endl;cin.getline(na,15);p=new EdgeNode;p->adjvex=search(na,A);A->AdjList[i].firstedge=p;p->next=NULL;for(int j=2;j<=c;j++){cout<<"请输入第"<<j<<"个相邻的后续课程的课程名"<<endl;cin.getline(na,15);t=new EdgeNode;t->adjvex=search(na,A);t->next=NULL;p->next=t;p=t;}}}int* BP(AovGraph *A,int*T,int *l){EdgeNode *p,*q;T=new int[A->n];int a,v=0;//v记录每学期总学分double k,x; //k保存科目数的平均数x保存的学分的平均值int *z=new int [A->n];//栈的存储int i=-1,t=-1,h=0;//h记录学分总和l记录各学期之前科目总数for(int j=1;j<=A->n;j++){if(A->AdjList[j].indegree==0)z[++i]=j;h=h+A->AdjList[j].chour;}while(i>=0){a=z[i];i--;T[++t]=a;p=A->AdjList[a].firstedge;while(p){A->AdjList[p->adjvex].indegree--;if(A->AdjList[p->adjvex].indegree==0)z[++i]=p->adjvex;q=p;p=p->next;delete q;}}k=A->n/7;x=h/7;l[0]=0;l[7]=A->n;for(j=1;j<7;j++){l[j]=k*j;if(l[j]==k*j)continue;//l[j]++;for(int w=l[j-1];w<l[j];w++)v=v+A->AdjList[T[w]].chour;if(fabs(v+A->AdjList[T[w]].chour-x)<fabs(v-x)){l[j]++;}v=0;}cout<<"编排成功!!"<<endl;cout<<endl;return T;}void print(AovGraph *A,int *T,int *l){int h;fstream infile;infile.open("E:\\课表.txt",ios::out);if(!infile){cout<<"文件不能打开!!"<<endl;return;}for(int i=1;i<=7;i++){h=0;infile<<"第"<<i<<"学期:";for(int j=l[i-1];j<l[i];j++){infile<<" "<<A->AdjList[T[j]].name<<" ";h=h+A->AdjList[T[j]].chour;}infile<<"本学期总学分为:"<<h<<endl;}cout<<"文件已经写入到E:\\课表.txt中"<<endl;}void show(AovGraph *A,int *T,int *l){int h;for(int i=1;i<=7;i++){h=0;cout<<"第"<<i<<"学期:";for(int j=l[i-1];j<l[i];j++){cout<<" "<<A->AdjList[T[j]].name<<" ";h=h+A->AdjList[T[j]].chour;}cout<<"本学期总学分为:"<<h<<endl;}}2、函数调用关系主函数输入函数编排函数屏幕输出文件输出四、调试分析1.调试中遇到的问题及对问题的解决方法调试中,如果输入的总学科数能被7整除则课程安排时最理想的方式是每学期科目平均,所以在这种情况下,我便直接按照平均分配安排好了。

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

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

教学计划编制问题课程设计报告课程设计(论文)题目名称教学计划编制问题课程名称数据结构课程设计学生姓名学号系、专业信息工程系、通信工程类指导教师2012年12 月23 日摘要教学计划是学校保证教学质量和人才培养的关键,也是组织教学过程、安排教学过程、安排教学任务、确定教学编制的基本依据和课程安排的具体形式。

是稳定教学秩序、提高教学质量的重要保证。

从教学计划的设计、实施等方面,阐明了如何搞好教学管理,从而为提高教学质量提供保证。

随着教育改革的不断深入和社会发展的需要,原旧的教学计划在定位上的方向性偏差,已经不再适应社会的需求。

因此,应重视教学计划的改革和修订工作,以确保教育教学质量,提高教育教学水平。

教学计划编制中的思路:一是明确培养目标;二是注重学科设置的整体性、统一性和灵活性、全面性;三是与学分制改革有机结合。

教学计划是高校实施常规教学活动的基本管理文档,由于传统的手工编制方式存在诸多弊端,开发基于Web应用程序形式的教学计划编制系统具有很好的应用价值。

使用C程序设计语言,研究开发教学计划编制系统Web应用系统。

关键词:教学计划;编制;培养目标;管理目录1 问题描述 ---------------------------------------------------------------------------------------------- 12 需求分析 ---------------------------------------------------------------------------------------------- 23 概要设计 ------------------------------------------------------- 23.1抽象数据类型定义 ---------------------------------------- 2 3.2模块划分------------------------------------------------- 2 4 详细设计 ------------------------------------------------------- 34.1数据类型的定义 ------------------------------------------ 4 4.2主要模块的算法描述 -------------------------------------- 55 测试分析 ------------------------------------------------------- 86 课程设计总结 ------------------------------------------------- 106.1问题和解决的方法及经验教训、心得体会﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍106.2 致谢 ---------------------------------------------------- 11参考文献 -------------------------------------------------------- 11附录(源程序清单) --------------------------------------------- 121 问题描述大学的每个专业都要制定教学计划。

教学课程设计报告

教学课程设计报告

教学课程设计报告一、教学目标本课程的教学目标是使学生掌握第三章“生物的多样性”的主要内容,包括生物多样性的概念、层次、价值以及保护措施。

知识目标要求学生能够准确地描述生物多样性的三个层次(基因多样性、物种多样性和生态系统多样性),理解生物多样性的价值(直接价值、间接价值和潜在价值),并掌握保护生物多样性的基本措施(就地保护、易地保护、利用生物技术等)。

技能目标要求学生能够运用所学的知识,对现实中的生物多样性保护问题进行分析和评价。

情感态度价值观目标则是培养学生的环保意识,提高他们对生物多样性的保护的重视程度。

二、教学内容本课程的教学内容主要包括第三章“生物的多样性”的全部内容。

首先,我们会介绍生物多样性的概念和层次,让学生理解生物多样性的内涵。

然后,我们会讲解生物多样性的价值,让学生明白为什么要保护生物多样性。

接着,我们会介绍保护生物多样性的基本措施,让学生知道如何保护生物多样性。

最后,我们会通过案例分析,让学生运用所学的知识,对现实中的生物多样性保护问题进行分析和评价。

三、教学方法为了达到本课程的教学目标,我们将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法。

首先,我们会通过讲授法,向学生传授生物多样性的基本知识。

然后,我们会通过讨论法,让学生参与到课堂讨论中,加深他们对生物多样性的理解。

接着,我们会通过案例分析法,让学生运用所学的知识,对现实中的生物多样性保护问题进行分析和评价。

最后,我们会通过实验法,让学生亲自动手,进行生物多样性保护的实验,提高他们的实践能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备多种教学资源,包括教材、参考书、多媒体资料和实验设备。

教材将是我们的主要教学资源,我们将选用国内权威的生物学教材,确保学生能够接触到最权威、最前沿的生物学知识。

参考书将为学生提供更多的学习材料,帮助他们深入理解生物多样性的相关知识。

多媒体资料将通过图片、视频等形式,丰富学生的学习体验,让他们更加直观地理解生物多样性的概念和现象。

编辑课程设计报告书

编辑课程设计报告书

编辑课程设计报告书一、教学目标本章节的教学目标分为知识目标、技能目标和情感态度价值观目标。

知识目标要求学生掌握XXX(学科)的基本概念、原理和方法,能够运用所学知识解决实际问题。

技能目标要求学生能够运用XXX(学科)的方法和技巧进行实践操作,提高解决问题的能力。

情感态度价值观目标要求学生在学习过程中培养对XXX(学科)的兴趣和热爱,树立正确的价值观,培养合作精神和创新意识。

二、教学内容根据课程目标,本章节的教学内容主要包括XXX(学科)的基本概念、原理和方法,以及实际应用案例。

教学大纲按照教材的章节进行安排,共分为X个部分。

具体内容包括:1.第一部分:XXX(教材章节),主要讲解XXX(学科)的基本概念和原理,以及相关理论。

2.第二部分:XXX(教材章节),主要介绍XXX(学科)的方法和技巧,以及实际应用案例。

3.第三部分:XXX(教材章节),主要分析XXX(学科)在实际问题中的应用,培养学生解决问题的能力。

三、教学方法为了激发学生的学习兴趣和主动性,本章节将采用多种教学方法。

主要包括:1.讲授法:教师通过讲解、阐述等方式,向学生传授知识,引导学生理解学科的基本概念和原理。

2.讨论法:学生分组讨论,分享学习心得和经验,培养合作精神和创新意识。

3.案例分析法:教师提供实际案例,引导学生运用所学知识进行分析,提高解决问题的能力。

4.实验法:学生在实验室进行实验操作,巩固理论知识,培养实践能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、科学的学习资料。

2.参考书:提供相关领域的参考书籍,帮助学生拓展知识面。

3.多媒体资料:制作精美的PPT、视频等多媒体资料,提高学生的学习兴趣。

4.实验设备:准备充足的实验设备,确保学生能够进行实验操作。

通过以上教学设计,我们期望学生能够在本章节的学习中,掌握XXX(学科)的基本概念、原理和方法,提高解决问题的能力,并培养对XXX(学科)的兴趣和热爱。

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

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

课程设计报告课程名称数据结构课程设计课题名称教学计划编制问题专业网络工程班级 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.程序由哪些模块组成以及模块之间的层次结构、各模块的调用关系;每个模块的功能。

编制教学计划的课程设计

编制教学计划的课程设计

编制教学计划的课程设计一、课程目标知识目标:1. 学生能掌握教学计划的基本构成要素,理解其在教学过程中的重要性。

2. 学生能够明确本学科课程标准中各年级的知识点和能力要求,并能在教学计划中予以体现。

3. 学生能结合教材内容,制定出符合学生认知发展水平和兴趣的教学目标。

技能目标:1. 学生能够运用分析、综合、评价等方法,合理设置教学活动的顺序和时长。

2. 学生能够根据不同学生的学习特点,设计出具有针对性的教学策略和评价方法。

3. 学生通过小组合作,学会在教学计划中有效整合各种教学资源,提高教学效果。

情感态度价值观目标:1. 学生能够认识到教学计划对于提升教学质量和学生学习效果的重要性,形成严谨的教学态度。

2. 学生在教学计划制定过程中,培养团队协作精神,学会尊重和倾听他人意见。

3. 学生通过本课程的学习,激发对教育事业的热爱,树立正确的教育观念。

分析课程性质、学生特点和教学要求,本课程将目标分解为具体的学习成果,包括:理解教学计划的基本概念、掌握教学计划制定的方法、具备教学计划实施和评价的能力等。

后续教学设计和评估将围绕这些具体学习成果展开,确保学生能够达到预期的学习效果。

二、教学内容1. 教学计划基本概念:包括教学计划定义、作用、类型及相互关系。

2. 教学计划构成要素:学习目标、教学内容、教学方法、教学评价、教学资源等。

3. 教学目标制定:依据学科课程标准,结合教材内容,明确各年级教学目标。

4. 教学内容组织:按照教材章节,梳理知识点,划分教学重点和难点。

5. 教学方法选择:根据学生特点,选择适当的教学方法,如讲授、讨论、实践等。

6. 教学评价设计:制定评价标准,选择评价方法,如测试、观察、作业等。

7. 教学进度安排:明确各阶段教学任务,合理分配教学时间,确保教学效果。

8. 教学资源整合:利用教材、网络、实物等资源,丰富教学内容,提高教学效果。

具体教学大纲如下:第一周:教学计划基本概念及构成要素第二周:教学目标制定与教学内容组织第三周:教学方法选择与教学评价设计第四周:教学进度安排与教学资源整合教学内容与教材紧密关联,确保科学性和系统性,同时注重实践性,使学生在学习过程中能够充分掌握教学计划制定的方法和技巧。

课程设计编写报告

课程设计编写报告

课程设计编写报告一、教学目标本课程的教学目标是让学生掌握《XX学科》的基本概念、原理和方法,提高他们的分析和解决问题的能力。

具体目标如下:1.知识目标:(1)掌握XX学科的基本概念和原理;(2)了解XX学科的发展历程和现状;(3)熟悉XX学科的研究方法和手段。

2.技能目标:(1)能够运用XX学科的基本原理分析问题和解决问题;(2)能够运用XX学科的研究方法进行科学探究;(3)能够运用XX学科的知识撰写论文和报告。

3.情感态度价值观目标:(1)培养对XX学科的兴趣和热情;(2)培养科学精神和创新意识;(3)树立正确的科学观和价值观。

二、教学内容本课程的教学内容主要包括XX学科的基本概念、原理和方法。

具体安排如下:1.第一章:XX学科的基本概念和原理(1)XX学科的定义和发展历程;(2)XX学科的基本原理和定律;(3)XX学科的研究方法和手段。

2.第二章:XX学科的应用和实践(1)XX学科在生活中的应用;(2)XX学科在相关领域的应用;(3)XX学科的实验技术和设备。

3.第三章:XX学科的发展趋势和前景(1)XX学科的最新研究成果;(2)XX学科的发展前景和挑战;(3)XX学科在国家战略和经济社会发展中的作用。

三、教学方法为了提高教学效果,本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

具体安排如下:1.讲授法:用于传授基本概念、原理和方法,引导学生掌握XX学科的基本知识。

2.讨论法:通过小组讨论和课堂讨论,培养学生的思考能力和团队合作精神。

3.案例分析法:通过分析典型案例,让学生了解XX学科在实际中的应用和解决问题的方式。

4.实验法:学生进行实验,培养学生的实践能力和科学探究精神。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备以下教学资源:1.教材:选用《XX学科导论》作为主教材,辅助以《XX学科实验指导书》等参考资料。

2.参考书:提供《XX学科研究进展》等相关书籍,供学生深入学习和参考。

课程设计报告 课程设计报告书(优秀7篇)

课程设计报告 课程设计报告书(优秀7篇)

课程设计报告课程设计报告书(优秀7篇)(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。

文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如合同协议、条据文书、策划方案、总结报告、党团资料、读书笔记、读后感、作文大全、教案资料、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays, such as contract agreements, documentary evidence, planning plans, summary reports, party and youth organization materials, reading notes, post reading reflections, essay encyclopedias, lesson plan materials, other sample essays, etc. If you want to learn about different formats and writing methods of sample essays, please stay tuned!课程设计报告课程设计报告书(优秀7篇)在不断进步的时代,需要使用报告的情况越来越多,报告中提到的所有信息应该是准确无误的。

教师教学计划编制案例分析报告

教师教学计划编制案例分析报告

教师教学计划编制案例分析报告一、引言教学计划是教师教学活动的重要组成部分,编制一份科学合理的教学计划对课堂教学的成功至关重要。

本文将通过分析一个教师教学计划编制的案例,探讨其编制过程、特点以及对教学实施的指导意义。

二、背景介绍本案例为高中生物教学计划编制,针对第一节课《细胞的结构与功能》,授课目标为让学生了解细胞的基本结构,掌握细胞的基本功能,并能应用所学知识解决简单问题。

三、目标明确教师在编制教学计划之前,首先需要明确教学目标。

根据本案例的授课目标,教师将学习目标分为知识目标、能力目标和情感目标三个方面,并进一步细化为具体的课堂表现目标。

四、课程内容选择在确定了教学目标后,教师需要选择适当的教材和参考资料,以确保教学内容的科学性和全面性。

本案例中,教师选择了权威的生物教科书作为主要教材,并参考了相关研究论文和教学资源。

同时,教师还根据学生的实际情况和学科要求,进行了适当的内容剪裁,确保教学内容的前后衔接和知识重点的突出。

五、教学策略设计教师在编制教学计划时,还需要设计合适的教学策略和方法。

本案例中,教师采用了多种教学策略,如讲授、示范、实验等,以激发学生的兴趣并增加学习的参与度。

教师还根据学生的认知特点和学习需求,设计了适当的互动环节和问题引导,帮助学生主动思考和探索。

六、资源准备一个成功的教学计划还需要充分准备教学资源。

本案例中,教师在教学计划中列出了所需的教具、实验器材和多媒体资料,并提前安排好相应的准备工作。

教师还对实验操作进行了充分的实践演练,以确保教学过程的流畅进行。

七、课时安排教师在编制教学计划时,需要合理安排授课时间,确保课堂教学的进度和质量。

本案例中,教师将第一节课设计为1节45分钟的课时,并详细安排了教学活动和时间分配,以确保各教学环节的顺利进行。

八、评价方式为了准确评价学生的学习情况和教学效果,教师需要设计合适的评价方式。

本案例中,教师综合运用了测验、作业、实验报告等多种评价方式,并设计了不同的评价指标和评价标准,以全面评价学生对知识掌握和能力运用的情况。

教师教学计划的编制与课程设计

教师教学计划的编制与课程设计

教师教学计划的编制与课程设计导言:教师教学计划的编制和课程设计是确保教育教学质量的重要环节。

一个良好的教学计划和科学合理的课程设计能够帮助教师明确教学目标、规划教学流程、选取适宜教学资源以及评估学生学习成果。

本文将从教师教学计划的必要性、编制教学计划的基本步骤以及课程设计的关键要素等方面,阐述教师教学计划的编制与课程设计。

一、教学计划的必要性教学计划是教师教学工作的指导性文件,具有以下几个方面的必要性。

1. 教学目标明确通过编制教学计划,教师可以明确教学目标。

教学目标是教育教学活动的核心,是指导教师教学行为的基本依据。

只有明确教学目标,教师才能确定教学内容和教学方法,有针对性地进行教学活动。

2. 教学流程规范编制教学计划可以帮助教师规范教学流程。

教学计划中规定了教学内容的先后顺序、教学时间分配以及教学方法的选择等,使教学活动按照一定的次序和节奏进行,确保教学效果的最大化。

3. 教学资源选择教学计划中需要考虑教学资源的选择。

教学资源包括教材、教具以及多媒体教学设备等,这些资源直接影响到教学效果。

通过教学计划的编制,教师可以有针对性地选择适宜的教学资源,提高教学效果。

二、教学计划的编制编制教学计划是一项系统性的工作,需要经过多个步骤。

1. 分析教学任务教师首先需要分析所承担的课程的教学任务。

教学任务包括教学内容、教学目标以及学生特点等。

通过对教学任务的分析,教师可以了解课程的基本要求,为教学计划的编制提供依据。

2. 制定教学目标在分析教学任务的基础上,教师需要制定具体的教学目标。

教学目标应该具有明确性、可操作性和可测评性。

明确的教学目标有助于教师组织教学活动和评估学生学习成果。

3. 确定教学内容根据教学任务和教学目标,教师需要确定教学内容。

教学内容应该紧密围绕教学目标展开,选取与教学目标相一致、适宜的内容。

4. 设计教学方法教学计划还需要考虑教学方法的选择。

教学方法包括讲授、示范、讨论、实验等多种形式。

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

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

课程设计(论文)题目名称教学计划编制问题课程名称数据结构课程设计学生姓名学号系、专业信息工程系、通信工程类指导教师2012年12 月23 日摘要教学计划是学校保证教学质量和人才培养的关键,也是组织教学过程、安排教学过程、安排教学任务、确定教学编制的基本依据和课程安排的具体形式。

是稳定教学秩序、提高教学质量的重要保证。

从教学计划的设计、实施等方面,阐明了如何搞好教学管理,从而为提高教学质量提供保证。

随着教育改革的不断深入和社会发展的需要,原旧的教学计划在定位上的方向性偏差,已经不再适应社会的需求。

因此,应重视教学计划的改革和修订工作,以确保教育教学质量,提高教育教学水平。

教学计划编制中的思路:一是明确培养目标;二是注重学科设置的整体性、统一性和灵活性、全面性;三是与学分制改革有机结合。

教学计划是高校实施常规教学活动的基本管理文档,由于传统的手工编制方式存在诸多弊端,开发基于Web应用程序形式的教学计划编制系统具有很好的应用价值。

使用C程序设计语言,研究开发教学计划编制系统Web应用系统。

关键词:教学计划;编制;培养目标;管理目录1 问题描述 ---------------------------------------------------------------------------------------------- 12 需求分析 ---------------------------------------------------------------------------------------------- 23 概要设计 --------------------------------------------------------------------------------------------------------------- 23.1抽象数据类型定义 ----------------------------------------------------------------------------------- 2 3.2模块划分---------------------------------------------------------------------------------------------------- 3 4 详细设计 --------------------------------------------------------------------------------------------------------------- 34.1数据类型的定义 --------------------------------------------------------------------------------------- 4 4.2主要模块的算法描述 ------------------------------------------------------------------------------- 55 测试分析 --------------------------------------------------------------------------------------------------------------- 86 课程设计总结 ---------------------------------------------------------------------------------------------------- 106.1问题和解决的方法及经验教训、心得体会﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍106.2 致谢 ----------------------------------------------------------------------------------------------------------- 11参考文献------------------------------------------------------------------------------------------------------------------ 11附录(源程序清单)-------------------------------------------------------------------------------------------- 121 问题描述大学的每个专业都要制定教学计划。

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

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

中北大学数据结构与算法课程设计说明书学院、系:软件学院专业:软件工程学生姓名:学号:设计题目:教学计划编制问题起迄日期: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 Graph2.栈的定义如下: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);void Push(SqStack *S, int );int Pop(SqStack *S, int *e);}ADT Stack3.本程序有两个模块,调用关系简单:主程序模块→拓扑排序模块3系统完成功能及功能框图图3.1系统功能框图1图3.2 邻接表图3.4 课程先修关系图4 详细设计1.图的邻接表的存储表示,即结构体的定义:typedef struct ArcNode{i nt AdjOfV; // 该弧所指向的顶点的位置s truct ArcNode *next; //指向下一条弧的指针}ArcNode;typedef char VertexType[MAXOfNAME];typedef struct //链接表{V ertexType data; //顶点信息i nt grades; //存储学分信息A rcNode *first; //指向第一条依附该顶点的弧的指针}VNode, AdjList[MAX_VER]; // 头结点typedef struct{A djList ver; //vertices 存储课程名i nt vexnum, arcnum; // 图的当前顶点数和弧数}ALGraph;2. 建立图的邻接链表:printf("请输入下列课程的先修课程(无先修课程输入0 结束后也输入0)\n");for (h=0;h<G.vexnum;++h) // 构造表结点链表,利用前插法{printf("%s的先修课程:",G.ver[h].data);scanf("%s",va);getchar();while (va[0]!='0'){i = LocateVex(G, va); //弧头j = h; //弧尾p = (ArcNode*)malloc(sizeof(ArcNode));p->AdjOfV = j;p->next = G.ver[i].first; // 插在表头G.ver[i].first = p;scanf("%s",va);getchar();}3. 输出图的顶点和边:printf("%d个顶点", G.vexnum);for (i = 0;i < G.vexnum;++i)printf("%4s", G.ver[i].data);printf(" \n%d条弧边:\n",G.arcnum);for (i = 0;i < G.vexnum;i++){ p = G.ver[i].first;while (p){ printf("%s---->%s\n",G.ver[i].data,G.ver[p->AdjOfV].data);p = p->next;}}4. 通过栈实现拓扑排序:int TopologicalOrder(ALGraph G,AdjList R,struct Name name[]){i nt i, k, j = 0, count, indegree[MAX_VER];S qStack S;A rcNode *p;F indInDegree(G, indegree); // 对各顶点求入度I nitStack(S); // 初始化栈f or (i = 0;i < G.vexnum;++i) //建零入度顶点栈Sif (!indegree[i]) Push(S, i); // 入度为0者进栈count = 0; // 对输出顶点计数while (!StackEmpty(S)){Pop(S, i);printf("%s(%d学分),",G.ver[i].data,G.ver[i].grades);R[j++] = G.ver[i]; //将当前的拓扑序列保存起来++count; // 输出i号顶点并计数for (p =G.ver[i].first; p; p=p->next)// 对i号顶点的每个邻接点的入度减1{k = p->AdjOfV;if (!(--indegree[k])) // 若入度减为0,则入栈Push(S, k);}if (count < G.vexnum){printf("此有向图有回路无法完成拓扑排序");return 0;}else printf( " 为一个拓扑序列");printf("\n");int q=1,Z=0;while (q <= TotalOfTerms){int C = R[Z].grades ;printf("\n第%d个学期应学课程:",q);while (C <= MaxScores){C = C + R[Z+1].grades;if (Z < G.vexnum){CmpOfStr(R[Z].data,name,N);/*让C1~C12分别与12门课程对应起来*/++Z;}}printf("\n");if (q == TotalOfTerms)printf( "\nOK Over!");q++;}return 1;/**/}5.主程序和其他伪码算法:void main(){ALGraph G;AdjList R;Struct name;name[N]={{"C1"},{"C2"},{"C3"},{"C4"},{"C5"},{"C6"},{"C7"},{"C8"},{"C9"},{"C10"},{"C11"},{"C12 "}};printf(" ***************教学计划编制问题**************\n" );printf( "请以课件9-2上课程先序图为例输入学期总数:");scanf("%d",&TotalOfTerms);getchar();printf("请输入学期的学分上限(8或9):");scanf("%d",&MaxScores);CreateGraph(G);Display(G);TopologicalOrder(G,R,name);}int InitStack(SqStack &S) /*栈的初始化*/{S.a= (int *)malloc(StackofNUM * sizeof(int));i f (!S.a)exit(-1);S.top =S.a;S.size =StackofNUM;r eturn 1;}int StackEmpty(SqStack S) /*判断栈是否为空*/{i f (S.top == S.a)return 1;e lse return 0;}int Push(SqStack &S, int x)/*入栈*/{i f (S.top - S.a >= S.size){S.a = (int *) realloc ( S.a, (S.size + StackforMore) * sizeof(int));if ( !S.a ) exit(-1);S.top =S.a +S.size;S.size +=StackforMore;}*S.top++ = x;r eturn 1;}int Pop(SqStack &S, int &x) /*出栈*/{i f (S.top == S.a)return 0;x = *--S.top;return 1;}int LocateVex(ALGraph G, VertexType u)/* 查找图中某个顶点位置*/ {int i;for (i = 0;i < G.vexnum;++i)if (strcmp(u,G.ver[i].data)==0)return i;return -1;}int CreateGraph(ALGraph &G) /*采用邻接表存储结构*/{int i, j, h;VertexType va;ArcNode *p;printf("请输入教学计划的课程数: " );scanf("%d",&G.vexnum);getchar();printf( "请输入各个课程的先修课程的总和(弧总数): ");scanf("%d",&G.arcnum);getchar();printf( "请输入%d个课程的课程号(最多%d个字符,字母+数字如C10):", G.vexnum,MAXOfNAME);for (i = 0;i < G.vexnum;++i){scanf("%s",&G.ver[i].data);getchar();G.ver[i].first = NULL;}printf("请输入%d个课程的学分值:",G.vexnum);for (i = 0;i < G.vexnum;++i){scanf("%d",&G.ver[i].grades);getchar();}printf("请输入下列课程的先修课程(无先修课程输入0 结束后也输入0)\n");for (h=0;h<G.vexnum;++h) // 构造表结点链表,利用前插法{printf("%s的先修课程:",G.ver[h].data);scanf("%s",va);getchar();while (va[0]!='0'){i = LocateVex(G, va); //弧头j = h; //弧尾p = (ArcNode*)malloc(sizeof(ArcNode));p->AdjOfV = j;p->next = G.ver[i].first; // 插在表头G.ver[i].first = p;scanf("%s",va); getchar();}}return 1;}void Display(ALGraph G) /* 输出图G的信息*/{int i;ArcNode *p;printf("有向图\n");printf("%d个顶点", G.vexnum);for (i = 0;i < G.vexnum;++i)printf("%4s", G.ver[i].data);printf(" \n%d条弧边:\n",G.arcnum);for (i = 0;i < G.vexnum;i++){ p = G.ver[i].first;while (p){ printf("%s---->%s\n",G.ver[i].data,G.ver[p->AdjOfV].data);p = p->next;}}}void FindInDegree(ALGraph G, int indegree[]) /*求顶点的入度*/{int i;ArcNode *p;for (i = 0;i < G.vexnum;i++) indegree[i] = 0;for (i = 0;i < G.vexnum;i++){p = G.ver[i].first;while (p){ indegree[p->AdjOfV]++;p = p->next;}}}struct Name{ char c[20];}name;void CmpOfStr(VertexType str,struct Name name[],int n) /*让C1~C12分别与12门课程对应起来*/{ if(strcmp(str,name[0].c)==0)printf(" C程序设计");if(strcmp(str,name[1].c)==0)printf(" 模拟数字电路");if(strcmp(str,name[2].c)==0)printf(" 数据结构");if(strcmp(str,name[3].c)==0)printf(" C++面向对象");if(strcmp(str,name[4].c)==0)printf(" 大学英语");if(strcmp(str,name[5].c)==0)printf(" 计算机组成原理");if(strcmp(str,name[6].c)==0)printf(" 传感器原理");if(strcmp(str,name[7].c)==0)printf(" 软件工程导论");if(strcmp(str,name[8].c)==0)printf(" 高等数学");if(strcmp(str,name[9].c)==0)printf(" 线性代数");if(strcmp(str,name[10].c)==0)printf(" 大学物理基础");if(strcmp(str,name[11].c)==0)printf(" 电工技术");}4 界面设计5 源代码#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#define N 12#define MAXOfNAME 3 //最多字符个数#define MAX_VER 100 //最大顶点数#define StackofNUM 20 //存储空间初始分配量#define StackforMore 5 // 存储空间分配增量int TotalOfTerms ; //学期总数int MaxScores;typedef struct SqStack{i nt *a;i nt *top;i nt size; //分配的存储空间}SqStack;typedef struct ArcNode{i nt AdjOfV; // 该弧所指向的顶点的位置s truct ArcNode *next; //指向下一条弧的指针}ArcNode;typedef char VertexType[MAXOfNAME];typedef struct //链接表{V ertexType data; //顶点信息i nt grades; //存储学分信息A rcNode *first; //指向第一条依附该顶点的弧的指针}VNode, AdjList[MAX_VER]; // 头结点typedef struct{A djList ver; //vertices 存储课程名i nt vexnum, arcnum; // 图的当前顶点数和弧数}ALGraph; //学分上限int InitStack(SqStack S) /*栈的初始化*/{S.a= (int *)malloc(StackofNUM * sizeof(int));i f (!S.a)exit(-1);S.top =S.a;S.size =StackofNUM;r eturn 1;}int StackEmpty(SqStack S) /*判断栈是否为空*/{i f (S.top == S.a)return 1;e lse return 0;}int Push(SqStack S, int x)/*入栈*/{i f (S.top - S.a >= S.size){S.a = (int *) realloc ( S.a, (S.size + StackforMore) * sizeof(int));if ( !S.a ) exit(-1);S.top =S.a +S.size;S.size +=StackforMore;}*S.top++ = x;r eturn 1;}int Pop(SqStack S, int x) /*出栈*/{i f (S.top == S.a)return 0;x = *--S.top;return 1;}int LocateVex(ALGraph G, VertexType u)/* 查找图中某个顶点位置*/{int i;for (i = 0;i < G.vexnum;++i)if (strcmp(u,G.ver[i].data)==0)return i;return -1;}int CreateGraph(ALGraph G) /*采用邻接表存储结构*/ {int i, j, h;VertexType va;ArcNode *p;printf("请输入教学计划的课程数: " );scanf("%d",&G.vexnum);getchar();printf( "请输入各个课程的先修课程的总和(弧总数): ");scanf("%d",&G.arcnum);getchar();printf( "请输入%d个课程的课程号(最多%d个字符,字母+数字如C10):", G.vexnum,MAXOfNAME);for (i = 0;i < G.vexnum;++i){scanf("%s",&G.ver[i].data);getchar();G.ver[i].first = NULL;}printf("请输入%d个课程的学分值:",G.vexnum);for (i = 0;i < G.vexnum;++i){scanf("%d",&G.ver[i].grades);getchar();}printf("请输入下列课程的先修课程(无先修课程输入0 结束后也输入0)\n");for (h=0;h<G.vexnum;++h) // 构造表结点链表,利用前插法{printf("%s的先修课程:",G.ver[h].data);scanf("%s",va);getchar();while (va[0]!='0'){i = LocateVex(G, va); //弧头j = h; //弧尾p = (ArcNode*)malloc(sizeof(ArcNode));p->AdjOfV = j;p->next = G.ver[i].first; // 插在表头G.ver[i].first = p;scanf("%s",va); getchar();}}return 1;}void Display(ALGraph G) /* 输出图G的信息*/{int i;ArcNode *p;printf("有向图\n");printf("%d个顶点", G.vexnum);for (i = 0;i < G.vexnum;++i)printf("%4s", G.ver[i].data);printf(" \n%d条弧边:\n",G.arcnum);for (i = 0;i < G.vexnum;i++){ p = G.ver[i].first;while (p){ printf("%s---->%s\n",G.ver[i].data,G.ver[p->AdjOfV].data);p = p->next;}}}void FindInDegree(ALGraph G, int indegree[]) /*求顶点的入度*/{int i;ArcNode *p;for (i = 0;i < G.vexnum;i++) indegree[i] = 0;for (i = 0;i < G.vexnum;i++){p = G.ver[i].first;while (p){ indegree[p->AdjOfV]++;p = p->next;}}}struct Name{char c[20];}name;void CmpOfStr(VertexType str,struct Name name[],int n) /*让C1~C12分别与12门课程对应起来*/{if(strcmp(str,name[0].c)==0)printf(" c程序设计");if(strcmp(str,name[1].c)==0)printf(" 模拟数字电路");if(strcmp(str,name[2].c)==0)printf(" 数据结构");if(strcmp(str,name[3].c)==0)printf(" C++面向对象");if(strcmp(str,name[4].c)==0)printf(" 大学英语");if(strcmp(str,name[5].c)==0)printf(" 计算机组成原理");if(strcmp(str,name[6].c)==0)printf(" 传感器原理");if(strcmp(str,name[7].c)==0)printf(" 软件工程导论");if(strcmp(str,name[8].c)==0)printf(" 高等数学");if(strcmp(str,name[9].c)==0)printf(" 线性代数");if(strcmp(str,name[10].c)==0)printf(" 大学物理基础");if(strcmp(str,name[11].c)==0)printf(" 电工技术");}int TopologicalOrder(ALGraph G,AdjList R,struct Name name[]){i nt i, k, j = 0, count, indegree[MAX_VER];c har q=1,Z=0;S qStack S;A rcNode *p;F indInDegree(G, indegree); // 对各顶点求入度I nitStack(S); // 初始化栈f or (i = 0;i < G.vexnum;++i) //建零入度顶点栈Sif (!indegree[i]) Push(S, i); // 入度为0者进栈count = 0; // 对输出顶点计数while (!StackEmpty(S)){Pop(S, i);printf("%s(%d学分),",G.ver[i].data,G.ver[i].grades);R[j++] = G.ver[i]; //将当前的拓扑序列保存起来++count; // 输出i号顶点并计数for (p =G.ver[i].first; p; p=p->next)// 对i号顶点的每个邻接点的入度减1{k = p->AdjOfV;if (!(--indegree[k])) // 若入度减为0,则入栈Push(S, k);}}if (count < G.vexnum){printf("此有向图有回路无法完成拓扑排序");return 0;}else printf( " 为一个拓扑序列");printf("\n");while (q <= TotalOfTerms){int C = R[Z].grades ;printf("\n第%d个学期应学课程:",q);while (C <= MaxScores){C = C + R[Z+1].grades;if (Z < G.vexnum){CmpOfStr(R[Z].data,name,N);/*让C1~C12分别与12门课程对应起来*/++Z;}}printf("\n");if (q == TotalOfTerms)printf( "\nOK Over!");q++;}return 1;/**/}int main(){ALGraph G;AdjList R;struct Name name[N]={{"C1"},{"C2"},{"C3"},{"C4"},{"C5"},{"C6"},{"C7"},{"C8"},{"C9"},{"C10"},{"C11"},{"C12"}};printf(" ***************教学计划编制问题**************\n" );printf(" ************製作人张启尧董茁华**************\n");printf( "请输入学期总数:");scanf("%d",&TotalOfTerms);getchar();printf("请输入学期的学分上限:");scanf("%d",&MaxScores);getchar();CreateGraph(G);Display(G);TopologicalOrder(G,R,name);return 0;}8 心得体会。

教师教学计划编制实例解析报告

教师教学计划编制实例解析报告

教师教学计划编制实例解析报告一、引言教学计划是教师教学工作中的基本准备,对于保证教学的有序进行、提高教学效果至关重要。

本报告将通过解析一份教师教学计划的编制实例,探讨教学计划编制的重要性以及其中的具体内容和结构。

二、教学计划编制的意义教学计划编制是教师的核心工作之一,它不仅有助于教师对教学过程进行科学安排和组织,还能帮助教师确立教学目标、选择教学策略、合理分配教学时间和资源,从而提高教学效果。

同时,教学计划编制也能够帮助教师总结和反思教学经验,不断完善自己的教学方法和教学内容。

三、教学计划编制的基本原则教学计划编制应遵循下列基本原则:1. 以学生为中心:根据学生的实际情况和特点制定教学目标,选择合适的教学内容和方法。

2. 有序递进:教学计划应按照一定的顺序和逻辑编排,使学生能够逐渐掌握知识和技能。

3. 灵活性与可调整性:教学计划应具有一定的灵活性,以便根据实际情况进行调整和改进。

4. 综合性:教学计划应综合考虑各种因素,包括学科、学生特点、教材、时间等。

四、教学计划编制的主要内容教学计划编制主要包括以下几个方面:1. 教学目标:明确阐述学生应达到的知识和技能,以及思维方法和态度。

2. 教学内容:根据教学目标确定所需教学内容,包括教材、参考资料等。

3. 教学方法:选择适合的教学方法,如讲授、讨论、实验等,以促进学生的主动参与和积极学习。

4. 教学资源:确定所需教学资源,包括教具、实验设备等,并做好相应准备工作。

5. 教学评价:制定相应的教学评价方法,以便对学生的学习情况进行及时评估和反馈。

五、教学计划编制实例解析以下以一堂数学课为例进行教学计划编制实例解析:教学目标:通过本堂课的学习,学生将能够了解和掌握一元一次方程的解法,并能运用所学方法解决相关问题。

教学内容:一元一次方程的基本概念与性质,解一元一次方程的方法(等式法、图解法、代入法等),相关的练习和应用题。

教学方法:讲授与讨论相结合,引导学生积极参与,举例说明解题方法的应用。

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

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

课程设计(论文)题目名称教学计划编制问题课程名称数据结构课程设计学生姓名学号系、专业信息工程系、通信工程类指导教师2012年12 月23 日摘要教学计划是学校保证教学质量和人才培养的关键,也是组织教学过程、安排教学过程、安排教学任务、确定教学编制的基本依据和课程安排的具体形式。

是稳定教学秩序、提高教学质量的重要保证。

从教学计划的设计、实施等方面,阐明了如何搞好教学管理,从而为提高教学质量提供保证。

随着教育改革的不断深入和社会发展的需要,原旧的教学计划在定位上的方向性偏差,已经不再适应社会的需求。

因此,应重视教学计划的改革和修订工作,以确保教育教学质量,提高教育教学水平。

教学计划编制中的思路:一是明确培养目标;二是注重学科设置的整体性、统一性和灵活性、全面性;三是与学分制改革有机结合。

教学计划是高校实施常规教学活动的基本管理文档,由于传统的手工编制方式存在诸多弊端,开发基于Web应用程序形式的教学计划编制系统具有很好的应用价值。

使用C程序设计语言,研究开发教学计划编制系统Web应用系统。

关键词:教学计划;编制;培养目标;管理目录1 问题描述 ---------------------------------------------------------------------------------------------- 12 需求分析 ---------------------------------------------------------------------------------------------- 23 概要设计 --------------------------------------------------------------------------------------------------------------- 23.1抽象数据类型定义 ----------------------------------------------------------------------------------- 2 3.2模块划分---------------------------------------------------------------------------------------------------- 3 4 详细设计 --------------------------------------------------------------------------------------------------------------- 34.1数据类型的定义 --------------------------------------------------------------------------------------- 4 4.2主要模块的算法描述 ------------------------------------------------------------------------------- 55 测试分析 --------------------------------------------------------------------------------------------------------------- 86 课程设计总结 ---------------------------------------------------------------------------------------------------- 106.1问题和解决的方法及经验教训、心得体会﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍﹍106.2 致谢 ----------------------------------------------------------------------------------------------------------- 11参考文献------------------------------------------------------------------------------------------------------------------ 11附录(源程序清单)-------------------------------------------------------------------------------------------- 121 问题描述大学的每个专业都要制定教学计划。

教学计划编制程序课题实验报告

教学计划编制程序课题实验报告

目录1 课题需求描述 (2)1.1课题题目 (2)1.2需求分析 (2)2 总体功能与数据结构设计 (3)2.1 总体功能设计 (3)2.2 数据结构设计 (4)3 算法设计和程序设计 (4)3.1算法设计 (5)3.2程序设计 (5)3.3流程图 (20)4 调试与测试 (21)5 设计总结 (21)1 课题需求描述1.1课题题目图书借阅管理系统是一个学校不可缺少的部分,它的内容对于学校的管理者和读者来说都至关重要,直接关系到图书的借用率,所以开发图书管理系统能够为管理员和读者提供充足的信息和快捷的查询手段。

编写程序系统主要实现图书馆的增加图书、查询图书、删除图书、借阅图书、还书;增加会员、查询会员、删除会员、借书信息、到期书催还等智能化管理过程。

图书管理者只需略懂电脑知识就可以简易的操作该图书借阅管理系统。

1.2需求分析1.2.1系统需求分析图书借阅管理系统主要两大功能:(1)图书管理(增加图书、查询图书、删除图书、图书借阅、还书);(2)会员管理(增加会员、查询会员、删除会员、借书信息);要完成这个题目,主要是建立解决图书和会员的信息的存储,解决的方法是建立两个带头结点的单链表,分别用于存储图书和会员。

解决了这个问题后就是何建立这两个链表的联系了,解决的方法是在图书结点中设一个借书人编号,在会员结点中设一个数组用于存会员借的书。

解决了这两个问题,剩下的工作就简单了。

只需按链表的操作就可以了。

1.2.1.1功能要求在图书借阅管理程序中须实现以下功能:(1)图书修改功能:能对图书借阅系统存储的信息进行修改。

提供两种修改方式,如按照图书编号修改、按照书名修改。

图书编号是图书记录的自然顺序编号。

(2)图书删除功能:能对图书借阅系统的图书信息进行删除。

删除时以记录为单位,能一次删除一条记录。

(3)借书功能:能对借出的图书作记录信息,能一次借出一本图书。

(4)还书功能:能将被借出的图书信息还原,能一次借出一本图书。

初中数学课程教学计划编制(含示范课课程设计、学科学习情况总结)

初中数学课程教学计划编制(含示范课课程设计、学科学习情况总结)

初中数学课程教学计划编制第一篇范文:初中数学课程教学计划编制一、教学计划编制的背景与意义随着我国教育改革的深入推进,初中数学课程教学计划编制的重要性日益凸显。

教学计划作为数学教学的基本遵循,对于指导教师进行有效的教学活动,提高教学质量,促进学生的全面发展具有重要的现实意义。

因此,编制符合新课程标准、适应学生实际情况的初中数学课程教学计划,是每一位初中数学教师面临的重要任务。

二、教学计划编制的原则1.符合课程标准:教学计划应全面体现课程标准的精神,确保教学内容、教学目标、教学方法等与课程标准的要求相一致。

2.关注学生个体差异:教学计划应充分考虑学生的认知水平、兴趣、学习习惯等因素,制定有针对性的教学策略,促进每个学生的个性发展。

3.重视知识体系与能力培养:教学计划应注重数学知识的系统性,加强对学生数学思维能力、创新能力的培养。

4.强调实践与探究:教学计划应鼓励学生参与数学实践活动,培养学生的动手操作能力、合作交流能力和问题解决能力。

5.注重教学评价:教学计划应合理设计评价方式,全面、准确地了解学生的学习状况,为教学改进提供有效依据。

三、教学计划编制的具体内容1.教学目标:明确本学期或本学年的教学目标,从知识与技能、过程与方法、情感态度与价值观等方面进行具体阐述。

2.教学内容:根据课程标准,梳理出具体的教学内容,包括章节划分、重点难点、教学方法等。

3.教学安排:合理分配教学时间,确保各个章节、各个教学环节的教学时间充足,避免教学内容过于紧凑或过于宽松。

4.教学方法:根据学生的实际情况,选择合适的教学方法,如讲解法、引导法、探究法等。

5.教学评价:设计多元化、动态的评价方式,包括课堂表现、作业完成情况、考试成绩等,全面评价学生的学习效果。

6.教学反思:在教学过程中,教师应不断进行自我反思,发现教学中的不足,及时调整教学计划,提高教学质量。

四、教学计划编制的实施与调整1.学期初,教师应根据课程标准和学生实际情况,制定详细的教学计划,并在教研组内进行交流、讨论,形成共识。

教师课程教学计划编制与反思

教师课程教学计划编制与反思

教师课程教学计划编制与反思引言:教师课程教学计划的编制对于教学工作的实施至关重要。

一个合理、科学的教学计划能够为教师提供明确的目标和指导,同时也能够激发学生的学习兴趣,提高学习效果。

本文将探讨教师课程教学计划编制的过程以及如何进行反思,以期为广大教师提供实用的参考。

第一部分:教师课程教学计划编制的重要性教师课程教学计划编制是教师教学工作的重要组成部分。

合理的教学计划可以帮助教师在教学中拿捏好时间,便于合理安排各种教学活动,提高教学效率。

此外,教师课程教学计划编制还能帮助教师把握好教学内容和学生学习进度,确保教学按照既定的方案有序进行。

第二部分:教师课程教学计划编制的内容1. 教学目标的明确性教师课程教学计划的第一步是明确教学目标。

明确的教学目标能够为教学活动提供方向,教师应根据课程标准和学生实际情况,确立可行的目标,并将其分解为各个具体的学习指标。

2. 教学内容的选择与组织在教学计划编制中,教师需要选择和组织教学内容。

教师应根据学科知识体系、学生的学习能力和教学要求等因素,合理选择教学内容,对其进行分类和组织,以保证学习内容的系统性和完整性。

3. 教学活动的设计与安排教学计划的编制还需要教师设计和安排合适的教学活动。

教师应充分考虑学生的特点和学习方式,设计多样化的教学活动,以激发学生的学习兴趣和积极性。

同时,教师还需要合理安排各个教学活动的时间和顺序,确保学习过程的逻辑性和连贯性。

第三部分:教师课程教学计划编制的原则1. 教学目标的科学性教学目标应具有科学性,即既要符合教育政策和学科要求,又要与学生的实际情况相符。

教师应根据学生的学习能力和兴趣,合理设定教学目标,确保其具有可行性和可评价性。

2. 教学内容的疏密适度教学计划中的教学内容应根据学科的不同特点,疏密适度地进行安排。

不能过分注重某一方面的内容,也不能忽视其他重要内容,要保证教学计划的全面性和均衡性。

3. 教学活动的多样性教学计划中的教学活动应具有多样性,以满足学生不同的学习需求。

教师教学计划编制案例分析

教师教学计划编制案例分析

教师教学计划编制案例分析第一部分:案例背景介绍在教育领域,教师教学计划的编制是推动教学改革和提高教学质量的重要环节之一。

本文以某高中物理教师的教学计划编制为案例,分析教师教学计划的重要性及编制过程的要点。

第二部分:目标明确在编制教学计划之前,教师首先需要明确教学的目标。

本案例中,物理教师的目标是让学生了解力和功的概念,掌握力和功的计算方法,并能应用于实际问题。

通过明确目标,教师能够有针对性地选择教学内容和教学方法,提高教学效果。

第三部分:分析学情在编制教学计划之前,教师需要了解学生的学情,包括学生的知识水平、学习能力、学习状况等。

通过学情分析,教师可以根据学生的实际情况调整教学内容和教学方法,提高教学效果。

第四部分:确定教学内容在教学计划中,教师需要确定具体的教学内容。

本案例中,物理教师确定了力和功的概念及计算方法为教学内容。

同时,教师还选择了一些实际问题作为教学材料,帮助学生将所学知识应用于实际问题的解决。

第五部分:选择教学方法在教学计划的编制中,教师需要选择适合的教学方法。

教学方法的选择应根据学生的学情和教学内容来确定。

本案例中,物理教师采用了讲授、实验和讨论相结合的教学方法,以提高学生的学习兴趣和参与度。

第六部分:制定教学活动在教学计划中,教师需要制定具体的教学活动。

本案例中,物理教师制定了多种教学活动,如讲授力和功的概念、演示相关实验、组织学生进行小组讨论等。

通过教学活动的设计,教师有效地引导学生积极参与学习,提高学习效果。

第七部分:设置评价标准在教学计划中,教师需要设置评价标准,以评估学生的学习情况。

本案例中,物理教师制定了力和功的计算题目,并根据计算结果的准确性、分析能力等设置了评价标准。

通过评价,教师可以了解学生的学习情况,及时调整教学策略。

第八部分:制定教学安排在教学计划中,教师需要制定教学安排,确定教学时长和教学进度。

本案例中,物理教师根据教学内容和教学方法制定了每堂课的教学安排,确保教学进度的合理与掌控教学时间。

教学计划的课程设计

教学计划的课程设计

教学计划的课程设计导言教学计划的课程设计是教育教学工作中的关键环节之一。

一个科学合理的教学计划能够为学生提供系统、完整的知识体系,有助于激发学生的学习兴趣和培养他们的创新能力。

因此,教师在进行教学计划的课程设计时,应当有目标明确、结构合理、方法灵活的原则。

本文将从教学主题、活动安排、教材使用三个方面展开讨论,为教师提供一些有益的参考。

一、教学主题的确定教学主题是教学计划的核心,直接关系到学生的学习效果。

教师在确定教学主题时,应该充分考虑学生的实际情况和学习需求,力求与学生的生活经验和兴趣相结合。

另外,教师还应该关注社会发展的趋势,选择与时俱进的主题,使学生能够紧跟时代潮流,积极参与社会实践。

二、活动安排的合理性教学计划的活动安排是教学过程中至关重要的一环。

教师在进行活动安排时,应该充分考虑学生的认知能力、兴趣爱好和学习习惯,以确保活动的有效性和学生的参与度。

此外,教师还应该注重活动的多样性和趣味性,通过合理的分组设置、小组合作等方式,提高学生的主动参与和合作意识。

三、教材使用的灵活性教材是教学计划的基础和支撑,教师在教学计划的课程设计中,应该根据学生的实际情况和学习需要,灵活运用教材。

一方面,教师可以选择符合教学主题和教学目标的教材,以确保教学内容的准确性和全面性。

另一方面,教师可以通过编写教案、设计教学游戏等方式,使教材的使用更加活泼生动,激发学生的学习兴趣。

结语教学计划的课程设计是教育教学工作中的重要环节,对于提高教学质量、促进学生全面发展具有重要意义。

教师在进行教学计划的课程设计时,应该基于教学主题,合理安排教学活动,灵活运用教材,以激发学生的学习兴趣和培养他们的创新能力。

只有这样,才能真正实现教学目标,为学生的成长和发展提供有力的保障。

因此,教师应该不断加强对课程设计的研究和实践,不断完善教学计划,以适应时代的要求和学生的需求。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

中北大学数据结构与算法课程设计说明书学院、系:软件学院专业:软件工程学生姓名:学号:设计题目:教学计划编制问题起迄日期: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 Graph2.栈的定义如下: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);void Push(SqStack *S, int );int Pop(SqStack *S, int *e);}ADT Stack3.本程序有两个模块,调用关系简单:主程序模块→拓扑排序模块3系统完成功能及功能框图图3.1系统功能框图1图3.2 邻接表图3.3 拓扑排序流程图图3.4 课程先修关系图4 详细设计1.图的邻接表的存储表示,即结构体的定义:typedef struct ArcNode{i nt AdjOfV; // 该弧所指向的顶点的位置s truct ArcNode *next; //指向下一条弧的指针}ArcNode;typedef char VertexType[MAXOfNAME];typedef struct //链接表{V ertexType data; //顶点信息i nt grades; //存储学分信息A rcNode *first; //指向第一条依附该顶点的弧的指针}VNode, AdjList[MAX_VER]; // 头结点typedef struct{A djList ver; //vertices 存储课程名i nt vexnum, arcnum; // 图的当前顶点数和弧数}ALGraph;2. 建立图的邻接链表:printf("请输入下列课程的先修课程(无先修课程输入0 结束后也输入0)\n");for (h=0;h<G.vexnum;++h) // 构造表结点链表,利用前插法{printf("%s的先修课程:",G.ver[h].data);scanf("%s",va);getchar();while (va[0]!='0'){i = LocateVex(G, va); //弧头j = h; //弧尾p = (ArcNode*)malloc(sizeof(ArcNode));p->AdjOfV = j;p->next = G.ver[i].first; // 插在表头G.ver[i].first = p;scanf("%s",va);getchar();}3. 输出图的顶点和边:printf("%d个顶点", G.vexnum);for (i = 0;i < G.vexnum;++i)printf("%4s", G.ver[i].data);printf(" \n%d条弧边:\n",G.arcnum);for (i = 0;i < G.vexnum;i++){ p = G.ver[i].first;while (p){ printf("%s---->%s\n",G.ver[i].data,G.ver[p->AdjOfV].data);p = p->next;}}4. 通过栈实现拓扑排序:int TopologicalOrder(ALGraph G,AdjList R,struct Name name[]) {i nt i, k, j = 0, count, indegree[MAX_VER];S qStack S;A rcNode *p;F indInDegree(G, indegree); // 对各顶点求入度I nitStack(S); // 初始化栈f or (i = 0;i < G.vexnum;++i) //建零入度顶点栈Sif (!indegree[i]) Push(S, i); // 入度为0者进栈count = 0; // 对输出顶点计数while (!StackEmpty(S)){Pop(S, i);printf("%s(%d学分),",G.ver[i].data,G.ver[i].grades);R[j++] = G.ver[i]; //将当前的拓扑序列保存起来++count; // 输出i号顶点并计数for (p =G.ver[i].first; p; p=p->next)// 对i号顶点的每个邻接点的入度减1{k = p->AdjOfV;if (!(--indegree[k])) // 若入度减为0,则入栈Push(S, k);}}if (count < G.vexnum){printf("此有向图有回路无法完成拓扑排序");return 0;}else printf( " 为一个拓扑序列");printf("\n");int q=1,Z=0;while (q <= TotalOfTerms){int C = R[Z].grades ;printf("\n第%d个学期应学课程:",q);while (C <= MaxScores){C = C + R[Z+1].grades;if (Z < G.vexnum){CmpOfStr(R[Z].data,name,N);/*让C1~C12分别与12门课程对应起来*/ ++Z;}}printf("\n");if (q == TotalOfTerms)printf( "\nOK Over!");q++;}return 1;/**/}5.主程序和其他伪码算法:void main(){ALGraph G;AdjList R;Struct name;name[N]={{"C1"},{"C2"},{"C3"},{"C4"},{"C5"},{"C6"},{"C7"},{"C8"},{"C9"},{"C 10"},{"C11"},{"C12"}};printf(" ***************教学计划编制问题**************\n" );printf( "请以课件9-2上课程先序图为例输入学期总数:");scanf("%d",&TotalOfTerms);getchar();printf("请输入学期的学分上限(8或9):");scanf("%d",&MaxScores);getchar();CreateGraph(G);Display(G);TopologicalOrder(G,R,name);}int InitStack(SqStack &S) /*栈的初始化*/{S.a= (int *)malloc(StackofNUM * sizeof(int));i f (!S.a)exit(-1);S.top =S.a;S.size =StackofNUM;r eturn 1;}int StackEmpty(SqStack S) /*判断栈是否为空*/{i f (S.top == S.a)return 1;e lse return 0;}int Push(SqStack &S, int x)/*入栈*/{i f (S.top - S.a >= S.size){S.a = (int *) realloc ( S.a, (S.size + StackforMore) * sizeof(int));if ( !S.a ) exit(-1);S.top =S.a +S.size;S.size +=StackforMore;}*S.top++ = x;r eturn 1;}int Pop(SqStack &S, int &x) /*出栈*/{i f (S.top == S.a)return 0;x = *--S.top;return 1;}int LocateVex(ALGraph G, VertexType u)/* 查找图中某个顶点位置 */ {int i;for (i = 0;i < G.vexnum;++i)if (strcmp(u,G.ver[i].data)==0)return i;return -1;}int CreateGraph(ALGraph &G) /*采用邻接表存储结构*/ {int i, j, h;VertexType va;ArcNode *p;printf("请输入教学计划的课程数: " );scanf("%d",&G.vexnum);getchar();printf( "请输入各个课程的先修课程的总和(弧总数): ");scanf("%d",&G.arcnum);getchar();printf( "请输入%d个课程的课程号(最多%d个字符,字母+数字如C10):", G.vexnum,MAXOfNAME);for (i = 0;i < G.vexnum;++i){scanf("%s",&G.ver[i].data);getchar();G.ver[i].first = NULL;}printf("请输入%d个课程的学分值:",G.vexnum);for (i = 0;i < G.vexnum;++i){scanf("%d",&G.ver[i].grades);getchar();}printf("请输入下列课程的先修课程(无先修课程输入0 结束后也输入0)\n");for (h=0;h<G.vexnum;++h) // 构造表结点链表,利用前插法{printf("%s的先修课程:",G.ver[h].data);scanf("%s",va);getchar();while (va[0]!='0'){i = LocateVex(G, va); //弧头j = h; //弧尾p = (ArcNode*)malloc(sizeof(ArcNode));p->AdjOfV = j;p->next = G.ver[i].first; // 插在表头G.ver[i].first = p;scanf("%s",va); getchar();}}return 1;}void Display(ALGraph G) /* 输出图G的信息*/{int i;ArcNode *p;printf("有向图\n");printf("%d个顶点", G.vexnum);for (i = 0;i < G.vexnum;++i)printf("%4s", G.ver[i].data);printf(" \n%d条弧边:\n",G.arcnum);for (i = 0;i < G.vexnum;i++){ p = G.ver[i].first;while (p){ printf("%s---->%s\n",G.ver[i].data,G.ver[p->AdjOfV].data);p = p->next;}}}void FindInDegree(ALGraph G, int indegree[]) /*求顶点的入度*/int i;ArcNode *p;for (i = 0;i < G.vexnum;i++) indegree[i] = 0;for (i = 0;i < G.vexnum;i++){p = G.ver[i].first;while (p){ indegree[p->AdjOfV]++;p = p->next;}}}struct Name{ char c[20];}name;void CmpOfStr(VertexType str,struct Name name[],int n) /*让C1~C12分别与12门课程对应起来*/{ if(strcmp(str,name[0].c)==0)printf(" C程序设计");if(strcmp(str,name[1].c)==0)printf(" 模拟数字电路");if(strcmp(str,name[2].c)==0)printf(" 数据结构");if(strcmp(str,name[3].c)==0)printf(" C++面向对象 ");if(strcmp(str,name[4].c)==0)printf(" 大学英语 ");if(strcmp(str,name[5].c)==0)printf(" 计算机组成原理");if(strcmp(str,name[6].c)==0)printf(" 传感器原理");if(strcmp(str,name[7].c)==0)printf(" 软件工程导论");if(strcmp(str,name[8].c)==0)printf(" 高等数学");if(strcmp(str,name[9].c)==0)printf(" 线性代数");if(strcmp(str,name[10].c)==0)printf(" 大学物理基础");if(strcmp(str,name[11].c)==0)printf(" 电工技术");4 界面设计5 源代码#include<stdio.h>#include<stdlib.h>#include<math.h>#include<string.h>#define N 12#define MAXOfNAME 3 //最多字符个数#define MAX_VER 100 //最大顶点数#define StackofNUM 20 //存储空间初始分配量#define StackforMore 5 // 存储空间分配增量int TotalOfTerms ; //学期总数int MaxScores;typedef struct SqStack{i nt *a;i nt *top;i nt size; //分配的存储空间}SqStack;typedef struct ArcNode{i nt AdjOfV; // 该弧所指向的顶点的位置s truct ArcNode *next; //指向下一条弧的指针}ArcNode;typedef char VertexType[MAXOfNAME];typedef struct //链接表{V ertexType data; //顶点信息i nt grades; //存储学分信息A rcNode *first; //指向第一条依附该顶点的弧的指针}VNode, AdjList[MAX_VER]; // 头结点typedef struct{A djList ver; //vertices 存储课程名i nt vexnum, arcnum; // 图的当前顶点数和弧数}ALGraph; //学分上限int InitStack(SqStack S) /*栈的初始化*/{S.a= (int *)malloc(StackofNUM * sizeof(int));i f (!S.a)exit(-1);S.top =S.a;S.size =StackofNUM;r eturn 1;}int StackEmpty(SqStack S) /*判断栈是否为空*/{i f (S.top == S.a)return 1;e lse return 0;}int Push(SqStack S, int x)/*入栈*/{i f (S.top - S.a >= S.size){S.a = (int *) realloc ( S.a, (S.size + StackforMore) * sizeof(int));if ( !S.a ) exit(-1);S.top =S.a +S.size;S.size +=StackforMore;}*S.top++ = x;r eturn 1;}int Pop(SqStack S, int x) /*出栈*/{i f (S.top == S.a)return 0;x = *--S.top;return 1;}int LocateVex(ALGraph G, VertexType u)/* 查找图中某个顶点位置 */{int i;for (i = 0;i < G.vexnum;++i)if (strcmp(u,G.ver[i].data)==0)return i;return -1;}int CreateGraph(ALGraph G) /*采用邻接表存储结构*/{int i, j, h;VertexType va;ArcNode *p;printf("请输入教学计划的课程数: " );scanf("%d",&G.vexnum);getchar();printf( "请输入各个课程的先修课程的总和(弧总数): ");scanf("%d",&G.arcnum);getchar();printf( "请输入%d个课程的课程号(最多%d个字符,字母+数字如C10):", G.vexnum,MAXOfNAME);for (i = 0;i < G.vexnum;++i){scanf("%s",&G.ver[i].data);getchar();G.ver[i].first = NULL;}printf("请输入%d个课程的学分值:",G.vexnum);for (i = 0;i < G.vexnum;++i){scanf("%d",&G.ver[i].grades);getchar();}printf("请输入下列课程的先修课程(无先修课程输入0 结束后也输入0)\n");for (h=0;h<G.vexnum;++h) // 构造表结点链表,利用前插法{printf("%s的先修课程:",G.ver[h].data);scanf("%s",va);getchar();while (va[0]!='0'){i = LocateVex(G, va); //弧头j = h; //弧尾p = (ArcNode*)malloc(sizeof(ArcNode));p->AdjOfV = j;p->next = G.ver[i].first; // 插在表头G.ver[i].first = p;scanf("%s",va); getchar();}}return 1;}void Display(ALGraph G) /* 输出图G的信息*/{int i;ArcNode *p;printf("有向图\n");printf("%d个顶点", G.vexnum);for (i = 0;i < G.vexnum;++i)printf("%4s", G.ver[i].data);printf(" \n%d条弧边:\n",G.arcnum);for (i = 0;i < G.vexnum;i++){ p = G.ver[i].first;while (p){ printf("%s---->%s\n",G.ver[i].data,G.ver[p->AdjOfV].data);p = p->next;}}}void FindInDegree(ALGraph G, int indegree[]) /*求顶点的入度*/{int i;ArcNode *p;for (i = 0;i < G.vexnum;i++) indegree[i] = 0;for (i = 0;i < G.vexnum;i++){p = G.ver[i].first;while (p){ indegree[p->AdjOfV]++;p = p->next;}}}struct Name{char c[20];}name;void CmpOfStr(VertexType str,struct Name name[],int n) /*让C1~C12分别与12门课程对应起来*/{if(strcmp(str,name[0].c)==0)printf(" c程序设计");if(strcmp(str,name[1].c)==0)printf(" 模拟数字电路");if(strcmp(str,name[2].c)==0)printf(" 数据结构");if(strcmp(str,name[3].c)==0)printf(" C++面向对象 ");if(strcmp(str,name[4].c)==0)printf(" 大学英语 ");if(strcmp(str,name[5].c)==0)printf(" 计算机组成原理");if(strcmp(str,name[6].c)==0)printf(" 传感器原理");if(strcmp(str,name[7].c)==0)printf(" 软件工程导论 ");if(strcmp(str,name[8].c)==0)printf(" 高等数学");if(strcmp(str,name[9].c)==0)printf(" 线性代数");if(strcmp(str,name[10].c)==0)printf(" 大学物理基础");if(strcmp(str,name[11].c)==0)printf(" 电工技术");}int TopologicalOrder(ALGraph G,AdjList R,struct Name name[]){i nt i, k, j = 0, count, indegree[MAX_VER];c har q=1,Z=0;S qStack S;A rcNode *p;F indInDegree(G, indegree); // 对各顶点求入度I nitStack(S); // 初始化栈f or (i = 0;i < G.vexnum;++i) //建零入度顶点栈Sif (!indegree[i]) Push(S, i); // 入度为0者进栈count = 0; // 对输出顶点计数while (!StackEmpty(S)){Pop(S, i);printf("%s(%d学分),",G.ver[i].data,G.ver[i].grades);R[j++] = G.ver[i]; //将当前的拓扑序列保存起来++count; // 输出i号顶点并计数for (p =G.ver[i].first; p; p=p->next)// 对i号顶点的每个邻接点的入度减1{k = p->AdjOfV;if (!(--indegree[k])) // 若入度减为0,则入栈Push(S, k);}}if (count < G.vexnum){printf("此有向图有回路无法完成拓扑排序");return 0;}else printf( " 为一个拓扑序列");printf("\n");while (q <= TotalOfTerms){int C = R[Z].grades ;printf("\n第%d个学期应学课程:",q);while (C <= MaxScores){C = C + R[Z+1].grades;if (Z < G.vexnum){CmpOfStr(R[Z].data,name,N);/*让C1~C12分别与12门课程对应起来*/++Z;}}printf("\n");if (q == TotalOfTerms)printf( "\nOK Over!");q++;}return 1;/**/}int main(){ALGraph G;AdjList R;struct Name name[N]={{"C1"},{"C2"},{"C3"},{"C4"},{"C5"},{"C6"},{"C7"},{"C8"},{"C9"},{"C10"} ,{"C11"},{"C12"}};printf(" ***************教学计划编制问题**************\n" );printf(" ************製作人张启尧董茁华 **************\n");printf( "请输入学期总数:");scanf("%d",&TotalOfTerms);getchar();printf("请输入学期的学分上限:");scanf("%d",&MaxScores);getchar();CreateGraph(G);Display(G);TopologicalOrder(G,R,name); return 0;}8 心得体会。

相关文档
最新文档