国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

教學(xué)計(jì)劃編制問(wèn)題

2019-11-17 05:34:41
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
問(wèn)題描述;大學(xué)的每個(gè)專(zhuān)業(yè)都要編制教學(xué)計(jì)劃。假設(shè)任何專(zhuān)業(yè)都有固定的學(xué)習(xí)年限,每學(xué)年含兩學(xué)期,每學(xué)期的時(shí)間長(zhǎng)度和學(xué)分上限都相等。每個(gè)專(zhuān)業(yè)開(kāi)設(shè)的課程都是確定的,而且課程的開(kāi)設(shè)時(shí)間的安排必須滿(mǎn)足先修關(guān)系。每個(gè)課程的先修關(guān)系都是確定的,可以有任意多門(mén),也可以沒(méi)有。每一門(mén)課程恰好一個(gè)學(xué)期。試在這樣的情況下設(shè)置一個(gè)教學(xué)計(jì)劃編制程序?;疽螅海?):輸入?yún)?shù):學(xué)期總數(shù),一學(xué)期的學(xué)分上限,每門(mén)課的課程號(hào),學(xué)分,直接先修關(guān)系的課程號(hào)。(2):課程號(hào)盡可能的集中在前幾個(gè)學(xué)期中。(3):若無(wú)解,則報(bào)告錯(cuò)誤信息;否則見(jiàn)教學(xué)計(jì)劃輸入到指定的文件中。計(jì)劃的表格格式自行設(shè)計(jì)。以下為我設(shè)計(jì)的一段程序,其中有一些錯(cuò)誤,并且將教學(xué)計(jì)劃輸入到指定的文件中這一要求沒(méi)有完成,望一并指正和修改,因?yàn)樵搯?wèn)題為我的課程設(shè)計(jì),十分的急迫,我將表示無(wú)限的感激并永遠(yuǎn)的支持該網(wǎng)站!/* 輸出有向圖的一個(gè)拓?fù)湫蛄屑捌鋺?yīng)用問(wèn)題的算法實(shí)現(xiàn)程序 */
 #include<string.h>
 #include<ctype.h>
 #include<malloc.h> // malloc()等
 #include<limits.h> // INT_MAX等
 #include<stdio.h> // EOF(=^Z或F6),NULL
 #include<stdlib.h> // atoi()52
 #include<io.h> // eof()
 #include<math.h> // floor(),ceil(),abs()
 #include<PRocess.h> // exit()
 #include<iostream.h> // cout,cin
 // 函數(shù)結(jié)果狀態(tài)代碼
 #define TRUE 1
 #define FALSE 0
 #define OK 1
 #define ERROR 0
 #define INFEASIBLE -1
 typedef int Status; // Status是函數(shù)的類(lèi)型,其值是函數(shù)結(jié)果狀態(tài)代碼,如OK等
 typedef int Boolean; // Boolean是布爾類(lèi)型,其值是TRUE或FALSE
 #define MAX_NAME 10
 /* 頂點(diǎn)字符串的最大長(zhǎng)度 */
 #define MAXCLASS 100
 int Z=0;
 int X=0;
 int xqzs,q=1,xfsx;
 typedef int InfoType;
 typedef char VertexType[MAX_NAME]; /* 字符串類(lèi)型 */
 /* 圖的鄰接表存儲(chǔ)表示 */
 #define MAX_VERTEX_NUM 100
 typedef enum{DG}GraphKind; /* {有向圖,有向網(wǎng),無(wú)向圖,無(wú)向網(wǎng)} */
 typedef strUCt ArcNode
 {
   int adjvex; /* 該弧所指向的頂點(diǎn)的位置 */
   struct ArcNode *nextarc; /* 指向下一條弧的指針 */
   InfoType *info; /* 網(wǎng)的權(quán)值指針) */
 }ArcNode; /* 表結(jié)點(diǎn) */
 typedef struct
 {
   VertexType data; /* 頂點(diǎn)信息 */
   ArcNode *firstarc; /* 第一個(gè)表結(jié)點(diǎn)的地址,指向第一條依附該頂點(diǎn)的弧的指針 */
 }VNode,AdjList[MAX_VERTEX_NUM]; /* 頭結(jié)點(diǎn) */
 typedef struct
 {
   AdjList vertices,verticestwo;
   int vexnum,arcnum; /* 圖的當(dāng)前頂點(diǎn)數(shù)和弧數(shù) */
   int kind; /* 圖的種類(lèi)標(biāo)志 */
 }ALGraph;
