教师排课系统课程设计报告(C++)
排课软件的设计c课程设计
![排课软件的设计c课程设计](https://img.taocdn.com/s3/m/64445ab4e109581b6bd97f19227916888486b933.png)
排课软件的设计c 课程设计一、教学目标本课程旨在让学生了解和掌握排课软件的设计原理和基本方法,培养学生运用C语言进行程序设计的技能,提高学生解决实际问题的能力。
具体目标如下:1.知识目标:使学生了解排课软件的设计背景和意义,掌握C语言的基本语法、数据类型、运算符、控制结构等,了解软件开发的基本流程。
2.技能目标:培养学生使用C语言编写程序的能力,能独立完成简单的排课软件设计,提高学生的编程实践能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,激发学生创新思维和团队合作精神,使学生认识到排课软件在教育领域的重要性。
二、教学内容本课程的教学内容主要包括排课软件的设计原理、C语言的基本语法、数据类型、运算符、控制结构、函数等。
具体安排如下:1.排课软件的设计原理:介绍排课软件的作用、设计原则和基本流程。
2.C语言基础知识:讲解C语言的基本语法、数据类型、运算符、控制结构等。
3.函数:介绍函数的定义、声明和调用,讲解常用的库函数及其应用。
4.软件开发实践:以实际项目为案例,引导学生运用C语言进行排课软件的设计与实现。
三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:讲解排课软件的设计原理、C语言的基本语法、数据类型、运算符、控制结构等理论知识。
2.案例分析法:分析实际项目案例,引导学生运用C语言进行排课软件的设计与实现。
3.实验法:安排实验室实践环节,让学生动手编写程序,培养学生的编程能力。
4.讨论法:课堂讨论,鼓励学生提问、发表见解,提高学生的思考能力和沟通能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《C程序设计语言》或《C Primer Plus》等。
2.参考书:《C语言编程实例教程》、《C语言常用算法解析》等。
3.多媒体资料:教学PPT、视频教程、在线编程练习平台等。
4.实验设备:计算机、网络设备、编程软件等。
5.网络资源:相关在线教程、论坛、博客等。
c系统课程设计报告
![c系统课程设计报告](https://img.taocdn.com/s3/m/7bc93663e97101f69e3143323968011ca300f7a0.png)
c 系统课程设计报告一、教学目标本课程的教学目标是使学生掌握C语言的基本语法、数据结构、算法和编程思想,培养学生具备基本的编程能力和良好的编程习惯。
具体分为以下三个部分:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针、结构体等基本知识。
2.技能目标:学生需要能够运用C语言编写简单的程序,解决实际问题,培养学生的编程能力和问题解决能力。
3.情感态度价值观目标:通过本课程的学习,使学生认识到编程的重要性,培养学生的学习兴趣和自信心,培养学生具有良好的编程习惯和团队协作精神。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.C语言的基本语法和数据类型:变量、常量、数据类型、运算符等。
2.控制结构:条件语句、循环语句等。
3.函数:函数的定义、调用、参数传递等。
4.数组和指针:一维、二维数组、指针的概念和应用等。
5.结构体和文件操作:结构体的定义和使用、文件的读写操作等。
6.算法和编程思想:排序算法、查找算法、编程原则等。
三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:通过讲解C语言的基本语法、数据类型、运算符、控制结构、函数等知识,使学生掌握基本概念。
2.案例分析法:通过分析实际案例,使学生了解C语言在实际编程中的应用。
3.实验法:安排实验课,让学生动手编写程序,培养学生的编程能力和问题解决能力。
4.讨论法:学生进行小组讨论,分享学习心得和编程经验,提高学生的团队协作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)等。
2.参考书:《C Primer Plus》、《C和指针》等。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、网络环境等。
五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面反映学生的学习成果。
具体评估方式如下:1.平时表现:包括课堂参与度、提问回答、小组讨论等,占总评的20%。
教务系统c课程设计
![教务系统c课程设计](https://img.taocdn.com/s3/m/3dca2c58cd1755270722192e453610661ed95ac3.png)
教务系统c 课程设计一、课程目标知识目标:1. 让学生掌握教务系统C的基本功能与操作流程,理解其在我国教育体系中的应用意义。
2. 使学生了解教务系统C的数据结构,能够分析并描述系统中的数据关系。
3. 帮助学生掌握教务系统C中的查询、统计、分析等操作方法,提高数据处理能力。
技能目标:1. 培养学生运用教务系统C进行自主查询、报名、选课等操作的能力。
2. 培养学生通过教务系统C进行成绩分析、学业规划的能力。
3. 提高学生运用信息技术解决实际问题的能力,例如在教务系统C中解决课程冲突、时间安排等问题。
情感态度价值观目标:1. 培养学生积极、主动地使用教务系统C进行学习管理,提高自我管理能力和责任心。
2. 增强学生对信息技术在教育领域应用的兴趣,激发学习信息技术的热情。
3. 培养学生团队协作精神,学会在教务系统C中与同学分享信息、交流经验。
课程性质:本课程为实用操作型课程,结合学生年级特点,强调理论与实践相结合,注重培养学生的实际操作能力和解决问题的能力。
学生特点:学生具备一定的信息技术基础,对教务系统C有一定了解,但操作能力参差不齐,需要针对不同水平的学生进行分层教学。
教学要求:教师应充分了解学生需求,采用任务驱动、案例分析、小组合作等教学方法,引导学生掌握教务系统C的操作技巧,提高实际应用能力。
同时,关注学生个体差异,实施差异化教学,确保每位学生都能达到课程目标。
通过课程学习,将目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 教务系统C概述:介绍教务系统C的发展历程、功能特点及其在教育行业中的应用。
- 教材章节:第一章 教务系统C简介2. 教务系统C的基本操作:包括登录、查询课程、选课、退课、查看成绩等。
- 教材章节:第二章 教务系统C的基本操作3. 教务系统C的高级应用:涉及成绩分析、学业规划、课程推荐等。
- 教材章节:第三章 教务系统C的高级应用4. 教务系统C的数据结构及管理:介绍教务系统C中的数据表结构,学会使用系统管理功能。
c课程设计报告
![c课程设计报告](https://img.taocdn.com/s3/m/21506b58bfd5b9f3f90f76c66137ee06eff94ef3.png)
c 课程设计报告。
一、课程目标知识目标:1. 学生能理解并掌握本章节的核心概念,如XX、XX及XX,建立扎实的学科知识基础。
2. 学生能运用所学知识解释现象,解决实际问题,提高知识运用能力。
技能目标:1. 学生通过课堂讨论、小组合作等形式,提升沟通协作能力。
2. 学生能运用批判性思维分析问题,提高问题解决能力。
情感态度价值观目标:1. 学生培养对学科的兴趣和热情,形成积极的学习态度。
2. 学生在学习过程中,树立正确的价值观,认识到学科知识在现实生活中的重要性。
课程性质分析:本课程为XX学科的教学内容,旨在帮助学生建立系统的学科知识体系,提高实际操作能力。
课程注重理论与实践相结合,强调培养学生的创新精神和实践能力。
学生特点分析:针对所教年级的学生,他们在认知水平、兴趣爱好、个性特点等方面具有多样性。
因此,课程目标设定需兼顾不同学生的需求,激发学生的学习兴趣和潜能。
教学要求:1. 教师应关注学生的个体差异,实施差异化教学,确保每个学生都能达到课程目标。
2. 教师要注重课堂互动,引导学生主动参与,提高课堂教学效果。
3. 教学过程中,教师要关注学生的情感态度,培养其积极向上的价值观。
二、教学内容根据课程目标,本章节的教学内容主要包括以下几部分:1. 知识点讲解:- XX概念及其应用- XX原理与XX现象- XX技能的实践操作2. 教学大纲制定:- 第一课时:导入与XX概念介绍,教材第X章第X节- 第二课时:XX原理学习与实例分析,教材第X章第X节- 第三课时:XX技能的实践操作,教材第X章第X节3. 教学内容安排与进度:- 第一周:学习XX概念,了解其在实际中的应用- 第二周:深入研究XX原理,分析XX现象- 第三周:实践操作XX技能,提高学生的动手能力4. 教学内容列举:- XX概念:定义、特点、应用场景- XX原理:基本原理、公式、实例- XX现象:分类、原因、影响- XX技能:操作方法、注意事项、实际应用教学内容的选择和组织确保了科学性和系统性,有利于学生系统地掌握学科知识。
c教务系统课程设计
![c教务系统课程设计](https://img.taocdn.com/s3/m/db23a8a3f605cc1755270722192e453611665b1f.png)
c 教务系统课程设计一、教学目标本课程旨在让学生了解教务系统的功能和结构,掌握教务系统的基本操作,培养学生运用教务系统进行教学管理的能力。
具体目标如下:1.知识目标:使学生了解教务系统的基本概念、功能和结构,理解教务系统在教学管理中的重要性。
2.技能目标:培养学生熟练操作教务系统,进行课程安排、学生管理、成绩统计等教学活动的能力。
3.情感态度价值观目标:培养学生对教务系统的兴趣,认识到教务系统在提高教学管理水平、促进教育教学改革中的作用,树立正确的信息技术应用观念。
二、教学内容1.教务系统概述:介绍教务系统的定义、功能、结构及其在教学管理中的重要性。
2.教务系统操作:讲解教务系统的安装、配置、登录等基本操作,以及课程安排、学生管理、成绩统计等功能的详细操作方法。
3.教务系统管理:阐述教务系统在教学管理中的应用,如教学计划管理、课程管理、学生管理等。
4.教务系统与教育教学改革:探讨教务系统在教育教学改革中的作用,以及如何利用教务系统提高教学管理水平。
三、教学方法1.讲授法:通过讲解教务系统的概念、功能、操作方法等,使学生掌握基本知识。
2.案例分析法:分析实际教学中运用教务系统的案例,使学生更好地理解教务系统在教学管理中的应用。
3.实验法:安排上机实验,让学生亲自动手操作教务系统,提高实际操作能力。
4.讨论法:学生就教务系统在使用过程中遇到的问题进行讨论,促进学生思考和解决问题。
四、教学资源1.教材:选用内容新颖、实用的教务系统教材,为学生提供理论指导。
2.参考书:推荐相关的教务系统参考书籍,拓展学生的知识视野。
3.多媒体资料:制作教学PPT、视频等多媒体资料,提高课堂教学效果。
4.实验设备:配置足够的计算机等实验设备,保证学生上机实验的需要。
五、教学评估本课程的教学评估采用多元化方式,全面客观地评价学生的学习成果。
评估方式包括:1.平时表现:通过课堂参与、提问、回答问题等环节,评估学生的学习态度和积极性。
c课程设计报告模板
![c课程设计报告模板](https://img.taocdn.com/s3/m/0e46246e0a4c2e3f5727a5e9856a561252d321e3.png)
c课程设计报告模板一、课程目标知识目标:1. 让学生掌握课程核心概念,如XXX(具体概念),并能够准确描述其定义及特点。
2. 使学生了解课程相关知识点,如XXX(具体知识点),并能够运用这些知识点分析和解决实际问题。
3. 帮助学生建立知识体系,将本课程内容与之前所学的知识进行有效衔接,形成完整的知识网络。
技能目标:1. 培养学生运用XXX技能(如分析、计算、实验等)解决实际问题的能力。
2. 提高学生团队协作和沟通能力,能够就课程相关问题进行有效讨论和分享。
3. 培养学生自主学习能力,能够通过查阅资料、网络搜索等方式,拓展课程相关知识。
情感态度价值观目标:1. 培养学生对学科的兴趣和热情,激发他们主动探索学科知识的欲望。
2. 培养学生具有积极向上的学习态度,面对困难和挑战时,能够保持坚持不懈的精神。
3. 通过课程学习,使学生认识到所学知识在实际生活中的应用价值,培养他们的社会责任感和创新精神。
课程性质:本课程为XXX学科的基础课程,旨在帮助学生建立扎实的学科基础,为后续学习奠定基础。
学生特点:本年级学生具有较强的求知欲和自主学习能力,但在知识体系搭建和实际应用方面仍有待提高。
教学要求:结合学生特点,注重启发式教学,引导学生主动探究和思考,将理论知识与实际应用相结合,提高学生的学科素养。
在教学过程中,关注学生个体差异,因材施教,使每个学生都能在课程中取得良好的学习成果。
通过多元化的教学评估手段,确保课程目标的达成。
二、教学内容根据课程目标,本课程教学内容主要包括以下几部分:1. 知识点讲解:涵盖教材第X章至第X章,重点讲解XXX(具体知识点)、XXX(具体知识点)等核心概念,以及它们在实际应用中的体现。
2. 技能训练:结合教材第X章,开展XXX(具体技能)训练,如实验操作、数据分析等,以提高学生的实际操作能力。
3. 案例分析:选取教材第X章的典型案例,分析其中涉及的知识点和技能,让学生深入了解学科知识在实际生活中的应用。
c课程设计排课系统
![c课程设计排课系统](https://img.taocdn.com/s3/m/39b8a88f6394dd88d0d233d4b14e852458fb399e.png)
c 课程设计排课系统一、教学目标本课程旨在让学生掌握排课系统的基本原理和操作方法,理解排课系统的核心概念,培养学生运用排课系统解决实际问题的能力。
具体目标如下:1.知识目标:(1)了解排课系统的起源、发展及其在我国的应用现状。
(2)掌握排课系统的基本原理,包括课程安排、时间分配、教室资源管理等。
(3)理解排课系统中各个模块的功能及其相互关系。
2.技能目标:(1)能够熟练操作排课系统,进行课程安排和调整。
(2)能够根据实际需求,运用排课系统进行教室资源管理和调度。
(3)能够分析排课系统中存在的问题,并提出相应的优化方案。
3.情感态度价值观目标:(1)培养学生对排课系统的兴趣,提高学生运用信息技术解决实际问题的意识。
(2)培养学生团队协作、创新思维和责任意识,提高学生在排课系统使用过程中的综合素质。
二、教学内容本课程的教学内容主要包括以下几个部分:1.排课系统概述:介绍排课系统的起源、发展及其在我国的应用现状。
2.排课系统基本原理:讲解排课系统的工作原理,包括课程安排、时间分配、教室资源管理等。
3.排课系统各个模块功能:详细介绍排课系统中各个模块的功能及其相互关系。
4.排课系统操作方法:讲解如何熟练操作排课系统,进行课程安排和调整。
5.教室资源管理:讲解如何运用排课系统进行教室资源管理和调度。
6.排课系统优化:分析排课系统中存在的问题,并提出相应的优化方案。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
具体方法如下:1.讲授法:用于讲解排课系统的基本原理、各个模块功能和操作方法。
2.讨论法:学生针对排课系统使用过程中遇到的问题进行讨论,培养学生的团队协作和创新思维。
3.案例分析法:分析实际案例,让学生了解排课系统在实际应用中的优势和局限。
4.实验法:安排实验室实践环节,让学生动手操作排课系统,提高实际操作能力。
四、教学资源本课程所需教学资源包括:1.教材:《排课系统教程》2.参考书:《现代排课系统设计与实现》、《教室资源管理策略》3.多媒体资料:排课系统使用说明书、实际应用案例视频等。
课程设计用C设计一个排课程序
![课程设计用C设计一个排课程序](https://img.taocdn.com/s3/m/41db116cdc36a32d7375a417866fb84ae45cc3e3.png)
控制结构(条件、循环)
01 02
条件语句
if语句用于根据条件执行不同的代码块。if...else语句用于在条件不满足 时执行另一个代码块。switch语句用于根据表达式的值选择不同的代码 块执行。
循环语句
for、while和do...while循环用于重复执行一段代码,直到满足特定条 件为止。
03
参与实际项目开发
积极参与实际项目的开发工作,将所 学知识应用到实践中去,不断积累经 验和提高自己的能力。
THANKS FOR WATCHING
感谢您的观看
break和continue语句
用于在循环中提前结束或跳过当前循环,进入下一次循环。
函数定义与调用
函数定义
C语言中的函数是一段可重用的代 码块,用于执行特定任务。函数 定义包括函数名、参数列表和函 数体。
函数调用
通过函数名和参数列表调用已定义 的函数,执行相应任务并返回结果 (如果有返回值的话)。
排课问题是一个经典的组合优化问题 ,通过课程设计可以深入探究排课算 法的实现和优化方法。
适用范围及对象
适用范围
本课程设计适用于计算机科学与技术、软件工程等相关专业 的学生。
适用对象
本课程设计适用于已掌握C语言基本语法、数据结构与算法等 基础知识的学生。通过本课程设计,学生可以进一步巩固和 拓展所学知识,提高编程能力和解决问题的能力。
运算符与表达式
01
02
03
04
算术运算符
C语言支持基本的算术运算符 ,如+、-、*、/和%,用于执
行基本的数学运算。
关系运算符
用于比较两个值的大小关系, 如==、!=、<、>、<=和>=
C课程设计(5篇范例)
![C课程设计(5篇范例)](https://img.taocdn.com/s3/m/fd12982a4b7302768e9951e79b89680202d86b5d.png)
C课程设计(5篇范例)第一篇:C课程设计1、学生成绩管理问题描述:设学生信息包括:学号、姓名、学期、每门课程的成绩(每学期的课程门数是不一样的),对学生的成绩信息进行管理。
实现要求:实现:学生信息的录入;修改;删除和查询,按学期、学号、成绩不及格等查询。
⑴ 输入学生的成绩信息,包含学号、姓名、性别等基本信息和各课成绩⑵ 显示全部学生各科成绩信息;⑶ 对各科成绩统计分析(总分、平均分、最高分、最低分、及格率等);⑷ 统计各科各分数段人数;⑸ 按学号或姓名查找并显示某个学生的各科成绩;⑹ 按课程成绩或总分由高到低排序显示;⑺ 更新某个学生的基本信息或课程成绩;⑻ 设计一个菜单,具有上述规定的操作要求、退出系统等最基本的功能。
2、航班信息管理问题描述:飞机航班系统的数据包括两部分:① 航班信息:航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间,单价;② 乘客信息:航班号、身份证号码、姓名、性别、出生年月、座位号。
乘客订票的主要方式是:乘客提出航班号、起飞地点、起飞时间、降落地点、订票数等订票要求,根据事先保存的航班数据决定乘客能否订票?只有全部满足了乘客的订票要求并且所订航班有足够的未订座位之后才能完成订票处理,并且修改该航班的未订座位数(每个航班的未订座位数的初始值就是该航班的最大载客数);否则,订票失败,并且给出不能订票的原因。
要求将航班数据保存在数据文件中,在处理时按航班的起飞地点建立不同的链表。
功能要求:⑴ 增加航班记录。
将新的航班记录增加到原有的航班数据文件中。
在进行处理时必须检查所要增加的航班记录是否存在,如果已经存在,应给出提示信息后停止增加;⑵ 航班取消。
如果某次航班的乘客数太少(已订票的少于本次航班最大载客数的10%),将取消该航班,但该航班的记录仍然保存在原有的航班数据文件中;⑶ 航班查询。
应该有以下几种基本的查询方式:按航班号、按起飞地点和起飞时间、按降落地点,按起飞地点和降落地点;⑷ 航班订票。
c课程设计书面报告
![c课程设计书面报告](https://img.taocdn.com/s3/m/5fec70fef424ccbff121dd36a32d7375a517c61d.png)
c 课程设计书面报告一、课程目标知识目标:1. 学生能掌握课程相关章节的基本知识点,如XXX(根据具体学科和内容填写),并能够运用这些知识分析解决实际问题。
2. 学生能理解并描述XXX(根据具体学科和内容填写)的概念、原理和规律,形成知识体系。
技能目标:1. 学生通过本课程的学习,能够提升XXX(如实验操作、数据分析、逻辑思维等)技能,具备实际操作和解决问题的能力。
2. 学生能够运用所学知识和方法,进行小组合作、讨论交流,提高沟通协作能力。
情感态度价值观目标:1. 学生在学习过程中,培养对学科的兴趣和热情,形成积极向上的学习态度。
2. 学生能够认识到所学知识在实际生活中的应用,增强社会责任感和创新意识。
3. 学生通过课程学习,培养严谨、求实的科学精神,形成正确的价值观。
课程性质分析:本课程为XXX学科的基础课程,旨在帮助学生掌握学科基本知识和技能,为后续学习奠定基础。
课程注重理论与实践相结合,提高学生的实际操作能力。
学生特点分析:针对所教授年级的学生,考虑到他们的认知水平、兴趣和需求,课程设计力求生动有趣,注重启发式教学,引导学生主动探究和思考。
教学要求:1. 教师应注重课程内容的实用性,结合生活实际,激发学生的学习兴趣。
2. 教师要关注学生的个体差异,因材施教,使每个学生都能在课程中取得进步。
3. 教学过程中,教师要注重培养学生的自主学习能力和团队合作精神,提高学生的综合素质。
二、教学内容根据课程目标,本章节教学内容主要包括以下几部分:1. 知识点讲解:- 教材第X章:XXX(具体知识点)- 教材第X章:XXX(具体知识点)2. 技能训练:- 实践操作:XXX(根据学科特点,如实验、上机操作等)- 数据分析:XXX(如数据处理、图表绘制等)3. 案例分析:- 结合教材第X章,分析XXX案例,让学生了解知识在实际应用中的具体情况。
4. 小组讨论:- 针对教材第X章的内容,设置相关讨论话题,培养学生的沟通协作能力。
c课程设计排课系统
![c课程设计排课系统](https://img.taocdn.com/s3/m/60c5077fa200a6c30c22590102020740bf1ecd41.png)
c 课程设计排课系统一、教学目标本课程的教学目标是使学生掌握排课系统的基本原理和操作方法,培养学生独立设计和实施排课方案的能力。
具体来说,知识目标包括了解排课系统的起源、发展及其在教育行业中的应用;理解排课系统的核心概念、原理和技术;掌握排课系统的操作流程和技巧。
技能目标则要求学生能够运用排课系统进行课程安排、调整和优化;能够分析和解决排课过程中遇到的问题;能够根据实际情况设计和实施排课方案。
情感态度价值观目标则在于培养学生对排课系统的兴趣和热情,增强其对教育行业的认同感和责任感。
二、教学内容本课程的教学内容主要包括排课系统的起源与发展、基本原理、操作方法和应用实践。
具体来说,将讲解排课系统的历史背景和发展趋势,让学生了解排课系统在教育行业中的重要地位;阐述排课系统的核心概念和原理,如课程冲突、时间分配、资源优化等;介绍排课系统的操作流程和技巧,如课程安排、调整和优化等;最后结合实际案例,让学生亲自设计和实施排课方案,提高其应用能力。
三、教学方法为了实现本课程的教学目标,将采用多种教学方法相结合的方式,如讲授法、案例分析法、讨论法和实验法等。
讲授法主要用于讲解排课系统的理论知识,使学生掌握基本概念和原理;案例分析法用于分析实际排课案例,让学生学会如何运用排课系统解决实际问题;讨论法用于引导学生思考和探讨排课系统的优缺点及其在教育行业中的应用前景;实验法则让学生亲自动手设计和实施排课方案,提高其操作能力和应用能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。
教材和参考书将提供排课系统的理论知识,为学生自主学习和复习提供依据;多媒体资料则通过图片、视频等形式,丰富学生的学习体验,增强直观性;实验设备则为学生提供实际操作的机会,使其更好地掌握排课系统的操作方法和技巧。
此外,还将利用网络资源,如在线教学平台、学术论坛等,为学生提供更多的学习资源和交流平台,拓宽其视野。
五、教学评估本课程的评估方式将包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。
教师排课系统课程设计报告(C++)
![教师排课系统课程设计报告(C++)](https://img.taocdn.com/s3/m/b8cbf852e87101f69e3195e6.png)
面向对象技术与C++课程设计任务书一.系统总体方案:某学校每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2…,n,其中1是最高的期望值。
课程也有优先级,1,2…,n,用来决定将课程分给教师的顺序,其中1是最高的优先级。
设计一个程序针对某些课程给某些教师进行排课。
要求:(一)程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级),教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中。
(二)程序根据课程的优先级以及教师对课程的期望值进行排课。
最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。
(三)可以实现对文件的修改。
(四)可以在各个界面中实现退出以及进入的循环。
(五)可以退出本系统。
(六)程序应能实现对不少于20门课和10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。
方法:为了公平起见,程序随机分配课程,如果10门课程都有优先级1,程序以随机的顺序将这些课程分给教师,如果10位教师对某门课程的期望值为1,程序应从10位教师中随机选择一个。
2.设计思路和主要步骤:我们使用面向对象程序设计方法的思路进行分析,得出了整个系统应该涉及三个类的信息和操作,分别是教师类,课程类,排课类。
各类信息以文件方式的储存以及实现各种功能和界面的实现是在main函数中体现。
(一)教师类 teacher:包括私有数据成员姓名 name,编号 id ,工作量work_load ,已有工作量 total(方便判断是否排满课)。
成员函数包括设置和得到私有成员值的成员函数与输出教师信息的成员函数。
(2)课程类 course:私有成员有课程名 course_name,课程号 course_id,周课时 week_hour,总课时 total_hour,优先度 N。
(3)由于考虑到这应该是一个完整的排系统,加上我们希望这个系统的界面能够做到清晰、明了,我们经讨论后决定采用一个总操作界面,一个分操作界面。
c课程设计报告
![c课程设计报告](https://img.taocdn.com/s3/m/2e5f06b4112de2bd960590c69ec3d5bbfd0ada93.png)
c课程设计报告一、课程目标本课程为五年级数学“分数的乘除”章节示范课,旨在实现以下三个维度的目标:1. 知识目标:通过本课程学习,使学生掌握分数乘除法的运算规则,能够熟练进行同分母、异分母分数的乘除运算,并理解分数乘除法在实际问题中的应用。
2. 技能目标:培养学生运用分数乘除法解决实际问题的能力,提高学生数学思维和逻辑推理能力,使学生能够灵活运用分数乘除法进行简便计算。
3. 情感态度价值观目标:激发学生对数学学习的兴趣,培养学生积极主动参与课堂讨论、合作学习的良好习惯,增强学生克服困难的信心,培养严谨、踏实的学术态度。
本课程针对五年级学生的认知特点和知识水平,注重启发式教学,充分调动学生的主观能动性,将目标分解为以下具体学习成果:1. 学生能够准确表述分数乘除法的运算规则;2. 学生能够熟练完成同分母、异分母分数的乘除运算;3. 学生能够运用分数乘除法解决实际问题,并进行简便计算;4. 学生在课堂讨论、合作学习中表现出积极态度,具备一定的数学思维和逻辑推理能力;5. 学生在数学学习中展现出克服困难的信心,形成严谨、踏实的学术态度。
后续教学设计和评估将以此为基础,确保课程目标的达成。
二、教学内容本章节依据课程目标,选择以下教学内容,确保教学活动的科学性和系统性:1. 分数乘法运算规则:- 同分母分数乘法:引导学生掌握同分母分数相乘的方法,理解其数学原理;- 异分母分数乘法:教授学生如何将异分母分数转换为同分母分数,并进行乘法运算。
2. 分数除法运算规则:- 同分母分数除法:使学生了解同分母分数相除的方法,掌握其运算规则;- 异分母分数除法:教授学生如何将异分母分数转换为同分母分数,并进行除法运算。
3. 分数乘除法的应用:- 实际问题中的应用:通过举例,使学生学会将实际问题转化为分数乘除运算,并解决问题;- 简便计算方法:介绍分数乘除法的简便计算方法,提高学生的计算速度和准确性。
教学大纲安排如下:第一课时:分数乘法运算规则(同分母、异分母)第二课时:分数除法运算规则(同分母、异分母)第三课时:分数乘除法的应用(实际问题、简便计算)教学内容依据教材相关章节,具体列举如下:1. 教材第四章第二节:分数乘法运算规则;2. 教材第四章第三节:分数除法运算规则;3. 教材第四章第四节:分数乘除法的应用。
c简单课程设计报告
![c简单课程设计报告](https://img.taocdn.com/s3/m/ed872977b5daa58da0116c175f0e7cd1842518ad.png)
c 简单课程设计报告一、课程目标知识目标:1. 让学生掌握学科基本概念,如数学中的基础运算规则、语文中的词语用法等,根据具体学科和年级进行深入讲解,确保学生能够准确理解和运用。
2. 引导学生理解课程内容中的关键知识点,如历史事件的发展脉络、科学实验的基本原理等,使他们在课程结束后能够总结并复述所学内容。
技能目标:1. 培养学生运用学科知识解决问题的能力,如数学题目的解答、语文阅读理解等,强调实际应用和方法的灵活性。
2. 提高学生的合作与交流能力,通过小组讨论、课堂互动等形式,使学生学会倾听、表达和协作。
情感态度价值观目标:1. 培养学生对学科的兴趣和热情,通过生动有趣的教学案例,让学生感受到学科的魅力,提高学习积极性。
2. 引导学生树立正确的价值观,如诚信、勤奋、尊重等,结合学科内容和实际生活,培养学生具有良好的道德品质。
本课程将针对学科性质、学生特点和教学要求,将课程目标分解为具体的学习成果。
例如,在数学课程中,针对小学三年级的学生,将基础运算规则的掌握程度作为学习成果;在语文课程中,针对初中一年级的学生,将以阅读理解和文学鉴赏能力作为衡量标准。
在教学设计和评估过程中,注重学生实际操作和实践,确保课程目标的实现。
二、教学内容根据课程目标,教学内容的选择和组织遵循科学性和系统性原则。
以下为具体教学内容安排:数学学科:1. 教材章节:第三章《分数的初步认识》内容列举:分数的定义、分数的比较、分数的加减法运算、分数在实际生活中的应用。
2. 教学进度:4课时语文学科:1. 教材章节:第二单元《秋天的雨》内容列举:课文阅读、词语解释、修辞手法分析、写作技巧、课文背后的文化内涵。
2. 教学进度:5课时历史学科:1. 教材章节:第一章《中国古代史》内容列举:史前时期、夏商周、春秋战国、秦汉、三国两晋南北朝等重要历史时期的代表性事件。
2. 教学进度:6课时科学学科:1. 教材章节:第四章《力的作用》内容列举:力的概念、力的作用效果、力的测量、牛顿三定律、力的应用。
c课程设计总结报告
![c课程设计总结报告](https://img.taocdn.com/s3/m/0ccb5bd4a1116c175f0e7cd184254b35eefd1a3a.png)
c 课程设计总结报告一、课程目标知识目标:1. 学生能掌握课程核心概念,如XXX(列出具体知识点),并能够准确理解和运用。
2. 学生能理解课程内容中的基本原理,如YYY(列出相关原理),并能将其与实际情境相结合。
3. 学生能够了解和描述ZZZ(列出学科相关历史或背景知识),形成对学科发展概况的认识。
技能目标:1. 学生能够运用所学知识解决实际问题,具备分析、综合、评价等高阶思维能力。
2. 学生通过小组合作、讨论等方式,提高沟通与协作能力。
3. 学生能够运用信息技术等工具,收集、整理、分析相关信息,提高信息处理能力。
情感态度价值观目标:1. 学生培养对学科的兴趣和热情,形成积极主动学习的态度。
2. 学生在学习过程中,培养良好的团队合作精神,尊重他人,关心社会。
3. 学生能够认识到学科知识在实际生活中的应用和价值,增强社会责任感和使命感。
课程性质分析:本课程旨在帮助学生深入理解学科知识,提高综合运用能力,注重培养学生的创新精神和实践能力。
学生特点分析:考虑到学生所在年级的特点,课程设计将充分考虑学生的认知发展水平、兴趣爱好和个性特点,注重激发学生的学习兴趣和主动性。
教学要求:1. 教学内容与课本紧密联系,确保学生所学知识点的准确性和深度。
2. 教学过程中,注重启发式教学,引导学生主动探究和思考。
3. 教学评估以课程目标为依据,全面评价学生的学习成果。
二、教学内容本课程教学内容依据课程目标,结合课本章节进行选择和组织,确保科学性和系统性。
1. 教学大纲:- 第一章:XXX(列出具体章节)- 内容:介绍基本概念、原理,通过实例分析使学生掌握知识要点。
- 第二章:YYY(列出具体章节)- 内容:深入讲解学科知识,并结合实际情境进行案例分析。
- 第三章:ZZZ(列出具体章节)- 内容:拓展学科知识,开展实践活动,提高学生的综合运用能力。
2. 教学内容安排与进度:- 第一周:学习第一章,重点掌握基本概念和原理。
c课程设计排班系统
![c课程设计排班系统](https://img.taocdn.com/s3/m/72fa1d8d370cba1aa8114431b90d6c85ec3a88b5.png)
c 课程设计 排班系统一、课程目标知识目标:1. 让学生掌握排班系统的基本概念和原理,理解其在生活中的应用。
2. 学会运用所学知识,设计并优化简单的排班系统。
3. 了解排班系统在提高工作效率、优化资源配置等方面的作用。
技能目标:1. 培养学生运用信息技术手段解决实际问题的能力。
2. 提高学生分析问题、提出解决方案的能力。
3. 培养学生团队协作、沟通表达的能力。
情感态度价值观目标:1. 培养学生对待工作认真负责的态度,树立良好的职业道德观念。
2. 增强学生对排班系统在生活中的重要性的认识,提高社会责任感。
3. 激发学生对信息技术学科的兴趣,培养自主学习、持续探究的精神。
课程性质:本课程为信息技术学科,旨在通过排班系统这一实际应用,让学生掌握信息技术的基本知识和技能。
学生特点:六年级学生已具备一定的信息技术基础,对新鲜事物充满好奇心,具备一定的团队协作和沟通能力。
教学要求:结合学生特点和课程性质,将课程目标分解为具体的学习成果,注重实践操作和实际应用,提高学生的信息技术素养。
在教学过程中,关注学生的个体差异,鼓励学生积极参与,培养创新精神和实践能力。
通过教学评估,确保课程目标的达成。
二、教学内容1. 排班系统的基本概念与原理- 排班系统的定义及其作用- 排班系统的分类及特点- 排班系统设计的基本原则2. 排班系统的设计与优化- 确定排班需求及人力资源- 排班规则与策略- 排班软件的使用与操作- 排班结果的优化与调整3. 排班系统的实际应用案例分析- 企事业单位排班实例分析- 教育行业排班实例分析- 医疗行业排班实例分析4. 排班系统在生活中的重要性- 提高工作效率- 优化资源配置- 降低人力成本- 提升员工满意度教学大纲安排:第一课时:排班系统的基本概念与原理第二课时:排班系统的设计与优化(一)第三课时:排班系统的设计与优化(二)第四课时:排班系统的实际应用案例分析第五课时:排班系统在生活中的重要性及总结教学内容与教材关联性:以上教学内容与教材中关于排班系统的章节内容紧密相关,涵盖了排班系统的基本知识、设计方法、实际应用等方面,旨在帮助学生系统掌握排班系统相关知识,提高实践操作能力。
c课程设计报告范文
![c课程设计报告范文](https://img.taocdn.com/s3/m/76eb10251611cc7931b765ce0508763230127408.png)
c 课程设计报告范文一、教学目标本章节的教学目标分为三个部分:知识目标、技能目标和情感态度价值观目标。
1.知识目标:通过本章节的学习,学生需要掌握XXX(具体知识内容),能够理解并运用XXX(具体知识内容)。
2.技能目标:学生能够运用XXX(具体技能)进行XXX(具体操作),提高XXX(具体能力)。
3.情感态度价值观目标:通过本章节的学习,学生能够培养对XXX(学科或知识领域)的兴趣和热情,提高对XXX(学科或知识领域)的认识和理解,培养XXX(价值观或态度)。
二、教学内容根据课程目标,本章节的教学内容主要包括XXX(具体内容),这些内容将按照以下顺序进行讲解:1.XXX(第一部分内容)2.XXX(第二部分内容)3.XXX(第三部分内容)三、教学方法为了达到本章节的教学目标,将采用以下教学方法:1.讲授法:通过教师的讲解,学生能够了解和掌握XXX(具体知识内容)。
2.讨论法:通过小组讨论,学生能够深入理解和探讨XXX(具体知识内容)。
3.案例分析法:通过分析具体案例,学生能够将理论知识运用到实际问题中。
4.实验法:通过实验操作,学生能够直观地观察和理解XXX(具体知识内容)。
四、教学资源为了支持本章节的教学内容和教学方法的实施,将选择和准备以下教学资源:1.教材:XXX(教材名称),用于引导学生学习和掌握XXX(具体知识内容)。
2.参考书:XXX(参考书名称),为学生提供更多的学习资料和参考。
3.多媒体资料:XXX(多媒体资料名称),用于辅助讲解和展示XXX(具体知识内容)。
4.实验设备:XXX(实验设备名称),用于进行实验操作,让学生直观地观察和理解XXX(具体知识内容)。
五、教学评估本章节的教学评估将采用多种方式,以全面、客观地评价学生的学习成果。
1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估其对知识的理解和运用能力。
2.作业:布置与章节内容相关的作业,要求学生独立完成,评估其对知识的掌握程度和运用能力。
教务排课系统课程设计c语言
![教务排课系统课程设计c语言](https://img.taocdn.com/s3/m/2680675d17fc700abb68a98271fe910ef02dae4b.png)
教务排课系统课程设计c语言一、教学目标本课程旨在通过学习教务排课系统课程设计,让学生掌握C语言的基本语法、数据结构、算法以及编程思想,培养学生运用C语言解决实际问题的能力。
具体目标如下:1.知识目标:(1)理解C语言的基本语法和编程规范;(2)掌握常用的数据结构(如数组、链表、栈、队列等)及其应用;(3)熟悉常见的算法(如排序、查找等)及其实现;(4)了解软件工程的基本原理和方法。
2.技能目标:(1)能够运用C语言编写简单的程序;(2)具备基本的调试和排错能力;(3)掌握常用的软件开发工具和环境;(4)具备一定的团队协作和项目管理能力。
3.情感态度价值观目标:(1)培养学生的创新意识和解决问题的能力;(2)增强学生的自信心和自我成就感;(3)培养学生团队合作精神和良好的沟通技巧;(4)引导学生树立正确的职业观念和道德规范。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基本语法和编程规范;2.数据结构(数组、链表、栈、队列等)及其应用;3.算法(排序、查找等)及其实现;4.软件工程的基本原理和方法;5.常用的软件开发工具和环境。
教学进度安排如下:1.第1-2周:C语言基本语法和编程规范;2.第3-4周:数据结构(数组、链表、栈、队列等)及其应用;3.第5-6周:算法(排序、查找等)及其实现;4.第7-8周:软件工程的基本原理和方法;5.第9-10周:常用的软件开发工具和环境。
三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性:1.讲授法:讲解基本概念、原理和方法;2.案例分析法:分析实际案例,让学生更好地理解理论知识;3.实验法:让学生动手实践,提高编程能力;4.讨论法:分组讨论,培养学生的团队合作精神和沟通能力。
四、教学资源本课程的教学资源包括:1.教材:《C程序设计语言》(K&R);2.参考书:《C Primer Plus》、《C和指针》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。
c课程设计排课系统
![c课程设计排课系统](https://img.taocdn.com/s3/m/05f9f202dcccda38376baf1ffc4ffe473268fd6c.png)
c 课程设计排课系统一、教学目标本章节的教学目标是使学生掌握C课程设计排课系统的基本原理和方法,培养学生运用计算机技术解决实际问题的能力。
具体目标如下:1.知识目标:使学生了解排课系统的基本概念、特点和应用场景;掌握排课算法的基本原理和方法;了解数据库在排课系统中的应用。
2.技能目标:培养学生使用排课系统进行课程安排的能力;培养学生运用编程语言实现简单排课算法的能力;培养学生运用数据库管理排课信息的能力。
3.情感态度价值观目标:培养学生对计算机技术的兴趣和好奇心,提高学生运用计算机技术解决实际问题的意识;培养学生团队合作精神,提高学生沟通协作能力。
二、教学内容本章节的教学内容主要包括排课系统的基本概念、特点和应用场景,排课算法的基本原理和方法,以及数据库在排课系统中的应用。
具体内容包括:1.排课系统的基本概念、特点和应用场景:介绍排课系统的定义、功能、特点和在我国教育领域的应用。
2.排课算法的基本原理和方法:讲解排课算法的基本原理,如贪心算法、遗传算法等,以及如何实现这些算法。
3.数据库在排课系统中的应用:介绍数据库在排课系统中的作用,如何设计和使用数据库存储排课信息,以及如何利用数据库进行查询和统计。
三、教学方法为了提高教学效果,本章节将采用以下教学方法:1.讲授法:教师讲解排课系统的基本概念、特点和应用场景,排课算法的基本原理和方法,以及数据库在排课系统中的应用。
2.案例分析法:分析实际案例,使学生更好地理解排课系统的原理和应用。
3.实验法:安排实验课,让学生动手实践,培养实际操作能力。
4.讨论法:学生分组讨论,促进学生思考和交流,提高团队合作能力。
四、教学资源为了支持教学,本章节将采用以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、全面的知识体系。
2.参考书:推荐相关参考书,拓展学生的知识视野。
3.多媒体资料:制作课件、教学视频等多媒体资料,提高教学的直观性和趣味性。
4.实验设备:提供计算机、数据库服务器等实验设备,保障实验教学的顺利进行。
教务系统c课程设计
![教务系统c课程设计](https://img.taocdn.com/s3/m/4a8401784a35eefdc8d376eeaeaad1f3469311e3.png)
教务系统c 课程设计一、课程目标知识目标:1. 让学生掌握教务系统C基础知识,包括数据类型、变量、运算符和简单控制流程。
2. 使学生了解教务系统的基本功能,如学生信息管理、课程安排和成绩查询。
3. 帮助学生理解程序设计中的顺序、选择和循环结构,并能运用到教务系统C 编程中。
技能目标:1. 培养学生运用教务系统C进行简单程序设计的能力,能独立完成学生信息管理、课程查询等小程序。
2. 培养学生分析问题、解决问题的能力,使其在遇到教务系统相关问题时,能运用所学知识提出合理的解决方案。
3. 提高学生的团队协作能力,通过分组讨论和项目实践,使学生学会与他人共同完成复杂任务。
情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养其主动学习和探究的精神。
2. 培养学生认真负责的工作态度,使其在编写程序时注重代码规范和程序优化。
3. 增强学生的信息安全意识,使其在处理教务系统数据时,遵循相关法律法规,保护个人隐私。
本课程针对五年级学生,结合教务系统C的特性和学生特点,制定以上课程目标。
在教学过程中,教师应关注学生的个体差异,因材施教,使学生在掌握知识的同时,提高实践能力和综合素质。
课程目标明确、具体,便于教师进行教学设计和评估,确保课程实施效果。
二、教学内容1. 教务系统C基础知识:包括数据类型、变量、常量、运算符、表达式和简单输入输出操作。
对应教材第一章内容。
- 数据类型:整型、浮点型、字符型等。
- 变量与常量:定义、赋值、作用域等。
- 运算符:算术运算符、关系运算符、逻辑运算符等。
- 表达式:基本表达式、复合表达式。
- 输入输出:printf、scanf函数的使用。
2. 控制流程:介绍顺序结构、选择结构(if-else)、循环结构(for、while、do-while)。
对应教材第二章内容。
- 顺序结构:程序执行的基本顺序。
- 选择结构:条件判断和分支执行。
- 循环结构:循环执行和循环控制。
3. 教务系统功能模块:学生信息管理、课程安排、成绩查询等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象技术与C++课程设计任务书一.系统总体方案:某学校每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2…,n,其中1是最高的期望值。
课程也有优先级,1,2…,n,用来决定将课程分给教师的顺序,其中1是最高的优先级。
设计一个程序针对某些课程给某些教师进行排课。
要求:(一)程序运行时,用户输入教师信息(姓名、教师号、工作量)、课程信息(课程名、课程号、周学时、总学时、优先级),教师对所希望讲授课程的期望值以及教学工作量等相关信息,所有信息应保存在文件中。
(二)程序根据课程的优先级以及教师对课程的期望值进行排课。
最后输出排课情况,即某位老师上某门课程,以及某位老师的工作量。
(三)可以实现对文件的修改。
(四)可以在各个界面中实现退出以及进入的循环。
(五)可以退出本系统。
(六)程序应能实现对不少于20门课和10个教师的排课,并且使每个教师的满意度达到最大,不存在工作量不满的教师以及未分配的课等情况。
方法:为了公平起见,程序随机分配课程,如果10门课程都有优先级1,程序以随机的顺序将这些课程分给教师,如果10位教师对某门课程的期望值为1,程序应从10位教师中随机选择一个。
2.设计思路和主要步骤:我们使用面向对象程序设计方法的思路进行分析,得出了整个系统应该涉及三个类的信息和操作,分别是教师类,课程类,排课类。
各类信息以文件方式的储存以及实现各种功能和界面的实现是在main函数中体现。
(一)教师类 teacher:包括私有数据成员姓名 name,编号 id ,工作量work_load ,已有工作量 total(方便判断是否排满课)。
成员函数包括设置和得到私有成员值的成员函数与输出教师信息的成员函数。
(2)课程类 course:私有成员有课程名 course_name,课程号 course_id,周课时 week_hour,总课时 total_hour,优先度 N。
(3)由于考虑到这应该是一个完整的排系统,加上我们希望这个系统的界面能够做到清晰、明了,我们经讨论后决定采用一个总操作界面,一个分操作界面。
总操作界面应该包括(分别对应 1.输入教师信息 2.输入课程信息 3输入教师对课程期望度 4.排课 5.输出排课结果 6.显示操作菜单 7.输出教师文件信息 8.输出课程文件信息 9.输出教师期望度文件信息 10.修改文件信息 0.退出)修改文件信息界面中又因该包括 1.修改教师文件 2.修改课程文件 3.修改教师期望度信息 0.退出3.各功能模块与流程图:说明:以下是对应上面系统功能模块实图的系统流程图,因为制图的不便,故只将成功完成一次操作的流程给出,而“各个流程中中途如果输入了菜单中没有的项以及数据保存文件中没有的数据而被强制退出”的流程因为过于复杂(每步都要进行判断)而没有给出,实际情况读者朋友一试便知。
在此我们对此表示深深的歉意,我们以后一定会努力完善我们各方面的工作的。
各功能模块:(五)程序代码:Teacher.h:#include<iostream.h>#include<string.h>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<<"姓名:"<<name<<endl;cout<<"编号:"<<id<<endl;cout<<"工作量:"<<work_load<<endl;}Course.h:#include<string.h>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,int i,int w,int t,int n);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,int n) {strcpy(course_name,pname);course_id=i;week_hour=w;total_hour=t;N=n;}void course::print(){cout<<"课程名:"<<course_name<<endl;cout<<"编号:"<<course_id<<endl;cout<<"周学时:"<<week_hour<<endl;cout<<"总学时:"<<total_hour<<endl;cout<<"优先级:"<<N<<endl;}Arrange.h:class arrange{private:int x;int y;public:arrange(void){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<iostream.h>#include <stdlib.h>#include<fstream.h>#include<iomanip.h>#include<stdio.h>#include"teacher.h"#include"course.h"#include"arrange.h"#include <time.h>//using namespace std;void input_teacher(teacher *t,int n,int m); //教师基本数据输入void input_course(course *c,int m); //课程基本信息输入void input_num(int **num,int n,int m); //教师对课程满意度输入void arranging(int **num,teacher *t,course *c,arrange *a,int n,int m); //排课void print(teacher *t,course *c,arrange *a,int m); //输出排课结果void print_help(); //帮助函数void print_teacher(); //输出教师信息void print_course(); //输出课程信息void print_num(); //输出教师对课程的满意度void change(int **num,teacher *t,course *c,arrange *a,int n,int m); //修改文件信息void change_teacher(teacher *t,int n); //修改教师信息void change_course(course *c,int m); //修改课程信息void change_num(teacher *t,course *c,int **num,int n,int m); //修改教师对课程满意度void main(){int i,n,m;cout<<"==========================教师排课系统==========================="<<endl;cout<<"教师人数:";cin >>n;cout<<"课程数:";cin>>m;int** num=new int*[n]; //为每一行分配空间for(i=0; i<n; ++i){num[i]=new int[m];}teacher *t;course *c;arrange *a;t=new teacher[n];c=new course[m];a=new arrange[m];if(t==NULL||c==NULL||a==NULL){ cout<<"内存分配失败"<<endl;return ;}cout<<" 1. 输入教师基本数据\n";cout<<" 2. 输入课程基本数据\n";cout<<" 3. 输入教师对课程满意度\n";cout<<" 4. 排课\n";cout<<" 5. 输出排课结果\n";cout<<" 6. 帮助\n";cout<<" 7. 输出教师信息\n";cout<<" 8. 输出课程信息\n";cout<<" 9. 输出教师对课程满意度\n";cout<<" 10.修改文件数据\n";cout<<" 0. 退出\n";cout<<"\n 输入你的选择:";int ch;do{//cout<<"\n\n 请选择:\n";//cout<<" 1. 输入教师基本数据\n";//cout<<" 2. 输入课程基本数据\n";//cout<<" 3. 输入教师对课程满意度\n";//cout<<" 4. 排课\n";//cout<<" 5. 输出排课结果\n";//cout<<" 6. 帮助\n";//cout<<" 0. 退出\n";//cout<<"\n 输入你的选择:";cin>>ch;switch(ch){ case 1 : input_teacher(t,n,m);break;case 2 : input_course(c,m);break;case 3 : input_num(num,n,m);break;case 4 : arranging(num,t,c,a,n,m);break;case 5 : print(t,c,a,m);break;case 6 : print_help();break;case 7 : print_teacher();break;case 8 : print_course();break;case 9 : print_num();break;case 10: change(num,t,c,a,n,m);break;case 0 : break;}}while(ch);//删除每一行分配的空间for(i=0; i<n; ++i){delete[] num[i];}//删除行指针数组delete[] num;delete []t;delete []c;delete []a; //释放内存}void input_teacher(teacher *t,int n,int m) //教师基本数据输入{fstream teachers("d:\\teachers.txt",ios::out);teachers<<"姓名"<<setw(20)<<"编号"<<setw(20)<<"工作量"<<endl;int i,j,work,id;char name[11],nn[11];cout<<"\n 请输入教师基本数据:"<<endl;while(1){int total=0;for(i=0;i<n;i++){cout<<"第"<<i+1<<"个教师:\n";cout<<"编号:";while(1){if (cin >> id) break;else{cout<<"编号应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"姓名:";while(1){cin>>name;for(j=0;j<11;j++){if( ('!'<=name[j]&&name[j]<='@')||('['<=name[j]&&name[j]<='`')||'{'<=na me[j]&&name[j]<='~' )nn[j]=0;elsenn[j]=1;}if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn [10]==1) break;else{cout<<"姓名应为字母,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"工作量:";while(1){if (cin >> work) break;else{cout<<"工作量应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}total=total+work;if(total>m) {cout<<"总工作量大于课程数,请重新输入:"<<endl;break;} t[i].set_teacher(name,id,work);teachers<<name<<setw(20)<<id<<setw(20)<<work<<endl;}if(total==m) break;if(total>m) continue;}teachers.close();}void input_course(course *c,int m) //课程基本信息输入{fstream courses("d:\\courses.txt",ios::out);courses<<"课程名"<<setw(10)<<"课程号"<<setw(10)<<"周学时"<<setw(10)<<"总学时"<<setw(10)<<"优先级"<<endl;int week_hour,total_hour,d1,id,i,j;char name[11];char nn[11];for(i=0;i<m;i++){ cout<<"第"<<i+1<<"门课:\n";cout<<"课程号:";while(1){if (cin >> id) break;else{cout<<"课程号应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"课程名:";while(1){cin>>name;for(j=0;j<11;j++){if( ('!'<=name[j]&&name[j]<='@')||('['<=name[j]&&name[j]<='`')||'{'<=na me[j]&&name[j]<='~' )nn[j]=0;elsenn[j]=1;}if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn [10]==1) break;else{cout<<"课程名应为字母,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"周学时:";while(1){if (cin >> week_hour ) break;else{cout<<"周学时应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"总学时:";while(1){if (cin >> total_hour ) break;else{cout<<"总学时应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"优先级:";while(1){if (cin >> d1) break;else{cout<<"优先级应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}c[i].set_course(name,id,week_hour,total_hour,d1);courses<<name<<setw(10)<<id<<setw(10)<<week_hour<<setw(10)<<total _hour<<setw(10)<<d1<<endl;}courses.close();}void input_num(int **num,int n,int m) //教师对课程满意度输入{fstream nums("d:\\hope.txt",ios::out);nums<<setw(4)<<"满意度"<<setw(6);int nu,i,j,k;for(k=0;k<m;k++){nums<<"第"<<k+1<<"门课程"<<setw(5);}nums<<endl;for(i=0;i<n;i++){ nums<<"第"<<i+1<<"名老师"<<setw(3);for(j=0;j<m;j++){cout<<"第"<<i+1<<"位老师对第"<<j+1<<"门课程的满意度"<<endl;//cin>>nu;while(1){if (cin >> nu) break;else{cout<<"满意度应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}num[i][j]=nu;nums<<nu<<setw(13);}nums<<endl;}nums.close();}void arranging(int **num,teacher *t,course *c,arrange *a,int n,int m) //排课{int h,s,i,j,b,k=1,min,min1,q=0;min=c[0].get_N();srand((unsigned)time(NULL));for(s=0;s<m;s++){if(c[s].get_N()<min)min=c[s].get_N();}while(h){for(i=0;i<m;i++){if(c[i].get_N()==min) //判断课程优先级{min1=num[0][i];for(j=0;j<n;j++){if( num[j][i]<min1&&t[j].get_total()<t[j].get_work_load() )min1=num[j][i];}while(1>0){b=rand()%n;if(b>n)continue;else if(t[b].get_total()>t[b].get_work_load())continue;else if(num[b][i]!=min1) //判断教师优先级continue;else{a[q].set_x(b);a[q].set_y(i);q++;int w=t[b].get_total()+1;t[b].set_total(w);//k=0;cout<<"第"<<q<<"次排课"<<endl;}break;}}//if(i=m-1) min++;}min++;if(q<m) h=1;else h=0;}}void print(teacher *t,course *c,arrange *a,int m) //输出排课结果{int i,a1,b1;for(i=0;i<m;i++){a1=a[i].get_x();b1=a[i].get_y();cout<<"第"<<a1+1<<"位老师上第"<<b1+1<<"门课"<<endl;t[a1].print();c[b1].print();}}void print_help() //帮助函数{cout<<" 1. 输入教师基本数据\n";cout<<" 2. 输入课程基本数据\n";cout<<" 3. 输入教师对课程满意度\n";cout<<" 4. 排课\n";cout<<" 5. 输出排课结果\n";cout<<" 6. 帮助\n";cout<<" 7. 输出教师信息\n";cout<<" 8. 输出课程信息\n";cout<<" 9. 输出教师对课程满意度\n";cout<<" 10.修改文件数据\n";cout<<" 0. 退出\n";}void print_teacher() //输出教师信息{ifstream fin("d:\\teachers.txt",ios::nocreate);if(!fin){cout<<"File open error!\n";return;}char c[80];while(!fin.eof()) //判断文件是否读结束{fin.read(c,80);cout.write(c,fin.gcount());}fin.close();}void print_course() //输出课程信息{ifstream fin("d:\\courses.txt",ios::nocreate); if(!fin){cout<<"File open error!\n";return;}char c[80];while(!fin.eof()) //判断文件是否读结束{fin.read(c,80);cout.write(c,fin.gcount());}fin.close();}void print_num() //输出教师对课程的满意度{ifstream fin("d:\\hope.txt",ios::nocreate);if(!fin){cout<<"File open error!\n";return;}char c[80];while(!fin.eof()) //判断文件是否读结束{fin.read(c,80);cout.write(c,fin.gcount());}fin.close();}void change(int **num,teacher *t,course *c,arrange *a,int n,int m) //修改文件信息{int ch;do{cout<<"\n\n 请选择:\n";cout<<" 1. 修改教师基本数据\n";cout<<" 2. 修改课程基本数据\n";cout<<" 3. 修改教师对课程满意度\n";cout<<" 0. 退出\n";cout<<"\n 输入你的选择:";cin>>ch;switch(ch){ case 1 : change_teacher(t,n);break;case 2 : change_course(c,m);break;case 3 : change_num(t,c,num,n,m);break;case 0 : break;}}while(ch);}void change_teacher(teacher *t,int n) //修改教师数据{int i,aa,bb,k,j,ii;char na[11];char nn[11];cout<<"请输入要修改教师编号:";cin>>ii;for(i=0;i<n;i++)if(t[i].get_id()==ii){ cout<<"此教师原信息:"<<endl;t[i].print();k=i;}cout<<"请输入此教师新信息:"<<endl;cout<<"编号:";while(1){if (cin >> aa) break;else{cout<<"编号应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"姓名:";while(1){cin>>na;for(j=0;j<11;j++){if( ('!'<=na[j]&&na[j]<='@')||('['<=na[j]&&na[j]<='`')||'{'<=na[j]&&na[ j]<='~' )nn[j]=0;elsenn[j]=1;}if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn [10]==1) break;else{cout<<"姓名应为字母,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"工作量:";while(1){if (cin >> bb) break;else{cout<<"工作量应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}t[k].set_teacher(na,aa,bb);fstream teachers("d:\\teachers.txt",ios::out);teachers<<"姓名"<<setw(20)<<"编号"<<setw(20)<<"工作量"<<endl;for(j=0;j<n;j++){if(j==k)teachers<<na<<setw(20)<<aa<<setw(20)<<bb<<endl;elseteachers<<t[j].get_name()<<setw(20)<<t[j].get_id()<<setw(20)<<t[j].ge t_work_load()<<endl;}teachers.close();}void change_course(course *c,int m) //修改课程信息{int i,aa,bb,cc,dd,k,j,ii;char na[11];char nn[11];cout<<"请输入要修改课程编号:";cin>>ii;for(i=0;i<m;i++)if(c[i].get_course_id()==ii){ cout<<"此课程原信息:"<<endl;c[i].print();k=i;}cout<<"请输入此课程新信息:"<<endl;cout<<"课程号:";while(1){if (cin >> aa) break;else{cout<<"课程号应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"课程名:";while(1){cin>>na;for(j=0;j<11;j++){if( ('!'<=na[j]&&na[j]<='@')||('['<=na[j]&&na[j]<='`')||'{'<=na[j]&&na[ j]<='~' )nn[j]=0;elsenn[j]=1;}if(nn[0]*nn[1]*nn[2]*nn[3]*nn[4]*nn[5]*nn[6]*nn[7]*nn[8]*nn[9]*nn [10]==1) break;else{cout<<"课程名应为字母,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"周学时:";while(1){if (cin >> bb ) break;else{cout<<"周学时应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"总学时:";while(1){if (cin >> cc ) break;else{cout<<"总学时应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}cout<<"优先级:";while(1){if (cin >> dd) break;else{cout<<"优先级应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}c[k].set_course(na,aa,bb,cc,dd);fstream courses("d:\\courses.txt",ios::out);courses<<"课程名"<<setw(10)<<"课程号"<<setw(10)<<"周学时"<<setw(10)<<"总学时"<<setw(10)<<"优先级"<<endl;for(j=0;j<m;j++){if(j==k)courses<<na<<setw(10)<<aa<<setw(10)<<bb<<setw(10)<<cc<<setw(10)<<dd<< endl;elsecourses<<c[j].get_course_name()<<setw(10)<<c[j].get_course_id()<<setw (10)<<c[j].get_week_hour()<<setw(10)<<c[j].get_total_hour()<<setw(10) <<c[j].get_N()<<endl;}courses.close();}void change_num(teacher *t,course *c,int **num,int n,int m) //修改教师对课程满意度{int ii,jj,i,j,k,nn,a1,b1,c1;cout<<"请输入要修改的教师的编号:";while(1){if (cin >> ii) break;else{cout<<"满意度应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}for(i=0;i<n;i++){if(t[i].get_id()==ii) a1=i;}cout<<"请输入要修改的课程的编号:";while(1){if (cin >> jj) break;else{cout<<"满意度应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}for(i=0;i<m;i++){if(c[i].get_course_id()==jj) b1=i;}cout<<"请输入要修改的满意度:";while(1){if (cin >> nn) break;else{cout<<"满意度应为数字,请重新输入:"<<endl;cin.clear();cin.ignore();}}fstream nums("d:\\hope.txt",ios::out);nums<<setw(4)<<"满意度"<<setw(6);for(k=0;k<m;k++){nums<<"第"<<k+1<<"门课程"<<setw(5);}nums<<endl;for(i=0;i<n;i++){ nums<<"第"<<i+1<<"名老师"<<setw(3);for(j=0;j<m;j++){//cout<<"第"<<i+1<<"位老师对第"<<j+1<<"门课程的满意度"<<endl;//cin>>nu;if(i==a1&&j==b1){nums<<nn<<setw(13);num[a1][b1]=nn;}else{c1=num[i][j];nums<<c1<<setw(13);}}nums<<endl;}nums.close();}6.总结、心得与体会通过这次课题设计,我觉得做好一个程序,灵活运用是关键。