教师排课系统课程设计报告C

合集下载

排课软件的设计c课程设计

排课软件的设计c课程设计

排课软件的设计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系统课程设计报告

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课程设计

教务系统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课程设计报告

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语++程设计报告_教师排课程序

目录第1章课题概述 (1)1.1课题的目的 (1)1.2.1 输入输出的要求 (1)1.2.2 程序所要实现的功能 (1)第2章设计思路 (2)2.1存储结构的确定 (2)2.2程序流程图 (2)第3章程序实现 (3)3.1存储结构与方式 (3)3.2程序中各函数分析 (3)第4章问题与解决 (12)第5章程序测试 (13)第6章总结 (16)参考文献 (17)第1章课题概述1.1 课题的目的课程设计题目:设计一个排课程序;每位教师都有教学工作量,教师对他所希望讲授的课程表达为一个期望值,1,2…,n,其中1位最高的期望值。

课程也有优先级,1,2…,n,用来决定将课程分给教师的顺序,其中1时最高的优先级。

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

1.2.1 输入输出的要求(1)输入的教师及课程信息以文件形式保存;1.2.2 程序所要实现的功能程序需要实现的功能有:(1)教师及课程信息的录入(保存文件是可指定文件名及路径);(2)程序随机给教师分配课程。

根据教师对课程的期望值,进行排序;(3)排课结果浏览功能;第2章设计思路2.1 存储结构的确定课题要求教师及课程信息以文件形式保存,存储结构确定为结构体。

2.2 程序流程图整个程序的流程如图2-1所示。

图2-1第3章程序实现3.1 存储结构与方式在程序运行时,文件以结构体的方式存储在内存中,再以文件形式保存到硬盘。

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;3.2 程序中各函数分析(1) main()主函数,用来调用菜单函数以显示菜单。

c教务系统课程设计

c教务系统课程设计

c 教务系统课程设计一、教学目标本课程旨在让学生了解教务系统的功能和结构,掌握教务系统的基本操作,培养学生运用教务系统进行教学管理的能力。

具体目标如下:1.知识目标:使学生了解教务系统的基本概念、功能和结构,理解教务系统在教学管理中的重要性。

2.技能目标:培养学生熟练操作教务系统,进行课程安排、学生管理、成绩统计等教学活动的能力。

3.情感态度价值观目标:培养学生对教务系统的兴趣,认识到教务系统在提高教学管理水平、促进教育教学改革中的作用,树立正确的信息技术应用观念。

二、教学内容1.教务系统概述:介绍教务系统的定义、功能、结构及其在教学管理中的重要性。

2.教务系统操作:讲解教务系统的安装、配置、登录等基本操作,以及课程安排、学生管理、成绩统计等功能的详细操作方法。

3.教务系统管理:阐述教务系统在教学管理中的应用,如教学计划管理、课程管理、学生管理等。

4.教务系统与教育教学改革:探讨教务系统在教育教学改革中的作用,以及如何利用教务系统提高教学管理水平。

三、教学方法1.讲授法:通过讲解教务系统的概念、功能、操作方法等,使学生掌握基本知识。

2.案例分析法:分析实际教学中运用教务系统的案例,使学生更好地理解教务系统在教学管理中的应用。

3.实验法:安排上机实验,让学生亲自动手操作教务系统,提高实际操作能力。

4.讨论法:学生就教务系统在使用过程中遇到的问题进行讨论,促进学生思考和解决问题。

四、教学资源1.教材:选用内容新颖、实用的教务系统教材,为学生提供理论指导。

2.参考书:推荐相关的教务系统参考书籍,拓展学生的知识视野。

3.多媒体资料:制作教学PPT、视频等多媒体资料,提高课堂教学效果。

4.实验设备:配置足够的计算机等实验设备,保证学生上机实验的需要。

五、教学评估本课程的教学评估采用多元化方式,全面客观地评价学生的学习成果。

评估方式包括:1.平时表现:通过课堂参与、提问、回答问题等环节,评估学生的学习态度和积极性。