/*  圖的鄰接表存儲(chǔ)的基本操作 */
 int LocateVex(ALGraph G,VertexType u)
{ /* 初始條件: 圖G存在,u和G中頂點(diǎn)有相同特征 */
   /* 操作結(jié)果: 若G中存在頂點(diǎn)u,則返回該頂點(diǎn)在圖中位置;否則返回-1 */
   int i;
   for(i=0;i<G.vexnum;++i)
     if(strcmp(u,G.vertices[i].data)==0)
       return i;
   return -1;
}
Status CreateGraph(ALGraph *G)
 { /* 采用鄰接表存儲(chǔ)結(jié)構(gòu),構(gòu)造沒(méi)有相關(guān)信息的圖G(用一個(gè)函數(shù)構(gòu)造4種圖) */
   int i,j,k;
   VertexType va,vb;
   ArcNode *p;
  
   printf("請(qǐng)輸入教學(xué)計(jì)劃的課程數(shù): ");
   scanf("%d",&(*G).vexnum);
   printf("請(qǐng)輸入拓?fù)渑判蛩纬傻恼n程先修關(guān)系的邊數(shù): ");
   scanf("%d",&(*G).arcnum);
   printf("請(qǐng)輸入%d個(gè)課程的代表值(<%d個(gè)字符):/n",(*G).vexnum,MAX_NAME);
   for(i=0;i<(*G).vexnum;++i) /* 構(gòu)造頂點(diǎn)向量 */
   { scanf("%s",(*G).vertices[i].data);
     (*G).vertices[i].firstarc=NULL;
   }
   printf("請(qǐng)輸入%d個(gè)課程的學(xué)分值(<%d個(gè)字符):/n",(*G).vexnum,MAX_NAME);
   for(i=0;i<(*G).vexnum;++i) /* 構(gòu)造頂點(diǎn)向量 */
   {scanf("%s",(*G).verticestwo[i].data);
   }
   printf("請(qǐng)順序輸入每條弧(邊)的弧尾和弧頭(以空格作為間隔):/n");
   for(k=0;k<(*G).arcnum;++k) /* 構(gòu)造表結(jié)點(diǎn)鏈表 */
   { scanf("%s%s",va,vb);
     i=LocateVex(*G,va); /* 弧尾 */
     j=LocateVex(*G,vb); /* 弧頭 */
     p=(ArcNode*)malloc(sizeof(ArcNode));
     p->adjvex=j;
     p->info=NULL; /* 圖 */
     p->nextarc=(*G).vertices[i].firstarc; /* 插在表頭 */
     (*G).vertices[i].firstarc=p;
    }
   return OK;
 }
void Display(ALGraph G)
 { /* 輸出圖的鄰接矩陣G */
   int i;
   ArcNode *p;
   switch(G.kind)
   {case DG: printf("有向圖/n");
   }
   printf("%d個(gè)頂點(diǎn):/n",G.vexnum);
   for(i=0;i<G.vexnum;++i)
     printf("%s ",G.vertices[i].data);
   printf("/n%d條弧(邊):/n",G.arcnum);
   for(i=0;i<G.vexnum;i++)
   {
     p=G.vertices[i].firstarc;
     while(p)
     {printf("%s→%s  ",G.vertices[i].data,G.vertices[p->adjvex].data);
      p=p->nextarc;
     }
     printf("/n");
   }
 }
void FindInDegree(ALGraph G,int indegree[])
 { /* 求頂點(diǎn)的入度,算法調(diào)用 */
   int i;
   ArcNode *p;
   for(i=0;i<G.vexnum;i++)
     indegree[i]=0; /* 賦初值 */
   for(i=0;i<G.vexnum;i++)
   {
     p=G.vertices[i].firstarc;
     while(p)
     { indegree[p->adjvex]++;
       p=p->nextarc;
     }
   }
 }
 typedef int SElemType; /* 棧類(lèi)型 */
 /*棧的順序存儲(chǔ)表示 */
 #define STACK_IN99v_SIZE 10 /* 存儲(chǔ)空間初始分配量 */
 #define STACKINCREMENT 2 /* 存儲(chǔ)空間分配增量 */
 typedef struct SqStack
 {
   SElemType *base; /* 在棧構(gòu)造之前和銷(xiāo)毀之后,base的值為NULL */
   SElemType *top; /* 棧頂指針 */
   int stacksize; /* 當(dāng)前已分配的存儲(chǔ)空間,以元素為單位 */
 }SqStack; /* 順序棧 */
 /* 順序棧的基本操作 */
 Status InitStack(SqStack *S)
 { /* 構(gòu)造一個(gè)空棧S */
   (*S).base=(SElemType *)malloc(STACK_IN99v_SIZE*sizeof(SElemType));
   if(!(*S).base)
     exit(OVERFLOW); /* 存儲(chǔ)分配失敗 */
   (*S).top=(*S).base;
   (*S).stacksize=STACK_IN99v_SIZE;
   return OK;
}
Status StackEmpty(SqStack S)
 { /* 若棧S為空棧,則返回TRUE,否則返回FALSE */
   if(S.top==S.base)
     return TRUE;
   else
     return FALSE;
}
 Status Pop(SqStack *S,SElemType *e)
 { /* 若棧不空,則刪除S的棧頂元素,用e返回其值,并返回OK;否則返回ERROR */
   if((*S).top==(*S).base)
     return ERROR;
   *e=*--(*S).top;
   return OK;
 }
 Status Push(SqStack *S,SElemType e)
 { /* 插入元素e為新的棧頂元素 */
   if((*S).top-(*S).base>=(*S).stacksize) /* 棧滿(mǎn),追加存儲(chǔ)空間 */
   {
     (*S).base=(SElemType *)realloc((*S).base,((*S).stacksize+STACKINCREMENT)*sizeof
[1] [2] 
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 汉源县| 左云县| 额济纳旗| 牡丹江市| 肇庆市| 辽源市| 桂阳县| 什邡市| 仙游县| 桂平市| 普兰县| 桦甸市| 抚宁县| 额济纳旗| 平湖市| 安溪县| 保康县| 鲜城| 正定县| 游戏| 岑巩县| 锦屏县| 大悟县| 绥芬河市| 福鼎市| 青铜峡市| 延吉市| 辽源市| 凤台县| 龙井市| 朝阳区| 芜湖市| 天祝| 仪征市| 莆田市| 静宁县| 余姚市| 洛川县| 金塔县| 长葛市| 涟源市|