ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:18.84KB ,
资源ID:21891596      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/21891596.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(教学计划编制文档格式.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

教学计划编制文档格式.docx

1、计算机原理C11C7编译原理C5,C3C8操作系统C3,C6C9高等数学C10线性代数普通物理C12数值分析C9,C10,C1实现提示可设学期总数不超过12,课程总数不超过100。如果输入的先修课程号不在该专业开设的课程序列中,则作为错误处理。应建立内部课程序号与课程号之间的对应关系。#include stdio.hstdlib.h#define null 0#define MAXNODE 64 /最大课程个数typedef struct char c3; cid; /课程号typedef struct Course cid id3; char name30; /课程名 float xf; /

2、学分 Course; /课程typedef struct PreCourse int adjvex; /课程在数组中的下标 struct PreCourse *pre; /指向下一先修的课程节点PreCourse;/先修的课程节点typedef struct Course course;/课程 PreCourse *firstnext; /指向第一个先修的课程节点CourseNode;/课程节点 CourseNode coursesMAXNODE; /邻接表 int xqs;/学期总数 int num; /课程的数目 float xfsx;/学分上限AlGraph;/课程图 int dataM

3、AXNODE;/队中元素 int f,r;/队头r 队尾fqueue;int IsCricle=0;/判断是否环 1表示是 0表示不是int jxq;/用于计算学期的/void queueinit(queue *q)/队初始化 q-f=q-r=0;void queuein(queue *q,int x)/入队 if(q-r+1)%MAXNODE=q-f) printf(队满n); exit(0); r=(q-r+1)%MAXNODE;dataq-r=x;int queueout(queue *q)/出队 if(q-f=q-r)队空nf=(q-f+1)%MAXNODE; return q-f;i

4、nt queueempty(queue *q)/队判空 1为空 return 1; else return 0;void creatpre(AlGraph *CGraph)/建立先修关系 system(cls/用来清屏 int choice; fflush(stdin);/清空输入流 int i,j,n;/临时变量 PreCourse *p,*q;/临时变 printf(n建立先修关系:nn请输入每一门课程号的编号: for(i=0;inum;i+) if(i%4=0)printf(%d) ,i+1);%st,CGraph-coursesi.course.id);n请根据以上的编号,输入每一门

5、课程的先修课程(输入0 表示没有或结束):%s的先修课程: scanf(%d,&j); n=0; while(j) while(jnum|j=i+1) if(j=i+1) printf(先修课程号不能是本课程号 else 输入的先修课程号不在该专业开设的课程序列中 fflush(stdin); printf(重新输入: scanf( p=(PreCourse *)malloc(sizeof(PreCourse); p-adjvex=j-1;pre=null; if(n=0) CGraph-coursesi.firstnext=p; q=CGraph-coursesi.firstnext; n+

6、; else q-pre=p; q=p; scanf( 1)重新建立先修关系 2)确定n请选择: scanf(choice); if(choice=1) creatpre(CGraph); jxq=0;AlGraph input()/输入并建立课程图 AlGraph CGraph; int xqzs=0,kczs=0;/学期总数:xqzs 专业共开设课程数:kczs int i,j; float xf,xfsx=0;/临时变量xf 学分上限:xfsx教学计划编制nn输入参数:1、学期总数:xqzs); CGraph.xqs=xqzs;2、专业共开设课程数:kczs); CGraph.num=k

7、czs;/课程数3、学分上限(每个学期的学分上限都一样):%fxfsx); CGraph.xfsx=xfsx;4、每门课的课程号(固定占3位的字母数字串)、课程名、学分:kczs; j=0; fflush(stdin);课程号:%s,CGraph.coursesi.course.id);课程名:,CGraph.coursesi.course.name);学分:xf); while(xfxfsx|xfadjvex;%s ,CGraph.coursesn.course.id); p=p-pre; j+; if(j=0)printf(无void findoutdegree(AlGraph *CGra

8、ph,int outdegree)/找出度数,即找出每一门课程的先修课数 int i; outdegreei=0; p=CGraph- outdegreei+;void judgingcricle(AlGraph *CGraph,queue *q2)/判断是否有环 int outdegreeMAXNODE;/出度 int i,m,j,pd=0; float xf=0; queue q; queueinit(&q);/队初始化 findoutdegree(CGraph,outdegree);/找出度 if(outdegreei=0&(xf+CGraph-coursesi.course.xf)xf

9、sx)/出度为零的,并且学分还没达到学分上限的入队,即没有先修课的课程入队 queuein(&q,i);outdegreei-;xf+=CGraph-coursesi.course.xf; m=0;xf=0;queuein(&q,-1);jxq+; while(1) i=queueout(& queuein(q2,i); if(i!=-1) m+; for(j=0;jj+) if(j!=i) if(outdegreej=0&coursesj.course.xf)coursesj.firstnext; while(p) if(p-adjvex=i) outdegreej-; if(outdegr

10、eej=0&xfsx)/出度为零的入队 queuein(&pd=1; p=p- else if(pd)pd=0;else break; if(jxqxqs)printf(n错误报告:n在%d学期内是无法修完这些课程nxqs);exit(0); if(m0)存在循环,因此课程安排不了n IsCricle=1;void layout1(AlGraph *CGraph,queue *q)/编排1/n学生在各学期中的学习负担尽量均匀: int i,j,xq=1,cxq=CGraph-xqs-jxq,ck20; float xf,m=CGraph-num/CGraph-xqs*1.0f;/m是每学期要学

11、的课程数 queue q1=*q;/ while(!queueempty(&q1)20;i+)cki=-1;m+1; j=queueout(&q1); if(j=-1)break; cki=j; if(ck0!n第%d学期学:,xq+); xf=0;i=0; do j=cki; %s coursesj.course.id);i+; while(cki!=-1);获得学分是%.2fn,xf);void layout2(AlGraph *CGraph,queue *q)/编排2n课程尽可能地集中在前几个学期中: int i,j,xq=1;float xf;) j=queueout(& if(j!

12、printf( else printf(获得学分是%.2fn第%d学期学:,xf,xq+); while(xq无tvoid main() /用来存放已编排好的课程/课程图 CGraph=input();/输入并建立课程图 output(CGraph);/输出先修关系 judgingcricle(&CGraph,&/判断是否有环 if(!IsCricle)请选择编排策略:1.使学生在各学期中的学习负担尽量均匀;2.使课程尽可能地集中在前几个学期中。 / scanf( / fflush(stdin); / if(choice=1) layout1(&/编排1 / else layout2(&/编排2

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1