选课系统课程设计

合集下载

网上选课系统课程设计

网上选课系统课程设计

网上选课系统课程设计一、课程目标知识目标:1. 了解网上选课系统的基本概念、功能模块及其操作流程;2. 掌握运用信息技术进行网上选课的方法,包括查询、筛选、确认等步骤;3. 认识到数据安全与个人信息保护在网上选课系统中的重要性。

技能目标:1. 学会使用网上选课系统进行自主选课,提高信息检索与筛选能力;2. 培养学生团队协作能力,通过小组讨论、分享经验,解决网上选课过程中遇到的问题;3. 学会对网上选课系统的操作进行评价,提出改进意见,提升系统使用体验。

情感态度价值观目标:1. 培养学生主动参与网上选课的积极性,认识到自主选择课程的重要性;2. 增强学生对信息技术的兴趣和信心,树立正确的信息素养观念;3. 培养学生遵守网络道德规范,尊重他人隐私,维护网络安全。

课程性质:本课程为实践性较强的信息技术课程,注重培养学生的实际操作能力和信息素养。

学生特点:学生具备一定的计算机操作基础,对新鲜事物充满好奇,喜欢探索与挑战。

教学要求:结合学生的特点,课程设计应注重理论与实践相结合,充分调动学生的积极性,提高他们的实际操作能力。

通过课程学习,使学生能够熟练运用网上选课系统,培养自主选课的能力,提升信息素养。

在教学过程中,关注学生的情感态度价值观培养,使他们在掌握技能的同时,树立正确的价值观。

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

二、教学内容1. 网上选课系统的基本概念:介绍网上选课系统的定义、作用及其在学校教育中的应用。

2. 网上选课系统的功能模块:详细讲解系统的主要功能模块,如课程查询、课程筛选、课程确认、选课结果查询等。

3. 网上选课操作流程:指导学生了解并掌握网上选课的操作步骤,包括登录系统、查询课程、选择课程、确认选课、查看选课结果等。

4. 数据安全与个人信息保护:强调在网上选课过程中注意个人信息保护,介绍相关的网络安全知识。

5. 教学大纲制定:- 第一周:网上选课系统的基本概念与功能模块介绍;- 第二周:网上选课操作流程讲解与实操演示;- 第三周:数据安全与个人信息保护知识学习;- 第四周:学生进行实际操作,教师辅导并解答疑问;- 第五周:总结与评价,提出改进意见。

学生选课系统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.教材:选择合适的教材,为学生提供系统的学习资料。

选课系统课设报告

选课系统课设报告

选课系统课设报告全文共四篇示例,供读者参考第一篇示例:选课系统课设报告一、引言随着教育领域的不断发展,高校教学管理系统也在不断完善,选课系统作为高校教学管理系统的一个重要组成部分,对学生和教师的教学生活起着至关重要的作用。

本报告将针对选课系统进行设计与开发,以提高选课效率、方便学生和教师的教学活动。

二、系统需求1. 学生端需求:(1)学生能够浏览课程信息,包括课程名称、授课老师、上课时间等;(2)学生能够进行选课操作,包括添加课程、删除课程等;(3)学生能够查看自己的选课情况,并进行调整;(4)学生能够进行退课操作,包括退选已选的课程;(5)学生能够查看课程成绩、考试信息等。

三、系统设计1. 系统架构设计:(1)选课系统采用B/S架构,即浏览器/服务器结构,学生和教师都可以通过浏览器访问系统;(2)系统后台采用MySQL数据库进行数据存储;(3)系统前台使用HTML、CSS、JavaScript进行开发。

2. 模块设计:(1)课程信息模块:包括课程的发布、浏览、修改和删除等功能;(2)选课模块:包括学生的选课和退课功能;(3)成绩管理模块:包括教师对学生成绩的录入和统计分析功能;(4)反馈模块:学生和教师可以在系统内进行交流和反馈。

3. 功能设计:(1)学生注册登录:学生需要先注册账号并登录系统才能进行选课操作;(2)选课流程优化:学生可以根据自己的兴趣和实际情况进行选课,并进行灵活调整;(3)成绩统计分析:教师可以根据系统提供的成绩统计功能,对学生成绩进行全面分析;(4)平台信息推送:系统可以根据学生和教师的需求,进行相关信息推送,如课程变更、考试安排等。

