c课程设计学生选修课选课系统
网上选课系统课程设计
网上选课系统课程设计一、课程目标知识目标:1. 了解网上选课系统的基本概念、功能模块及其操作流程;2. 掌握运用信息技术进行网上选课的方法,包括查询、筛选、确认等步骤;3. 认识到数据安全与个人信息保护在网上选课系统中的重要性。
技能目标:1. 学会使用网上选课系统进行自主选课,提高信息检索与筛选能力;2. 培养学生团队协作能力,通过小组讨论、分享经验,解决网上选课过程中遇到的问题;3. 学会对网上选课系统的操作进行评价,提出改进意见,提升系统使用体验。
情感态度价值观目标:1. 培养学生主动参与网上选课的积极性,认识到自主选择课程的重要性;2. 增强学生对信息技术的兴趣和信心,树立正确的信息素养观念;3. 培养学生遵守网络道德规范,尊重他人隐私,维护网络安全。
课程性质:本课程为实践性较强的信息技术课程,注重培养学生的实际操作能力和信息素养。
学生特点:学生具备一定的计算机操作基础,对新鲜事物充满好奇,喜欢探索与挑战。
教学要求:结合学生的特点,课程设计应注重理论与实践相结合,充分调动学生的积极性,提高他们的实际操作能力。
通过课程学习,使学生能够熟练运用网上选课系统,培养自主选课的能力,提升信息素养。
在教学过程中,关注学生的情感态度价值观培养,使他们在掌握技能的同时,树立正确的价值观。
最终将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 网上选课系统的基本概念:介绍网上选课系统的定义、作用及其在学校教育中的应用。
2. 网上选课系统的功能模块:详细讲解系统的主要功能模块,如课程查询、课程筛选、课程确认、选课结果查询等。
3. 网上选课操作流程:指导学生了解并掌握网上选课的操作步骤,包括登录系统、查询课程、选择课程、确认选课、查看选课结果等。
4. 数据安全与个人信息保护:强调在网上选课过程中注意个人信息保护,介绍相关的网络安全知识。
5. 教学大纲制定:- 第一周:网上选课系统的基本概念与功能模块介绍;- 第二周:网上选课操作流程讲解与实操演示;- 第三周:数据安全与个人信息保护知识学习;- 第四周:学生进行实际操作,教师辅导并解答疑问;- 第五周:总结与评价,提出改进意见。
学生选课信息系统数据库课程设计报告(1)
学生选课信息系统数据库课程设计报告(1)学生选课信息系统数据库课程设计报告一、设计背景学生选课是高校本科教育的重要环节之一,选课过程需要学生、教师和管理员之间的良好合作。
为了方便学生选课,提高教学质量,开发一个适合本校实际需求的学生选课信息系统是非常有必要的。
二、系统需求1. 前台系统学生登录系统后可以进行选课、退课和查询课程信息等操作。
系统提供课程介绍和授课教师信息,方便学生选择。
2. 后台系统管理员需要对系统的课程信息、学生选课信息进行管理,包括添加、删除、修改课程信息,管理选课限制,查询学生选课情况等。
3. 数据库设计系统需要设计数据库,存储学生、教师和课程信息,以及学生选课信息的记录。
三、系统功能1. 学生功能(1)学生登录系统进行选课、退课操作。
(2)学生可以查看选课情况、课程信息和授课教师信息。
2. 教师功能(1)教师登录系统可以查看自己的授课情况和课程信息。
(2)教师可以对自己的课程信息进行修改。
3. 管理员功能(1)管理员登录系统可以添加、删除、修改课程信息。
(2)管理员可以设置课程选课限制,管理学生选课情况和课程信息。
四、系统实现1. 前台系统使用HTML、CSS、JavaScript等技术进行开发,实现学生、教师等用户操作界面。
2. 后台系统使用PHP或Java等技术进行开发,实现管理员对系统各个功能的管理操作。
3. 数据库使用MySQL或Oracle等关系型数据库进行设计,存储学生、教师和课程信息、学生选课记录等。
五、系统优化为了提高系统的性能和可用性,需要对系统进行优化,包括:1. 对数据库进行索引优化,提高查询速度。
2. 在前台系统中进行数据缓存,减少对后台系统的请求次数,提高系统响应速度。
3. 对系统进行安全性优化,防止非法入侵和数据泄漏。
六、系统测试在开发完成后,需要进行系统测试,包括功能测试和性能测试。
针对测试中发现的问题和缺陷,进行修复和优化,最终达到高质量的系统交付效果。
学生选课系统课程设计
课程设计报告课程名称: 学生选课系统的设计与实现专业: 12级计算机科学与技术姓名:班级:学号:年月日学生选课系统的设计与实现一、需求分析1.设计背景随着高校教学改革的不断深入,越来越多的高校都陆续采用了学分制。
高校大学生们可以根据自己兴趣和爱好来自由选择自己所喜爱的课程。
基于高校校园网的网上选课系统不仅克服了以往人工报送选课方式所暴露出的缺点与不足。
同时极大地提高了高校教务人员工作效率,极大地方便了高校师生。
网上学生选课系统在C/S的架构下采用了目前最流行的Internet的主流技术C#技术作为运行平台。
学生选课系统的推出,使得全校选课的维护、学生选课及查询、成绩录入、统计等工作均变得轻松高效,形成了教与学的积极互动,减轻了系统维护的成本与工作量,方便学生及老师的使用。
学生选课系统要求可以进行课程信息的录入,课程信息的浏览,可以按学分查询。
作为学生选课系统,我设计了对学生和老师的信息管理,选课系统包含的信息涉及信息多,所以这方面我额外的增加了这方面的信息管理。
2.设计目标●系统能够提供友爱的用户界面,使操作人员的工作量最大限度地减少;●系统具有良好的运行效率,能够达到提高效率的目的;●系统应有良好的可扩充性,可以容易地加入其他系统的应用;●通过这个项目可以锻炼自己,提高自己的开发能力和项目管理能力;3..实现功能本设计所开发的系统用户有三类:学生用户,教师用户,管理员用户。
当学校公布可以选课了,学生就应该急时登陆选课系统进行选课。
对学生来说,进行登陆选课,系统中有哪些可选的课程由管理员添加。
课程重要的信息之一就是该课程的老师。
当加入老师时,应该跟老师的信息相关联。
当老师登陆时,可以查看自己所教的课程的报名情况,以及学生对该课的评价等等信息。
学生和老师都不可能使用管理员的功能。
学生选课系统共设计4个模块,其功能介绍如下:●登录模块:此模块实现用户的的注册和登录●学生模块:1)查询信息:查询学生自己信息2)录入选课信息●教师模块:1)查询信息:查询教师自己信息查询选课信息●管理员模块:1)学生信息管理:用于管理学生信息,实现对学生信息的增加,删除,修改等功能。
学生选课系统orcl课程设计
学生选课系统orcl课程设计一、教学目标本课程旨在通过学习Oracle学生选课系统的设计与实现,使学生掌握数据库管理系统的基本原理和应用,培养学生运用Oracle技术解决实际问题的能力。
具体目标如下:1.知识目标:–理解数据库管理系统的基本概念和架构。
–掌握Oracle数据库的基本操作和SQL语言。
–了解关系数据库的设计原则和范式。
–学习Oracle数据库的存储过程和触发器的编写。
2.技能目标:–能够熟练使用Oracle SQL进行数据查询、更新、删除和插入。
–能够设计和实现简单的数据库应用系统。
–能够编写简单的存储过程和触发器。
–能够对数据库进行性能优化和故障排除。
3.情感态度价值观目标:–培养学生的团队合作意识和问题解决能力。
–增强学生对数据库技术的重要性和应用前景的认识。
–培养学生对技术的热情和持续学习的动力。
二、教学内容本课程的教学内容主要包括Oracle数据库的基本概念、操作和应用。
具体内容包括:1.Oracle数据库的基本概念和架构。
2.SQL语言的基本操作,包括数据查询、更新、删除和插入。
3.关系数据库的设计原则和范式。
4.Oracle数据库的存储过程和触发器的编写和应用。
5.数据库性能优化和故障排除。
教学内容将按照上述主题进行,每个主题都将通过理论讲解、案例分析和实践操作相结合的方式进行教学。
三、教学方法为了提高学生的学习兴趣和主动性,将采用多种教学方法进行教学。
具体包括:1.讲授法:用于讲解基本概念、原理和理论知识。
2.案例分析法:通过分析实际案例,使学生更好地理解和应用理论知识。
3.实验法:通过实际操作,使学生掌握Oracle数据库的基本操作和应用。
4.小组讨论法:通过小组讨论,培养学生的团队合作意识和问题解决能力。
四、教学资源为了支持教学内容和教学方法的实施,将选择和准备以下教学资源:1.教材:选用权威、实用的Oracle数据库教材。
2.参考书:提供相关的Oracle数据库参考书籍,供学生深入学习。
c#课程设计学生选课系统设计
c#课程设计学生选课系统设计一、课程目标知识目标:1. 学生能掌握C#编程语言的基础知识,包括数据类型、控制结构、类与对象等;2. 学生能理解数据库的基本原理,掌握SQL语句的编写和数据库操作;3. 学生能了解学生选课系统的业务需求,掌握系统设计的基本方法和步骤。
技能目标:1. 学生能运用C#语言编写学生选课系统的功能模块,如登录、选课、退课等;2. 学生能通过数据库技术实现对学生选课信息的管理,包括数据存储、查询和更新;3. 学生能运用面向对象的设计思想,设计出结构清晰、易于维护的学生选课系统。
情感态度价值观目标:1. 学生通过课程学习,培养对计算机编程的兴趣和热情,提高信息素养;2. 学生在团队协作中,培养沟通与协作能力,增强团队意识;3. 学生在解决实际问题的过程中,培养勇于探索、积极创新的精神。
课程性质:本课程为实践性较强的课程,结合课本知识,以学生选课系统为案例,使学生掌握C#编程和数据库技术。
学生特点:学生具备一定的C#编程基础和数据库知识,对实际项目开发感兴趣,但可能缺乏项目实践经验。
教学要求:课程应注重理论与实践相结合,强调动手实践,引导学生通过自主学习和团队合作,完成学生选课系统的设计与实现。
同时,关注学生的情感态度价值观的培养,提高学生的综合素质。
二、教学内容1. C#编程基础:- 数据类型与变量- 控制结构(顺序、分支、循环)- 方法与数组- 类与对象- 继承与多态- 异常处理2. 数据库原理与应用:- 数据库基本概念- SQL语句(SELECT、INSERT、UPDATE、DELETE)- 数据库设计(实体关系、E-R图)- 数据库访问技术3. 学生选课系统设计:- 系统需求分析- 系统设计(模块划分、类设计)- 数据库设计(表结构设计、关系建立)- 界面设计(UI设计、用户体验)- 功能实现(登录、选课、退课、查询成绩等)4. 项目实践与团队协作:- 项目开发流程- 团队协作与沟通- 代码版本控制(如Git)- 项目测试与调试教学内容根据课程目标,结合教材章节,进行科学组织和系统安排。
课程设计报告--学生选课管理系统
数据库课程设计报告学生选课管理系统班级:10软件本2成员:常东亚 100913010彭红明 100913028章鑫 100913050目录一、课程设计任务和目的 (2)二、需求描述 (2)三、系统总体设计 (3)1.系统架构设计 (3)2.功能模块设计 (3)3.数据库设计(概要设计) (5)(1)E-R图 (5)(2)关系模式 (5)(3)数据库管理系统 (6)(4)数据库命名 (6)(5)数据库表 (6)四、系统界面设计 (11)1、用户登录账号和密码 (11)2、窗体功能描述 (12)3、页面/窗体关系结构图 (16)五、系统实现技术小结 (16)六、课程设计体会 (19)七、系统主要源程序清单 (20)一、课程设计任务和目的完成学生选课管理系统的开发并掌握SQL数据库的建立和使用。
二、需求描述本系统是一个单机版的小型的学生选课管理系统,在本系统中,开发了一个面向管理员、学生和教师这三个对象的教务平台,对学生提供的服务有登录、选课、、修改登录密码、和查询成绩这几个服务,所选课程总数不能超过3门;对教师提供的服务有登录、修改登录密码和登录成绩;对管理员提供的服务有登录开设学生和教师帐号、删除学生和教师帐号的服务。
三、系统总体设计1.系统架构设计(1)架构:单机(2)运行软件环境: windows XP 、jdk1.6(3)开发环境:硬件平台:CPU:P41.8GHz内存:256MB以上软件平台:windows XP SP3 、jdk1.6操作系统:WindowsXP数据库:SQL Server 2000、SQLServer SP4补丁开发工具:Eclipse 3.3分辨率:1024*7682.功能模块设计各模块功能:● 登录界面:登录界面是有帐号,密码两个JTextField ,管理员帐号一字母A开头,教师帐号一字母T 开头,学生帐号以字母S 开头,登录帐号或密码输入错误会弹出相应的提示对话框。
C或C++课程设计题目-(1)
供选择的C或C++语言程序课程设计题目第一类题目应用类题目1:年历显示。
功能要求:(1)输入一个年份,输出是在屏幕上显示该年的日历。
假定输入的年份在1940-2040年之间。
(2)输入年月,输出该月的日历。
(3)输入年月日,输出距今天还有多少天,星期几,是否是公历节日。
题目2:小学生测验面向小学1~2年级学生,随机选择两个整数和加减法形成算式要求学生解答。
功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出1~2年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出0~50的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;(4)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下“TRY AGAIN”。
题目3 运动会比赛计分系统要求:初始化输入:N-参赛学校总数,M-男子竞赛项目数,W-女子竞赛项目数各项目名次取法有如下几种:取前5名:第一名得分7分,第二名得分5,第三名得分3,第四名得分2,第五名得分1;取前3名:第一名得分5,第二名得分3,第三名得分2;功能要求:(1)系统以菜单方式工作(2)由程序提醒用户填写比赛结果,输入各项目获奖运动员信息。
(3)所有信息记录完毕后,用户可以查询各个学校的比赛成绩(4)查看参赛学校信息和比赛项目信息等。
题目4:学生学籍管理系统用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。
功能要求:(1)系统以菜单方式工作。
(2)登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;(3)删除已知学号的学生信息;(4)查找已知学号的学生信息;(5)按学号,专业输出学生籍贯表。
c学生选课系统课程设计
c 学生选课系统课程设计一、教学目标本课程的学习目标包括以下三个方面:1.知识目标:学生需要掌握学生选课系统的基本概念、原理和流程,了解系统的各个模块和功能,以及相关的前端和后端技术。
2.技能目标:学生能够独立完成学生选课系统的搭建和部署,具备对系统进行维护和优化的能力,能够使用相关的开发工具和软件进行系统开发。
3.情感态度价值观目标:学生通过本课程的学习,能够增强对计算机科学和信息技术的兴趣和热情,培养良好的科学素养和创新精神,提升解决实际问题的能力。
在制定教学目标时,我们分析了课程性质、学生特点和教学要求,将目标分解为具体的学习成果,以便后续的教学设计和评估。
二、教学内容根据课程目标,我们选择和了以下教学内容:1.学生选课系统的概述:包括系统的定义、功能、特点和应用场景。
2.学生选课系统的设计:包括系统的架构、模块设计、数据库设计和界面设计。
3.学生选课系统的实现:包括前端开发、后端开发、系统测试和优化。
4.学生选课系统的部署和维护:包括系统的部署方法、维护策略和常见问题解决。
以上内容涵盖了学生选课系统的各个方面,确保了教学内容的科学性和系统性。
三、教学方法为了激发学生的学习兴趣和主动性,我们选择了以下教学方法:1.讲授法:通过讲解和演示,使学生了解学生选课系统的相关概念和原理。
2.讨论法:学生进行小组讨论,培养学生的思考能力和团队合作精神。
3.案例分析法:分析实际案例,使学生更好地理解和掌握学生选课系统的应用。
4.实验法:让学生亲自动手进行系统开发和实验,提高学生的实践能力。
四、教学资源我们选择了以下教学资源,以支持教学内容和教学方法的实施:1.教材:选用权威、实用的教材,为学生提供系统的理论知识。
2.参考书:提供丰富的参考资料,帮助学生拓展知识面。
3.多媒体资料:制作精美的PPT、视频等资料,提高学生的学习兴趣。
4.实验设备:提供充足的实验设备,保证学生能够顺利进行实验操作。
以上教学资源将丰富学生的学习体验,提高教学质量。
C语言课程设计实践报告—学生选课管理系统[内附程序源代码](可编辑)
C语言大型作业实践报告计算机1001制作者:李菁华张兆丰秦恒加2011年6月题目:选修课程管理系统要求:假定有N门选修课,每门课有课程编号、名称、课程性质、总学时、授课学时、实验或上机学时、学分、开课学期等信息。
学生可按要求(如总学分不能少于20学分)选课。
课程信息维护,如录入、修改、删除等,课程信息用文件保存。
课程信息浏览?输出。
学生选课功能。
查询功能包括:按学分、课程性质、学生等查询。
统计功能。
统计各门课程的选修人数。
本系统要有通用性、界面美观、操作方便。
要考虑系统安全。
课程信息录入系统选修课程信息录入选修课程信息保存主程序目录选择总体设计思路(流程图):学生选课系统课程信息读入学生信息输入选课系统数据保存选修课数据维护系统添加修改删除以word格式输出密码系统密码验证系统权限限制系统密码对退出程序密码对选修课程信息查找按各种类型查找密码错3次以上具体算法流程设计思路(流程图):主程序目录选择1.学生选课系统;2.选修课程信息输出;3.选修课程信息查找;4.管理员选项;5.退出系统。
管理员选项密码验证系统读入系统时间,通过强制转换成unsigned long int型数据作为初始密码用户输入密码(若是管理员会拥有密码钥匙,得出现在的密码,该密码每分钟都会变化)密码正确进入管理员管理界面,密码不正确重新输入密码输入错误3次以上 12 3学生选课系统选修课程信息以word2003形式输出返回主菜单选修课程信息查找选修课程信息从文件内读入输入按什么查找1.课程编号;2.课程名;3.课程种类;4.总课时;5.教学课时;6实验课时;7.学分;8.开课学期;9.已选人数。
输入查找的关键字从文件内读入的课程信息与关键字逐一对比,完全匹配输出;查找完毕学生信息输入课程信息浏览不选少于这门20分选课系统课选课成功判断学分是否大于20分大于20分结束选课选课信息储存退出程序管理员模块管理员模块 3目录选择1.学生选课系统;2.选修课程信息管理系统;3.退出系统12 5学生选课系统二级目录选择1.新建选修课程信息;2.管理选修课程信息;3.统计每门课程选择人数;4.选修课程信息输出;5.回到主菜单。
学生选课管理系统的分析与设计
学生选课管理系统的分析与设计随着学校规模的扩大和管理的复杂化,学生选课成为了高校管理中最为重要的一环。
传统的选课方式存在着很多问题,如选课信息不透明、选课过程繁琐等。
因此,开发一款学生选课管理系统势在必行。
本文将对学生选课管理系统的分析与设计进行阐述。
学生选课系统是一款针对高校选课管理开发的软件,旨在提高学生选课效率、增加选课透明度、减轻管理人员工作负担。
选课是高校学生学业进程中的重要环节,涉及到学生个性化发展和学业成就。
因此,开发一款可靠、高效的学生选课管理系统对于高校教育管理具有重要意义。
学生选课流程:学生通过登录选课系统,查看可选课程信息,根据个人需求和兴趣选择课程,并提交选课申请。
系统根据学生申请和课程资源情况进行审核,审核通过后,学生选课成功。
系统功能需求:学生选课管理系统需具备课程管理、学生管理、选课管理、成绩管理等功能。
课程管理包括课程信息的录入、修改和删除;学生管理包括学生信息的录入、修改和删除;选课管理包括学生选课、退课等操作;成绩管理包括课程成绩的录入、修改和查询。
技术实现需求:系统采用B/S架构,要求具备稳定性、安全性和可靠性,并具备容错性和良好的用户体验。
系统架构设计:本系统采用三层架构,分别为数据访问层、业务逻辑层和表示层。
数据访问层负责数据库的访问和操作;业务逻辑层负责系统的业务逻辑处理;表示层负责用户交互和数据展示。
功能模块设计:根据需求分析,学生选课管理系统主要包括课程管理、学生管理、选课管理、成绩管理四个模块。
各模块之间的关系和功能如下:课程管理:负责课程信息的录入、修改和删除,包括课程名称、教师、学分、描述等信息。
学生管理:负责学生信息的录入、修改和删除,包括学生姓名、学号、班级、方式等信息。
选课管理:负责学生选课、退课等操作,包括选课申请、审核、退课申请等功能。
成绩管理:负责课程成绩的录入、修改和查询,包括成绩录入、修改、查询等功能。
数据处理流程设计:学生选课管理系统的数据处理流程包括学生选课申请、系统审核、课程资源分配、成绩录入等环节。
大学生选课系统课程设计
大学生选课系统课程设计一、课程目标知识目标:1. 学生能理解大学生选课系统的基本原理和功能需求,掌握系统的整体架构与模块划分。
2. 学生能掌握数据库设计的基本方法,学会使用SQL语句进行数据查询和管理。
3. 学生能了解软件工程的基本概念,运用面向对象编程思想进行系统设计与实现。
技能目标:1. 学生具备运用结构化分析方法进行需求分析的能力,能独立完成选课系统的需求规格说明书编写。
2. 学生能运用数据库设计工具进行数据库设计,实现选课系统中的数据存储与管理。
3. 学生能运用Java、C#等面向对象编程语言,结合软件工程原理,实现选课系统的核心功能模块。
情感态度价值观目标:1. 培养学生团队协作意识,提高沟通与协作能力,共同完成选课系统的设计与开发。
2. 增强学生解决问题的自信心,培养面对挑战时的积极态度和勇于尝试的精神。
3. 培养学生关注教育信息化发展,认识到信息技术在教育教学中的重要作用,激发为我国教育事业发展贡献力量的责任感。
课程性质:本课程为计算机科学与技术专业的一门实践性较强的专业课程,旨在让学生通过实际项目案例,掌握软件开发的基本方法和技能。
学生特点:大学生具备一定的计算机基础和编程能力,对实际项目开发有较高的兴趣,但可能缺乏项目实践经验。
教学要求:结合学生特点,注重理论与实践相结合,引导学生通过项目实践,逐步掌握软件开发的方法和技能。
在教学过程中,注重培养学生的团队协作能力和解决问题的能力。
通过课程学习,使学生能够独立完成选课系统的设计与开发,为未来从事软件开发工作奠定基础。
二、教学内容1. 需求分析:讲解需求分析的基本概念、方法与工具,结合大学生选课系统案例,分析系统功能需求、性能需求等,指导学生编写需求规格说明书。
2. 系统设计:介绍系统设计的基本原理与方法,包括系统架构设计、模块划分、界面设计等,使学生掌握选课系统的整体设计思路。
3. 数据库设计:讲解数据库设计的基本概念、原则与方法,结合选课系统案例,指导学生使用数据库设计工具进行数据库表结构设计,学会使用SQL语句进行数据查询和管理。
学生选课管理系统课程设计
学生选课管理系统课程设计随着科技的日新月异,电子学习开始成为当今社会教育发展中不可或缺的一部分,学生选课管理系统也变得越来越重要。
学生选课管理系统(Student Course Management System,SCMS)是学校管理系统的重要组成部分,它负责管理学生的学习计划和选课情况,帮助学校更好地管理学习过程。
本文将围绕学生选课管理系统课程设计进行探讨,从设计原理、软件架构、运行环境、功能设计、安全控制五个方面进行详细论述,旨在提升学生的学习体验及学校的教学管理水平。
一、设计原则1、保证数据准确性:学生选课管理系统是一个保存着学生和课程信息的系统,因此,在设计这个系统时,最重要的是注重数据准确性,确保所有的信息都能够及时、完整地传输。
2、简便易用:系统的界面应该符合人们的习惯,从用户的角度出发,设计采用简单明了的GUI界面,增强用户体验度。
3、安全性:学生选课管理系统的安全性是很重要的,所有的数据都需要以加密的形式存储,避免被恶意破解或更改。
二、软件架构学生选课管理系统是一个分层架构的系统,具体架构如下:1、用户界面层:用户界面层是学生、教务等用户与系统进行交互的接口。
其中,学生端主要包括学生登录页面、选课界面、成绩查询界面等,教务端主要包括教师登录页面、课程安排界面、学生成绩录入界面等。
2、业务逻辑层:业务逻辑层主要负责处理业务逻辑,实现各种业务功能。
3、数据访问层:数据访问层的任务是与数据库进行交互,获取相关信息,实现数据的输入、更新、删除等功能。
三、运行环境学生选课管理系统需要在操作系统环境、网络环境和数据库环境等方面进行环境配置,以保证系统的正常运行:1、操作系统环境:系统需要在Windows操作系统环境下运行,因此,需要根据系统的具体需求和用户的使用情况,为学生选课管理系统安装适当的操作系统软件,并安装必要的驱动程序和软件补丁。
2、网络环境:为了支持系统的正常运行,学生选课管理系统需要在网络环境中正确配置,如选择合适的网络通信、安装网络设备等。
学生选课管理系统课程设计
学生选课管理系统课程设计一、引言学生选课管理系统是学校教务管理中一项重要的系统,它涉及学生选课、教师授课、课程安排等方面的管理。
本文将对学生选课管理系统进行详细设计,包括系统的功能模块设计、数据库设计、系统流程设计等方面的内容。
二、功能模块设计1. 学生模块学生模块包括学生信息管理、选课功能、查看选课情况等功能。
学生可以在系统中查看当前开设的课程,选择自己感兴趣的课程进行选课操作。
2. 教师模块教师模块包括教师信息管理、课程管理、成绩录入等功能。
教师可以在系统中查看自己所授课程的相关信息,录入学生成绩等操作。
3. 管理员模块管理员模块包括用户管理、课程管理、教师管理、学生成绩管理等功能。
管理员具有最高权限,可以对系统中的各项数据进行管理和维护。
三、数据库设计系统的数据库设计是学生选课管理系统的核心之一,合理的数据库设计对系统的高效运行至关重要。
本系统的数据库主要包括学生表、教师表、课程表、选课记录表等。
1. 学生表•学生ID•学生姓名•学生性别•学生年龄•学生学号2. 教师表•教师ID•教师姓名•教师性别•教师年龄•教师工号3. 课程表•课程ID•课程名称•授课教师•课程时间•课程地点4. 选课记录表•记录ID•学生ID•课程ID•选课时间•成绩四、系统流程设计1. 学生选课流程学生登录系统后,可以查看当前开设的课程信息,选择自己感兴趣的课程进行选课操作,系统会生成相应的选课记录。
2. 教师授课流程教师登录系统后,可以查看自己所授课程的相关信息,录入学生成绩,管理课程等操作。
3. 管理员管理流程管理员登录系统后,可以对用户信息、课程信息、成绩信息等进行管理,保证系统正常运行。
五、结论学生选课管理系统的设计是为了方便学校教务管理工作,提高管理效率和服务质量。
通过合理的功能模块设计、数据库设计和系统流程设计,能够使系统更加稳定、高效地运行,为学校教务管理提供便利。
希望本文的学生选课管理系统课程设计能够对相关工作有所帮助。
C语言课程设计任务书(18份)详细版
C语言课程设计任务书详细版(18份)C语言课程设计任务书1题目:某学院教学信息管理系统功能:1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
2、输入功能:可以一次完成若干条记录的输入。
3、显示功能:完成全部教师记录的显示。
4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。
5、排序功能:按职工号或教学效果综合评分进行排序。
6、插入功能:按教学效果综合评分高低插入一条教师记录。
7、将教师记录存在文件中。
8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!要求:1、用C语言实现系统;2、利用结构体数组实现教学信息的数据结构设计;3、系统具有增加,查询,插入,排序等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将教学信息存在文件中。
课程设计的最后成果是实验报告一份,内容包括:1、预习报告(题目、流程图、程序的设计思想等);2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。
C语言课程设计任务书2题目:酒店房间登记与计费管理系统功能:1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。
2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。
3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。
3、进一步要求:完成计费和费用查询功能。
要求:1、用C语言实现系统;2、函数功能要划分好(结构化程序设计);3、界面友好(良好的人机交互),加必要的注释;4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
学生选课系统详细设计
学生选课系统详细设计1. 引言学生选课系统是一个用于学校管理学生选课的系统。
它提供了学生选择课程、查询课程信息、查看选课结果等功能,方便学生进行选课操作,并为教务处提供了管理和统计数据的功能。
本文将对学生选课系统进行详细设计,包括系统架构、功能模块、数据库设计等内容。
2. 系统架构学生选课系统采用三层架构,包括表现层、业务逻辑层和数据访问层。
2.1 表现层表现层负责与用户进行交互,接收用户的输入并展示相应的界面。
采用前后端分离的方式,前端使用HTML、CSS和JavaScript实现用户界面,并通过Ajax与后端进行数据交互。
2.2 业务逻辑层业务逻辑层负责处理用户请求,并调用相应的服务进行业务逻辑处理。
它包括以下几个模块:2.2.1 用户认证模块用户认证模块负责验证用户身份信息,包括用户名和密码。
在用户登录时,通过用户名和密码验证用户身份,并生成一个加密的令牌返回给客户端,在后续请求中使用该令牌进行身份认证。
2.2.2 课程管理模块课程管理模块负责管理课程信息,包括添加课程、修改课程信息、删除课程等功能。
它提供了对课程的增删改查操作,并与数据访问层进行交互。
2.2.3 学生选课模块学生选课模块负责处理学生的选课请求,包括选择可用的课程、判断是否满足选课条件、记录学生选课结果等功能。
它与数据访问层进行交互,查询可用的课程信息,并将选课结果保存到数据库中。
2.3 数据访问层数据访问层负责与数据库进行交互,包括读取和写入数据库中的数据。
它提供了对数据库的操作接口,供业务逻辑层调用。
3. 功能模块学生选课系统包括以下几个功能模块:3.1 用户登录与注册用户可以使用用户名和密码登录系统,如果没有账号可以进行注册。
在注册时需要填写一些基本信息,并验证输入的合法性。
3.2 个人信息管理用户可以查看和修改自己的个人信息,包括姓名、性别、出生日期等。
用户还可以修改密码和上传头像。
3.3 课程查询与选择用户可以查询所有可用的课程信息,并选择自己感兴趣的课程进行选课。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生选修课选课系统目录1 前言 02 需求分析 (1)2.1 编写目的 (1)2.2 需求概述 (1)2.3 需求说明 (1)2.4 开发环境 (1)3 总体设计 (2)3.1功能模块图 (2)3.2 流程图 (3)3.3 类的设计图 (4)4 各功能模块设计 (6)4.1整体设计 (6)4.2主要的功能函数设计 (6)5 系统调试 (7)6 总结与体会 (13)6.1 总结 (13)6.2 编写程序中遇到的问题及解决办法 (13)参考文献 (14)附录源程序 (15)须眉原作1 前言随着计算机的普及,各高校均采用计算机进行学生选课。
学生选修课系统主要包含选修课管理系统及学生选课系统两部分。
学生选修课系统一般需要有管理员管理选修课课程,然后学生对经过管理员操作后的选修课进行选课。
选修课管理系统由管理员登录,对当前所有选修课课程进行管理操作。
学生选课系统则是由学生登录,学生可以查看由管理员整理好的所有选修课,并从显示出的选修课中选择自己要选择的课程。
管理员管理选修课实质是对后台选修课库中的选修课信息进行操作,可以在库中添加课程或删除课程。
学生选课的实质即是先打印出后台选修课库中所有选修课信息以供选择,选择课程即是对后台学生信息库里的学生信息进行修改。
2 需求分析2.1 编写目的(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题;(4)通过编写此系统,实现选修课系统的基本功能。
2.2 需求概述(1)系统中包括两个登陆身份(管理员与学生),并对应不同的功能;(2)对于管理员,此系统具有添加、删除、查看选修课等功能;(3)对于学生,此系统具有选课、查询等功能2.3 需求说明此系统可以实现学生选课,管理员管理课程的基本功能2.4 开发环境使用Visual C++6.0编程软件3 总体设计3.1功能模块图(1)学生学生身份有两个功能,分别是选课与查看个人信息。
如图3.1所示。
图 3.1 学生功能模块图(2)管理员管理员可以对选修课课程进行管理。
如下图所示。
图 3.2 管理员功能模块图3.2 流程图进入系统后可以选择以学生身份或者管理员身份登录。
学生登录需要输入个人的学号及姓名,成功登录后可以选课或查询个人信息。
管理员的登录需要输入密码,成功登录后则可以对当前所有的选修课进行管理操作,可添加新选修课或删除已有的选修课。
详细操作流程如下图所示。
图 3.3 流程图3.3 类的设计图(1)Course类Course类即选修课课程类。
数据成员分别是:课程编号、课程名称、课程类型、开课时间、授课学时、实验学时、总学时以及学分。
成员函数则包含所有数据成员的get函数,用以获取数据成员的值,set函数用来修改课程,print函数则是打印课程的信息。
如下图所示。
Courseid: char *name: char *nature: char *date: char *shours: intahours: intzhours: intscore: doublescore: doublegetId(): char *getName(): char*getNature(): char*getDate(): char*getAhours(): intgetShours(): intgetZhours(): intgetScore(): doubleset(char *a, char *b, char *c, char *d, int e, int f, double g): voidprint(): void图 3.4 Course类(2)Student类Student类即学生类。
其中包含了学生的学号、学生姓名、所选的两门课程及两门选修课课程的总学分。
setId和setName是用来修改相关成员的值,getName 获取学生的姓名,print函数用来打印学生的相关信息,个selectCourse则是用来选课。
如下图所示。
图3.5 Student类4 各功能模块设计4.1整体设计对于学生和选修课,我们分别定义了相应的类Student和类Course,其间的关系就是学生类中有两个选修课类对象成员。
而对于管理员我们并没有单独去定义类,因为管理员只是对选修课进行操作,程序中并不需要访问管理员的信息。
为了方便对选修课进行管理及多位学生的登录,我们定义了一个选修课数组和学生数组。
4.2主要的功能函数设计(1)选课函数void selectCourse(Student s1[10], Course c1[M], int s_num1)对当前学生对象进行操作,覆盖其选修课对象成员c1或c2,即学生的选课。
(2)两种输出所需选修课函数按学分输出选修课函数void selectScore(Course c1[M])按类型输出选修课void selectNature(Course c1[M])对传递进来的选修课数组进行扫描,输出符合要求的选修课。
(3)选修课排序函数void xu(Course c1[M])使用冒泡排序法对选修课数组进行编号从小到大的排序。
(4)主菜单函数void menu(Course c1[6], Student s1[10])所有菜单循环都在其中,调用其他函数来实现具体功能。
5 系统调试1.系统主界面进入系统主界面后可以选择登录身份或退出程序。
如图5.1所示。
图5.1 系统主界面2.选修课管理系统图5.1选择登录身份为管理员,默认密码123,输入-1可返回图5.1界面。
密码输入正确后可进入管理员登录系统。
如图5.2所示。
图5.2 选修课管理系统3.按学分查看选修课图5.2选择查看选修课,可以查看当前所有的选修课课程的相关信息。
可以选择不同的输出方式:按学分查询、按类型查询、显示全部。
选择按学分查询,在选择0.5,可打印当前所有课程中学分为0.5的课程信息。
如图5.3所示。
图5.3 按学分查看选修课4.查询全部选修课查看选修课功能中可以选择显示全部,即罗列出当前所有的选修课课程信息。
如图5.4所示。
图5.4 查询全部选修课图5.2选择添加选修课,可以添加一门新的选修课,然后按要求输入课程信息。
如图5.5所示。
图5.5 管理员添加选修课6.添加后的选修课信息添加选修课后选择返回上一层,再选择显示全部选修课可以看到已新增的选修课已添加成功。
如图5.6所示。
图5.6 添加后的选修课图5.2选择删除选修课。
输入要删除的选修课的编号,即可删除相应的选修课。
如图5.7所示。
图5.7 管理员删除选修课8.删除后的选修课信息删除选修课后选择返回上一层,再选择显示全部选修课可以看到已删除的选修课已删除成功。
如图5.8所示。
图5.8 删除后的选修课信息9.学生选课系统图5.1选择学生,然后输入学生的姓名及学号就能进入学生选课系统。
如图5.9所示。
图5.9 学生选课系统10.学生选课以学生身份登录成功后,可以选择选课或是查询个人信息。
选择选课可以选择按学分选课、按课程类型选课或显示全部课程再进行选课。
选择按学分选课,再选艺术类,再输入课程编号即可选择相应课程。
如图5.10所示。
图5.10 学生选课11.学生信息选择查看个人信息程序即打印出当前学生的相关信息。
如图5.11 所示。
图5.11 学生信息12.退出图5.1选择退出即退出程序。
如图5.12所示。
图5.12 退出程序6 总结与体会6.1 总结本程序实现了学生选课及管理员对课程的操作功能,而学生的选课及管理员对课程的管理,都可以按学分或类型来进行操作。
管理员登录的默认密码是123,管理员可以添加新的选修课课程,也可以删除原有的选修课。
经过此次的课程设计,我们受益颇丰,尤其是对在编写过程中遇到的难题的处理方法,学会了很多程序设计的技巧。
6.2 编写程序中遇到的问题及解决办法(1)在无法与后台交互的情况下如何实现用户登录?因为只需要管理员有对选修课操作的能力,因此不需储存管理员的信息,只需在其登录前询问密码即可。
而学生的登录,在其登录时分配一个对象空间,储存在其登录时获取的学号及姓名即可,即每一个学生的登录相当于注册过程。
(2)如何在不退出程序的情况下,能够让多位学生进行选课?定义学生类对象数组,每一位学生选完课后,再分配一个新的学生类对象空间。
(3)如何实现对学生对象中课程对象成员的覆盖?一开始我们为了方便起见是考虑学生类课程对象定义为引用,这样只需引用已有的选修课课程即可,但这样的话,在对学生对象初始化时引用的初始化就成了问题,因此只能放弃。
最终是选择了使用set和get方法对对象成员的成员一个个覆盖。
参考文献[1] 黄维通.Visual C++面向对象与可视化程序设计(第2版).北京:清华大学出版社,2007.[2] 张乃孝,陈光,孙猛.算法与数据结构——C语言描述(第三版),2011.[3] 谭浩强.C程序语言设计(第三版)[M].北京:清华大学出版社,2007.[4] 杨永斌.数据结构理论与实践[M].天津:科学技术出版社,2011.[5] 罗建军.C++程序射机枪教程(第2版).北京:高等教育出版社,2004.[6] 郑振杰.C++程序设计. 北京:人民邮电出版社,2005.[7] 刘觉夫,王更生等.c++程序设计.北京:邮电大学出版社,2011.[8] 邵伟忠.C常用算法程序集.天津:人民出版社,2009.[9] 徐世亮.C++大学教程.北京:人民邮电出版社,2010.[10] 吴华恩.C++程序设计.北京:机械工业出版社,2008.[11] 邵伟忠.C常用算法程序集.天津:人民出版社,2009.附录源程序#include <iostream.h>#include <string.h>#define M 10class Course //选修课课程类{private:char * id;char * name;char * nature;char * date;int shours;int ahours;int zhours;double score;public:Course(){id = "unknown";name = "unknown";nature = "unknown";zhours = 0;shours = 0;ahours = 0;date = "unknown";score = 0;}Course(char *a, char *b, char *c, char *d, int e, int f, double g) {id = a;name = b;nature = c;date = d;shours = e;ahours = f;score = g;zhours = e + f;}void set(char *a, char *b, char *c, char *d, int e, int f, double g) {id = a;name = b;nature = c;date = d;shours = e;ahours = f;score = g;zhours = e + f;}char * getDate(){return date;}int getZhours(){return zhours;}int getShours(){eturn shours;}int getAhours(){return ahours;}double getScore(){return score;}char * getNature(){return nature;}char * getId(){eturn id;}char * getName(){return name;}void print(){cout << "编号: " << id << '\t';cout << "名称: " << name << '\t';cout << "类型: " << nature << '\t';cout << "上课时间: " << date << endl;cout << "总学时: " << zhours << 'h' << '\t';cout << "授课学时: " << shours << 'h' << '\t';cout << "实验学时: " << ahours << 'h' << '\t';cout << "学分: " << score << endl;}};class Student //学生类{private: //学生选的课程是对象的成员char * id;char * name;Course c1;Course c2;double zscore;public:Student(){id = "unknown";name = "unknown";zscore = 0;}void setId(char * a1){d = a1;}void setName(char * a1){name = a1;}char * getName(){return name;}void print(){cout << "\n学号: " << id << endl;cout << "姓名: " << name << endl;cout << "您已选的选修课:\n1.";c1.print();cout << "2.";c2.print();cout << "选修课总学分: " << c1.getScore() + c2.getScore() << '\n' <<endl;}void selectCourse_1(Course cc) //修改对象的课程成员{c1.set(cc.getId(),cc.getName(),cc.getNature(),cc.getDate(),cc.getShours(),cc.getAhours(),cc.g etScore());}void selectCourse_2(Course cc){c2.set(cc.getId(),cc.getName(),cc.getNature(),cc.getDate(),cc.getShours(),cc.getAhours(),cc.g etScore());}};void selectCourse(Student s1[10], Course c1[M], int s_num1) //选课{char id[2][10], select1;int i, j, k;for(j=0; j<2; j++){cout << "\n您想选您的第几门选修课(1 or 2):";cin >> k;cout << "请输入您想要选的选修课的编号:";cin >> id[j];for(i=0; i<M && c1[i].getScore() !=0; i++) //扫描所有选修课,如果当前选修课为空则跳出循环{if(strcmp(id[j], c1[i].getId())==0){if(1 == k){s1[s_num1].selectCourse_1(c1[i]);break;}if(2 == k){s1[s_num1].selectCourse_2(c1[i]);break;}}}if(0 == j){cout << "\n您是否想要继续选课?(y/n):";cin >> select1;if('n' == select1) break;}}cout << "\n选课成功!" << endl;}void selectScore(Course c1[M]) //按学分查询选修课{int select, num, i;cout << "\n请输入选修课的学分:";cout << "\n 1. 0.5\n 2. 1.0" << endl;cout << " 请选择:";cin >> select;num = 1;if(1 == select){for(i=0; i<M && c1[i].getScore() !=0; i++){if(0.5 == c1[i].getScore()){cout << num << '.';c1[i].print();cout << endl;num++;}}}else if(2 == select){for(i=0; i<M && c1[i].getScore() !=0; i++){if(1.0 == c1[i].getScore()){cout << num << '.';c1[i].print();cout << endl;num++;}}}else cout << "对不起,您的输入有误,请重新输入!\n\n"; }void selectNature(Course c1[M]) //按类型查询选修课{int select, num, i;char n1[10]="艺术类", n2[10] ="学术类";cout << "请输入选修课的学分:";cout << "\n 1. 艺术类\n 2. 学术类" << endl;cout << " 请选择:";cin >> select;num = 1;if(1 == select){for(i=0; i<M && c1[i].getScore() !=0; i++){if(strcmp(n1, c1[i].getNature()) == 0){cout << num << '.';c1[i].print();cout << endl;num++;}}}else if(2 == select){for(i=0; i<M && c1[i].getScore() !=0; i++){if(strcmp(n2, c1[i].getNature()) == 0){cout << num << '.';c1[i].print();cout << endl;num++;}}}else cout << "对不起,您的输入有误,请重新输入!\n\n";}void xu(Course c1[M]) //当前所有选修课进行排序(编号从小到大){int i,j,k=0,num=0;Course cc;for(j=0; j<M && c1[j].getScore() !=0; j++){for(i=num; i<M && c1[i].getScore() !=0; i++){if(strcmp( c1[i].getId(), c1[i+1].getId() ) > 0){k++;cc.set(c1[i].getId(),c1[i].getName(),c1[i].getNature(),c1[i].getDate(),c1[i].getShours(),c1[i].g etAhours(),c1[i].getScore());c1[i].set(c1[i+1].getId(),c1[i+1].getName(),c1[i+1].getNature(),c1[i+1].getDate(),c1[i+1].get Shours(),c1[i+1].getAhours(),c1[i+1].getScore());c1[i+1].set(cc.getId(),cc.getName(),cc.getNature(),cc.getDate(),cc.getShours(),cc.getAhours( ),cc.getScore());}else k = 2;if(1 == k) num = i;}k = 0;}}void menu(Course c1[6], Student s1[10]) //菜单{int flag0, flag1, flag2, flag3, flag4, password=0 ;int select, s_num=0, i, j, num, newNum;char id[10][10];char select1;char id1[10];char name1[10];char da[20];char na[10];int sh;int ah;double sc;flag0 = 1;while(flag0){cout << "\n============" << endl;cout << "| 菜单|" << endl;cout << "============" << endl;cout << "| 1.管理员|" << endl;cout << "| 2.学生|" << endl;cout << "| 3.退出|" << endl;cout << "============" << endl;cout << "\n请选择:";cin >> select;switch(select){case 1:flag3 = 1;while(1){cout << "请输入密码(输入-1退出):";cin >> password;if(-1 == password){flag3 =0;break;}if(123 == password){cout << "\n 管理员,你好!欢迎登录!" <<endl;break;}cout << "密码错误,请重新输入!\n";}while(flag3){cout << "\n================" <<endl;cout << "| 菜单|" <<endl;cout << "================" <<endl;cout << "| 1.添加选修课|" << endl;cout << "| 2.删除选修课|" << endl;cout << "| 3.查看选修课|" << endl;cout << "| 4.返回上一层|" << endl;cout << "================" <<endl;cout << "\n请选择:";cin >> select;switch(select){case 1:newNum = 0;for(i=0; i<M && c1[i].getScore() !=0; i++) newNum++;cout << "\n请按格式依次输入选修课的编号、名称、上课时间(x.xx-x.xx)、类型(艺术类或学术类)、授课学时、实验学时、学分:" << endl;cin >> id1 >> name1 >> da >> na >> sh >> ah >> sc;c1[newNum].set(id1, name1, da, na, sh, ah, sc);xu(c1);cout << "添加成功!" << endl;break;case 2:flag4 = 1;j = 0;num = 0;while(flag4){cout << "\n请输入您想要删除课程的编号:";cin >> id[j];for(i=0; i<M && c1[i].getScore() !=0; i++){if(strcmp(id[j], c1[i].getId())==0){for(num=i; num<M && c1[i].getScore() !=0; num++){c1[num].set(c1[num+1].getId(),c1[num+1].getName(),c1[num+1].getNature(),c1[num+1].getDate(),c1[num+1].getShours(),c1[num+1].getAhours(),c1[num+1].getScore());}c1[num] = Course();break;}}cout << "删除成功!\n";cout << "\n您是否想要继续删除?(y/n):";cin >> select1;if('n' == select1) break;j++;}break;case 3:flag2 = 1;while(flag2){cout << "\n============================" <<endl;cout << "| 菜单|" <<endl;cout << "============================" <<endl;cout << "| 1.按学分查询选修课|" << endl;cout << "| 2.按选修课类型查询选修课|" << endl;cout << "| 3.显示全部|" << endl;cout << "| 4.返回上一层|" << endl;cout << "============================" <<endl;cout << "请选择:";cin >> select;switch(select){case 1:selectScore(c1);break;case 2:selectNature(c1);break;case 3:for(i=0; i<M && c1[i].getScore() !=0; i++){cout << i+1 << '.' ;c1[i].print();cout << endl;}break;case 4:flag2 = 0;break;default :cout << "对不起,您的输入有误,请重新输入!\n\n";}}break;case 4:flag3 = 0;break;default :cout << "对不起,您的输入有误,请重新输入!\n\n";}}break;case 2:char a[10], b[10];s1[s_num] = Student();cout << "\n请输入您的学号:";cin >> a;s1[s_num].setId(a);cout << "请输入您的姓名:";cin >> b;s1[s_num].setName(b);flag1 = 1;while(flag1){cout << "\n================" <<endl;cout << "| 菜单|" <<endl;cout << "================" <<endl;cout << "| 1.选课|" << endl;cout << "| 2.个人信息|" << endl;cout << "| 3.返回上一层|" << endl;cout << "================" <<endl;cout << "请选择:";cin >> select;switch(select){case 1:flag2 = 1;cout << "\n" << s1[s_num].getName() << ",你好!欢迎登录!" << endl;while(flag2){cout << "\n============================" <<endl;cout << "| 菜单|" <<endl;cout << "=============================" <<endl;cout << "| 1.按学分查询选修课|" << endl;cout << "| 2.按选修课类型查询选修课|" << endl;cout << "| 3.显示全部|" << endl;cout << "| 4.返回上一层|" << endl;cout << "=============================" <<endl;cout << "请选择:";cin >> select;switch(select){case 1:selectScore(c1);selectCourse(s1, c1 ,s_num);break;case 2:selectNature(c1);selectCourse(s1, c1 ,s_num);break;case 3:for(i=0; i<M && c1[i].getScore() !=0; i++){cout << i+1 << '.' ;c1[i].print();cout << endl;}selectCourse(s1, c1, s_num);break;case 4:flag2 = 0;break;default :cout << "对不起,您的输入有误,请重新输入!\n\n";}}break;case 2:s1[s_num].print();break;case 3:flag1 = 0;s_num++;break;default :cout << "对不起,您的输入有误,请重新输入!\n\n";}}break;case 3:flag0 = 0;cout << " 谢谢使用!\n 再见!" << endl;break;default :cout << "对不起,您的输入有误,请重新输入!\n\n";}}}void main() //管理员默认密码:123{Student s[10]; //学生数组,用于不同学生的选课Course c[M]; //定义了一个课程类的数组,储存所有选修课c[0] = Course("001", "健康与养生", "学术类", "5.13-5.30", 15, 0, 1.0);c[1] = Course("003", "音乐鉴赏", "艺术类", "5.21-6.10", 12, 3, 0.5);c[2] = Course("006", "数学建模", "学术类", "5.7-6.2", 10, 6, 1.0);c[3] = Course("007", "酒文化与鉴赏", "艺术类", "5.20-6.23", 15, 3, 1.0);c[4] = Course("010", "影视名片鉴赏", "艺术类", "5.10-6.2", 12, 0, 0.5);c[5] = Course("015", "药膳", "学术类" , "5.7-5.30", 12, 3, 0.5);xu(c);cout << "************************************" << endl;cout << " 选修课系统" << endl;cout << "************************************\n" << endl;menu(c, s);}。