c课程设计报告模板

c课程设计报告模板

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课程设计排课系统

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设计一个排课程序

控制结构(条件、循环)
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篇范例)

C课程设计(5篇范例)第一篇:C课程设计1、学生成绩管理问题描述:设学生信息包括:学号、姓名、学期、每门课程的成绩(每学期的课程门数是不一样的),对学生的成绩信息进行管理。

实现要求:实现:学生信息的录入;修改;删除和查询,按学期、学号、成绩不及格等查询。

⑴ 输入学生的成绩信息,包含学号、姓名、性别等基本信息和各课成绩⑵ 显示全部学生各科成绩信息;⑶ 对各科成绩统计分析(总分、平均分、最高分、最低分、及格率等);⑷ 统计各科各分数段人数;⑸ 按学号或姓名查找并显示某个学生的各科成绩;⑹ 按课程成绩或总分由高到低排序显示;⑺ 更新某个学生的基本信息或课程成绩;⑻ 设计一个菜单,具有上述规定的操作要求、退出系统等最基本的功能。

2、航班信息管理问题描述:飞机航班系统的数据包括两部分:① 航班信息:航班号、最大载客数、起飞地点、起飞时间、降落地点、降落时间,单价;② 乘客信息:航班号、身份证号码、姓名、性别、出生年月、座位号。

乘客订票的主要方式是:乘客提出航班号、起飞地点、起飞时间、降落地点、订票数等订票要求,根据事先保存的航班数据决定乘客能否订票?只有全部满足了乘客的订票要求并且所订航班有足够的未订座位之后才能完成订票处理,并且修改该航班的未订座位数(每个航班的未订座位数的初始值就是该航班的最大载客数);否则,订票失败,并且给出不能订票的原因。

要求将航班数据保存在数据文件中,在处理时按航班的起飞地点建立不同的链表。

功能要求:⑴ 增加航班记录。

将新的航班记录增加到原有的航班数据文件中。

在进行处理时必须检查所要增加的航班记录是否存在,如果已经存在,应给出提示信息后停止增加;⑵ 航班取消。

如果某次航班的乘客数太少(已订票的少于本次航班最大载客数的10%),将取消该航班,但该航班的记录仍然保存在原有的航班数据文件中;⑶ 航班查询。

应该有以下几种基本的查询方式:按航班号、按起飞地点和起飞时间、按降落地点,按起飞地点和降落地点;⑷ 航班订票。

c课程设计书面报告

c课程设计书面报告

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课程设计排课系统

c 课程设计排课系统一、教学目标本课程的教学目标是使学生掌握排课系统的基本原理和操作方法,培养学生独立设计和实施排课方案的能力。

具体来说,知识目标包括了解排课系统的起源、发展及其在教育行业中的应用;理解排课系统的核心概念、原理和技术;掌握排课系统的操作流程和技巧。

技能目标则要求学生能够运用排课系统进行课程安排、调整和优化;能够分析和解决排课过程中遇到的问题;能够根据实际情况设计和实施排课方案。

情感态度价值观目标则在于培养学生对排课系统的兴趣和热情,增强其对教育行业的认同感和责任感。

二、教学内容本课程的教学内容主要包括排课系统的起源与发展、基本原理、操作方法和应用实践。

具体来说,将讲解排课系统的历史背景和发展趋势,让学生了解排课系统在教育行业中的重要地位;阐述排课系统的核心概念和原理,如课程冲突、时间分配、资源优化等;介绍排课系统的操作流程和技巧,如课程安排、调整和优化等;最后结合实际案例,让学生亲自设计和实施排课方案,提高其应用能力。

三、教学方法为了实现本课程的教学目标,将采用多种教学方法相结合的方式,如讲授法、案例分析法、讨论法和实验法等。

讲授法主要用于讲解排课系统的理论知识,使学生掌握基本概念和原理;案例分析法用于分析实际排课案例,让学生学会如何运用排课系统解决实际问题;讨论法用于引导学生思考和探讨排课系统的优缺点及其在教育行业中的应用前景;实验法则让学生亲自动手设计和实施排课方案,提高其操作能力和应用能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备等。

