c++课程设计报告之学生选修课程系统设计

合集下载

学生选课系统c课程设计

学生选课系统c课程设计

学生选课系统c 课程设计一、教学目标本课程旨在让学生掌握学生选课系统C的基本原理和使用方法。

知识目标包括了解学生选课系统的功能、结构和常用技术,理解面向对象设计的基本概念和方法。

技能目标包括能够使用学生选课系统C进行课程选择和排课,能够进行简单的系统设计和优化。

情感态度价值观目标包括培养学生对编程和计算机科学的兴趣和热情,提高学生解决问题的能力和创新精神。

二、教学内容本课程的教学内容主要包括学生选课系统C的基本原理、系统结构和常用技术,面向对象设计的基本概念和方法,以及学生选课系统C的实践应用。

具体包括以下几个部分:1.学生选课系统C的基本原理:介绍学生选课系统C的定义、功能和特点,让学生了解学生选课系统C的基本概念。

2.学生选课系统C的系统结构:讲解学生选课系统C的组成部分,包括数据库、服务器和客户端等,让学生了解学生选课系统C的架构和运行机制。

3.学生选课系统C的常用技术:介绍学生选课系统C中常用的技术,如SQL、Java等,让学生掌握学生选课系统C的开发和实现方法。

4.面向对象设计的基本概念和方法:讲解面向对象设计的基本原则和方法,如封装、继承和多态等,让学生掌握面向对象设计的思维方式和实际应用。

5.学生选课系统C的实践应用:通过实际操作,让学生学会使用学生选课系统C进行课程选择和排课,培养学生的实际操作能力。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学。

包括:1.讲授法:通过讲解学生选课系统C的基本原理、系统结构和常用技术,让学生掌握基本概念和知识。

2.讨论法:通过学生进行小组讨论,引导学生思考和探讨学生选课系统C的实际应用问题和解决方案。

3.案例分析法:通过分析典型案例,让学生了解学生选课系统C的实际应用场景和设计方法。

4.实验法:通过实际操作,让学生学会使用学生选课系统C进行课程选择和排课,培养学生的实际操作能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选择合适的教材,为学生提供系统的学习资料。

c选修课系统课程设计

c选修课系统课程设计

c 选修课系统课程设计一、教学目标本章节的教学目标包括以下三个方面:1.知识目标:学生能够掌握选修课系统的基本概念、原理和知识点,了解系统的组成部分及其相互作用。

2.技能目标:学生能够运用所学的知识,分析和解决选修课系统运行过程中遇到的问题,具备一定的系统调试和优化能力。

3.情感态度价值观目标:培养学生对选修课系统的兴趣,使其认识到选修课系统在实际应用中的重要性,培养学生认真负责、团队合作的精神。

二、教学内容本章节的教学内容主要包括以下几个部分:1.选修课系统的基本概念和原理:介绍选修课系统的定义、功能、特点和基本工作原理。

2.选修课系统的组成部分:讲解选修课系统中的各个模块及其功能,包括学生模块、教师模块、课程模块、管理员模块等。

3.选修课系统的运行与管理:分析选修课系统的运行过程,介绍如何进行课程设置、学生选课、教师排课、成绩管理等操作。

4.选修课系统的优化与调试:讲解如何对选修课系统进行优化和调试,以提高系统性能和用户体验。

三、教学方法为了实现本章节的教学目标,我们将采用以下教学方法:1.讲授法:通过讲解选修课系统的基本概念、原理和知识点,使学生掌握系统的基本知识。

2.案例分析法:通过分析实际运行中的选修课系统案例,使学生了解系统的应用场景和运行过程。

3.实验法:安排实验室实践环节,让学生亲自操作选修课系统,提高实际操作能力。

4.讨论法:学生进行小组讨论,分享学习心得和经验,促进学生之间的交流与合作。

四、教学资源为了支持本章节的教学内容和教学方法,我们将准备以下教学资源:1.教材:选修课系统相关教材,为学生提供系统性的理论知识。

2.参考书:提供相关领域的参考书籍,为学生提供更多的学习资料。

3.多媒体资料:制作PPT、视频等多媒体资料,为学生提供直观的学习体验。

4.实验设备:准备实验室设备,为学生提供实际操作的机会。

五、教学评估本章节的教学评估主要包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问回答、小组讨论等表现,以体现学生的学习态度和积极性。

C语言课程设计学生选修课系统设计

C语言课程设计学生选修课系统设计
C语言课程设计学生选 修课系统设计
汇报人:
目录
添加目录标题
系统概述
系统需求分析
系统设计
系统实现
系统部署与维护
添加章节标题
系统概述
提高学生编程能力
方便教师管理课程设计项目
添加标题
添加标题
提供课程设计实践平台
添加标题
添加标题
促进学生之间的交流与合作
学生选课:查看课程信息,选择感兴趣的课程 教师管理:发布课程信息,管理学生选课情况 教务管理:查看学生选课情况,统计课程报名人数 系统维护:更新课程信息,维护系统正常运行
系统评估与总结
功能完整性:系统是否具备所有必需的 功能
性能稳定性:系统在运行过程中是否稳 定,是否会出现崩溃或错误
用户体验:系统的界面设计、操作流程 是否符合用户习惯,是否易于使用
安全性:系统是否具备足够的安全措施, 如数据加密、用户认证等
可扩展性:系统是否具备良好的可扩展 性,能够适应未来的需求变化
硬件要求:服务器、网络设备、存储设备等 软件要求:操作系统、数据库管理系统、Web服务器等
部署步骤:安装操作系统、安装数据库管理系统、安装Web服务器、部署应用程序等
维护方案:定期备份数据、定期检查系统运行状况、定期更新软件等
定期备份数据:确保数据安全, 防止数据丢失
定期更新软件:确保系统安全, 防止病毒和恶意软件攻击
管理员模块:用户管理、课程管理、选 课管理、成绩管理等操作
系统实现
数据库类型:MySQL
数据库操作:增删改查、事务处理、 备份恢复
添加标题
添加标题
添加标题
添加标题
数据库设计:表结构设计、字段设 计、索引设计
数据库优化:查询优化、索引优化、 存储优化

学生选课系统课程设计c

学生选课系统课程设计c

学生选课系统课程设计c一、教学目标本课程旨在让学生掌握学生选课系统的设计与实现。

知识目标方面,学生需要理解数据库的基本概念、SQL语言、关系型数据库的设计原理;技能目标方面,学生需要能够使用一种编程语言实现学生选课系统的核心功能;情感态度价值观目标方面,学生需要培养团队协作意识,增强对计算机科学和软件工程的兴趣。

二、教学内容本课程的教学内容主要包括四个部分:数据库理论、SQL语言、关系型数据库设计、学生选课系统实现。

其中,数据库理论主要介绍数据库的基本概念、数据模型、关系型数据库的规范化;SQL语言主要讲解数据定义语言、数据操纵语言、数据查询语言;关系型数据库设计主要阐述如何根据需求设计合理的数据库表结构;学生选课系统实现主要分析系统的功能模块、实现方法以及测试与优化。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法。

首先,通过讲授法向学生传授基本概念和理论知识;其次,利用讨论法激发学生对问题的思考和探讨;再者,采用案例分析法让学生通过分析实际案例,加深对知识的理解和应用;最后,运用实验法让学生动手实践,培养实际操作能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:教材《数据库原理与应用》、参考书《SQL语言教程》、《关系型数据库设计》、多媒体资料(包括教学视频、PPT等)、实验设备(计算机、数据库服务器等)。

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

