-
大小: 339KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-06-07
- 語(yǔ)言: 其他
- 標(biāo)簽:
資源簡(jiǎn)介
【問(wèn)題描述】
大學(xué)的每個(gè)專業(yè)都有制定教學(xué)計(jì)劃。假設(shè)任何專業(yè)都有固定的學(xué)習(xí)年限,每個(gè)學(xué)年有兩個(gè)學(xué)期,每個(gè)學(xué)期的時(shí)間長(zhǎng)度和學(xué)分上限值均相等。每個(gè)專業(yè)開(kāi)設(shè)的課程都是確定的,并且課程在開(kāi)設(shè)時(shí)間的安排必須滿足先修關(guān)系。每門課程有哪些先修課程都是確定的,可以有任意多門,也可以沒(méi)有。每門課恰好占一個(gè)學(xué)期。試在這樣的前提下設(shè)計(jì)一個(gè)教學(xué)計(jì)劃編制程序。
【基本要求】
(1)輸入?yún)?shù)包括:學(xué)期總數(shù),一個(gè)學(xué)期的學(xué)分上限,每門課的課程號(hào)(固定占3位的字母數(shù)字串)、學(xué)分和直接先修課的課程號(hào)。
(2)允許用戶指定下列兩種編排策略之一:一是使學(xué)生在各學(xué)期中的學(xué)習(xí)負(fù)擔(dān)盡量均勻;二是使課程盡可能地集中在前幾個(gè)學(xué)期中。
(3)若根據(jù)給定的條件問(wèn)題無(wú)解,則報(bào)告適當(dāng)?shù)男畔ⅲ环駝t將教學(xué)計(jì)劃輸出到用戶指定的文件中。計(jì)劃的表格格式自行設(shè)計(jì)。

代碼片段和文件信息
#include?
#include?
#include?
#define?MAX_VERTEX_NUM?100?//最大課程總數(shù)
using?namespace?std;
struct?ArcNode
{
???????int?adjvex;//邊的終點(diǎn)
???????ArcNode?*nextarc;//指向下一條邊
};
typedef?struct?VNode
{
???????string?name;????????//課程名
???????string?classid;??????//課程號(hào)
???????int?credit;?????????//課程的學(xué)分
???????int?indegree;???????//該結(jié)點(diǎn)的入度
???????int?state;??????????//該節(jié)點(diǎn)的狀態(tài)
???????ArcNode?*firstarc;?//指向第一條依附該頂點(diǎn)的邊
}VNodeAdjList[MAX_VERTEX_NUM];//最初設(shè)定為100門課
typedef?int?ElemType;
struct?ALGraph
{
???????AdjList?vertices;
???????int?vexnum?arcnum;
};
class?stack
{
????private:
????struct?node
????{
????????int?data;
????????node?*next;
????????node(const?int?&xnode?*N=NULL)
????????{
????????????data=x;
????????????next=N;
????????}
????????node():next(NULL){}
????????~node(){};
????};
????node?*top_p;
?public?:
????stack();
????~stack();
????bool?isEmpty()?const;
????void?push(const?int?&x);
????int?pop();
};
stack::stack()
{
????top_p=NULL;
}
stack::~stack()
{
????node?*tmp;
????while(top_p!=NULL)
????{
????????tmp=top_p;
????????top_p=top_p->next;
????????delete?tmp;
????}
}
bool?stack::isEmpty()?const
{
????return?top_p==NULL;
}
void?stack::push(const?int?&x)
{
????top_p=new?node?(xtop_p);
}
int?stack::pop()
{
????node?*tmp=top_p;
????int?x=tmp->data;
????top_p=top_p->next;
????delete?tmp;
????return?x;
}
void?CreatGraph(ALGraph?*G)//構(gòu)件圖
{???int?i?m?n;
????string?firstsecond;
????ArcNode?*p;
????cout<<“請(qǐng)輸入需要編排課程總數(shù):“< ????cin>>G->vexnum;
????for(?i=1;i<=G->vexnum;i++)
????{???cout<<“請(qǐng)輸入課程名“< ????????cin>>G->vertices[i].name;
????????cout<<“請(qǐng)輸入課程號(hào)“< ????????cin>>G->vertices[i].classid;
????????cout<<“請(qǐng)輸入該課程的學(xué)分“< ?????????cin>>G->vertices[i].credit;
????????G->vertices[i].indegree=0;
????????G->vertices?[i].state=0;
????????G->vertices[i].firstarc=NULL;
????}
????cout<<“請(qǐng)輸入課程先修關(guān)系總數(shù):“< ????cin>>G->arcnum;
????cout<<“請(qǐng)順序輸入每個(gè)課程先修關(guān)系(先修課程在前并以空格作為間隔):“< ????for?(i?=?1;?i?<=?G->arcnum;?i++)
????{
????????cout< ????????cin>>first>>second;
????????for(int?j=1;j<=G->vexnum;j++)
????????{
????????????if(first==G->vertices[j].classid)
????????????{
????????????????n=j;
????????????????break;}
????????}
????????for(int?j=1;j<=G->vexnum;j++)
????????{
????????????if(second==G->vertices[j].classid)
????????????{
????????????????m=j;
????????????????break;}
????????}
????????p=new?ArcNode;
????????p->adjvex?=?m;
????????p->nextarc?=?G->vertices[n].firstarc;//插在表頭
????????G->vertices[n].firstarc?=?p;
????}
}
void?FindInDegree(ALGraph?G?int?indegree[])//求圖中各節(jié)點(diǎn)的入度
{
????int?i;
????for?(i?=?1;?i?<=?G.vexnum;?i++)
????????indegree[i]?=?0;
????for?(i?=?1;?i?<=?G.vexnum;?i++)
????{
????????while?(G.vertices[i].firstarc)
????????{
????????????indegree[G.vertices[i].firstarc->adjvex]++;
????????????G.vertices[i].firstarc?=?G.vertices[i].firstarc
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件???????1050??2019-01-09?12:03??教學(xué)計(jì)劃編制問(wèn)題\4.1.2.cbp
?????文件???????8370??2019-01-09?17:15??教學(xué)計(jì)劃編制問(wèn)題\main.cpp
?????文件?????413422??2019-05-22?14:10??教學(xué)計(jì)劃編制問(wèn)題\p4_1實(shí)驗(yàn)報(bào)告.docx
?????目錄??????????0??2019-05-22?14:10??教學(xué)計(jì)劃編制問(wèn)題
-----------?---------??----------?-----??----
???????????????422842????????????????????4
評(píng)論
共有 條評(píng)論