教材和参考书将提供排课系统的理论知识,为学生自主学习和复习提供依据;多媒体资料则通过图片、视频等形式,丰富学生的学习体验,增强直观性;实验设备则为学生提供实际操作的机会,使其更好地掌握排课系统的操作方法和技巧。

此外,还将利用网络资源,如在线教学平台、学术论坛等,为学生提供更多的学习资源和交流平台,拓宽其视野。

五、教学评估本课程的评估方式将包括平时表现、作业和考试三个部分,以全面客观地评价学生的学习成果。

教师排课系统课程设计报告(C++)

教师排课系统课程设计报告(C++)

面向对象技术与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教务系统课程设计

c 教务系统课程设计一、教学目标本课程的教学目标是使学生掌握C教务系统的基本概念、功能和操作方法。

具体包括:1.了解C教务系统的起源、发展历程和基本概念。

2.掌握C教务系统的主要功能,如课程安排、成绩管理、选课系统等。

3.理解C教务系统的运作原理和关键技术。

4.能够熟练操作C教务系统,进行课程安排、成绩录入、选课等操作。

5.能够运用C教务系统进行教学管理和教学研究。

情感态度价值观目标:1.培养学生对C教务系统的兴趣和热情,认识到其在教育领域的重要性。

2.培养学生遵守纪律、诚实守信的意识,避免滥用C教务系统。

二、教学内容本课程的教学内容主要包括C教务系统的基本概念、功能和操作方法。

具体安排如下:1.第一章:C教务系统概述介绍C教务系统的起源、发展历程和基本概念。

2.第二章:C教务系统功能详解详细讲解C教务系统的各项功能,如课程安排、成绩管理、选课系统等。

3.第三章:C教务系统操作指南教授如何熟练操作C教务系统,进行课程安排、成绩录入、选课等操作。

4.第四章:C教务系统在教学管理中的应用探讨如何运用C教务系统进行教学管理和教学研究。

5.第五章:C教务系统的未来发展展望C教务系统的未来发展,探讨其在教育领域的重要性和潜在应用。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。

具体安排如下:1.讲授法:用于讲解C教务系统的基本概念、功能和操作方法。

2.讨论法:学生进行小组讨论,分享对C教务系统的理解和看法。

3.案例分析法:分析实际案例,让学生了解C教务系统在教学管理中的应用。

4.实验法:安排实验室实践,让学生亲自动手操作C教务系统,加深对系统的理解。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:选用权威、实用的C教务系统教材,为学生提供系统性的知识学习。

2.参考书:提供相关的参考书籍,拓展学生的知识面。

c简单课程设计报告

c简单课程设计报告

c 简单课程设计报告一、课程目标知识目标:1. 让学生掌握学科基本概念,如数学中的基础运算规则、语文中的词语用法等,根据具体学科和年级进行深入讲解,确保学生能够准确理解和运用。

2. 引导学生理解课程内容中的关键知识点,如历史事件的发展脉络、科学实验的基本原理等,使他们在课程结束后能够总结并复述所学内容。

技能目标:1. 培养学生运用学科知识解决问题的能力,如数学题目的解答、语文阅读理解等,强调实际应用和方法的灵活性。

2. 提高学生的合作与交流能力,通过小组讨论、课堂互动等形式,使学生学会倾听、表达和协作。

情感态度价值观目标:1. 培养学生对学科的兴趣和热情,通过生动有趣的教学案例,让学生感受到学科的魅力,提高学习积极性。

2. 引导学生树立正确的价值观,如诚信、勤奋、尊重等,结合学科内容和实际生活,培养学生具有良好的道德品质。

本课程将针对学科性质、学生特点和教学要求,将课程目标分解为具体的学习成果。

例如,在数学课程中,针对小学三年级的学生,将基础运算规则的掌握程度作为学习成果;在语文课程中,针对初中一年级的学生,将以阅读理解和文学鉴赏能力作为衡量标准。

