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

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

中北大学

数据结构与算法课程设计

说明书

学院、

系:软件学院

业:软件工程

学生姓名:

学号:

设计题

目:教学计划编制问题

起迄日期:2013年12月9日-2013年12月20

指导教

师:

2013年12月 20 日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);

void Push(SqStack *S, int );

int Pop(SqStack *S, int *e);

}ADT Stack

3.本程序有两个模块,调用关系简单:主程序模块→拓扑排序模块

3系统完成功能及功能框图

图3.1系统功能框图

1

2

3

4

5

6

7

8

9

10

11

图3.2 邻接表

图3.3 拓扑排序流程图

图3.4 课程先修关系图

4 详细设计

1.图的邻接表的存储表示,即结构体的定义:

typedef struct ArcNode

{

int AdjOfV; // 该弧所指向的顶点的位置

struct ArcNode *next; //指向下一条弧的指针}ArcNode;

typedef char VertexType[MAXOfNAME];

typedef struct //链接表

{

VertexType data; //顶点信息

int grades; //存储学分信息

ArcNode *first; //指向第一条依附该顶点的弧的指针}VNode, AdjList[MAX_VER]; // 头结点

typedef struct

{

int vexnum, arcnum; // 图的当前顶点数和弧数

}ALGraph;

2. 建立图的邻接链表:

printf("请输入下列课程的先修课程(无先修课程输入0 结束后也输入0)\n");

for (h=0;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;

}

}

int TopologicalOrder(ALGraph G,AdjList R,struct Name name[])

{

int i, k, j = 0, count, indegree[MAX_VER];

SqStack S;

ArcNode *p;

FindInDegree(G, indegree); // 对各顶点求入度

InitStack(S); // 初始化栈

for (i = 0;i < G.vexnum;++i) //建零入度顶点栈S

if (!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( " 为一个拓扑序列");

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);

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));

if (!S.a)exit(-1);

S.top =S.a;

S.size =StackofNUM;

return 1;

}

int StackEmpty(SqStack S) /*判断栈是否为空*/

{

if (S.top == S.a)return 1;

else return 0;

}

int Push(SqStack &S, int x)/*入栈*/

{

if (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;

}

return 1;

}

int Pop(SqStack &S, int &x) /*出栈*/

{

if (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

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;

}

}

}

{ 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

#include

#include

#include

#define N 12

#define MAXOfNAME 3 //最多字符个数

#define MAX_VER 100 //最大顶点数

#define StackofNUM 20 //存储空间初始分配量

#define StackforMore 5 // 存储空间分配增量

int TotalOfTerms ; //学期总数

int MaxScores;

typedef struct SqStack

int *a;

int *top;

int size; //分配的存储空间

}SqStack;

typedef struct ArcNode

{

int AdjOfV; // 该弧所指向的顶点的位置

struct ArcNode *next; //指向下一条弧的指针

}ArcNode;

typedef char VertexType[MAXOfNAME];

typedef struct //链接表

{

VertexType data; //顶点信息

int grades; //存储学分信息

ArcNode *first; //指向第一条依附该顶点的弧的指针}VNode, AdjList[MAX_VER]; // 头结点

typedef struct

{

AdjList ver; //vertices 存储课程名

int vexnum, arcnum; // 图的当前顶点数和弧数

}ALGraph; //学分上限

int InitStack(SqStack S) /*栈的初始化*/

{

S.a= (int *)malloc(StackofNUM * sizeof(int));

if (!S.a)exit(-1);

S.top =S.a;

S.size =StackofNUM;

return 1;

}

int StackEmpty(SqStack S) /*判断栈是否为空*/

if (S.top == S.a)return 1;

else return 0;

}

int Push(SqStack S, int x)/*入栈*/

