C++编“排课程序”

来源:百度知道 编辑:UC知道 时间:2024/09/28 10:20:22
这个题目较难,高手来帮忙吧~悬赏100分,急用
描述:每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2…,n,其中1位最高的期望值。课程也有优先级,1,2…,n,用来决定将课程分给教师的顺序,其中1时最高的优先级。设计一个程序针对某些课程给某些教师进行排课。
要求:(1) 程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级)、教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中
(2) 程序根据课程的优先级以及教师对课程的期望值进行排课。为了公平起见,程序随机分配课程,如果10门课程都有优先级1,程序以随机的顺序将这些课程分给教师,如果10位教师对某门课程的期望值为1,程序应从10位教师中随机选择一个。
(3) 最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。

#include<iostream>
#include<cstdlib>
#include<fstream>
#include<ctime>
#define N 10
#define M 20
#define SIZE 40
using namespace std;

typedef struct tcnode
{
char name[20];
int ipri;
}tclist,*ptclist;

typedef struct node
{
char name[20];
char num[20];
int work_time;
tclist tc[M];
char cbuf[SIZE];
struct node *next;
}tlist,*ptlist;

typedef struct Node
{
char name[20];
char num[20];
int week_time;
int all_time;
int priority;
bool mc; //是否被选
struct Node *next;
}clist,*pclist;

class teacher
{
public:
teacher();
~teacher();
void initdata();
void save();
friend void print(teacher&,ptlist);
tlist