在教学设计和评估过程中,注重学生实际操作和实践,确保课程目标的实现。

二、教学内容根据课程目标,教学内容的选择和组织遵循科学性和系统性原则。

以下为具体教学内容安排:数学学科:1. 教材章节:第三章《分数的初步认识》内容列举:分数的定义、分数的比较、分数的加减法运算、分数在实际生活中的应用。

2. 教学进度:4课时语文学科:1. 教材章节:第二单元《秋天的雨》内容列举:课文阅读、词语解释、修辞手法分析、写作技巧、课文背后的文化内涵。

2. 教学进度:5课时历史学科:1. 教材章节:第一章《中国古代史》内容列举:史前时期、夏商周、春秋战国、秦汉、三国两晋南北朝等重要历史时期的代表性事件。

2. 教学进度:6课时科学学科:1. 教材章节:第四章《力的作用》内容列举:力的概念、力的作用效果、力的测量、牛顿三定律、力的应用。

c课程设计总结报告

c课程设计总结报告

c 课程设计总结报告一、课程目标知识目标:1. 学生能掌握课程核心概念,如XXX(列出具体知识点),并能够准确理解和运用。

2. 学生能理解课程内容中的基本原理,如YYY(列出相关原理),并能将其与实际情境相结合。

3. 学生能够了解和描述ZZZ(列出学科相关历史或背景知识),形成对学科发展概况的认识。

技能目标:1. 学生能够运用所学知识解决实际问题,具备分析、综合、评价等高阶思维能力。

2. 学生通过小组合作、讨论等方式,提高沟通与协作能力。

3. 学生能够运用信息技术等工具,收集、整理、分析相关信息,提高信息处理能力。

情感态度价值观目标:1. 学生培养对学科的兴趣和热情,形成积极主动学习的态度。

2. 学生在学习过程中,培养良好的团队合作精神,尊重他人,关心社会。

3. 学生能够认识到学科知识在实际生活中的应用和价值,增强社会责任感和使命感。

课程性质分析:本课程旨在帮助学生深入理解学科知识,提高综合运用能力,注重培养学生的创新精神和实践能力。

学生特点分析:考虑到学生所在年级的特点,课程设计将充分考虑学生的认知发展水平、兴趣爱好和个性特点,注重激发学生的学习兴趣和主动性。

教学要求:1. 教学内容与课本紧密联系,确保学生所学知识点的准确性和深度。

2. 教学过程中,注重启发式教学,引导学生主动探究和思考。

3. 教学评估以课程目标为依据,全面评价学生的学习成果。

二、教学内容本课程教学内容依据课程目标,结合课本章节进行选择和组织,确保科学性和系统性。

1. 教学大纲:- 第一章:XXX(列出具体章节)- 内容:介绍基本概念、原理,通过实例分析使学生掌握知识要点。

- 第二章:YYY(列出具体章节)- 内容:深入讲解学科知识,并结合实际情境进行案例分析。

- 第三章:ZZZ(列出具体章节)- 内容:拓展学科知识,开展实践活动,提高学生的综合运用能力。

2. 教学内容安排与进度:- 第一周:学习第一章,重点掌握基本概念和原理。

vc教务管理系统课程设计

vc教务管理系统课程设计

vc 教务管理系统课程设计一、课程目标知识目标:1. 让学生理解教务管理系统的基本概念,掌握VC++编程环境下开发教务管理系统的基本方法。

2. 使学生掌握数据库连接、数据查询、数据更新等基本操作,并能够运用到教务管理系统的实际开发中。

3. 让学生掌握面向对象编程思想,运用类和对象对教务管理系统进行模块化设计。

技能目标:1. 培养学生运用VC++进行教务管理系统开发的能力,提高编程实践水平。

2. 培养学生分析和解决实际教务管理问题的能力,能够根据需求进行系统设计。

3. 培养学生团队协作能力,能够在项目开发中合理分工、协同工作。