四、系统实现1. 系统开发工具:(1)后台开发:使用Spring Boot进行后台服务开发;(2)前端开发:使用Vue.js进行前端界面开发;(3)数据库管理:使用MySQL进行数据管理。

2. 系统测试:(1)功能测试:测试系统的各项功能是否正常运行;(2)兼容性测试:测试系统在不同浏览器和设备上的兼容性;(3)性能测试:测试系统的性能是否稳定;3. 系统部署:系统部署在高校的教学管理平台上,学生和教师可以通过互联网访问系统进行选课操作。

高校选课系统课程设计

高校选课系统课程设计

高校选课系统课程设计一、教学目标本课程的目标是使学生掌握高校选课系统的基本概念、架构和操作流程。

在知识目标方面,学生需要了解高校选课系统的历史、现状和发展趋势,理解系统的组成部分及其相互作用,掌握选课的基本原则和方法。

在技能目标方面,学生应能够独立完成选课操作,熟练使用系统提供的各种功能,同时能够对系统进行基本的维护和故障排除。

在情感态度价值观目标方面,学生应认识到选课系统对于高校教育和学生发展的重要性,培养正确的选课观念和行为习惯,提高自主学习和解决问题的能力。

二、教学内容本课程的教学内容主要包括高校选课系统的概念解析、架构分析、操作流程和维护技巧。

首先,我们将介绍选课系统的历史背景和发展趋势,使学生了解其在高校教育中的重要地位。

其次,通过分析系统的组成部分,如学生模块、教师模块、课程模块等,帮助学生深入理解系统的运作原理。

接着,我们将详细讲解选课操作的步骤和方法,让学生能够熟练使用系统进行选课。

最后,介绍选课系统的维护和故障排除方法,提高学生对系统的运用能力。

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

在理论教学中,我们将运用讲授法,系统地向学生传授选课系统的相关知识。

同时,通过案例分析法,让学生结合实际案例,深入理解和掌握选课系统的运用。

在实践教学中,我们将学生进行实验操作,让学生在实际操作中掌握选课系统的使用技巧。

此外,还将课堂讨论,鼓励学生发表自己的观点和看法,提高学生的思辨和交流能力。

四、教学资源为了支持教学内容和教学方法的实施,我们将选择和准备适当的教学资源。

教材方面,将选用权威、实用的教材,为学生提供系统的理论知识。

参考书方面,将推荐学生阅读相关书籍,丰富学生的知识储备。

多媒体资料方面,将制作课件、视频等资料,直观地展示选课系统的原理和操作方法。

实验设备方面,将确保学生能够 access to 必要的实验设备,进行实际操作训练。

通过丰富多样的教学资源,提高学生的学习体验,提高教学效果。

c选课系统课程设计

c选课系统课程设计

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

2. 让学生掌握选课系统中涉及的数据结构及算法,并了解其在实际应用中的优势。

3. 让学生了解我国教育制度中关于选课的相关政策及规定。

技能目标:1. 培养学生运用所学知识分析和解决实际选课问题的能力。

2. 培养学生运用编程语言设计并实现简单的选课系统功能。

3. 提高学生的团队协作能力和沟通能力,能在小组合作中共同完成选课系统的设计与优化。

情感态度价值观目标:1. 培养学生对选课系统及相关技术研究的兴趣,激发学生的创新意识。

2. 培养学生尊重知识产权,遵循道德规范,养成良好的网络道德观念。

3. 增强学生的责任感,使其认识到选课系统对个人成长和教育事业发展的重要性。

课程性质:本课程为信息技术学科选修课程,以实践操作为主,注重培养学生的动手能力和实际问题解决能力。

学生特点:高中生,具备一定的信息技术基础,对新鲜事物充满好奇,具备较强的学习能力和探究精神。

教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的主观能动性,提高学生的创新能力和实践能力。

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

二、教学内容1. 选课系统概述:介绍选课系统的定义、作用及其在教育教学中的应用。