评估方式包括平时表现、作业、考试等。

平时表现主要评估学生的课堂参与度、讨论积极性及团队协作能力;作业则主要评估学生对知识的理解和应用能力;考试则全面考察学生的理论知识掌握和实际操作技能。

评估过程将保持公正、客观,确保每一位学生的努力都能得到合理的回报。

六、教学安排本课程的教学安排将遵循合理、紧凑的原则,确保在有限的时间内完成教学任务。

教学进度将根据课程内容和学生的实际情况进行调整,以保证教学效果。

学生选课管理系统c课程设计

学生选课管理系统c课程设计

学生选课管理系统c 课程设计一、课程目标知识目标:1. 让学生理解学生选课管理系统的基本概念和功能,掌握系统设计的基本原理。

2. 使学生掌握数据库的基本操作,如查询、插入、删除和更新数据。

3. 帮助学生了解软件开发流程,熟悉系统设计、编码、测试等环节。

技能目标:1. 培养学生运用所学知识,独立设计并实现一个简单的学生选课管理系统。

2. 提高学生分析问题和解决问题的能力,学会运用数据库技术解决实际应用问题。

3. 培养学生的团队协作能力,学会在项目中进行有效沟通和分工合作。

情感态度价值观目标:1. 培养学生积极的学习态度,激发学生对计算机科学的兴趣和热情。

2. 培养学生的创新意识和实践能力,鼓励学生勇于尝试,敢于挑战。

3. 增强学生的责任心,让学生明白系统设计的重要性,关注用户需求,为用户带来更好的体验。

本课程针对高年级学生,课程性质为理论与实践相结合。

在教学过程中,注重培养学生的实际操作能力和解决问题的能力。

结合学生特点和教学要求,将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。

通过本课程的学习,使学生能够掌握学生选课管理系统设计的相关知识和技能,为今后从事软件开发和数据库管理等相关工作打下坚实基础。

二、教学内容1. 学生选课管理系统的基本概念与功能- 系统需求分析- 功能模块划分2. 数据库基础知识- 数据库设计原则- 数据表创建与维护- 数据查询、插入、删除和更新操作3. 系统设计- 系统架构设计- 界面设计- 数据库连接与操作4. 编程实现- 编程语言选择(如Java、Python等)- 系统功能编码- 代码调试与优化5. 系统测试与维护- 测试方法与策略- 常见问题分析与解决- 系统维护与升级6. 项目实践- 团队协作与分工- 项目进度管理- 系统部署与展示教学内容根据课程目标制定,涵盖学生选课管理系统设计的相关知识。

本课程采用教材相关章节,结合实际案例,保证教学内容的科学性和系统性。

c学生选课管理系统课程设计

c学生选课管理系统课程设计

c 学生选课管理系统课程设计一、课程目标知识目标:1. 学生能够理解学生选课管理系统的基本概念和功能,掌握系统设计的基本原理。

2. 学生能够描述数据库的基本结构,了解数据表之间的关系,并运用SQL语句进行数据查询和操作。

3. 学生能够了解软件工程的基本流程,包括需求分析、系统设计、编码实现和测试等环节。

技能目标:1. 学生能够运用结构化分析方法进行需求分析,独立设计学生选课管理系统的功能模块。

2. 学生能够使用数据库设计工具,创建数据库和表,编写SQL查询语句,实现数据的有效管理。