情感态度价值观目标:1. 培养学生对教务管理系统开发的兴趣,激发学习积极性,提高自主学习和解决问题的能力。

2. 培养学生严谨、负责的工作态度,养成良好的编程习惯。

3. 培养学生关注教育信息化发展,认识到教务管理系统在现代教育管理中的重要作用。

本课程针对高年级学生,课程性质为实践性较强的学科。

结合学生已具备的编程基础和实际教学要求,课程目标旨在使学生能够独立完成教务管理系统的设计与开发,培养具备实际应用能力的编程人才。

通过课程学习,学生将能够分解任务、明确需求、编写代码、解决问题,并在项目实践中提高自身综合素质。

二、教学内容1. 教务管理系统概述:介绍教务管理系统的发展背景、功能模块和重要性。

- 教材章节:第一章 教务管理系统概述- 内容列举:教务管理系统的基本概念、发展历程、功能模块及其在现代教育管理中的应用。

2. VC++编程环境:学习VC++集成开发环境的使用,熟悉编程工具。

- 教材章节:第二章 VC++编程环境- 内容列举:VC++的安装与配置、创建项目与工程、常用编译调试技巧。

3. 数据库连接与操作:学习数据库连接、数据查询、数据更新等操作。

- 教材章节:第三章 数据库连接与操作- 内容列举:数据库基础知识、ODBC数据源配置、数据库连接与操作方法。

4. 面向对象编程:学习类与对象、继承与多态等面向对象编程思想。

教务排课系统课程设计c语言

教务排课系统课程设计c语言

教务排课系统课程设计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课程设计排课系统

c 课程设计排课系统一、教学目标本章节的教学目标是使学生掌握C课程设计排课系统的基本原理和方法,培养学生运用计算机技术解决实际问题的能力。

具体目标如下:1.知识目标:使学生了解排课系统的基本概念、特点和应用场景;掌握排课算法的基本原理和方法;了解数据库在排课系统中的应用。

2.技能目标:培养学生使用排课系统进行课程安排的能力;培养学生运用编程语言实现简单排课算法的能力;培养学生运用数据库管理排课信息的能力。

3.情感态度价值观目标:培养学生对计算机技术的兴趣和好奇心,提高学生运用计算机技术解决实际问题的意识;培养学生团队合作精神,提高学生沟通协作能力。

二、教学内容本章节的教学内容主要包括排课系统的基本概念、特点和应用场景,排课算法的基本原理和方法,以及数据库在排课系统中的应用。

具体内容包括:1.排课系统的基本概念、特点和应用场景:介绍排课系统的定义、功能、特点和在我国教育领域的应用。

2.排课算法的基本原理和方法:讲解排课算法的基本原理,如贪心算法、遗传算法等,以及如何实现这些算法。

3.数据库在排课系统中的应用:介绍数据库在排课系统中的作用,如何设计和使用数据库存储排课信息,以及如何利用数据库进行查询和统计。

三、教学方法为了提高教学效果,本章节将采用以下教学方法:1.讲授法:教师讲解排课系统的基本概念、特点和应用场景,排课算法的基本原理和方法,以及数据库在排课系统中的应用。

2.案例分析法:分析实际案例,使学生更好地理解排课系统的原理和应用。

3.实验法:安排实验课,让学生动手实践,培养实际操作能力。

4.讨论法:学生分组讨论,促进学生思考和交流,提高团队合作能力。

四、教学资源为了支持教学,本章节将采用以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统、全面的知识体系。

2.参考书:推荐相关参考书,拓展学生的知识视野。

3.多媒体资料:制作课件、教学视频等多媒体资料,提高教学的直观性和趣味性。

4.实验设备:提供计算机、数据库服务器等实验设备,保障实验教学的顺利进行。

教务系统c课程设计

教务系统c课程设计

教务系统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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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<<" 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<<" 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<<" 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.总结、心得与体会通过这次课题设计,我觉得做好一个程序,灵活运用是关键。

相关文档
最新文档