- 教材章节:第一章 走进选课系统2. 选课系统功能模块:分析选课系统的各个功能模块,如学生模块、课程模块、教师模块等。

- 教材章节:第二章 选课系统功能模块3. 数据结构与算法:讲解选课系统中涉及的数据结构及算法,如优先队列、图等。

- 教材章节:第三章 数据结构与算法4. 选课系统设计与实现:指导学生运用编程语言进行选课系统的设计与实现。

- 教材章节:第四章 选课系统设计与实现5. 选课系统实践操作:组织学生进行选课系统的实际操作,巩固所学知识。

- 教材章节:第五章 选课系统实践操作6. 选课政策与规定:介绍我国教育制度中关于选课的相关政策及规定。

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.实验设备:提供充足的实验设备,保证学生能够顺利进行实验操作。

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

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

题目:学生选课系统设计一、需求分析根据所学知识,编写指定题目的C语言程序,并规范地完成课程设计报告。

通过课程设计,加深对《C语言程序设计》和《数据结构》课程所学知识的理解,熟练掌握和巩固C语言的基本知识和语法规范,包括:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);库函数应用等;复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等),熟练掌握和巩固三种基本的数据结构(线性结构、树形结构、图形结构)的逻辑结构、存储结构以及相关运算和应用。

具体要求如下:采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。

学生也可根据自己对题目的理解增加新的功能模块。

系统以菜单界面方式工作,运行界面友好,演示程序以用户和计算机的对话方式进行。

程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强。

编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等);假设某学期共有5门课,每门课程有四项基本信息:课程编号、课程名称、学分和选课人数。

学生可自行选课,假设该学期共有8个学生,学生有学号、姓名、所选课程三种基本信息,学生选课要满足每门课最多只能有3个学生选修,每个学生最多只能选2门课,试设计一个学生选课系统。

学生选课系统要求具备以下功能:1.系统以菜单方式工作2.浏览所有的课程信息3.浏览所有的学生选课情况4.任意学生信息的查询和修改功能5.学生选课功能(学生选课时要判断课程是否已经选满,同时还要判断学生是否已经选了2门课,若学生满足选课条件才能选课,注意同一门课一个学生只能选一次)二、概要设计1.本程序中用到的所有数据类型的定义及含义数据类型:一维数组struct course{ int num;char subject[10];int mark;int count;}cour[5]={{1,"C++",3,0},{2,"MATLAB",3,0},{3,"Math",5,0},{4,"English",4,0},{5,"Chinese",3,0}}; ------------课程信息struct student{ long num;char name[10];char order1[10];char order2[10];}stu[8]={{20074001,"guo","NULL","NULL"}, {20074002,"yu","NULL","NULL"},{20074003,"su","NULL","NULL"},{20074004,"hua","NULL","NULL"},{20074005,"du","NULL","NULL"},{20074006,"su","NULL","NULL"},{20074007,"liu","NULL","NULL"},{20074008,"xu","NULL","NULL"},}; ------------------学生信息其余int, char等数据类型在各模块有不同含义,比较简单,不做赘述。