3. 学生能够运用编程语言(如Java、C#等)实现学生选课管理系统的部分功能,具备基本的编程实践能力。

情感态度价值观目标:1. 培养学生独立思考、解决问题的能力,增强团队合作意识和沟通能力。

2. 培养学生对信息技术的兴趣和热情,提高学生的信息素养,使他们对信息技术的发展保持关注。

3. 培养学生具备诚信、负责的态度,认识到信息技术对社会发展的重要影响,树立正确的价值观。

课程性质:本课程为信息技术学科,旨在培养学生掌握学生选课管理系统设计与实现的基本技能,提高学生的编程实践能力和信息素养。

学生特点:学生具备一定的计算机操作能力和编程基础,对信息技术有一定的兴趣。

教学要求:注重理论与实践相结合,以项目为导向,培养学生动手实践能力和解决问题的能力。

将课程目标分解为具体的学习成果,以便于教学设计和评估。

二、教学内容1. 学生选课管理系统概述:介绍学生选课管理系统的基本概念、功能模块及其在实际应用中的重要性。

- 教材章节:第一章 绪论2. 需求分析:讲解如何运用结构化分析方法进行需求分析,包括用例图、活动图等工具的使用。

- 教材章节:第二章 需求分析3. 数据库设计:介绍数据库的基本概念、关系型数据库的设计方法,以及SQL 语言进行数据操作。

- 教材章节:第三章 数据库设计4. 系统设计:讲解系统设计的基本原理,包括软件架构、模块划分、界面设计等。

C课程设计学生选课系统设计

C课程设计学生选课系统设计

目录1系统需求分析................................................................................................ 错误!未定义书签。

2总体设计........................................................................................................ 错误!未定义书签。

3具体设计........................................................................................................ 错误!未定义书签。

4界面设计与各功能模块实现........................................................................ 错误!未定义书签。

5 系统调试....................................................................................................... 错误!未定义书签。

6 实验心得体会............................................................................................... 错误!未定义书签。

7附: 源程序251系统需求分析(1)、本系统是针对高校学生的选修课程而设计, 通过本系统高校学生可以很方便地进行自由选课。

重要的问题描述是(功能规定): n门课程, 每门课程有课程编号, 课程名称, 课程性质, 总学时, 授课学时, 实验或上机学时, 学分, 开课学期等信息, 学生可按规定(如总学分不得少于60)自由选课。

课程设计学生选课系统c语言

课程设计学生选课系统c语言

课程设计学生选课系统c语言一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握学生选课系统相关的数据类型、运算符、控制语句等知识;2. 学会使用C语言设计学生选课系统的功能模块,包括学生信息管理、课程信息管理、选课操作等;3. 了解C语言在学生选课系统中的应用场景,掌握一定的软件设计方法和技巧。

技能目标:1. 能够运用C语言编写简单的学生选课系统程序,具备基本的编程能力;2. 学会分析学生选课系统的需求,设计合理的程序结构,培养解决问题的能力;3. 能够使用调试工具对程序进行调试和优化,提高程序的执行效率。

情感态度价值观目标:1. 培养学生对C语言的兴趣,激发学习编程的热情,提高自主学习的积极性;2. 培养学生的团队协作意识,学会与他人合作完成项目任务;3. 通过实际操作,让学生认识到编程在解决实际问题中的价值,增强社会责任感。

课程性质:本课程为实践性较强的学科,结合实际应用场景,培养学生的编程能力和解决问题的能力。

学生特点:学生在本年级已具备一定的C语言基础,对编程有一定的兴趣和热情,但缺乏实际项目经验。

教学要求:教师需结合学生特点和课程性质,注重理论与实践相结合,引导学生主动参与,提高学生的实践操作能力。

在教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. C语言基础回顾:数据类型、变量、运算符、控制语句(选择、循环)、函数等基本概念和用法。

2. 学生选课系统需求分析:介绍学生选课系统的功能模块,分析各模块的需求,明确编程目标和任务。

3. 系统设计:- 数据结构设计:学生、课程等实体的属性和关系,以及数据存储方式;- 界面设计:系统菜单、功能界面等;- 功能模块设计:学生信息管理、课程信息管理、选课操作、查询等模块。

4. 编程实践:- 搭建开发环境,熟悉编程工具;- 编写各功能模块的代码,实现学生选课系统的基本功能;- 调试和优化程序,确保系统的稳定性和性能。

c学生选课系统课程设计

c学生选课系统课程设计

c学生选课系统课程设计一、课程目标知识目标:1. 学生能够理解并掌握学生选课系统的基本原理和功能。

2. 学生能够运用所学知识,分析并设计一个简单的学生选课系统。

3. 学生能够了解数据库管理、网络通信等基础知识在选课系统中的应用。

技能目标:1. 学生能够运用编程语言(如Python)实现选课系统的基本功能,如学生信息管理、课程选择等。

2. 学生能够通过小组合作,完成选课系统的需求分析、设计、编码和测试。

3. 学生能够运用问题解决策略,解决在开发过程中遇到的技术难题。

情感态度价值观目标:1. 学生能够培养对计算机科学的兴趣和热情,提高主动学习的积极性。

2. 学生能够在团队合作中发挥个人优势,学会倾听、沟通、协作和分享。

3. 学生能够认识到编程在解决实际问题中的应用价值,增强实践能力和创新精神。

课程性质分析:本课程为信息技术课程,旨在让学生通过动手实践,掌握编程语言和系统设计的基本方法,提高解决问题的能力。

学生特点分析:本课程面向初中年级学生,学生对计算机操作有一定的基础,具备一定的逻辑思维能力和创新意识。

教学要求:1. 结合教材内容,注重实践操作,提高学生的动手能力。

2. 激发学生兴趣,引导他们主动探索新知识,培养自主学习能力。

3. 强化团队合作,培养学生的沟通能力和协作精神。

二、教学内容1. 学生选课系统的基本概念与功能- 理解选课系统的定义及其重要性- 掌握选课系统的核心功能模块(如学生信息管理、课程信息管理、选课操作等)2. 数据库基础知识- 学习数据库的基本概念(如数据表、字段、记录等)- 掌握简单的SQL语句(如SELECT、INSERT、UPDATE、DELETE)3. 编程语言基础(以Python为例)- 学习Python的基本语法和编程规范- 掌握使用Python进行数据操作和流程控制4. 系统设计方法- 学习需求分析的基本步骤和方法- 掌握系统设计的基本流程(如UML图、流程图等)5. 选课系统的实现- 学习如何设计系统界面和用户体验- 实践编程实现选课系统的各个功能模块6. 系统测试与优化- 学习系统测试的基本方法- 掌握对系统进行性能优化和错误修正的技巧教学内容安排与进度:第1-2周:学生选课系统的基本概念与功能学习第3-4周:数据库基础知识学习与实践第5-6周:Python编程基础学习第7-8周:系统设计方法学习与需求分析第9-10周:选课系统的编码实现第11-12周:系统测试与优化,项目总结与展示教材章节关联:本教学内容与教材中“数据库应用”、“Python编程”、“系统分析与设计”等章节相关联,确保学生能够结合教材内容,系统地学习和掌握相关知识。

c学生选课管理系统课程设计

c学生选课管理系统课程设计

c 学生选课管理系统课程设计一、教学目标本课程旨在让学生了解和掌握学生选课管理系统的基本原理和实现方法。

通过本课程的学习,学生将能够:1.理解学生选课管理系统的需求和功能。

2.掌握学生选课管理系统的基本架构和模块设计。

3.学会使用相关技术和工具实现学生选课管理系统的各个功能。

4.培养学生的团队合作能力和问题解决能力。

二、教学内容本课程的教学内容主要包括以下几个部分:1.学生选课管理系统概述:介绍学生选课管理系统的定义、需求和功能。

2.系统设计:讲解学生选课管理系统的基本架构和模块设计。

3.技术实现:介绍实现学生选课管理系统各个功能所需要使用的技术和工具。

4.系统测试与优化:讲解如何对 student course selection managementsystem 进行测试和优化。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法,包括:1.讲授法:讲解基本概念、原理和关键技术。

2.案例分析法:分析实际案例,让学生更好地理解学生选课管理系统的应用。

3.实验法:让学生通过动手实践,加深对课程内容的理解和掌握。

四、教学资源为了支持教学内容和教学方法的实施,本课程将准备以下教学资源:1.教材:为学生提供全面、系统的理论知识。

2.参考书:提供更多的背景知识和实际案例。

3.多媒体资料:通过视频、图片等形式,丰富学生的学习体验。

4.实验设备:为学生提供实践操作的机会,加深对课程内容的理解和掌握。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生的课堂参与度和团队合作能力,占总评的30%。

作业主要包括课后练习和项目任务,占总评的40%。

考试为闭卷考试,评估学生对课程知识的掌握程度,占总评的30%。

六、教学安排本课程共32课时,安排在第8至第16周的每周二、四下午2:00-4:00进行。

教学地点为计算机实验室,以确保学生有足够的实践操作机会。

教学进度安排合理紧凑,确保在有限的时间内完成教学任务。

学生选课系统c课程设计

学生选课系统c课程设计

学生选课系统c 课程设计一、课程目标知识目标:1. 让学生理解学生选课系统的基本概念,掌握其功能模块和使用方法;2. 使学生掌握数据库查询、数据传递和界面设计的相关知识;3. 帮助学生了解编程规范,提高代码质量。

技能目标:1. 培养学生运用所学知识设计并实现一个简单的学生选课系统的能力;2. 培养学生分析问题、解决问题的能力;3. 提高学生的团队协作能力和沟通能力。

情感态度价值观目标:1. 激发学生对计算机科学的兴趣,培养其探索精神;2. 引导学生树立正确的价值观,认识到编程在解决实际问题中的作用;3. 培养学生面对挑战保持积极态度,勇于克服困难。

课程性质:本课程为实践性较强的课程,结合课本知识,通过设计一个学生选课系统,使学生将所学理论知识运用到实际项目中。

学生特点:学生处于高年级阶段,已具备一定的编程基础,对数据库和编程有初步了解,但实际项目经验较少。

教学要求:注重理论与实践相结合,以学生为主体,充分调动学生的积极性和主动性,培养其创新精神和实践能力。

通过课程学习,使学生在掌握知识的同时,提高自身技能和情感态度价值观。

教学过程中,将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. 学生选课系统概述:介绍学生选课系统的基本概念、功能模块及其在实际中的应用。

- 教材章节:第1章 数据库系统概述2. 数据库设计与实现:讲解如何设计学生选课系统的数据库,包括表结构设计、数据关系等。

- 教材章节:第2章 数据库设计基础3. 编程语言与开发环境:介绍使用C语言或C++进行学生选课系统开发,讲解开发环境的配置和使用。

- 教材章节:第3章 C/C++编程基础4. 界面设计与实现:教授如何设计和实现用户界面,包括界面布局、功能模块划分等。

- 教材章节:第4章 界面设计与实现5. 系统功能实现:分析学生选课系统各功能模块的实现方法,包括选课、退课、查询课程等。

- 教材章节:第5章 数据库应用开发6. 测试与优化:讲解如何对系统进行测试、调试和优化,保证系统稳定性和性能。

c学生选课系统课程设计

c学生选课系统课程设计

c 学生选课系统课程设计一、教学目标本课程的学习目标包括以下三个方面:1.知识目标:学生需要掌握学生选课系统的基本概念、原理和流程,了解系统的各个模块和功能,以及相关的前端和后端技术。

2.技能目标:学生能够独立完成学生选课系统的搭建和部署,具备对系统进行维护和优化的能力,能够使用相关的开发工具和软件进行系统开发。

3.情感态度价值观目标:学生通过本课程的学习,能够增强对计算机科学和信息技术的兴趣和热情,培养良好的科学素养和创新精神,提升解决实际问题的能力。

在制定教学目标时,我们分析了课程性质、学生特点和教学要求,将目标分解为具体的学习成果,以便后续的教学设计和评估。

二、教学内容根据课程目标,我们选择和了以下教学内容:1.学生选课系统的概述:包括系统的定义、功能、特点和应用场景。

2.学生选课系统的设计:包括系统的架构、模块设计、数据库设计和界面设计。

3.学生选课系统的实现:包括前端开发、后端开发、系统测试和优化。

4.学生选课系统的部署和维护:包括系统的部署方法、维护策略和常见问题解决。

以上内容涵盖了学生选课系统的各个方面,确保了教学内容的科学性和系统性。

三、教学方法为了激发学生的学习兴趣和主动性,我们选择了以下教学方法:1.讲授法:通过讲解和演示,使学生了解学生选课系统的相关概念和原理。

2.讨论法:学生进行小组讨论,培养学生的思考能力和团队合作精神。

3.案例分析法:分析实际案例,使学生更好地理解和掌握学生选课系统的应用。

4.实验法:让学生亲自动手进行系统开发和实验,提高学生的实践能力。

四、教学资源我们选择了以下教学资源,以支持教学内容和教学方法的实施:1.教材:选用权威、实用的教材,为学生提供系统的理论知识。

2.参考书:提供丰富的参考资料,帮助学生拓展知识面。

3.多媒体资料:制作精美的PPT、视频等资料,提高学生的学习兴趣。

4.实验设备:提供充足的实验设备,保证学生能够顺利进行实验操作。

以上教学资源将丰富学生的学习体验,提高教学质量。

c课程设计学生选课系统

c课程设计学生选课系统

c课程设计学生选课系统一、教学目标本课程的目标是让学生掌握学生选课系统的开发和应用,包括对其原理和实现的理解,以及如何使用该系统进行选课。

•理解学生选课系统的基本原理和架构。

•掌握常用的选课算法和策略。

•熟悉学生选课系统的开发工具和技术。

•能够独立设计和实现一个简单的学生选课系统。

•能够对现有的学生选课系统进行评估和改进。

•能够使用相关的开发工具和技术进行学生选课系统的开发。

情感态度价值观目标:•培养学生的创新意识和团队合作精神,使他们能够在团队中发挥自己的专长,共同完成一个学生选课系统的设计和实现。

•培养学生对技术的热爱和敬业精神,使他们能够持续学习和跟进最新的技术动态,不断提高自己的技能水平。

二、教学内容本课程的教学内容主要包括学生选课系统的原理、选课算法、系统设计、开发工具和技术。

1.学生选课系统的原理:介绍学生选课系统的基本概念、架构和运作机制,包括选课流程、课程分类、学生选课策略等。

2.选课算法:讲解常用的选课算法,如先到先得、最大匹配、最小匹配等,并通过实例进行讲解和分析。

3.系统设计:介绍学生选课系统的系统设计,包括需求分析、模块设计、数据库设计等,并通过实际案例进行讲解和分析。

4.开发工具和技术:介绍学生选课系统的开发工具和技术,如编程语言、数据库管理系统、前端技术等,并通过实际操作进行讲解和演示。

三、教学方法本课程将采用讲授法、讨论法、案例分析法和实验法等多种教学方法进行教学。

1.讲授法:通过讲解和演示,使学生了解学生选课系统的原理、算法、设计和开发工具等技术内容。

2.讨论法:通过学生进行小组讨论,培养他们的团队合作意识和解决问题的能力。

3.案例分析法:通过分析实际案例,使学生更好地理解和掌握学生选课系统的原理和设计方法。

4.实验法:通过实际操作和实验,使学生掌握学生选课系统的开发工具和技术,并培养他们的动手能力。

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

c语言课程设计学生选课系统设计

c语言课程设计学生选课系统设计

c语言课程设计学生选课系统设计一、课程目标知识目标:1. 理解C语言的基本语法和结构,掌握数组、指针、函数等基本概念;2. 学会使用结构体、文件操作等C语言特性进行数据组织和存储;3. 掌握面向过程编程思想,能够运用C语言设计简单的学生选课系统。

技能目标:1. 能够运用结构化编程方法,编写模块化的C语言代码;2. 学会使用C语言进行简单的数据输入、处理和输出;3. 能够运用调试工具,分析并解决程序中的错误。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发自主学习编程的积极性;2. 培养学生的团队合作意识,学会在团队中发挥个人优势,共同解决问题;3. 培养学生严谨、细心的编程习惯,认识到编程对培养逻辑思维能力和解决问题能力的重要性。

课程性质:本课程为C语言程序设计课程的实践环节,以学生选课系统设计为主题,结合C语言编程知识,培养学生的实际编程能力和解决问题的能力。

学生特点:学生已具备一定的C语言基础,对编程有一定了解,但实际操作能力有待提高。

教学要求:结合学生特点和课程性质,将课程目标分解为具体的学习成果,注重实践操作,强化编程能力和团队协作能力的培养。

在教学过程中,关注学生个体差异,提供个性化指导,确保课程目标的达成。

二、教学内容1. C语言基础知识复习:数组、指针、函数、结构体、文件操作等基本概念和用法。

教材章节:第三章数组和第四章函数。

2. 面向过程编程思想:顺序结构、分支结构、循环结构等控制结构在实际编程中的应用。

教材章节:第五章控制结构。

3. 学生选课系统需求分析:了解系统功能、模块划分,明确编程目标和任务。

教材章节:项目实训部分。

4. 学生选课系统设计:模块化设计、数据结构设计、界面设计等。

教材章节:项目实训部分。

5. 编程实践:根据设计文档,编写C语言代码实现学生选课系统。

教材章节:项目实训部分。

6. 调试与测试:使用调试工具,对程序进行调试和测试,确保系统功能的正确性和稳定性。

学生选课系统c课程设计

学生选课系统c课程设计

学生选课系统c 课程设计一、课程目标知识目标:1. 理解学生选课系统的基本原理,掌握系统设计的基本流程;2. 掌握运用C语言实现学生选课系统的基本功能,如学生信息管理、课程信息管理、选课操作等;3. 了解数据库基本概念,学会使用简单的数据结构存储和查询信息。

技能目标:1. 培养学生运用C语言进行程序设计的能力,提高编程技巧;2. 培养学生分析问题、解决问题的能力,能够根据需求设计合适的算法和数据结构;3. 培养学生团队协作和沟通能力,能够在项目开发中合理分工、协作完成系统设计。

情感态度价值观目标:1. 培养学生对计算机科学的兴趣,激发学习编程的热情;2. 培养学生认真负责的态度,对待每一个编程任务都能够严谨、细致;3. 培养学生遵守法律法规和道德规范,尊重他人知识产权,养成良好的计算机使用习惯。

本课程针对高年级学生,结合C语言编程知识,以学生选课系统为载体,锻炼学生编程实践能力。

课程性质为实践性较强的学科,要求学生在理解基本原理的基础上,能够动手实践,完成选课系统的设计与实现。

通过本课程的学习,旨在提高学生的编程技能,培养其解决问题和团队协作的能力,同时注重培养学生正确的价值观和道德观念。

二、教学内容1. C语言基础知识回顾:数据类型、运算符、控制结构、函数、指针等;2. 结构体和链表:理解结构体的概念,掌握链表的操作,如创建、插入、删除等;3. 文件操作:学习文件读写的基本方法,掌握如何存储和读取学生、课程信息;4. 数据库基础:介绍数据库的基本概念,如表、记录、字段等,学习使用简单的数据结构模拟数据库操作;5. 学生选课系统功能模块设计:a. 学生信息管理:实现学生信息的增加、删除、修改和查询功能;b. 课程信息管理:实现课程信息的增加、删除、修改和查询功能;c. 选课操作:实现学生选课、退课功能,以及查询选课结果;6. 系统测试与优化:学习测试方法,对系统进行测试和优化,确保系统稳定可靠;7. 项目实践:按照教学大纲,分阶段完成学生选课系统的设计与实现。

c选修课系统课程设计

c选修课系统课程设计

c 选修课系统课程设计一、课程目标知识目标:1. 学生能掌握选修课程的核心概念,理解各知识点之间的内在联系,达到对学科知识的深入理解。

2. 学生能运用所学知识,分析实际问题,形成自己的见解。

技能目标:1. 学生通过课堂讨论、小组合作等方式,提高问题解决能力和团队协作能力。

2. 学生能运用信息技术手段,收集、整理、分析相关资料,提高信息处理能力。

情感态度价值观目标:1. 学生对选修课程产生浓厚的兴趣,培养自主学习、终身学习的习惯。

2. 学生在课程学习过程中,树立正确的价值观,形成积极向上的人生态度。

3. 学生通过课程学习,增强对国家、社会的责任感,培养良好的公民素养。

课程性质:本课程为选修课,旨在拓宽学生的知识视野,提高综合素养。

学生特点:学生处于青春期,思维活跃,具有较强的求知欲和探索精神。

教学要求:结合学生特点,注重启发式教学,激发学生兴趣,提高课堂参与度。

同时,注重培养学生的实践能力和创新精神,使学生在学习过程中获得成就感。

通过分解课程目标为具体的学习成果,为教学设计和评估提供明确方向。

二、教学内容本课程教学内容依据课程目标,结合教材科学性和系统性,进行以下安排:1. 知识点讲解:涵盖教材相关章节的核心知识点,如基本概念、原理、实例分析等。

- 章节一:选修课程导论- 章节二:学科知识体系概述- 章节三:重要概念与原理讲解2. 实践操作:培养学生实际操作能力,提高对知识的应用。

- 实践活动一:小组合作探究- 实践活动二:案例分析3. 讨论与分享:激发学生思考,促进课堂互动。

- 讨论主题一:学科知识在实际生活中的应用- 讨论主题二:跨学科知识融合与创新4. 拓展阅读:推荐与课程相关的阅读材料,拓宽学生知识面。

- 阅读材料一:学科前沿动态- 阅读材料二:相关领域名人传记教学进度安排:- 第一周:章节一、二知识讲解,实践活动一- 第二周:章节三知识讲解,讨论主题一- 第三周:实践活动二,讨论主题二- 第四周:拓展阅读,课程总结与评价教学内容安排注重理论与实践相结合,充分调动学生积极性,提高课堂效果。

c课程设计学生选课系统设计

c课程设计学生选课系统设计

c 课程设计学生选课系统设计一、教学目标本课程的目标是让学生掌握学生选课系统的设计和实现。

知识目标包括:了解学生选课系统的需求分析、系统设计、实现和测试的基本知识;掌握常用的数据结构和算法在学生选课系统中的应用。

技能目标包括:能够使用相关工具进行学生选课系统的开发;具备学生选课系统的设计和实现能力。

情感态度价值观目标包括:培养学生对计算机科学的兴趣和热情;培养学生团队协作和自主学习的意识。

二、教学内容本课程的教学内容主要包括:学生选课系统的需求分析、系统设计、实现和测试。

首先,介绍学生选课系统的需求分析,包括功能需求和非功能需求;然后,讲解学生选课系统的系统设计,包括模块划分、数据结构和算法设计;接着,介绍学生选课系统的实现,包括编程语言和开发工具的选择;最后,讲解学生选课系统的测试,包括测试用例的设计和测试结果的分析。

三、教学方法为了达到本课程的教学目标,将采用多种教学方法,包括讲授法、案例分析法、实验法等。

首先,通过讲授法向学生传授学生选课系统的相关理论知识;然后,通过案例分析法让学生了解实际的学生选课系统设计和实现过程;接着,通过实验法让学生亲手实践,加深对理论知识的理解;最后,通过小组讨论和报告,培养学生的团队协作和沟通能力。

四、教学资源为了支持本课程的教学内容和方法,将准备多种教学资源,包括教材、参考书、多媒体资料和实验设备。

教材和参考书将用于提供理论知识的讲解和示例;多媒体资料将用于辅助讲解和展示;实验设备将用于让学生亲手实践。

这些教学资源将帮助学生更好地理解和掌握学生选课系统的设计和实现。

五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。

平时表现主要评估学生的课堂参与和团队协作能力,包括课堂提问、小组讨论和报告等;作业主要评估学生的理解和应用能力,包括练习题和项目任务等;考试主要评估学生的综合运用能力,包括理论知识和实践技能的考核。

评估方式应客观、公正,能够全面反映学生的学习成果。

c语言学生选课系统课程设计

c语言学生选课系统课程设计

c语言学生选课系统课程设计一、教学目标本课程的目标是让学生掌握C语言编程的基本技能,通过设计和实现一个学生选课系统,培养学生的实际编程能力和问题解决能力。

具体目标如下:知识目标:使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基本知识。

技能目标:培养学生使用C语言进行程序设计的能力,包括变量定义、输入输出、条件判断、循环控制等。

情感态度价值观目标:培养学生对计算机科学的兴趣,增强学生的创新意识和团队协作精神。

二、教学内容教学内容以教材《C程序设计》为主线,结合学生选课系统的实际需求,安排如下:1.C语言基础知识:数据类型、变量、运算符、表达式等。

2.控制结构:顺序结构、分支结构、循环结构等。

3.函数:函数的定义、调用、参数传递、返回值等。

4.数组和字符串:一维数组、多维数组、字符串的基本操作等。

5.指针:指针的概念、指针的运算、指针与数组、指针与函数等。

6.结构体和文件:结构体的定义和使用、文件的打开、读写、关闭等。

7.学生选课系统的设计与实现:系统需求分析、系统设计、功能模块划分、编程实现等。

三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构等知识。

2.案例分析法:通过分析学生选课系统的实际案例,使学生掌握函数的定义、调用等。

3.实验法:让学生亲自动手编写代码,实现学生选课系统的各个功能模块。

四、教学资源教学资源包括教材、实验设备、多媒体资料等,以支持教学内容和教学方法的实施,丰富学生的学习体验。

1.教材:《C程序设计》。

2.实验设备:计算机、网络等。

3.多媒体资料:教学PPT、视频教程、在线编程练习等。

五、教学评估为了全面、客观地评估学生的学习成果,本课程采用以下评估方式:1.平时表现:评估学生在课堂上的参与度、提问回答、小组讨论等,以考察学生的学习态度和积极性。

2.作业:布置适量的课后作业,让学生巩固所学知识,并通过作业批改了解学生的掌握情况。

c语言学生选课系统课程设计

c语言学生选课系统课程设计

c语言 学生选课系统课程设计一、课程目标知识目标:1. 掌握C语言基础语法,包括数据类型、变量、运算符、控制结构等;2. 学会使用数组、函数、指针等C语言高级特性;3. 理解结构体、文件操作等在C语言中的应用;4. 了解C语言在开发学生选课系统中的实际应用。

技能目标:1. 能独立编写C语言程序,实现学生选课系统的基本功能;2. 学会使用C语言进行数据存储、处理和展示;3. 培养良好的编程习惯,注重代码规范和注释;4. 学会分析问题,设计合理的算法和程序结构。

情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习热情;2. 培养学生团队合作意识,学会与他人共同解决问题;3. 增强学生的自信心,敢于面对编程挑战;4. 培养学生的创新思维,敢于尝试新方法解决问题。

课程性质:本课程为实践性较强的课程,旨在让学生在实际操作中掌握C语言编程技能,培养学生解决实际问题的能力。

学生特点:学生具备一定的C语言基础,对编程有一定了解,但对实际项目的开发尚无经验。

教学要求:注重理论与实践相结合,强调动手实践,引导学生通过团队协作完成课程设计任务。

在教学过程中,关注学生个体差异,提供个性化指导,确保学生达到课程目标。

将课程目标分解为具体的学习成果,便于教学设计和评估。

二、教学内容1. C语言基础语法复习:数据类型、变量、常量、运算符、表达式、控制结构(顺序、选择、循环)。

教材章节:第一章至第三章。

2. 数组与字符串:一维数组、二维数组、字符串操作。

教材章节:第四章。

3. 函数与指针:函数定义、调用、递归;指针的概念、使用。

教材章节:第五章、第六章。

4. 结构体与文件操作:结构体的定义和使用;文件读写操作。

教材章节:第七章、第十章。

5. 学生选课系统需求分析:功能模块划分、数据结构设计。

教材章节:项目实战部分。

6. 编程实现学生选课系统:根据需求分析,编写程序代码,实现选课、退课、查询课程、显示选课结果等功能。

教材章节:项目实战部分。

c课程设计-学生选课系统

c课程设计-学生选课系统

c 课程设计-学生选课系统一、课程目标知识目标:1. 学生能理解学生选课系统的基本概念和原理,掌握课程选择的基本流程。

2. 学生能掌握学生选课系统中的数据结构和关键功能,如课程分类、筛选、排序等。

3. 学生能了解并描述学生选课系统在实际中的应用场景和重要性。

技能目标:1. 学生能够运用所学知识,设计并实现一个简单的学生选课系统。

2. 学生能够运用编程语言或工具,对学生选课系统进行功能实现和优化。

3. 学生能够运用问题解决和团队协作能力,对学生选课系统进行测试、调试和完善。

情感态度价值观目标:1. 培养学生对信息技术课程的兴趣和热情,提高学习积极性。

2. 培养学生具备良好的信息素养,认识到信息技术在实际生活中的应用价值。

3. 培养学生具备合作精神和团队意识,懂得分享、交流和互助。

课程性质:本课程为信息技术课程,旨在让学生了解并掌握学生选课系统的基本原理和实现方法,培养学生的编程思维和实际操作能力。

学生特点:学生处于高年级阶段,已具备一定的信息技术基础,对编程和系统设计有一定了解,具备一定的自主学习能力和团队协作精神。

教学要求:结合学生特点和课程性质,注重理论与实践相结合,充分调动学生的主观能动性,引导学生通过实践操作,掌握学生选课系统的设计与实现。

在教学过程中,关注学生的个体差异,提供个性化的指导和支持,确保学生能够达到预定的学习目标。

二、教学内容1. 学生选课系统的基本概念与功能- 理解学生选课系统的定义和作用- 掌握学生选课系统的主要功能模块2. 数据结构与算法- 学习课程数据结构的设计,如课程信息、学生信息等- 掌握课程筛选和排序算法,提高系统查询效率3. 系统设计与实现- 分析学生选课系统的需求,设计系统架构- 学习编程语言,如Python或Java,实现系统功能4. 系统测试与优化- 了解系统测试方法,编写测试用例- 分析测试结果,对系统进行优化和改进5. 实际应用案例分析- 分析现实中的学生选课系统案例,了解其优缺点- 探讨如何将理论知识应用于实际项目开发教学大纲安排:第一周:学生选课系统基本概念与功能学习第二周:数据结构与算法学习第三周:系统设计与实现(上)第四周:系统设计与实现(下)第五周:系统测试与优化第六周:实际应用案例分析及总结教学内容关联教材章节:第一章:学生选课系统概述第二章:数据结构与算法第三章:系统设计与实现第四章:系统测试与优化第五章:学生选课系统案例分析与实践三、教学方法本课程将采用以下多样化的教学方法,以激发学生的学习兴趣和主动性:1. 讲授法:- 对于学生选课系统的基本概念、原理和关键知识点,采用讲授法进行教学。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《C++程序设计》课程设计报告学生选修课程系统设计一、需求分析计算机技术作为信息化的核心技术受到全社会的普遍重视。

如今,计算机的使用也已不再局限于科学计算,它已进入人类社会的各个领域并发挥着越来越重要的作用。

深入掌握计算机专业知识、具有良好系统设计与分析能力的计算机高级专业人才在社会上深受欢迎。

而系统设计与分析能力的培养需要通过实践训练才能获得。

通过计算机对一些系统的管理已经成为一种系统、便捷的方式。

本课程设计就是用C++设计学生选课系统的问题,实现对学生选课的管理操作。

本课程设计的目的是设计一个学生选修课程系统的程序,用来实现对学生成绩的管理,其中包括学生信息的文件读入、添加、查询、保存、删除以及相应的课程信息管理。

程序设计了两个类,其中一个包含学生的学号、、选课数以及选修总学分,另一个则包含了课程的信息,包括课程编号、课程名称、课程性质、课时等等。

然后通过数组、向量、集合等来实现学生选课信息的记录、保存,删除等相关操作从而达到管理学生选课的。

二、设计要求假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验学时、学分、开课学期等信息。

学生可以按要求(如每个学生总学分不得少于20、没学期不能超过3门课程,每门课程不得超过50个人,但不能少于10否则该课程不开设)自由选课。

使之能提供一些功能:1)课程信息录入功能2)课程信息浏览功能3)查询功能:(按课程性质查询、按课程学分查询,查询每个学生的选修信息、查询每门课程的选修信息等)4)学生选修课程5)修改课程或选课信息(根据课程编号或名称修改课程信息、根据学生修改选课信息);6)删除课程或选课信息(根据课程编号或名称删除课程信息、根据学生删除选课信息);三、总体设计我们设计一个程序对学生选课信息进行保存,对学生的选课信息进行可执行操作,如添加、删除、查询等等。