{

if (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;

return 1;

}

int Pop(SqStack S, int x) /*出栈*/

{

if (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) /*采用邻接表存储结构*/

{

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

{

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->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[])

{

int i, k, j = 0, count, indegree[MAX_VER];

SqStack S;

ArcNode *p;

FindInDegree(G, indegree); // 对各顶点求入度

InitStack(S); // 初始化栈

for (i = 0;i < G.vexnum;++i) //建零入度顶点栈S

if (!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 ;

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

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

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

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

数据结构 教学计划编制问题 实验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

管理系统操作说明

目录 目录 (1) 前言 .............................................................................................................................. - 3 -第一部分:前期准备.................................................................................................. - 4 - 1、注册及登录 (4) 2、修改会员资料 (5) 3、设置子账户 (6) 4、内部发文 (8) 5、留言反馈 (9) 6、设置学校信息 (10) 第二部分:人事安排................................................................................................ - 12 - 1、教师管理 (12) 2、职工管理 (13) 第三部分:课程安排................................................................................................ - 15 - 1、课程设置 (15) 2、套餐设置 (17) 3、课程计划管理 (20) 4、查看课程 (22) 第四部分:招生咨询................................................................................................ - 22 - 1、学生管理 (22) 2、咨询管理 (25) 2.1、课程咨询管理 ............................................................................................ - 25 - 2.2、套餐咨询管理 ............................................................................................ - 28 - 3、试听管理 (30) 3.1、课程试听管理 ............................................................................................ - 30 -

教学计划编制问题课程设计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语言

最新教学计划编制问题讲课稿

目录 1 课题需求描述 (3) 1.1 教学计划编制问题 (3) 1.2 进制转换 (3) 2 总体功能与数据结构设计 (4) 2.1 总体功能结构 (4) 2.2 数据结构设计 (5) 3 算法设计和程序设计 (7) 3.1 教学计划编制问题 (7) 3.2 进制转换问题 (10) 4 调试与测试 (24) 4.1 教学计划编制问题调试结果 (24) 4.2 进制转换问题调试结果 (26) 5 设计总结 (28) 6 程序代码 (30)

1 课题需求描述 1.1 教学计划编制问题 大学的每个专业都要制订教学计划。假设任何专业都有固定的学习年限,每学年含两学期,每学期的时间长度和学分上限均相等。每个专业开设的课程都是确定的,而且课程在开设时间的安排必须满足先修关系。每门课程有哪些先修课程是确定的,可以有任意多门,也可以没有。每门课恰好占一个学期。在这样的前提下设计一个教学计划编制程序。通过输入实际的课程及先后关系。结合每学期的学分及课程数,制定好学习计划。在输入相关数据后,程序会安排好每学期的课程。 1.2 进制转换 进制数制是人们利用符号进行计数的科学方法。数制有很多种,在计算机中常用的数制有:十进制,二进制,八进制和十六进制。十六进制数有两个基本特点:它由十六个字符0~9以及A,B,C,D,E,F组成(它们分别表示十进制0~15),十六进制数运算规律逢十六进一。 要求: (1)输入一个十进制数N,将它转换成R进制数输出,并可以进行你转换。 (2)输入数据包含多个测试实例,每个测试实例包含两个整数N(32位整数)和R(2<=R<=16)。 (3)为每个测试实例输出转换后的数,每个输出占一行。如果R大于10,则对应的数字规则参考16进制(比如,10用A表示, 等等)。

Windows操作系统教学计划

Windows操作系统教学计划 由于在教学计划、教学要求、学时安排和学生程度等方面存在差异,授课时,应酌情对内容进行取舍。课时充分时,可考虑讲授全部内容,否则,突出基本内容,舍弃某些实例,重点讲述原理。 1)共安排144学时(两学期每周4学时×36周),其中理论70学时、上机70学时、机动4个学时。 2)利用机动学时,本学期拟安排:1.期中测验1次,1学时;2.习题课1-2次,每次2学时。课程计划时间将作相应调整。 3)教学重点放在基本概念、基本原理和基本技术方面。 4)实例可以根据实际情况进行选择。 5)第四章“4.6 实例研究:Intel x86/Pentium存储管理硬件设施”可略去不讲。 6)第八章“8.1计算机网络概述”与“8.2 网络操作系统”可略去。 7)必须要有上机实习,每周安排上机2学时(共36周,即72学时)。 8)学生成绩考核采取综合评定方式,由以下部分组成:作业10%、上机实习10%、课程测验10%、期终考试70%。 9)由于习题较多,思考题由学生自行选做,作业可以布置应用题,每学期做50-60题。 第一章操作系统概论 1.1操作系统概观 1.1.1 操作系统的定义和目标 1.1.2 操作系统的作用和功能 1.1.3 操作系统的主要特性 1.2 操作系统的发展和形成 1.2.1人工操作阶段 1.2.2管理程序阶段 1.2.3多道程序设计与操作系统的形成 1.2.4 操作系统的分类 1.3操作系统提供的服务和用户接口 1.3.1 操作系统提供的基本服务 1.3.2 操作系统提供的用户接口 1.3.3 程序接口与系统调用 1.3.4 操作接口与系统程序 1.4 操作系统的结构设计 1.4.1 操作系统的构件 1.4.2 整体式结构的操作系统 1.4.3 层次式结构的的操作系统 1.4.4 虚拟机结构的操作系统 1.4.5 客户/服务器与微内核结构的操作系统 1.4.6 操作系统功能的实现模型 1.4.7 实例研究:Windows 2000/XP的客户/服务器结构 1.5流行操作系统简介 1.5.1D O S 操作系统

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