2.主程序的流程以及各程序模块的功能要求及各自之间的层次(调用)关系a)void scan_1(struct course *p)调用储存课程信息的结构体数组,输出所有课程信息b)void scan_2(struct student *p)调用储存学生信息的结构体数组,输出所有学生信息c)void modify(struct student *p,struct course cour[5])分别调用储存课程信息和学生信息的结构体数组,输出任意一个学生的信息,并可以修改学生信息d)void select(struct student *p,struct course cour[5])分别调用储存课程信息和学生信息的结构体数组,为任意一个学生进行选课e)void menu()菜单函数f)void main()主函数三、详细设计#include "stdio.h"#include "conio.h"#include "string.h"#include "stdlib.h"#include "windows.h"struct course // 定义存储课程信息的结构体{ int num; //课程号char subject[10]; //课程名int mark; //学分int count; //已选人数}cour[5]={{1,"C++",3,0},{2,"MATLAB",3,0},{3,"Math",5,0},{4,"English",4,0},{5,"Chinese",3,0}};void scan_1(struct course *p) //所有课程信息的浏览功能{ system("cls");printf(" 课程信息如下: \n");for(p=cour;p<cour+5;p++)printf("课程号--%d 科目--%7s 学分--%d 已选人数--%d\n\n",p->num,p->subject,p->mark,p->count);}struct student // 定义存储学生信息的结构体{ long num; //学号char name[10]; //姓名char order1[10]; //所选课程1 char order2[10]; //所选课程2}stu[8]={{20074001,"guo","NULL","NULL"}, {20074002,"yu","NULL","NULL"}, //选课为空显示"NULL"{20074003,"su","NULL","NULL"},{20074004,"hua","NULL","NULL"},{20074005,"du","NULL","NULL"},{20074006,"su","NULL","NULL"},{20074007,"liu","NULL","NULL"},{20074008,"xu","NULL","NULL"},};void scan_2(struct student *p) //所有学生信息的浏览功能{ system("cls");printf(" 学生选课情况如下:\n");for(p=stu;p<stu+8;p++)printf("学号--%d 姓名--%3s 课程1--%7s 课程2--%7s\n\n",p->num,p->name,p->order1,p->order2);}void modify(struct student *p,struct course cour[5]) //任意学生信息的查询和修改 { int s;int g;char b;char k[10];long n;long m;int i;int j;char name1[20];system("cls");printf("请输入学号(20074001-20074008):");scanf("%d",&n);for(p=stu;p<stu+8;p++){ if(n==p->num) //找到对应的学生{ system("cls");printf("\n\n\n\n 该学生信息如下\n\n\n");printf(" 学号--%d 姓名--%s 课程1--%s 课程2--%s\n\n",p->num,p->name,p->order1,p->order2);printf("\nA.修改退出请按A a外任意字母键\n"); //不区分大小写scanf("%s",&b);{ if(b=='a'||b=='A'){ printf("\n1.修改学号 2.修改姓名 3.修改所选课程\n");//修改菜单 scanf("%d",&s);{ if(s==1){printf(" \n 学号修改为:\n"); //修改学号scanf("%d",&m);p->num=m;system("cls");printf("\n\n\n\n\n\n 修改后如下:\n");printf(" 学号--%d 姓名--%s 课程1--%s 课程2--%s\n\n",p->num,p->name,p->order1,p->order2);}if(s==2){printf(" \n 姓名修改为:\n"); //修改姓名scanf("%20s",name1);strcpy(p->name,name1);system("cls");printf("\n\n\n\n\n\n 修改后如下:\n\n");printf(" 学号--%d 姓名--%s 课程1--%s 课程2--%s\n\n",p->num,p->name,p->order1,p->order2);}if(s==3){ system("cls");printf("\n输入你想修改的课程:区分大小写\n");scanf("%s",&k); //区分大小写{if (strcmp(p->order1,k)==0){ system("cls");printf("\n1.C++ 2.MATLAB 3.Math 4.English5.Chinese\n");printf("\n你想修改为(1-5):\n");scanf("%d",&g);for(i=0;i<5;i++){ if(g==i+1){ if (cour[g-1].count>=3 ){ system("cls");printf("\n\n 该课程已被选满\n");//课程选满,返回主菜单}else{ if(strcmp(p->order2,cour[g-1].subject)==0) printf("\n\n 你已选过这门课\n\n");//重选,返回主菜单else { strcpy(p->order1,cour[g-1].subject);cour[g-1].count++;for(j=0;j<5;j++){if(strcmp(cour[j].subject,k)==0) //被修改课程的count值1cour[j].count--;}system("cls");printf("\n\n 学生信息:\n\n");printf(" 学号--%d 姓名--%s 课程1--%s 课程2--%s\n\n",p->num,p->name,p->order1,p->order2); } }}}}elseif(strcmp(p->order2,k)==0){ system("cls");printf("\n1.C++ 2.MATLAB 3.Math 4.English 5.Chinese\n");printf("\n你想修改为(1-5):\n");scanf("%d",&g);for(i=0;i<5;i++){ if(g==i+1){ if (cour[g-1].count>=3 )printf("\n\n 该课程已被选满\n\n"); //已选满 else{ if(strcmp(p->order1,cour[g-1].subject)==0)printf("\n\n\n 你已选过这门课\n\n"); //重选 else { strcpy(p->order2,cour[g-1].subject);cour[g-1].count++;for(j=0;j<5;j++){if (strcmp(cour[j].subject,k)==0)cour[j].count--; //被修改课程的count值减1 }system("cls");printf("\n\n 学生信息:\n\n");printf(" 学号--%d 姓名--%s 课程1--%s 课程2--%s\n\n",p->num,p->name,p->order1,p->order2); } }}}}else printf("\n\n您还没选这门课或拼写错误\n\n");}}}}}}}}void select(struct student *p,struct course cour[5]) //学生选课功能{ long n; int a;int b; int t=0;int u=0;int i;system("cls");printf("请输入学号(20074001-20074008):");scanf("%d",&n);for(p=stu;p<stu+8;p++){if(n==p->num) //找到对应学生{system("cls");if(strcmp(p->order1,"NULL")!=0) //第一门课不为空t=1;else{system("cls");printf("\n\n\n\n\n\n 请选您的第一门课提示:您最多只能选二门课 \n\n");printf("\n1.C++ 2.MATLAB 3.Math 4.English5.Chinese\n\n");printf("\n请选第一门课:不选请按1-5外任意数字键返回\n\n");scanf("%d",&a); //输入所选课程编号for(i=0;i<5;i++){ if(a==i+1){ if (cour[a-1].count>=3 ){printf("\n\n 该课程已被选满\n"); //课程选满,返回主菜单}else{ if(strcmp(p->order2,cour[a-1].subject)==0) printf("\n\n\n 你已选过这门课\n"); //重选,返回主菜单else { strcpy(p->order1,cour[a-1].subject); //选课成功cour[a-1].count++;system("cls");printf("\n\n\n\n\n\n 学生信息:\n");printf(" 学号--%d 姓名--%s 课程1--%s 课程2--%s\n\n",p->num,p->name,p->order1,p->order2);}}}}}if(strcmp(p->order2,"NULL")!=0) //第二门课不为空u=1;else{printf("\n\n\n\n\n\n 请选您的第二门课提示:您最多只能选二门课 \n\n");printf("\n1.C++ 2.MATLAB 3.Math 4.English5.Chinese\n\n");printf("\n请选第二门课:不选请按1-5外任意数字键返回\n\n");scanf("%d",&b);for(i=0;i<5;i++){if(b==i+1){if(cour[b-1].count>=3) {printf("\n\n 该课程已被选满\n"); //已选满,返回主菜单}else{ if(strcmp(p->order1,cour[b-1].subject)==0) printf("\n\n\n 你已选过这门课\n"); //重选,返回主菜单else { strcpy(p->order2,cour[b-1].subject);cour[b-1].count++;system("cls");printf("\n\n\n\n\n\n 学生信息:\n"); //成功选课printf(" 学号--%d 姓名--%s 课程1--%s 课程2--%s\n\n",p->num,p->name,p->order1,p->order2);}}}}}if(u==1&&t==1)printf("\n您已选满,若想修改请进入菜单3\n"); //已选满,返回主菜单 }}}void menu() //菜单函数{int n;printf("\t\t *** 欢迎来到选课系统 ****\n\n");printf("\t\t ***菜单 ****\n\n");printf("\t\t *** 1 浏览课程信息 ****\n\n");printf("\t\t *** 2 浏览学生选课情况 ****\n\n");printf("\t\t *** 3 学生信息查询和修改 ****\n\n");printf("\t\t *** 4 学生选课 ****\n\n");printf("\t\t *** 5 退出 ****\n\n");printf("请选择(1-5):[ ]\b\b");scanf("%d",&n);switch(n) //用switch语句,建立菜单{case 1:scan_1(cour);break;case 2:scan_2(stu); break;case 3:modify(stu,cour); break;case 4:select(stu,cour);break;case 5:exit(0);}}void main() //主函数{for(;;){menu(); //调用菜单函数}}四、调试分析1.本试验调试最主要是靠输入的数据,如果输入者按照程序提示的要求输入的话,程序会正常运行,得到准确的数据。

相关文档
最新文档