该程序包括以下功能模块:1)学生信息添加模块:能够输入学生基本信息并保存到文件中。

2)查看模块:显示所有可选修课程的信息。

3)查询:显示所有符合要求的课程信息。

4)选课:显示学生已选课程信息和选课,删除已选课程信息。

5)退出系统。

为了完善系统,我们还添加了一个登录界面。

考虑到添加课程信息的功能只适合老师,因此我们设置了添加课程的权限设置(必须输入密码)。

我们建立了两个文件用来保存学生信息和课程信息。

(student.txt和subject.txt)该系统功能说明:1)系统以菜单方式工作2)课程信息录入功能(课程信息用文件保存)--输入3)课程信息浏览功能--输出4)查询功能:(至少一种查询方式)--算法5)按学分查询6)按课程性质查询7)学生选修课程(可选项)四、详细设计该成序包含的主要函数功能说明:void XuanKeMenu(); // 选课主菜单函数int find(int no);void Save();void DL(); //登录界面的函数void MainMenu();void output();void Load(); //载入文件信息的函数void Load2();void quit();void add();void ChaXun();void chaxun1();void chaxun2();void xuanke();void tq1(); //提取选课编号的函数void tq2();void AddStuInfo(); //添加学生信息的函数void SaveStuInfo(); //保存学生信息到文件中void del(); //删除已选课程信息的函数五、程序代码#include<iostream>#include<vector>#include<set>#include<string>#include<conio.h>#define N 10using namespace std;int F;class subject //建立一个课程类,保存课程信息{public:int num;char name[30];char cha[20];int Time,time1,time2,xf;char kkxq[20];}S;class student //建立一个学生类,保存学生信息{public:char nam[10];char num[15];int zxf;int t;}Stu;vector <subject> v; //声明一个指向课程信息的向量vector <student> z; //声明一个指向学生信息的向量set <int> T; //建立一个集合vector <set<int> > TT; //建立一个向量集合set <int> ::iterator it; //建立一个迭代器void XuanKeMenu(); //声明一个选课主菜单函数int find(int no);void Save();void DL(); //声明一个登录界面的函数void MainMenu();void output();void Load(); //声明载入文件信息的函数void Load2();void quit();void add();void ChaXun();void chaxun1();void chaxun2();void xuanke();void tq1(); //声明提取信息的函数void tq2();void AddStuInfo(); //声明添加学生信息的函数void del();void AddStuInfo(){FILE *fp;fp=fopen("d:\\student.txt","a");fseek(fp,0,2); //打开学生信息文件system("cls");cout<<endl<<endl<<endl<<endl<<endl;cout<<"\t\t***************************************************"<<endl;cout<<"\t\t***************** 学生选课系统******************"<<endl;cout<<"\t\t***************************************************"<<endl<<endl;cout<<"\t\t\t请输入学号:";cin>>Stu.num;cout<<"\t\t\t请输入:";cin>>Stu.nam;t=Stu.zxf=0;fprintf(fp,"%s %s %d %d\n",Stu.num,Stu.nam,t,Stu.zxf); //存入文件z.push_back (Stu); T.clear(); TT.push_back(T); //用向量指向学生信息fclose(fp);}void add(){string password1,password2;char password[20];int _cnt=0;FILE *fp;fp=fopen("d:\\password","r");fscanf(fp,"%s",password); password2=password;fclose(fp);system("cls");cout<<endl<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 请输入密码:"; //对添加课程进行权限设置char ch;while(ch=getch()){if(ch==13) break;if(ch != 8) { putchar('*'); password1 += ch;_cnt++;}else{if(_cnt){password1.erase(password1.end()-1);_cnt--;system("cls");cout<<endl<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 请输入密码:";int x=_cnt;while(x--)cout<<"*";}}}if(password1 != password2){ cout<<"\n\n\t\t\t 密码错误!!!";getch(); MainMenu(); }A: system("cls");cout<<endl<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t\t\t请输入课程编号:";cin>>S.num;cout<<"\t\t\t请输入课程名称:";cin>>;cout<<"\t\t\t请输入课程性质:";cin>>S.cha;cout<<"\t\t\t请输入总课时:";cin>>S.Time;cout<<"\t\t\t请输入授课学时";cin>>S.time1;cout<<"\t\t\t请输入上机学时(实验学时):";cin>>S.time2;cout<<"\t\t\t请输入学分:";cin>>S.xf;cout<<"\t\t\t请输入开课学期:";cin>>S.kkxq;v.push_back(S);Save();cout<<endl<<"\t 是否继续添加[Y/N]:";string s; cin>>s;if(s[0]=='Y'||s[0]=='y') goto A;else MainMenu();}void Save() //保存已选的课程信息{FILE *fp;fp=fopen("d:\\subject.txt","w");for(int i=0;i<v.size();i++)fprintf(fp,"%d %s %s %d %d %d %d %s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);fclose(fp);}void SaveStuInfo() //保存学生信息{FILE *fp;fp=fopen("d:\\student.txt","w");for(int i=0;i<z.size();i++){fprintf(fp,"%s %s %d %d",z[i].num,z[i].nam,z[i].cnt,z[i].zxf);for(it=TT[i].begin(); it!=TT[i].end(); it++)fprintf(fp, " %d",*it);fprintf(fp,"\n");}fclose(fp);}void quit() //退出函数{exit(1);}void ChaXun() //查询主菜单函数{system("cls");cout<<endl<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t\t\t\t请选择查询方式:\n\t\t\t\t[1]学分查询\n\t\t\t\t[2]课程性质查询\n\t\t\t\t[0]返回主菜单\n\n";cout<<"\t\t\t\t请选择[0-2]:";int choice;cin>>choice;if(choice>=0&&choice<3){if(choice==1) chaxun1();if(choice==2) chaxun2();if(choice==0) MainMenu();}else ChaXun();}void chaxun1() //按学分方式查询{system("cls");intt=0;cout<<endl<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 请输入学分:";int key;cin>>key;cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(int i=0;i<v.size();i++){if(cnt&&cnt%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<"\t 按任意键查看下一页"; getch();system("cls");cout<<endl<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}if(v[i].xf==key){cnt++;printf("\t %3d%12s%8s%4d%6d%8d%8d%7s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);}}cout<<endl<<"\t 是否继续查询[Y/N]:";string s; cin>>s;if(s[0]=='Y'||s[0]=='y') chaxun1();else MainMenu();}void chaxun2() //按课程性质查询{system("cls");intt=0;cout<<endl<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 请输入课程性质:";char key[20];cin>>key;cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(int i=0;i<v.size();i++){if(cnt&&cnt%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<"\t 按任意键查看下一页"; getch();system("cls");cout<<endl<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}if(!strcmp(v[i].cha,key)){cnt++;printf("\t %3d%12s%8s%4d%6d%8d%8d%7s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);}}cout<<endl<<"\t 是否继续查询[Y/N]:";string s; cin>>s;if(s[0]=='Y'||s[0]=='y') chaxun2();else MainMenu();}void tq1(char *str) //提取出选课时输入的课程编号{string t="";int i=0,cont=0;while(str[i]){if(isalnum(str[i])) t += str[i];else{int tmp=atoi(t.c_str());if(TT[F].find(tmp)!=TT[F].end()) {t="";i++; continue;}z[F].zxf += v[find(tmp)].xf;TT[F].insert(tmp); t="";cont++;}i++;//}int tmp=atoi(t.c_str());//cout<<t<<" ";system("pause");if(TT[F].find(tmp)==TT[F].end()){cont++;TT[F].insert(tmp);z[F].zxf += v[find(tmp)].xf;}z[F].cnt += cont;}void xuanke() //选课函数:执行选课功能{char str[100];system("cls");cout<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(int i=0; i<v.size(); i++){if(i&&i%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<endl<<"\t 请输入所选课程编号:"; gets(str);if(strcmp(str,"")) tq1(str);//,system("cls");cout<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}printf("\t %3d%12s%8s%4d%6d%8d%8d%7s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);}cout<<endl<<"\t========================================================";cout<<endl<<"\t 请输入所选课程编号:"; gets(str);if(strcmp(str,"")) tq1(str);SaveStuInfo();if(z[F].zxf<60){cout<<"\t\t你所选课程的总学分少于60,是否继续选课![Y/N]";string x; cin>>x;if(x[0]=='y'||x[0]=='Y') xuanke();else XuanKeMenu();}else XuanKeMenu();}int find(int no) //寻找函数,找到想要的课程编号{for(int i=0;i<v.size();i++)if(v[i].num==no) return i;}void display(int i){printf("\t %3d%12s%8s%4d%6d%8d%8d%7s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);}void XuanKeMenu() //选课菜单函数{system("cls");int choice,l=0;cout<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 学生选课*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t :"<<z[F].nam<<" 学号:"<<z[F].num<<" 已选"<<z[F].cnt;cout<<"门课程"<<" 已选课程总学分:"<<z[F].zxf<< endl;cout<<"\t========================================================"<<endl;cout<<"\t 已选课程信息:\n";cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(it=TT[F].begin();it!=TT[F].end();it++,l++){if(l&&l%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<"\t [1 ]开始选课[2] 删除已选课程[3] 下一页[0] 返回请选择[0/3]:"; cin>>choice; getchar();if(choice==1) xuanke();else if(choice==2) del();else if(choice==0) MainMenu();else if(choice==3) ;else XuanKeMenu();system("cls");cout<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 学生选课*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t :"<<z[F].nam<<" 学号:"<<z[F].num<<" 已选"<<z[F].cnt;cout<<"门课程"<<" 已选课程总学分:"<<z[F].zxf<< endl;cout<<"\t========================================================"<<endl;cout<<"\t 已选课程信息:\n";cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}display(find(*it));}cout<<endl<<"\t========================================================"<< endl;cout<<"\t [1] 开始选课[2] 删除已选课程[0] 返回请选择[0/2]:"; cin>>choice; getchar();if(choice==1) xuanke();else if(choice==2) del();else if(choice==0) MainMenu();else XuanKeMenu();}void tq2(char *str) //提取函数:提前删除时输入的课程编号{string t="";int i=0,cont=0;while(str[i]){if(isalnum(str[i])) t += str[i];else{int tmp=atoi(t.c_str());set<int>::iterator _t=TT[F].find(tmp);if(_t!=TT[F].end()){t="";TT[F].erase(_t);z[F].cnt--;z[F].zxf-=v[find(tmp)].xf;}}i++;}int tmp=atoi(t.c_str());set<int>::iterator _t=TT[F].find(tmp);if(_t!=TT[F].end()){t="";TT[F].erase(_t);z[F].cnt--;z[F].zxf-=v[find(tmp)].xf;}}void del() //删除已选课程信息{int m,l=0,k=0;char str[100];system("cls");cout<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 学生选课*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t :"<<z[F].nam<<" 学号:"<<z[F].num<<" 已选"<<z[F].cnt;cout<<"门课程"<<" 已选课程总学分:"<<z[F].zxf<< endl;cout<<"\t========================================================"<<endl;cout<<"\t 已选课程信息:\n";cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(it=TT[F].begin();it!=TT[F].end();it++,l++){if(l&&l%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<"\t\t\t\t请输入要删除的课程的编号:";gets(str);if(strcmp(str,"")) tq2(str);system("cls");cout<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 学生选课*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t :"<<z[F].nam<<" 学号:"<<z[F].num<<" 已选"<<z[F].cnt;cout<<"门课程"<<" 已选课程总学分:"<<z[F].zxf<< endl;cout<<"\t========================================================"<<endl;cout<<"\t 已选课程信息:\n";cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}display(find(*it));}cout<<"\t\t\t\t请输入要删除的课程的编号:";gets(str);if(strcmp(str,"")) tq2(str);SaveStuInfo();XuanKeMenu();}void Load() //载入函数:载入课程信息(文件此前已建立){FILE *fp1;bool f=1;fp1=fopen("d:\\subject.txt","r");if(fp1==NULL) f=0;while(f&&!feof(fp1)){fscanf(fp1,"%d%s%s%d%d%d%d%s",&S.num,,S.cha,&S.Time,&S.time1,&S .time2,&S.xf,S.kkxq);v.push_back(S);}fclose(fp1);}void Load2() //载入学生信息(文件此前已建立){FILE *fp;fp=fopen("d:\\student.txt","r");while(!feof(fp)){int x;fscanf(fp,"%s%s%d%d",Stu.num,&Stu.nam,&t,&Stu.zxf);z.push_back(Stu); T.clear();for(int j=0;j<t;j++)fscanf(fp,"%d",&x),T.insert(x);TT.push_back(T);}fclose(fp);}void output() //显示函数:将课程信息输出到屏幕{system("cls");cout<<endl<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;for(int i=0; i<v.size(); i++){if(i&&i%10==0){cout<<endl<<"\t========================================================"<< endl;cout<<"\t 按任意键查看下一页"; getch();system("cls");cout<<endl<<endl<<endl;cout<<"\t ********************************************************"<<endl;cout<<"\t ********************** 课程信息*******************"<<endl;cout<<"\t********************************************************"<<endl<<endl;cout<<"\t 课程"<<" "<<" 课程"<<"课程"<<" "<<" 总"<<" "<<"授课"<<" "<<" 实验或"<<" "<<"学分"<<" "<<"开课"<<endl;cout<<"\t 编号"<<" "<<" 名称"<<"性质"<<" "<<"学时"<<" "<<"学时"<<" "<<"上机学时"<<" "<<"学分"<<" "<<"学期"<<endl<<endl;}printf("\t %3d%12s%8s%4d%6d%8d%8d%7s\n",v[i].num,v[i].name,v[i].cha,v[i].Time,v[i].time1,v[i].time2,v[i].xf,v[i].kkxq);}cout<<endl<<"\t 是否继续查看[Y/N]:";string s; cin>>s;if(s[0]=='Y'||s[0]=='y') output();else MainMenu();}void MainMenu() //系统主菜单{system("cls");cout<<endl<<endl<<endl<<endl<<endl;cout<<"\t\t***************************************************"<<endl;cout<<"\t\t***************** 学生选课系统******************"<<endl;cout<<"\t\t***************************************************"<<endl;cout<<"\t\t\t\t\t\t 欢迎"<<z[F].nam<<endl;cout<<"\t\t\t\t[1] 查看课程信息"<<endl;cout<<"\t\t\t\t[2] 添加课程信息"<<endl;cout<<"\t\t\t\t[3] 查询课程信息"<<endl;cout<<"\t\t\t\t[4] 学生选课"<<endl;cout<<"\t\t\t\t[0] 退出"<<endl<<endl;cout<<"\t\t\t\t请选择[0-4]:";int choice;cin>>choice;if(choice>=0&&choice<5){if(choice==1) output();if(choice==2) add();if(choice==3) ChaXun();if(choice==4) XuanKeMenu();if(choice==0) DL();}else MainMenu();}。

相关文档
最新文档