课程设计(论文) 题目名称教学计划编制问题 课程名称数据结构 学生姓名杨满平 学号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.培养具备以下条件的人员:具备编织和刺绣的基本技能,同时掌握仿作和独立设计的知识和技能。 2.理论知识培训目标 依据《国家职业标准》中对手工编织工的理论知识要求,通过培训使培训对象掌握基本针法、设计制造常识,了解编织刺绣发展的总体趋势和前景。 3.操作技能培训目标 依据《国家职业标准》中对手工编制工的操作技能要求,通过培训,使培训对象能够掌握棒针、钩针针法,掌握刺绣基础,掌握十字绣、苏绣、中国结的制造方法并形成完整的作品。 二、教学要求 1.理论知识要求 1.1手工编织基本概念和编织材料知识 1.2棒针编织基础知识 1.3钩针编织基础知识 1.4刺绣基础知识 1.5十字绣基础知识 1.6苏绣基础知识 1.7中国结相关基础知识

2.操作技能要求 2.1棒针技法 2.2钩针技法 2.3刺绣基本技法 2.4十字绣基本技法 2.5苏绣基本技法 2.6中国结基本技法 2.7拖鞋的编织方法 2.8女士帽子的编织方法 2.9手提包的编织方法 2.10绣球的编织方法 三、教材 中国劳动社会保障出版社《手工编织》四、教学计划安排 总课时:120课时 理论知识授课:30课时 理论知识复习:2课时 操作技能授课:32课时 操作技能联系:52课时 机动课时:4课时 手工编织教学大纲一、课程任务说明

通过系统培训,使学员掌握手工编织的相关理论知识和手工编织技术,能够看懂手工编织图示和编织出自己设计的作品。 在教学过程中,以理论教学为基础,注重加强基础针法的实际操作,让学员熟练掌握拖鞋、帽子、手提包、绣球等成品的编织方法。 二、课时分配 课时分配表 三、理论知识部分教学要求及内容 1、概述 1.1手工编织基本概念

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

中北大学 数据结构与算法课程设计 说明书 学院、 系:软件学院 专 业:软件工程 学生姓名: 学号: 设计题 目:教学计划编制问题 起迄日期: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);

操作系统教学计划.doc

