学生选课表(共8篇)
篇1:学生选课表
《 计算机科学与技术》专业选课表
年级:(英语、政治共5学分。下列课程中应选22~24学分。总27~2**分)
一、学位基础课(至少选3门)学分/学时
1.高等工程数学,3/4
3/4 2.计算机系统结构,3.计算机网络与通讯,3/4
4.数据库技术,3/4
二、学位专业课(至少选3门)
1.多媒体技术3/3
3/3
3/3
3/3 2.数字图像处理,3.高级软件工程,5.离散数学与算法4.数字信号处理3/3
6.计算机控制系统3/3
注:根据各导师研究方向,每个学生所选的此类课程中有一门可作为学位基础课,在各自的“研究生课程学习时间安排表”中体现。
三、指定选修课
1.专业外语(必选),2.专题讲座
四、选修课程(至少选2门)
1.软件可靠性与技术,2.模式识别,3.信息安全,2/32/32/3 2/3 2/3 2/3 2/0 4.计算机网络性能分析与仿真,2/3 5.Wireless Network,7.嵌入式Linux,6.面向对象的程序设计,8.Web高级开发与应用技术,2/3
9.普适计算,2/3
10. 计算机辅助设计(CAD)2/3
四、同等学历补修
1.Java程序设计;2.C++程序设计;3.数据库原理
导师签名:_____________
______年
篇2:学生选课表
2014-03-28 10:29
2013-2014-2学期学生重新学习选课和自主选课的通知
各班级、各同学:
根据学籍管理规定(南工发[2010]125号文件):
学生可以自愿选择重新学习,重新学习应缴纳培养费,不选择重新学习的有未通过课程的学生仍可免费参加毕业前最后一学期安排的相应课程的积欠考试。同一门课程,多次重复学习的,取最高成绩作为该课程成绩。
入学后第二学期开始,学生可自主选读高年级或其它专业的课程,修读主修专业教学计划之外的其他专业教学计划课程取得的学分,可作为各类通识任选课学分。根据学校素质拓展的相关规定,毕业要求之外多余获得的可作为通识任选课的学分最多可以充抵素质拓展要求学分的50%。学生自主选课(含通识任选课)超出主修专业通识任选课要求学分的,该超出部分再超过8学分的部分应缴纳培养费。
本次重新学习和自主选课相关事项如下:
1、本次选课课程为本学期开设的除通识任选课之外所有课程,毕业生毕业前最后一学期不能参加重新学习和自主选课。
2、重新学习的选课原则:
①所选课程的学分应等于或大于培养计划中相应课程的学分;
②必须选取相同专业其它年级开设的课程,若因培养计划调整,没有相同专业的相同课程,学生应咨询学生院部教务办后选取相近专业开设的相同课程;
③专科学生不能选本科的课程,本科学生不能选专科的课程;
3、本次选课时间为3月29日—4月4日,采取网上选课,选课网址为
http://10.0.216.167/zzxk_index.htm(只能在校园网内访问,校外无法访问)。本次交费采取用选课者本人一卡通在校园内一卡通自助机(圈存机)交费的方式。在食堂的一卡通自助机上选择“自主选课交费”项目按照网上选课后网页提示的交费总金额交纳费用(培养费标准为每学分60元),交费时间同选课时间。交费要求:①必须在选课截止时间前交费,否则无效;②必须足额交费(可多次交费,但须在选课截止时间前交够总额),选课截止时少交费者本次选课全部无效;③选课并交费成功的,除非该课程取消,否则培养费一律不退。
选课截止一周后,请核对教务处网站公布的选课名单和课程,并在教务管
理系统中核对个人选课情况。在本学期期末考试前两周请登录教务管理系统,再次核实选课的教学班级,并按所选的教学班参加考试,以确保期末考试成绩能录入教务管理系统。
4、除高等数学可能另行安排重新学习班单独上课外(另行通知),选课学生应按所选课程的教学班的教学安排按规定上课和参加期末考试。
5、留(降)级学生学习留(降)级后所在专业年级的课程不需要进行选课(教务管理系统会自动生成这些课程,可在系统的个人选课情况中核对),留(降)级学生修读高年级课程,应进行本次选课,并按自主选课缴纳费用。根据学籍管理规定第30、37条,留(降)级学生学期课程(包括应修与选修课程)总学分不得超过30学分,不得申请课程免听,必须参加所选课程的过程考核和期终考核,在发生留(降)级学期和之后一个学期自主选课不缴纳培养费。
6、本学期发生降级的学生的原年级课程将被全部删除,并添加降级后年级的课程,请核对上述课程,并在上述课程更新后进行选课。
7、未按以上要求进行选课或未进行选课,不能参加考试,考试成绩无效。
8、选课注意事项:
①重新学习选课如选择了外专业的课程,请注意网上选课时是否提示属于重新学习课程,如没有提示,请咨询学生所属院系教务员确认,否则即使选课成功仍然可能不认定为重新学习课程。不论是否认定为重新学习课程,选课截止前未退选且交费了的课程,视为选课成功,一律不退费。
②选择修读主修专业教学计划之外的其他专业的课程,充抵通识任选课程的,所修读的课程内容必须是本专业教学计划所没有涵盖的,所修读外专业课程与本专业教学计划内课程内容相近的,不能充抵通识任选课。
③选课时请查询教务处网站本学期各类课表,确认所选课程上课时间不冲突。建议先查看课表确定选课课程后再进行选课操作。各类课表可用教务处网站的“站内搜索”功能搜索“课表”或“课程表”得到。本人课表可在教务系统查询。
9、学生如有问题,可咨询学生所属院部教务办公室。
学习部
篇3:基于VB的学生选课系统
随着素质教育和学分制的推行, 繁杂的人工管理已经难于适应飞速发展的信息时代, 传统的选课方式已无法满足学生自由选课的需求, 用计算机进行选课已成为必然的趋势。基于对VB具有强大的数据库操作功能以及在VB设计下的选课系统具有实用性、便捷性、安全性等诸多优点的综合考虑, 笔者运用VB建立了学生选课系统, 并详细概述了整个过程中数据库开发与系统实现设计的思路方法和功能布局。
1 功能需求分析与设计
从本校的基本情况和学生信息管理的实际出发, 本系统应该具有以下功能与特点:
一方面学生用户可以通过输入学号和密码进入该系统, 并且可以进行一些基础信息维护与修改、课程选定与信息查询 (查看待选课程及该门课的老师、已经选定的课程、计算与查看学分、密码修改) ;另一方面老师进入该系统则可以查看课程信息、报课情况、修改密码、录入成绩等。高级管理员 (教务人员) 登陆的话可以进行系统初始化和选课门数限制同时还可以对选课时间、选课人数进行限制, 对数据进行维护管理以确保信息数据的安全。
1.1 系统结构设计
通过上述功能需求的分析, 学生选课管理系统应具备以下几个功能模块:学生选课模块、教师管理模块、教务管理模块。他们的相互关系如图1所示。
1.2 概念结构设计
概念结构设计是通过对数据和信息进行建模, 利用实体关系图实现, 以使得设计者的注意力能够从复杂的实现细节中解脱出来。以下是各个实体与其属性关系:学生信息表 (学生号、姓名、班级、权限) ;教师信息表 (教师号、姓名、院系、学历、职称) ;课程信息表 (课程号、课程名称、学分、学时、选课人数限制、上课时间) ;选课历史记录表 (学生号、课程号、选课时间、成绩) ;限定参数表 (开选时间、停选时间、当前时间、门数限制) 。各实体之间的关系图, 如图2所示。
1.3 系统流程图设计 (图3)
1.4 逻辑结构设计
基于对各实体之间的关系的分析, 下一步是将各实体数据表示为表的集合, 并对其进行具体的设计实现。学生选课系统中需要设以下数据表:选课表、课程信息表、表教师基本情况表, 如表1~表2示。
2 用户界面设计
用户界面是用户与数据库交互的枢纽, 通过用户界面把数据库的内容呈现给用户, 同时将用户的操作结果提交给数据库。此系统包含多个模块, 每个模块又含若干子模块, 是一个较复杂的应用程序, 需要采用VB工具箱中的各种控件通过设置窗体属性并编写相应事件的代码, 定义出满足应用程序需要的窗体对象来实现其功能, 使用的Form设计的窗体如图4Form1到Form5所示。
3 小结
学生选课系统是高校学生管理的重要组成部分, 它让学生们能更加便捷的自主选修适合自己的课程, 实现了对信息数据的浏览、查询、编辑和管理等数据库操作功能, 使管理人员从大量繁杂的工作中解脱出来, 提高了工作效率, 真正实现了校园无纸化办公。
摘要:本文以VB端开发工具, 运用面向对象的程序设计方法, 从系统结构、概念结构、逻辑结构和用户窗体结构等几方面的设计介绍了基于VB下的学生选课系统的设计思路与方法, 并匹配了相应的功能实现界面。
关键词:VB程序设计,学生选课系统,方法设计,结构设计
参考文献
[1]宁德琼.VB下学生选课系统的设计方法[J].曲靖师范学院学报, 2005 (11) .
[2]邢国春.基于vb下的ADO控件对学生选课系统设计[J].师范学院学报, 2004 (3) .
[3]李媛媛, 傅申, 李良彬.校园网上选课系统[J].计算机系统应用, 2013, 22.
[4]张燕, 兰彬.浅谈数据库管理信息系统的结构设计[J].北京农学院学报, 2007 (6) .
篇4:大学生选课有讲究
其一,围绕自己的人生理想、职业理想选课。上大学首先应该明确自己为谁而学?为什么学?有的同学可能会说“我为自己学”。围绕着人生理想、职业理想去选课,才能更好地发展自己,才能在社会大舞台上找准自己的位置。大学生一定要明确自己想成为一个什么样的人,未来想干什么,明确自己未来的职业需要什么样的知识和能力结构,这样自己就知道该学什么,选什么课自己就清楚了。
其二,弄清楚该去上哪些教师的课。大学生在私下把高校教师分为两类:用心的教师和不用心的教师。用心的教师对学生热情、亲切、真诚、谆谆教诲、循循善诱,他会用激情激活你的大脑,不但给你知识,同时会给你方法,给你思想和智慧。
其三,选课要注意自己兴趣所在。兴趣应该和自己的职业理想一致,但很多人在很多时候二者很难一致起来,自己的兴趣不能得到满足和发展肯定是遗憾的事,所以选课时要适当考虑自己的兴趣满足。这样,一是自己收获大,心情好;二是为今后就业拓宽了道路,多了一项选择,何乐而不为。
其四,选课的多少,一定要量力而行。不要和必修课冲突,同时必须要遵守学校的规章制度;要留出充分的时间自学,要多进图书馆查阅相关资料,消化吸收老师讲授的内容,同时要留出更多的思考时间,创造性、批判性的思考比学知识更重要;一定要留出参加各种社会活动、社团活动等非正式教育活动的时间。
篇5:智慧树平台学生选课手册
报到:
同学们首先进入本校选课系统,按照学校规定完成校内共享课程的选课。
待选课学校将本校所有选课学生的数据导入智慧树平台后,学生即可到智慧树平台报到。
智慧树平台将于9月1日—30日期间开放【新学期报道】入口。具体操作如下: 登陆智慧树网:http://,点击页面右上角【新学期报道】,进入【新学期跨校共享课报道】登录页。
填写信息:
若在报道过程中出现未检测到报名信息的情况,请您确认您已在校教务系统完成报名。有问题请联系智慧树客服。若您已有智慧树账号,在新学期跨校共享课程,报道流程中,可检测出您的账号,登录完成报到。
确认所选的课程:
在【课程报到】中确认显示的课程是否为自己所选的共享课程。
新学期首次登陆,可在弹窗中看到您的本学期选课清单。点击“确认课程”后报道正式完成。如有疑问,请联系客服或向教务处确认校内选课情况。
学习考核:
查看【教学计划】,课程的在线学习及见面课学习安排,全面把握学习进度。具体可以在【教学计划】栏目查看。
查看【课程考核】,同学们可以通过【我的学堂】课程列表右侧红框中所示图标,查看课程具体考核方式。
共享课程的考核方式包括在线学习考核、见面课考
考核权重:以某门共享课程总成绩构成为例:
课程学习:
1.在线进阶式学习【视频观看】
登录智慧树网 ,进入个人账号。【我的学堂】课程列表中,点击课程图 片或【继续学习】按钮,进入进阶式教程的学习,每个章节的课程视频可重复观看,学透知 识点。【作业考试】
在线按时完成每个章的作业和考试,作为成绩的重要组成部分。【课程论坛】
在这个版块,同学们既可以针对知识点等课程相关问题进行提问,得到老师和助教的帮助,还可以进行班级内讨论和所有教学班的共同探讨。线上交流更便捷,沟通更流畅。2.见面课学习【课前准备】
同学们可以在教学计划中查看【见面课】的时间和地点,亦可在【见面课】栏目中查看。课程教师会在【课程通知】中发布课程的相关通知,请同学们及时查看。并根据教师要求,进行相应的课前准备。如讨论题目、课程计划、完成相应的进阶式教程章节学习内容等。【见面课中】
见面课分为跨校直播、小组讨论、课程实践等模式。【见面课后】
为了更好地组织见面课程,助教会抽取部分同学,完成课程调查问卷,以便更好了解见面课情况。同学们可以尽情表达自己的想法。见面课学习是混合式教学中的关键阶段,至关重要,见面课的出勤和参与程度会被纳入到课程总成绩,要记得积极参加哦!
见面课后,同学们还可以通过【我的学堂】右侧【我的见面课】栏目,回看直播互动见面课的录像。
期末考核:
1.在线考试
在【作业考试】列表中查看,在线考试会在规定时间段开放。
2.线下考试
期末考核的线下考试可通过线下集中考试、提交论文曲靖学java编程基础、提交PPT、提交视频等不同的方式开展。具体以何种形式以各课程的要求为准。
成绩查看:
【成绩组成】
混合式共享课程的完整成绩由线上教程成绩、见面课成绩和期末考核三部分成绩组成。学生的最终成绩构成是否采用三部分的成绩(也可以只采用其中线上教程一部分的成绩),具体由各选课学校决定。【论坛加分】
在线教程学习中积极参加课程论坛可获得加分哦。【成绩发布】
课程成绩有三部分组织的,学生的最终学习成绩由课程团队教师确认发布。课程成绩只采用
其中部分成绩的,学生的最终学习成绩以各选课学校发布的为准。【成绩查看】
成绩发布后,由课程团队教师确认发布的成绩可在【我的学堂】右侧【成绩单】中,查看
课程成绩。为了更好的提供共享课程服务,在查看成绩之前,请您先做调查问卷哦!其它
同学在课程学完以后可在平台上查看在线教程学习的成绩。
学习收获:
同样的时间,更多的收获
领略名家风采,感悟名师智慧。得到的不仅是学分和修读证明,更有表达、思辨、倾听、写作的能力。
学习更高效、进度你掌握
随时随地,快速学,反复看,你的学习你做主!
更多的同学、更多的友谊
你将有来全国不同学校的同班同学,跨校园文化、跨专业学科的沟通交流、思 维碰撞。名师签名证书 精彩永久呈现
经课程团队教师确认发布成绩且修读合格的同学,将获得共享课程负责老师签名的修读证明,短暂精彩的学习,永久呈现的记忆。
温馨小贴士:
1.如何查看学习进度?
【我的学堂】课程列表图片右侧可查看自己的学习进度,亦可看到当前应该达到的标准学习进度,全面掌握自己的学习进度情况。2.怎样解决学习中的问题
登陆智慧树账号后,点开页面右侧【服务工具】,可以通过在线客服、电话向平台反馈问题,得到解答。也可进入帮助模块,快速解决密码找回等常见问题。3.关注各类教学通知
在和短信提示,请同学们在平时学习中记得注意关注各类通知哦。
课程教学运行过程中,如有需要调整的事项会在【课程通知】中发布,也会通过邮箱提醒
4.成绩评定及学分认证? 选课成功后,共享课程成绩与所在学校学分挂钩。成绩评定合格后所获学分转入本校培养方案,所获成绩将计入学校的成绩档案,请同学们务必完成所选课程课表及教师安排的面授、讨论、视频等相关学习任务,详情可咨询本校教务处。5.共享课程的事务管理
调班、退课等事务按照选课学校的相关教务管理规定执行。
智慧树教学运行服务
篇6:湾龙中学学生选课指导方案
1、选课指导原则
(1)责任分摊
学校的任何教师、高年级学生、家长和社区人员都有为学生选课提供指导和咨询的责任和义务。学校为他们参与学校课程、承担选课指导责任提供相应的支持条件。
(2)学生自主决定
指导教师的角色主要是“导”,在指导过程中,以学生为主体,充分尊重学生学习意愿,不能包办代替,更不能把自己的意愿强加给学生,最终的.决定权一定要留给学生本人。要注意培养学生的自主选课能力,使学生在选择中学会选择。这是指导学生选课过程中最重要的原则。
(3)学生的重大选择必须经由父母或者其他合法监护人同意。
2、成立学生选课领导机构
该机构由校长室、教务处、教科室和政教处、团委等人员组成。
3、建立选课指导中心
(1)由各学科教研组长、班主任组成,负责全校学生选课的各种具体工作。
(2)选课专职咨询机构
教科处、教务处负责测试学生的发展趋向,个性特征、兴趣爱好等,为学生科学选课提供客观数据。各学科任课教师负责本学科选课指导、咨询。
4、学校选课指导实施机构
(1)学校选课指导实行导师制,使所有的学生进入高中后都有一个导师指导。导师一般由本年级任课教师担任,学生入校后经双向选择最终由学校确认。
(2)导师指导学生合理选择课程、合理分配学分,并为学生建立选课档案等。
(3)导师对学生选课负有第一责任,全面负责所指导学生的咨询、教育和选课方案的制定。
(4)行政班班主任负责本班全体学生选课工作的指导、选择工作。
(5)高年级学生与低年级学生建立对口指导班级,由高年级学生协助低年级学生选课。
5、选课实施步骤
(1)学校编制《选课指导手册》发放给学生使用。《选课指导手册》主要包含:
①编制该手册的目的、意义。
②高中课程结构简介。包括课程总结构介绍,各学习领域所包含科目、各科目选修系列和选修模块之间关系以及系列内部各模块之间关系(相对平行的还是序列性的)介绍等。
③顺利毕业的基本学分要求。
④选课程序说明。
⑤选修课程简介。包括学科说明、开课计划、模块代码、开设对象、学分分配、周学时数等。
(2)组织实施:见选课流程图
在了解自己学习需要基础上进行下一轮选课,学生学习《选课指导手册》并选课。
备注:
1、学生一般提前一学期选课,若起始年级需要选课可在开学前两周进行。
2、学生所选课程,若本学期内未能开出,学生可以在以后继续选,也可放弃修习这些课程,而选择其它课程。
篇7:C语言课程设计学生选课系统
一、学生选课管理系统
第一部分:课程设计名称、目的、要求
第二部分:程序总体设计思路
第三部分:程序功能划分、图示及流程图
第四部分:程序设计数据、运行结果
第五部分:程序的优缺点
第六部分:心得体会
第七部分:附录(源程序)
第八部分:附录(参考文献)
目录
..............................................................................第一部分:课程设计名称、目的、要求
名称:学生选修课程系统设计
目的:运用C语言提高解决实际问题的能力 实验环境:Microsoft Visual C++ 6.0 内容:
假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。【功能】
系统以菜单方式工作
课程信息录入功能(课程信息用文件保存)--输入 课程信息浏览功能--输出
查询功能:(至少一种查询方式)--算法 按学分查询 按课程性质查询 学生选修课程(可选项)
第二部分:程序总体设计思路
由于C语言是面对过程的语言,故我的设计思路是根据目标程序运行的过程来编写的。
具体的设计思路如下:
程序的要求是设计学生选修课管理系统,对选修课程能够进行录入和修改操作等,要求有菜单界面和退出功能。首先,考虑到程序的数据输入,可以设置一个管理员登陆选项,通过该选项进入管理员界面,进行选修课的录入和修改操作,最后将录入的课程保存到相应的文件中。然后定义各种函数的功能包括查看,查询,删除等。另一个为学生登陆界面,该界面学生可以进行课程选择和浏览查询等操作。在进行该操作之前需要对管理员保存的文件进行读取,然后对其中的内容进行查询等,在学生选好课程以后,可以将其选好的课程保存于相应的文件中,以便下次进行修改。通过函数的层层调用来实现程序的逻辑结构。中间通过文件的打开和关闭实现对文件内部所包含的数据的操作。
整个程序的设计思路到此结束。
第三部分:程序功能划分、图示及流程图
【功能模块划分及其流程图】
本程序功能模块根据程序设计的需求,综合程序的实用性、人性化、智能化的考虑,将程序划分为6个部分分别编写,程序主体功能将由这9个部分来完成。这9个部分依次是:
1.登录界面函数;void login()2.学生登录界面据函数:void stu_login()3.管理员登录界面函数:void man_login()4.退出界面函数:void bye_sys()
5.课程选择函数:void c_select()6.课程浏览函数:void c_view()7.课程查询函数:void c_search()8.课程增加函数:void c_add()9.课程删除函数:void c_delete()10.菜单函数:void index()11.主函数部分; main()
总体设计:
学生选课系统管理员登录学生登录新增课程删除课程课程浏览查询课程学生选课课程浏览课程查询c_add函数c_delete函数c_view函数c_search函数c_select函数c_view函数c_search函数
系统功能模块图
部分函数流程图:
1、课程选择函数:
开始输入要选择的课程的编号j=0;j
2、课程查询函数
开始输入要查询的课程的编号j=0;j
3、课程增加函数
开始输入要增加的课程的编号j=0;j
4、课程删除函数
开始输入要删除的课程的编号nj=0;j
本程序是一款应用软件,故数据设计、程序运行结果应在程序的
运用中得以体现,现在通过一个程序的运用事例来对程序运行结果进行演示与实现。【软件运用举例】
1、程序开始界面如下:
选择某个选项,如进行管理员登录,进行课程的增加 进入管理员界面:
2、再选择所要进行的操作,如进行课程增加,结果如下:
下面可以进行继续增加课程或者退出:
3、选择课程浏览,可以分页查看相应的课程信息: 第一页:
第二页:
4、课程查询
查找结果:
4、管理员课程删除操作:
删除后可以进行浏览,观察删除后的结果:
可见删除后只有一条记录。删除操作完成正确。下面进行学生操作的使用方法:
1、学生登陆界面:
2、选择学生选课选项:
3、学生登陆也可进行课程浏览和查询函数,其结果与管理员登陆相同,不再演示。
第五部分:程序的优缺点
【程序的优点】
算法是程序的灵魂,程序的优点首先表现在算法上的优点,其次才是功能上的。
[算法上的优点]主要体现在以下三点:
1.程序采用main主函数方式设计,程序的主体的功能大都由该功能
完成。程序如此设计有利于程序的进一步改进及有助于程序执行效率的提高。
2.程序对文件数据的读写采用了fread和fwrite块读写函数,能够将文件中的数据完全读出,然后赋到定义的数组中,再在相应的数组中进行一系列操作,最终再写入文件。
3.插入操作在本程序中将课程信息直接插入数组最后一个节点,从而减少了数据的相互移动,节省了时间。
[功能上的优点] 主要体现在以下两点:
1. 简洁明了的程序菜单。程序主要采用了层次不同的菜单,相互独立又相互联系,巧妙相接,符合用户的使用习惯与思维。2. 人性化的程序提示语言,程序提示语言较人性化,不仅大多为祈使语句、疑问句,而且提示明确,具有较强的明确的指导作用。程序提示不仅层次分明,提示方式多样,而且提示信息井然有序,更加有利于用户顺利、准确地看懂程序并进行操作。
【程序的缺点】 主要表现在以下两点:
1、本程序没有进行相应的密码操作,所以对于使用者来说可能存在比较大的不保密性。需要改善。
2、本程序没有使用文本读写函数fscanf和fprintf,所以的到的课程文件和选课文件都是二进制形式。
第六部分:心得体会
选课系统程序比起通讯录程序来讲好写一些,由于本程序用到了数组,对于数组的操作掌握的比较熟练,所以在编写程序的时候困难没有那么多。
本程序在编写的过程中用到了许多通讯录中的模块化设计和函数互相调用的思想,使得编写比较方便和好用。
通过该系统的课程设计分析,我掌握了模块化设计的方法,理解和运用了结构化程序设计的思想和方法,掌握和提高了运用C语言进行程序设计的能力。
程序设计的过程,实际上是确定解决问题的详细步骤,而这个步骤通常叫做流程,在程序设计过程中理清楚整个问题的流程很重要,然后采取逐步细化的方法实现整个程序。
对于一个较大的应用程序,一般不可能一次就设计出一个很完善的系统。通常要先设计满足基本要求的系统,然后再测试或者在使用的过程中不断完善,慢慢地做成一个功能很完善选修课程管理系统。所以在进行调试的时候需要对许多变量理解和掌握其变化规律等,这对于我更好的掌握visual C中调试的工具有很大的帮助。
总之经过这次课程设计,我对c语言的使用和理解都有了很大的加深,对于编程的思想也有了很多新的理解和感受。
第七部分:附录
一、参考文献:
1、李丽娟主编,C语言程序设计教程(第二版),人民邮电出版社
2、严蔚**编,数据结构(C语言),清华大学出版社
3、崔单主编,C语言程序设计案例精粹,电子工业出版社
4、谭浩强主编,程序设计(第三版),清华大学出版社
二、源程序
#include“stdio.h” #include“stdlib.h” #include“windows.h” #include“string.h”
void index();//首页 void login();void bye_sys();//退出界面
void stu_login();//学生登录菜单
void c_select();void c_view();//课程浏览
void c_add();//增加课程 void c_delete();void c_searchs();//学生查询函数 void c_searchm();//管理员查询函数 void c_viewm();//管理员浏览函数 void c_views();//学生浏览函数
struct course//定义课程结构体
{
int c_num;
char c_name[20];
int c_score;
int c_nelepeo;//课程已选人数
int c_melepeo;//课程人数上限 };struct student { char s_number[10];
char s_password[10];};struct manager { char m_name[10];char m_password[10];};
void index()//首页 {
char input;
printf(“nnttt*n”);
printf(“ttt
湖南大学学生选课系统n”);
printf(“ttt*nnn”);
printf(“ttt*nnn”);
printf(“ttt*nnn”);
printf(“ttt*nnn”);
printf(“ttt设计者:刘晓斌nnn”);
input=getchar();
system(“cls”);} void login()//登陆界面
{
void stu_login();
void man_login();
void bye_sys();
int input;
do
{
system(“cls”);
printf(“nnnt1.学生登录n”);
printf(“t2.管理员登陆n”);
printf(“t3.退出本系统n”);
printf(“t请选择服务类别:”);
scanf(“%d”,&input);
if(input!=1&&input!=2&&input!=3)//输入数不等于选项的时候打印画面
{
printf(“nt输入出错!请重新选择~n”);
printf(“nt按任意键返回选择页面~nt”);
getchar();getchar();
system(“cls”);
}
if(input==3)//如果输入3退出系统
{
bye_sys();
}
}while(input!=1&&input!=2&&input!=3);
switch(input)
{
case 1:stu_login();break;
case 2:man_login();break;
} }
void bye_sys()//退出界面 { exit(0);}
void man_login(){
void c_add();
void c_delete();
void c_view();
void c_searchm();
int in;
do
{
system(“cls”);
printf(“nnt1.新增课程n”);
printf(“t2.删除课程n”);
printf(“t3.课程浏览n”);
printf(“t4.课程查询n”);
printf(“t5.退出n”);
printf(“nnt请选择服务种类:”);
scanf(“%d”,&in);
if(in!=1&&in!=2&&in!=3&&in!=4&&in!=5)
{
printf(“nt没有这项服务t按任意重新选择”);
getchar();getchar();
}
}while(in!=1&&in!=2&&in!=3&&in!=4&&in!=5);
switch(in)
{
case 1:c_add();break;
case 2:c_delete();break;
case 3:c_viewm();break;
case 4:c_searchm();break;
case 5:login();break;
} }
void stu_login()//学生登录菜单
{
void c_select();
void c_view();
void c_searchs();
void login();
int input;
do
{
system(“cls”);
printf(“nnnt--学生登陆--”);
printf(“nnt1.学生选课n”);
printf(“t2.课程浏览n”);
printf(“t3.课程查询n”);
printf(“t4.退出n”);
scanf(“%d”,&input);
if(input!=1&&input!=2&&input!=3&&input!=4)
{
printf(“nt没有这项服务~n”);
printf(“t按任意键重新选择”);
getchar();
getchar();
}
}while(input!=1&&input!=2&&input!=3&&input!=4);
switch(input)
{
case 1:c_select();break;
case 2:c_views();break;
case 3:c_searchs();break;
case 4:login();break;
} }
void c_select(){
int n,in,i=0,j;int flag=0;
FILE *fp;
FILE *fp1;
char input;
struct course courses[10];
if((fp=fopen(“course.dat”,“rb”))==NULL)//判断是否存在课程
{
printf(“nnnt课程不存在nn”);
printf(“t <按任意键返回管理菜单> nt”); 按任意键返回管理菜单>
input=getchar();
input=getchar();
stu_login();//进入学生登陆菜单
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&courses[i],sizeof(struct course),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);//文件读完后关闭
}
printf(“nntt请输入你要选课程的编号:”);
scanf(“%d”,&n);
if((fp1=fopen(“courseselect.dat”,“rb”))==NULL)
{
fp1=fopen(“courseselect.dat”,“wb”);
}
else
{
fclose(fp1);
fp1=fopen(“courseselect.dat”,“ab”);
}
for(j=0;j
if(courses[j].c_num==n)
flag++;
if(flag==0)
{
printf(“nntt不存在对应课程n”);
printf(“nntt继续选课请按1,退出请按2:n”);
scanf(“%d”,&in);
switch(in)
{
case 1:c_select();break;
case 2:stu_login();break;
default:
printf(“输入错误,将返回登录界面!n”);
login();break;
}
}
else
{
fwrite(&courses[j],sizeof(struct course),1,fp1);
fclose(fp1);
printf(“nntt选课成功t请选择:”);
printf(“nntt1.继续选课”);
printf(“nntt2.退出,返回登录界面!”);
scanf(“%d”,&in);
switch(in)
{
case 1:c_select();break;
case 2:stu_login();break;
default:break;
}
} }
void c_viewm()//课程浏览
{
void stu_login();
void c_view();
int
inp,i=0,n=0;
FILE *fp;
char input;
struct course courseview[10];
if((fp=fopen(“course.dat”,“rb”))==NULL)//判断是否存在课程
{
system(“cls”);
printf(“nnnt课程不存在nn”);
printf(“t <按任意键返回管理菜单> nt”); 按任意键返回管理菜单>
getchar();getchar();
stu_login();//进入学生登陆菜单
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&courseview[i],sizeof(struct course),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);//文件读完后关闭
do
{
system(“cls”);
if(i==1)
{
printf(“nnnttt没有记录!n”);
getchar();getchar();
man_login();
}
else
{
printf(“nt------共有%d条记录-------”,i-1);
printf(“nnt课程编号: %dn”,courseview[n].c_num);
printf(“nnt课程名字: %sn”,courseview[n].c_name);
printf(“nnt课程学分: %dn”,courseview[n].c_score);
printf(“nnt课程已选人数: %dn”,courseview[n].c_nelepeo);
printf(“nnt课程人数上限: %dn”,courseview[n].c_melepeo);
printf(“nnt1.上一页t2.下一页t3.回目录”);
printf(“n请选择:”);
scanf(“%d”,&inp);
switch(inp)
{
case 1:
{
if(n==0)
{
printf(“nt已到达首页 t按任意键返回”);
input=getchar();
input=getchar();
}
else
{
n=n-1;
}
break;
}
case 2:
{
if(n==i-2)
{
printf(“nt已到达尾页t按人意见返回”);
input=getchar();
input=getchar();
}
else
{
n=n+1;
}
break;
}
case 3:{man_login();break;}
default:
{
printf(“nt操作错误t按任意键返回”);
getchar();getchar();
break;
}
}
}
}while(inp!=3);
} }
void c_views()//课程浏览
{
void stu_login();
void c_view();
int
inp,i=0,n=0;
FILE *fp;
char input;
struct course courseview[10];
if((fp=fopen(“course.dat”,“rb”))==NULL)//判断是否存在课程
{
system(“cls”);
printf(“nnnt课程不存在nn”);
printf(“t <按任意键返回管理菜单> nt”); 按任意键返回管理菜单>
getchar();getchar();
stu_login();//进入学生登陆菜单
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&courseview[i],sizeof(struct course),1,fp);
i=i+1;
}
while(!feof(fp));
fclose(fp);//文件读完后关闭
do
{
system(“cls”);
if(i==1)
{
printf(“nnnttt没有记录!n”);
getchar();getchar();
stu_login();
}
else
{
printf(“nt------共有%d条记录-------”,i-1);
printf(“nnt课程编号: %dn”,courseview[n].c_num);
printf(“nnt课程名字: %sn”,courseview[n].c_name);
printf(“nnt课程学分: %dn”,courseview[n].c_score);
printf(“nnt课程已选人数: %dn”,courseview[n].c_nelepeo);
printf(“nnt课程人数上限: %dn”,courseview[n].c_melepeo);
printf(“nnt1.上一页t2.下一页t3.回目录”);
printf(“n请选择:”);
scanf(“%d”,&inp);
switch(inp)
{
case 1:
{
if(n==0)
{
printf(“nt已到达首页 t按任意键返回”);
input=getchar();
input=getchar();
}
else
{
n=n-1;
}
break;
}
case 2:
{
if(n==i-2)
{
printf(“nt已到达尾页t按人意见返回”);
input=getchar();
input=getchar();
}
else
{
n=n+1;
}
break;
}
case 3:{stu_login();break;}
default:
{
printf(“nt操作错误t按任意键返回”);
getchar();getchar();
break;
}
}
}
}while(inp!=3);
} }
void c_searchs(){
void stu_login();
void c_searchs();
int id,i=0,j,inp,k;
int flag=0;
FILE *fp;
struct course coursesear[10];
if((fp=fopen(“course.dat”,“rb”))==NULL)
//判断课程信息是否存在 {
system(“cls”);
printf(“nnt课程不存在t按任意键返回”);
getchar();getchar();
stu_login();
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&coursesear[i],sizeof(struct course),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);
}
system(“cls”);
printf(“nnttt请输入你要查询的课程编号:”);
scanf(“%d”,&id);
do//检查输入是否符合要求
{
for(j=0;j
{
if(id==coursesear[j].c_num)
{
flag++;
k=j;
}
}
if(flag==1)
{
system(“cls”);
printf(“nnt课程编号:%dn”,coursesear[k].c_num);
printf(“nnt课程名字:%sn”,coursesear[k].c_name);
printf(“nnt课程学分:%dn”,coursesear[k].c_score);
printf(“nnt课程已选人数:%dn”,coursesear[k].c_nelepeo);
printf(“nnt课程人数上限:%dn”,coursesear[k].c_melepeo);
getchar();getchar();
printf(“nnt1.回目录继续查询t2.退出查询系统n”);
printf(“请选择:”);
scanf(“%d”,&inp);
switch(inp)
{
case 1:c_searchs();
case 2:stu_login();
default:
{
printf(“nt没有这项服务t请按任意键重新输入”);
getchar();getchar();
}
}
}
else
{
system(“cls”);
printf(“nnt不存在对应记录n”);
printf(“nnt1.回目录继续查询t2.退出查询系统n”);
printf(“请选择:”);
scanf(“%d”,&inp);
switch(inp)
{
case 1:c_searchs();
case 2:stu_login();
default:
{
printf(“nt没有这项服务t请按任意键重新输入”);
getchar();getchar();
}
}
}
}while(inp!=1);
}
void c_searchm(){
void stu_login();
void c_searchm();
int id,i=0,j,inp,k;
int flag=0;
FILE *fp;
struct course coursesear[10];
if((fp=fopen(“course.dat”,“rb”))==NULL)
//判断课程信息是否存在 {
system(“cls”);
printf(“nnt课程不存在t按任意键返回”);
getchar();getchar();
stu_login();
}
else//存在的话循环读取文件中的信息直到文件指针到文件尾部
{
do
{
fread(&coursesear[i],sizeof(struct course),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);
}
system(“cls”);
printf(“nnttt请输入你要查询的课程编号:”);
scanf(“%d”,&id);
do//检查输入是否符合要求
{
for(j=0;j
{
if(id==coursesear[j].c_num)
{
flag++;
k=j;
}
}
if(flag==1)
{
system(“cls”);
printf(“nnt课程编号:%dn”,coursesear[k].c_num);
printf(“nnt课程名字:%sn”,coursesear[k].c_name);
printf(“nnt课程学分:%dn”,coursesear[k].c_score);
printf(“nnt课程已选人数:%dn”,coursesear[k].c_nelepeo);
printf(“nnt课程人数上限:%dn”,coursesear[k].c_melepeo);
getchar();getchar();
printf(“nnt1.回目录继续查询t2.退出查询系统n”);
printf(“请选择:”);
scanf(“%d”,&inp);
switch(inp)
{
case 1:c_searchm();
case 2:man_login();
default:
{
printf(“nt没有这项服务t请按任意键重新输入”);
getchar();getchar();
}
}
}
else
{
system(“cls”);
printf(“nnt不存在对应记录n”);
printf(“nnt1.回目录继续查询t2.退出查询系统n”);
printf(“请选择:”);
scanf(“%d”,&inp);
switch(inp)
{
case 1:c_searchm();
case 2:man_login();
default:
{
printf(“nt没有这项服务t请按任意键重新输入”);
getchar();getchar();
}
}
}
}while(inp!=1);}
void c_add()//增加课程 {
void c_add();
void man_login();
int i=0,j,inp;
FILE *fp;
struct course course_new;
struct course courses[10];
system(“cls”);
printf(“nntt请输入课程信息”);
printf(“nntt1.课程编号:”);
scanf(“%d”,&course_new.c_num);
printf(“nntt2.课程名字:”);
scanf(“%s”,course_new.c_name);
printf(“nntt3.课程学分:”);
scanf(“%d”,&course_new.c_score);
printf(“nntt4.课程已选人数:”);
scanf(“%d”,&course_new.c_nelepeo);
printf(“nntt5.课程人数上限:”);
scanf(“%d”,&course_new.c_melepeo);
if((fp=fopen(“course.dat”,“rb”))!=NULL)
{
do
{
fread(&courses[i],sizeof(struct course),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);
for(j=0;j<=i-1;j++)
if(course_new.c_num==courses[j].c_num)
{
system(“cls”);
printf(“nnttt对不起,这个编号已经使用过nntt按任意键返回管理菜单”);
getchar();getchar();
man_login();
break;
}
}
if((fp=fopen(“course.dat”,“rb”))==NULL)
{
fp=fopen(“course.dat”,“wb”);
}
else
{
fclose(fp);
fp=fopen(“course.dat”,“ab”);
}
fwrite(&course_new,sizeof(struct course),1,fp);
fclose(fp);
printf(“nntt信息输入完毕t按任意键继续”);
getchar();getchar();
do
{
system(“cls”);
printf(“nntt1.继续输入”);
printf(“nntt2.返回管理菜单”);
printf(“nntt请选择”);
scanf(“%d”,&inp);
if(inp!=1&&inp!=2)
{
printf(“输入不符合要求t按任意键重新选择”);
getchar();getchar();
}
}while(inp!=1&&inp!=2);
switch(inp)
{
case 1:c_add();break;
case 2:man_login();break;
} }
void c_delete()//查询后删除 {
FILE *fp;
int i=0,j,n,k,flag=0;
struct course courses[10];
void c_delete();
void man_login();
printf(“nntt请输入你要删除的课程编号:”);
scanf(“%d”,&n);
if((fp=fopen(“course.dat”,“rb”))!=NULL)
{
do
{
fread(&courses[i],sizeof(struct course),1,fp);
i=i+1;
}while(!feof(fp));
fclose(fp);
}
else
{
printf(“nntt不存在任何课程t按任意键返回”);
getchar();getchar();
man_login();
}
for(j=0;j
{
if(courses[j].c_num==n)
{
flag=1;
fp=fopen(“course.dat”,“wb”);
for(k=0;k
fwrite(&courses[k],sizeof(struct course),1,fp);
fclose(fp);
fp=fopen(“course.dat”,“ab”);
for(k=j+1;k
{
fwrite(&courses[k],sizeof(struct course),1,fp);
}
printf(“nntt记录已删除!t按任意键返回ntt”);
getchar();getchar();
man_login();
fclose(fp);
}
}
if(flag==0)
{
printf(“nntt不存在对应的课程t按任意键返回”);
getchar();getchar();
man_login();
} // printf(“nntt记录已删除!t按任意键返回ntt”);
}
int main(){
篇8:基于WEKA的学生选课行为研究
数据挖掘的目的
文章对某校2011--2012学年第一学期12827名学生公共选修课数据进行聚类分析, 哪些学生主要集中选修了哪类课程, 哪些学科的课程选修人数较多, 以及选修这些课程的学生主要集中在哪些院系, 选修的课程主要集中在哪个系部。如果发现有很多学生选修了某类的课程, 则在教务管理系统中弹出提示框, 向此类型的学生推荐该类选修课。这些发现对提高选课效率和为学生提供个性化的选课服务有着重要的意义。
学生选课行为分析
1.WEKA简介
WEKA全名为怀卡托智能分析环境 (Waikato Environ-ment for Knowledge Analysis) , 是一个基于java、用于数据挖掘和知识发现的开源项目, 其开发者是来自新西兰怀卡托大学的Ian H.Witten和Eibe Frank。经过12年的发展历程, WEKA是现今最完备的数据挖掘工具之一, 而且被公认为是数据挖掘开源项目中最著名的一个, 每月下载次数已超过万次。
2.数据预处理
由于从教务管理系统里导出的数据, 我们要进行预处理。首先是读取数据与格式转化。WEKA支持的文件格式有:ARFF格式, CSV格式, C4.5格式和序列数据格式。因此首先要从教务管理系统中导出.XLS文件。然后在EXCEL里另存数据为.csv文件, 使用WEKA读取.csv文件, 再另存为.arff文件。读入数据后, 可以使用筛选器来做数据预处理, 去掉一些不需要的属性 (比如:选课学生的学号、姓名) 。然后, 在WEKA中要进行数据类型转换, 数据离散化后转为分类型数据。
3.聚类
聚类的主要任务是把所有的实例分配到若干的簇, 使得同一个簇的实例具有较高的相似度, 它们之间距离的比较近;而不同簇实例具有较高的相异性, 她们之间的距离比较远。本文基于WEKA, 对数据预处理后的“.arff”文件进行聚类分析。在实验对比分析的基础上, 使用最常用最知名的K均值 (K-means) 算法。下面我们简单描述一下K均值聚类的步骤:
1) K均值算法首先随机的指定K个簇中心。2) 分配每个实例到距它最近的簇中心位置, 可以得到K个簇。3) 通过计算各簇中实例的均值——作为各簇新的簇中心。4) 重复2) 和3) , 直到K个簇中心的位置不变, 簇的分配也不变。
上述K均值算法只能处理属性为数值型的数据, 一旦遇到分类型属性的数据, 需要将它变为若干个取值是0和1的属性数据。WEKA自动实施数据从分类型到数值型的变换, 并自自动对属性为数值型的数据标准化。用“Explorer”菜单打开数据预处理后的“.arff”文件, 并切换到“Cluster”。点“Choose”按钮选择“SimpleKMeans”, 这是WEKA中实现K均值的算法。聚类分析的结果和numcluster和seed的设置、“Within cluster sum of squared errors (残差平方和) ”的值有关。参数Within cluster sum of squared errors (残差平方和) 是评论聚类分析优良的一个准则, 数值越小代表同一簇实例之间的距离越小, 聚类分析结果越好。通过多次实验, 设置“numClusters”为4, “seed=10”可以使分析结果Within cluster sum of squared errors较小, cluster参数说明我们希望把这些实例聚成4类, 即K=4。“seed”参数主要用于设置一个随机种子, 产生一个随机数。这个随机数作为K均值算法中第一次给出的K个簇中心的位置。点击“Start”按钮, 可得到图1所示的聚类结果。
聚类结果的Cluster 0表示12827名学生中, 外国语学院英语专业选修FLASH动画设计与制作的学生比例为15%;Cluster 1表示机电工程学院机械设计与自动化专业选修photoshop图形图像处理的学生比例为60%;Cluster 2表示经济管理学院会计专业选修汽车知识的学生比例为10%;Cluster 3表示音乐学院舞蹈学 (模特) 专业选修中国传统文化的学生比例为14%。
4.学生选课行为分析
根据以上数据挖掘结果, 依次对相关的学院及专业进行问卷调查, 经研究分析后得到以下信息:
(1) 机电工程学院的机械设计制作及自动化专业学生多选修photoshop图形图像处理课程, 是因为该课程与机械设计制作及自动化专业的主干课程机械制图、工程图学有一定的联系, 这些课程均为设计、作图类课程, 且机械设计及自动化专业要求需要掌握一定的信息电子技术。很多学生为了能在设计学科找到学术交叉点, 因此选修photoshop图形图像处理课程。
(2) 外国语学院英语专业学生选修FLASH动画设计课程, 大部门原因是学生希望运用FLASH技术, 制作精美生动的课件, 通过声音、动画的使用, 以便更好的创设良好的学习环境, 从而实现学习目标, 增强学习效果, 提高学习效率。
(3) 音乐学院舞蹈 (模特) 专业选修中国文化课程的主要原因为:舞蹈专业的培养要求和目标。该专业主要是为了培养熟悉我国文艺方针政策、掌握舞蹈历史文化知识和基本理论的人才, 因此学生为了能够更好地了解中国的历史文化知识, 选修中国文化课程。
(4) 经济管理学院会计专业选修汽车知识课程的原因为:汽车行业会计是属于会计行业的一个分支。大部分学生为了能够更好的掌握分行业会计知识, 特别是汽车行业的会计知识, 因此选修汽车知识课程。
结语
本文通过聚类分析, 掌握学生在一定时间内的选课情况, 了解学生主要集中选修了哪几门课, 选修的学生主要集中在哪些学院, 哪些专业。根据这些潜在的隐含信息, 可以在教务系统中设计个性化的提示模块:当机电工程学院的机械设计制作及自动化专业选课时, 自动弹出photoshop图形图像处理课程模块;外国语学院英语专业选课时, 自动弹出FLASH动画设计模块;音乐学院舞蹈 (模特) 专业选课时自动弹出中国文化课程模块;经济管理学院会计专业选课时, 自动弹出汽车知识模块等。这些个性化的选课模块, 在一定程度上提高学生选课效率。教务部门也可以根据学生的选课情况, 采取相应的策略, 优化教学资源配置, 提高教学质量。
【学生选课表】相关文章:
2010春学生课表04-30
东南大学学生课表06-26
考研大军占座疯狂 青岛高校学生自制无课表06-11
学生选课系统09-14
学生网上选课系统07-21
学生网上选课流程08-03
学生网上选课的通知09-01
学生选课管理信息系统03-31
学生选课系统软件设计04-10
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.bianchenghao6.com/h6javajc/24818.html