课程设计用c++设计一个排课程序

课程设计用c++设计一个排课程序
课程设计用c++设计一个排课程序

课程设计论文

题目:用 c++设计一个排课程序学院:

专业名称:电子科学与技术

班级学号:

学生姓名:

指导教师:

2013年 6 月

目录

一、课题背景 (3)

1.1 选题的意义 (4)

二、课题要求 (4)

2.1 设计功能要求 (4)

2.2报告要求 (5)

三、系统总体方案: (5)

3.1 方案描述 (5)

3.3 各功能模块: (6)

四、源程序代码 (7)

五、测试数据及结果 (24)

六、总结 . (25)

参考书籍 (26)

致谢 . (26)

摘要:随着社会经济的迅速发展和科学技术的全面进步,计算机

事业的飞速发展,以计算机与通信技术为基础的信息系统正处于

蓬勃发展的时期。随着经济文化水平的显著提高,人们对生活质

量及工作环境的要求也越来越高。如何通过计算机为我们完成更

多的事情,进而达到办公自动化和优化日常工作的目的,也就成

了一个大众化的课题。作为计算机应用的一部分,使用计算机对信息进行管理 ,具有与手工管理所无法比拟的优点.例如 :检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

关键词:计算机c++ 程序语言排课系统

一、课题背景

1.1 实际应用的需要

近几年来,随着各高校办公自动化工作的推进,教务管理自

动化也被摆上了日程。在教务工作中占有很大比重的一项就是每

学期的课程排定工作。由于教工、教室和设备的相对紧张,如何

进行合理地安排和分配,从而充分利用教学资源是我们不得不面

对的问题。而人工进行排课不仅任务重,效率低,而且易出错,

难于维护,想要排出一张各方面都满意的课表非常困难。并且随

着高校规模的扩大手工排课的难度和工作量呈几何级数增长。学

校教务的管理作为高校教育信息化工作中的一项重要工作,如何

构建一个具有开放性、实用性和灵活性的平台,是一个值得探讨

的课题。其中,作为学校教务重点环节之一的排课系统也尤为重要。

1.1 选题的意义

排课系统正是为了减轻教务人员的工作量,实现教务工作自

动化,解决排课这一老大难问题的教务办公软件。尤其针对高校

的排课一直都没有很好的解决方法,但是此问题又是每个学校在

每个学期都会碰到的必要行政作业。本文在相关理论的指导下,

在分析以往一些排课软件的基础上,提出一个高校通用排课系统

的设计方法,并对一些具体的问题给出相应解决方案。但是,由

于技术、经验的有限和数据量过大,目前我们很难做出一个满足

所有需要的排课系统。因为它不仅要考虑到教室冲突问题和教师

冲突问题,还要考虑到分段课、单双周课时的资源利用问题;另

外由于高校的教学特点,还要处理合班课、分班课、体育课与选

修课等特殊课程。针对这些问题,在此专门对数据库设计作了一

些探索,并于架构的选择和模块的划分上经过精心调整,在菜单

的设计上也体现了人性化的操作。该设计贴近用户需求,功能完整,架构合理,并用大量的框图模型体现了系统的规划。该系统

实现上机时间的安排,课程的安排,教室的安排,以及它们之间

的不冲突和资源的高效利用;这更切合学院教学需要,降低了排

课管理工作的工作量和节省了时间,同时课程安排完成后,学院

可迅速获得课表情况信息,为教学工作带来方便。本系统界面友好,操作简单,使用方便。

二、课题要求

2.1 设计功能要求

程序运行时,用户输入教师信息(姓名、教师号、工作量)、

课程信息(课程名、课程号、周学时、总学时、优先级)、教师对

所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应

保存在文件中,程序根据课程的优先级以及教师对课程的期

望值进行排课。为了公平起见,程序随机分配课程,如果10门课

程都有优先级,程序以随机的顺序将这些课程分给教师,如果10 位教师对某门课程的期望值为1,程序应从10位教师中随机选择一个。最后输出排课情况,即某位老师上某门课程,以及某位老师

的工作量。

测试数据:程序应能实现对不少于 20门课和 10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。

2.2 报告要求

1.封面

2.课程设计报告:

3.⑴ 系统总体方案

⑵ 设计思路和主要步骤

⑶ 各功能模块和流程图

⑷ 设计代码

⑸ 心得体会和参考资料

三、系统总体方案:

3.1 方案描述

某学校每位教师都有教学工作量,教师对他所希望讲授的课程表

达为一个期望值, 1,2, , n,其中 1是最高的期望值。课程也有优

先级, 1,2, , n,用来决定将课程分给教师的顺序,其中 1是高的

优先级。设计一个程序针对某些课程给某些教师进行排课。

要求:

(一)程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级),

教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有

信息应保存在文件中。

(二)程序根据课程的优先级以及教师对课程的期望值进行排

课。最后输出排课情况,即某位老师上某门课程,以及某位老师

的工作量。

(三)可以实现对文件的修改。

(四)可以在各个界面中实现退出以及进入的循环。

(五)可以退出本系统。

(六)程序应能实现对不少于 20门课和 10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。

3.2 系统设计框图:

3.3 各功能模块:

命令对应函数功能描述

1input_teacher输入数据并写入文件

2input_course输入数据并写入文件

3input_num输入数据并写入文件

4arranging排课

5print输出排课结果

6print_help帮助

7print_teacher输出文件信息8print_course输出文件信息9print_num输出文件信息10change修改文件信息

四、源程序代码Teacher.h:

#include

#include

class teacher

{ private:

char name[11];

int id;

int work_load;

int total;

public:

teacher();

void set_teacher(char *pn,int i,int w);

void set_total(int t)

{ total=t; }

char *get_name()

{return name;}

int get_id()

{return id;}

int get_work_load()

{return work_load;}

int get_total()

{return total;}

void print();

};

teacher::teacher()

{ strcpy(name,"无");

id=0;

work_load=0;

total=0; }

void teacher::set_teacher(char *pn,int i,int w) { strcpy(name,pn);

id=i;

work_load=w; }

void teacher::print()

{ cout<<"姓名:"<

cout<<"编号:"<

cout<<" 工作量 :"<

}

Course.h:

#include

class course

{ private:

char course_name[15];

int course_id;

int week_hour;

int total_hour;

int N;

public:

course(void);

void set_course(char *pname,inti,int w,int t,intn) char *get_course_name()

{return course_name;}

int get_course_id()

{return course_id;}

int get_week_hour()

{return week_hour;}

int get_total_hour()

{return total_hour;}

int get_N()

{return N;}

void print();

};

course::course(void)

{ strcpy(course_name,"无");

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

周学时: "<

学时: "<

级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in

t n)

{ strcpy(course_name,pname); course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<" cout<<"

cout<<"

cout<<"

cout<<"

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9 课程名: "<

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9

course_id=0;

week_hour=0;

total_hour=0;

N=0; }

void course::set_course(char *pname,int i,int w,int t,in t n)

{ strcpy(course_name,pname);

course_id=i;

week_hour=w;

total_hour=t;

N=n; }

void course::print()

{ cout<<" 课程名: "<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

void course::print()

{ cout<<"课程名:"<

cout<<" 编号 :"<

cout<<" 周学时: "<

cout<<" 总学时: "<

cout<<" 优先级: "<

}

{ x=0;

y=0; }

void set_x(int a)

{ x=a; }

void set_y(int b)

{ y=b; }

int get_x()

{return x;}

int get_y()

{return y;}

};

排课 .cpp:

#include

9

相关主题
相关文档
最新文档