操作系统 一、说明 (一)课程性质 本课程是计算机科学与技术专业的核心课程之一,属于必修课程。 “操作系统”是计算机系统不可缺少的组成部分,负责对系统中各种资源进行有效的管理和对各种活动进行正确的组织,使整个计算机系统协调一致且高效地工作,指挥计算机系统正常运行。操作系统基于硬件,并对硬件实施管理,并构成对所有软件运行的支持平台,给用户使用计算机而提供方便灵活友好的接口。 本课程的先修课为计算机组成原理、微机原理、数据结构、高级语言程序设计;后续课程为数据库系统原理、计算机网络、分布式系统等。 (二)教学目的 通过本课程的学习,使学生在深刻理解计算机系统整体概念的基础之上,掌握操作系统的基本内容及实现方法,掌握操作系统对计算机系统中各种资源的管理和控制功能,从而使学生具备一定的系统软件开发技能,为以后从事的研究、开发工作(如设计、分析或改进各种系统软件和应用软件)提供必要的软件基础和基本技能。 (三)教学内容 本课程内容包括:绪论,是对操作系统的一般性描述,包括什么是操作系统,操作系统在整个计算机系统的地位及其发展历史,它的功能、分类等;作业管理和linux用户接口,介绍作业和操作系统用户接口,包括作业的基本概念和作业的建立过程、linux介绍和它所提供的用户接口等;进程管理,主要介绍进程和线程的概念、进程控制、进程同步/互斥、死锁、进程间通信、线程等;处理机调度,主要介绍作业调度、进程调度、各种调度算法及其评价等;存储管理,介绍常见存储管理的方法,虚拟存储管理的实现等;linux进程和存储管理;文件系统,包括文件系统的概念、文件结构和文件存取、文件目录管理、linux文件管理等;设备管理;面向对象的操作系统和分布式操作系统。 (四)教学时数 课内学时:72 (五)教学方式 本课程的教学环节包括:课堂讲授、习题课、课堂讨论、批改作业、课外辅导、实验相结合,并逐步采用cai、网络教学等教学手段。通过本课程各个教学环节的教学,重点培养学生的自学能力、分析问题解决问题的能力。 教学方法:采用启发式教学,鼓励学生自己针对某种操作系统进行分析和研究,培养学生的自学能力,以“少而精”为原则,精选教学内容,精讲多练,调动学生学习的主观能动性。教学手段:开展电子教案、cai课件的研制、引进和应用,研制多媒体教学系统。 考试环节:考试形式采用笔试,考试题型分为:填空题、选择题、判断题、简答题、分析设计题。 二、本文 第1章绪论 教学要点: 操作系统的概念及其发展历史、分类,操作系统功能,研究操作系统的观点。本章是对操作系统的一般性描述。 教学时数:4学时 1.1 操作系统概念(0.5学时) 掌握操作系统的概念及其在计算机系统中的作用。 1.2 操作系统的发展历史(1学时)

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

课程设计报告 课程名称数据结构课程设计 课题名称教学计划编制问题 专业网络工程 班级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

信息管理与信息系统专业课程计划

信息管理与信息系统专业课程计划(本科) Teaching Plan for Information Management & Information System Major (4-year Program Undergraduate) 第一学期第二学期 课程名称学时学分课程名称学时学分 思想道德修养与法律基 础 40 2.5 大学英语读写Ⅱ48 3 大学英语读写Ⅰ48 3 大学英语听说Ⅱ(外 教授课) 32 2 大学英语听说Ⅰ(外教授 课) 32 2 高等数学A(II)80 5 高等数学A(I)80 5 线性代数B 48 3 管理学原理48 3 数据库原理及应用 (A) 64 4 JAVA程序设计基础(A)64 4 离散数学基础及应用 (A) 32 2 信管专业学科导论16 1 中国近现代史纲要32 2 第三学期第四学期课程名称学时学分课程名称学时学分大学英语读写Ⅲ48 3 大学英语读写Ⅳ48 3 文献检索32 2 宏观经济学32 2 会计学(A)48 3 概率论与数理统计B 48 3 微观经济学48 3 网页设计与网站建设 (A) 48 3 数据结构与算法分析(B)64 4 管理信息系统(A)48 3 计算机网络基础与应用 (B) 48 3 财务管理48 3 Visual C#.NET程序设计 (A) 48 3 信息资源管理48 3 第五学期第六学期课程名称学时学分课程名称学时学分统计学原理48 3 信息管理专业英语32 2 管理运筹学64 4 信息系统项目管理32 2 ERP理论与实践64 4 数据分析方法与应用48 3

电子商务(B)48 3 数据仓库与数据挖掘56 3.5 网络程序设计48 3 云计算与物联网应用48 3 模型与决策48 3 组织行为学32 2 ERP沙盘实习2周 2 市场营销学32 2 第七学期第八学期 课程名称学时学分课程名称学时学分 信息安全管理48 2 毕业鉴定1周0 IT治理48 2 信管专业毕业实 习 2周 2 IM&IS应用/开发实践10周10 信管专业毕业论 文与毕业设计 15周15 1st Semester 2nd Semester Course Name Lesson Hours Credit Course Name Lesson Hours Credit Moral Cultivation & Law Basics 40 2.5 College English Reading and WritingⅡ 48 3 College English Reading and WritingⅠ48 3 College English Listening and SpeakingⅡ 32 2 College English Listening and SpeakingⅠ32 2 Advanced Mathematics (A) II 80 5 Advanced Mathematics (A) I 80 5 Linear Algebra (B) 48 3 Principles of Management (A) 48 3 Database Principles & Applications 64 4 JAVA Programming 64 4 Discrete Mathematics Fundamentals and Applications 32 2 Introduction to Major 16 1 Outline of Chinese Modern 32 2 3rd Semester 4th Semester Course Name Lesson Hours Credit Course Name Lesson Hours Credit College English 48 3 College English 48 3

教学计划编制

教学计划编制问题 #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)//入队 {

教学计划的步骤范文.doc

【个人简历范文】 教学计划是课程设置的整体规划,它规定不同课程类型相互结构的方式,也规定了不同课程在管理学习方式的要求及其所占比例,同时,对学校的教学、生产劳动、课外活动等作出全面安排,具体规定了学校应设置的学科、课程开设的顺序及课时分配,并对学期、学年、假期进行划分,一起看看下面的教学计划的步骤吧! 教学计划的步骤 一、教学设计的基本概念 教学设计是指为了达到预期的教学目标,运用系统观点和方法,遵循教学过程的基本规律,对教学活动进行系统规划的过程。 (一)设计过程具体包括 1.分析学习需求; 2.确定教学目标; 3.设计解决方法; 4.就解决方法进行实施、反馈、调整方案,再行实施直至达到预期教学目标。 (二)设计要素具体包含 教学对象、教学内容、教学目标、教学策略、教学媒体、教学评价等基本要素。 (三)教学设计的理论基础是 现代教学理论、学习理论、信息传播学、教育技术学和系统科学方法。 (四)教学设计与写教案的关系 是继承与发展的关系。 (五)提倡教学设计的主要目的 1.提高课堂的教学效率和教学效果; 2.提高教师的专业素质和教学技能; 3.促进教学研究和教学改革的深化。

二、教学设计的基本理念 一个好的教学设计方案必须体现现代教学观; 教学观通常是指教育工作者对一些重大的教育现象、问题或事件的比较稳定的看法,它集中反映了教育工作者的教育价值取向。 当代的教育改革都是以教学观念的变革为先导的,故此,转变教学观念已成为每一个教育工作者必须面临的首要问题。 当前必须树立的教学观念有 1.素质教育观 ①面向全体、全面发展从三个方面七项基本素质构建素质教育培养目标。 三个方面是身体、心理、文化科学; 七项基本素质是身体素质、心理素质、道德素质、文化素质、审美素质、劳动素质交往素质; 七项基本素质分为四个层次 第一层次身体素质; 第二层次心理素质; 第三层次道德素质、文化素质、审美素质; 第四层次劳动素质、交往素质。 ②承认差异、因材施教、发展个性 每个人的主观能动性是不同的,因此,人的差异性是绝对的。 要求通过有效的教学,使不同程度的学生都能在各自原有的基础上得到提高和发展。同时,潜能得到发挥,个性得到发展; ③重点培养学生的创新精神和实践能力。 在教学上要着力为学生营造一种生动活泼,思维活跃、平等和谐、积极参与和探索的教学氛围以及教学情景; ④培养学生学会学习、学会生活、学会做人、学会生存。

城轨运营管理教学计划百度

城市轨道交通运营管理专业教学计划 一、培养目标 本专业培养德、智、体全面发展,具备城市轨道交通运营管理相关的管理理论和法律知识,掌握客运组织、客运服务、行车组织等专业知识,具备城市轨道交通客运组织与服务、票务组织、行车指挥等业务技能,从事轨道交通运输第一线站务管理、行车指挥、客运组织与服务、票务管理等业务的高端技能型专门人才。 二、适用范围 (一)培养方式:函授(业余)专科教育 (二)修业年限:三年 三、人才培养规格 (一)知识结构 1、掌握毛泽东思想和中国特色社会主义理论体系概论等政治理论知识; 2、掌握实用英语、高等数学、机械制图等文化基础知识; 3、掌握电工基础、电子技术等专业基础知识; 4、掌握城市轨道交通客运组织、城市轨道交通行车组织等专业知识; 5、了解本专业技术的新发展。 (二)能力结构 1.基础能力 (1)掌握“必需、够用”的自然科学基础知识,具有独立分析问题解决问题的能力; (2)掌握计算机应用基础、高等数学等基本知识,具有数值分析、逻辑推理的能力; (3)学习实用英语,培养听、说、写的基本技能,人际和人机沟通技能及基础英语应用能力。 2.专业能力 (1)具有正常情况下的行车组织能力; (2)具有行车设备故障情况下的应急技能; (3)具有大客流情况下的客运服务应急技能; (4)能处理正常、降级运营情况下的乘客事务; (5)会操作TVM、GATE、TCM、BOM,能判断、处理GATE、TVM一般故障; (6)掌握售票技能和报表填写技能、具有安全指标分析技能。 (三)素质结构

1. 具有认真细致、精益求精的工作态度与作风; 2.具有诚信意识和责任感; 3.具有良好的身体素质; 4.具有沉重、冷静、遇事不惊的素质; 5. 具有顾客至上和良好的服务意识; 6.具有大局观念和全局意识。 四、核心课程培养目标及实施分析 本专业的核心课程是:《自动售检票系统及票务管理》, 《城轨行车组织》, 《城轨客运组织》和《城轨安全与应急处理》,各课程的培养目标如下表所示:

教学计划编制

教学计划编制问题

实现提示 可设学期总数不超过12,课程总数不超过100。如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。应建立内部课程序号与课程号之间的对应关系。 #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; }

教学计划编制系统

6 ******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2011年春季学期 数据结构课程设计 题目:教学计划编制问题 专业班级:软件一班 姓名: 学号: 指导教师: 成绩:_____________________

前言 本学期开设了算法与数据结构,通过学习算法与数据结构,大家对编程有了更多的了解,为了让大家将自己所学的知识应用到实际当中,学校开设了算法与数据结构课设,通过这次课设大家可以更好地将c语言应用到实际当中,而且可以更好的掌握算法与数据结构,将数据结构和c语言有效的结合起来,使大家的编程能力得到更大的提高。

目录 摘要------------------------------------------------------------------------------------1 关键字----------------------------------------------------------------------------1 正文------------------------------------------------------------------------------------2 1. 采用类c语言定义相关的数据类型-----------------------------------------2 2.各模块的伪码算法-------------------------------------------------------------3 3 函数调用关系图-----------------------------------------------------------------6 4 试调分析--------------------------------------------------------------------------7 5 测试结果--------------------------------------------------------------------------8 总结--------------------------------------------------------------------------------9 参考文献------------------------------------------------------------------------------9 致谢---------------------------------------------------------------------------------10 附件Ⅰ 1.源程序[带注释](结构体文件)---------------------------------------------------------10 2.运行结果----------------------------------------------------------------------------28

相关文档
最新文档