选课系统(精选8篇)
一、系统功能及需求分析
(一)系统功能
选课系统含登录验证模块、学生选课模块、管理员模块。学生通过本系统,可透过浏览器查询课程安排、教师及选课情况等;管理员通过本系统,可对全校学生进行选修课的统筹管理,如修改、添加、查询、删除等,从而为教务工作提供决策信息。
(二)需求分析
分析一:系统应该满足以下几个方面需求:
1.某些选修课程因为前序课程或者教学管理资源的限制,要求系统能对课程选修人数、选修学生年级、专业等进行限制。
2.选课过程需具有时效性,系统要能在短时间内响应大量学生的查询和选课要求,並及时处理。
3.教务部门能及时掌握课程选修情况,系统界面直观,操作简单,学生不需经任何培训即可操作。
4.系统要提供数据输出接口以供教务员作后期处理及保存。包括作为以后查询和评估使用的资料。
分析二:系统要实现的功能分为二大模块:
管理员模块:
1.负责统一管理,包括课程的查询、添加、修改和删除;
2.限制选修条件的管理,包括条件的添加、修改和删除;
3.统一管理用户,包括管理员和学生用户的管理;
4.系统公告的管理;
5.数据的管理和数据导出;
6.管理员密码管理和学生密码的初始化操作。
学生选课模块: 1.从课程列表中选择所要选修的课程;
2.查询已选课程及其相关信息,包括上课时间及地点;
3.修改自己的登录密码。
(三)系统功能模块划分
系统功能框图
四、系统模块分析与用户界面设计
(一)系统模
(二)系统模块说明 根据用户需求分析和数据字典设计,把系统模块划分为:三大模块和三个子模块。它们分别是登录验证模块、管理员模块、学生选课模块三大模块以及管理员模块下的选修课程管理子模块、用户管理子模块和数据导出、导入子模块。
1.登录验证模块
该模块用于检查用户的登录,管理员、学生的登录。确保只有合法的用户才能
进
入
系
统
进
行
相
应
操
作。
2.管理员模块
管理员模块是该系统中功能最为强大的一个模块,管理员可在此完成对整个系统的管理以及维护,课程的添加,新学生的登记也都要通过该模块完成。
在管理员模块中,管理人员可进行管理账号的添加、删除等操作,还可以分别对学生、课程进行管理。在学生、课程管理中,都具有相同的功能:查询、添加、修改、删除,只是根据各自情况的不同,实现了查询或添加。例如:在学生管理中可以通过班级、学生姓名等不同条件进行查询,在课程管理中提供了专门的页面对大量的课程信息进行录入。
(1)选修课程管理子模块
该模块用于管理员对选修课程进行添加、修改、删除、查询等操作。
选修课程的添加分两个步骤:第一步是输入基本信息;第二步是录入选修课程的限选条件。
为了更全面掌握学生的选课情况,管理员可以对学生进行选课情况查询与退选的操作。当然这些操作都是特殊情况下由管理员进行的,具体实现是在“学生选修情况查看”的界面中完成。
(2)用户管理子模块
用户管理模块可具体分为管理员的管理和对学生用户的管理两种功能,其中管理员的管理功能较为简单,功能包括修改信息、密码的修改。
而对学生的管理功能,除了信息、密码的修改之外,因为学生数据可能存在着误差,在选课过程中可能会出现部分学生名单不在该系统或学生所属专业不正确,而最终造成学生不能选课或所选课程与所在专业的课程不一致的情况出现,所以要提供管理员添加学生、修改学生和修改班别或专业的功能。
(3)数据导出、导入子模块
因为选修课是一种实际的上课过程,在上课过程中我们需要点名考勤和成绩打印,所以本系统提供数据导出功能,管理员把数据导出成EXCEL文件让教务员进行处理,让老师掌握课程的学生人数和姓名,方便日后教学工作的正常展开。另因为学生的数据量较大,所以系统提供了数据接口来对学生数据进行导入。
3.学生选课模块
学生选课模块是系统最主要的功能,因为选课系统平台的大部分数据输入都是由大量学生的选课操作获得的。选课模块的设计虽然并不复杂,但是对稳定性的要求相对较高,这要求在设计上尽量少的占用系统资源,以防止出来因服务器系统资料不足而导致无法正常运行的情况。
登录系统主界面后,用户查看可选的课程名称列表,然后点击“选修”。因而显示直观,并会显示限定选修人数和已经选修人数,如果选修人数满或该课程取消,不会显示“选修”两字。正常情况下用户只需点击“选修”就可以完成选课程序。
因为选课操作是一项最重要也最容易出问题的操作,所以,为防止数据出现混乱,在这一步骤中需要采取严格的判断与验证措施。
下列情况将无法通过验证:
页面显示验证(无法显示“选课成功”页面);
(1)课程已经到达限选人数;
(2)重复选取该课程。
页面提交验证(无法提交到数据库)
(1)从外部提交数据
(2)超时登录
严格的验证保证了数据的准备可靠,不至于出现选课数据和实际情况不符的现象。
六、总结及说明
(一)开发总结
选课系统已经在校园网上的运行了一段时间並成为课程改革的重要组成部分。该系统受到老师们和同学们的普遍欢迎,因为系统避免了复杂的课程安排,也方便了同学们根据自己的情况自由选课。它在使用中不受时间地点的限制,只要在校内的任何一台终端均可登录本系统。该系统不仅给学生创造了良好的选课环境,也方便了教师对学生情况的了解和管理。
但是,在使用过程中也出现了一些问题,这些问题或多或少影响到系统的使用效果和用户的使用体验。主要存在以下问题:
1.系统对学生选课的控制策略尚不够完善。
例如不能提示学生那类选修课还没有进行选取,无法控制哪些学生不能选择某些课程等。如果某个专业的学生本学期是不用上选修课,系统也无法阻止该学生登录系统。总而言之,系统的控制策略部分仍不完善,这是本系统的一个比较大的缺陷。
2.系统运行速度不稳定。
由于我校是采用集中选课,当几百名学生同时登录系统进行选课操作,服务器会呈现死机状态,往往发生一些严重的数据错误。
解决方案:(1)进一步优化数据库设计和程序代码,使其占用更少量的系统资源;(2)改善服务器配置
3.数据的安全性不高。
因为本系统是挂靠在校园网站的服务器上运行的,该服务器使用了多项服务,内容庞杂,管理不够严格,所以数据的保密性并不良好。4.与学校成绩录入系统的接口还没有实现。
1 需求分析
网上选课系统的需要来自三个方面,这三个方面分别是学生、教师、系统管理员。其中管理员的需求最为复杂,管理员可以通过超级用户身份登录,对系统进行全面的管理,包括用户的添加、删除和修改,为不同的用户设置不同的权限和界面,对学生信息、教师信息、选课情况进行浏览、查询、分类、汇总、统计,对系统进行状态维护并生成各类选课报表。教师可以发布所要教授的课程的有关信息,可以对学生选课情况进行有关操作,形成学生选课确认。学生的主要需求是查询院、系所开设的课程,查询自己选修课程情况,以及对本人有关信息的修改。
经对上述三方面需求的分析,确定系统的总体设计方案必须做到以下几点:
(1)设计一个良好的界面,确保各项操作都可以根据菜单或按钮提示方便地完成。
(2)设置不同用户的使用权限,保证数据信息的安全性、可靠性。
(3)保证数据库具有高安全性。
(4)数据录入方式简单、便捷。
(5)教师注册后可在任意时间、任意地点申报、设置课程,并修改课程相关信息。
(6)教师能够查询学生选课信息。
(7)学生可以查看课程信息。
(8)学生可以在联网的任意一台计算机上选课。
(9)管理员享有最高权限,可以添加课程、删除课程、对课程信息进行修改处理、并对用户身份进行审核,对用户资料进行管理。
(10)管理员有权限修改用户的密码和其他个人信息(主要是针对不合法用户)。
(11)管理员在线编辑,管理工作简单方便。
2 开发软件选择
选用ASP开发工具软件,因为它有如下的特点:
(1)无需编译,ASP脚本集成于HTML当中,无需编译或链接即可直接解释执行。
(2)易于生成,使用常规文本编辑器(如WINDOWS下的记事本),即可进行觹.asp页面的设计。
(3)独立于浏览器,用户端只要使用可解释常规HT-ML码的浏览器,即可浏览ASP所设计的主页。
(4)面向对象,在ASP脚本中可以方便地引用系统组件和ASP的内置组件,还能通过定制ActiveX Server Component(ActiveX服务器组件)来扩充功能。
(5)与任何ActiveX script语言兼容,除了可使用VB-Script和JScript语言进行设计外,还可通过Plug-in的方式,使用由第三方所提供的其它script语言。
(6)源程序码不会外漏,ASP脚本在服务器上执行,传到用户浏览器的只是ASP执行结果所生成的常规HTML码,这样可保证编写出来的程序代码不会被他人盗取。
3 实现方案及模块分析
3.1 系统总体结构
网上选课系统从功能对象上划分为教师、学生、管理员和普通用户四部分,主要操作是教师课程申报、审核;学生在线查询、选课;管理员对系统的管理、维护;普通用户的信息查询等,系统总体结构如图1所示。
选课系统采用了B/S模式,B/S模式有着较为突出的优势。在客户端只需要安装标准、易用的通用浏览器,无需像C/S模式那样在不同的客户机上都要安装此系统软件,这就简化了学生申报、查询课程等过程;B/S模式的功能都在Web服务器上实现,使开发和维护工作简单易行;全校教师、学生及其他管理人员在任何地方,只要可以上网,就可使用此管理系统,且B/S模式适用于网上信息发布。
3.2 模块介绍
本文只介绍实际操作中最常用的学生选课和教师课程发布模块中的几个主要子模块。
3.2.1 学生选课
学生选课登陆:在登录页面(如图2所示)对应的地方输入学号、密码,确认后登录。信息提交给asp文件后,系统会根据学生学号、密码到数据库中的学生表_student表中检索,若没检索到则说明学号、身份证号有误,转到相应的出错对话框中,若检索结果正确,则转入学生登录成功的操作页面,如图3所示,系统会将输入的姓名、学号、密码等信息以session对象的形式保存起来,学生可以从图3的界面中看到课程及选课的基本情况,并通过按钮选择自己感兴趣的课程。
3.2.2 课程信息查询
(1)查询开课信息。在查看窗口中点击“课程列表”按钮即可看到学校在这个学期所开设的选修课程(如图4所示),“选课课程列表”中按学科门类把学校各系老师所开设的课程、开设地点及学分等一些基本情况列出,课程详细情况还可以通过“课程简介”里的“查看”详细了解,同时在表中还设置有开始选课入口—“我要开始选课”按钮。
(2)查询课程信息。学生登录成功后可以在课程列表中点击查看相关课程的详细信息(如图5所示)。
3.2.3 学生选课
通过点击选课信息浏览页面中的“我要选课”按钮,即会列出可选课程的相关信息(如图6所示)。学生可根据自己情况选择课程,确认后完成选课。
3.3 课程申报、审核、发布
3.3.1 教师课程申报
教师课程申报是系统中必不可少的部分(如图7所示)教师需要在课程申报表中填写个人、课程等相关信息,其中带有“觹”标志的是必须要输入的栏目。信息输入结束后,系统会根据用户所输入的信息与数据表Info_course建立联系,将信息添加到数据库中。
当需要查询课程信息时,由session对象获得输入信息,然后与后台数据库建立联系,核对信息,信息吻合时即可输出老师在本学期所发布过的课程信息(如图7所示)。
3.3.2 课程审核、修改
课程信息需要审核、修改时,只要在课程信息发布的页面中点击“修改”,即可进入修改页面(如图8所示),按页面提示输入要修改的信息后,完成课程信息修改。审核、删除课程信息的操作与修改过程雷同。
4 结束语
要成功开发这类应用软件,应尽量采用简单的技术满足复杂的需求,还要充分重视需求分析,了解用户的个性需求。所开发的应用软件应尽量降低对使用人员计算机操作水平的要求。
摘要:本文介绍基于B/S结构网上选课系统的基本设计思想及系统各功能模块的设计与实现。
关键词:ASP,网上选课系统,B/S模式
参考文献
[1]云舟工作室,编著.精通ASP3.0网络编程.北京:人民邮电出版社,2001.
【关键词】学校选课系统 后台教务管理 Structs
1 引言
随着中职学校规模的扩大,许多中职学校出现了多个校区并存的局面,且校区之间的地理位置距离较远,给学生的课程选修带来了诸多不便。为了解决这一实际问题,利用学校现有的网络资源,通过开发设计学生选课系统,学生可以轻松的通过网络进行在线选课,而学校教务人员可以通过选课系统方便、快捷的对学生的选课情况作出快速反应,统计掌握各课程的选择情况,并及时作出调整。
2 学校选课系统
学生选课系统能够帮助学校实现教务管理的数字化和网络化改革,减少教务人员的工作量,提高工作效率,减少不必要的重复;能够帮助学生轻松、自由地进行网上选课,操作方便。
通过实际调研,及对需求进行分析后,學校选课系统可以根据不同角色的功能需求进行模块划分,系统可以分为三个模块,分别是用户管理模块,学生个人管理模块和后台教务管理模块。其中,用户管理模块主要功能是学生的注册和密码的修改;学生个人管理模块主要功能是录入学生个人基本信息、查询个人信息、查询可选课程、选择课程、查询已选课程;后台教务管理模块的主要功能是增加专业信息、修改专业信息、增加新课程信息、修改课程信息和统计信息。
3 后台教务管理设计
后台教务管理模块主要实现管理专业信息、课程信息以及对学生的选课情况进行统计输出。
(1)专业管理主要实现对学校现有的设置专业信息进行管理,只有创建了专业信息,学生在填写基本信息时才能注册为该专业学生。在专业管理控制器中,可以使用Struts提供的DispatchAction将含有相关业务操作的一类处理方法放在同一个Action中,这样可以解决控制器出现的.do请求过多而导致的Action大量增加的问题。
(2)课程管理主要实现对专业所属课程信息进行修改,主要分为增加新课程和设置课程不可选。其中,增加新课程就是在指定专业中增加一个新的可选课程;而设置课程不可选是避免学生选择已经开设的课程或者已经结束的课程。课程管理控制器CourseAction.java同样继承DispatchAction,能够处理多个请求;使用insert()方法增加新的课程,updateIsFinish()方法用于课程不可选,findBySearch()用于根据学生输入条件查询课程,showInsert()用于查询所有课程信息,courseInfo()用于根据课程id编号查询课程的详细信息。
(3)信息统计主要通过输入条件查询出符合条件的课程统计信息,并统计出该课程的选课人数及学生名册,输出到文档中。信息统计控制器StatInfoAction.java同样继承DispatchAction,处理与信息统计有关的请求。findBySearch()实现搜索课程功能,stuList()实现查询指定课程学生信息功能,exPDF()和exExcel()实现文档的输出。
(4)退出系统主要在页面中销毁当前用户的会话,跳出框架并返回首页。关键代码如下:<%session.invalidate();response.sendRedirect(“../index.jsp”)%>。
4 Structs体系结构
Struts是开源软件。是基于MVC经典设计模式的框架,其中采用了Servlet技术和JSP来实现,在目前的Web应用开发中非常广泛。Struts把Servlet、JSP以及众多标签库整合到一个统一的框架中,并将显示层中的业务逻辑层和数据库层中抽象和分离出来,利用Struts框架进行开发,开发者不必再重新编写全套MVC框架代码,从而缩短开发周期。本系统采用的MVC模式,能够从教师用户权限、系统功能处理方面实现很好的分工和隔离,前端可以为用户提供风格统一、界面友好的工作面,后端的数据库操作也是可以单独管理,由学校教务人员来管理,确保数据库的完整性和同步性。
5 结论
学生在线选课系统集成计算机技术、电子技术、现代通信技术、现代信息管理技术与自动化处理等多种先进技术,以实现信息的采集、处理、发布、决策,能够高效率改善学校的选课问题,改善学校管理模式和提高服务质量,从而实现教务教学管理的数字化和网络化。
参考文献:
[1]王希饶。基于JAVAEE的设备管理系统的设计与开发[D].山东大学,2007.
[2]王景乐。基于MVC的Struts框架的研究与应用[D].武汉理工大学,2008.
[3]田可伦。基于的数据设计问题的研究与实现[D].燕山大学,2005.
[4]思志学。自己动手写Struts--构建基于MVC的开Web发框架[M].北京:电子工业出版社,2007.
[5]邓子云。JSP+Struts+Hibernaet+Spring实例精解[M].北京:电子工业出版社,2008.
一、学生选课管理系统
第一部分:课程设计名称、目的、要求
第二部分:程序总体设计思路
第三部分:程序功能划分、图示及流程图
第四部分:程序设计数据、运行结果
第五部分:程序的优缺点
第六部分:心得体会
第七部分:附录(源程序)
第八部分:附录(参考文献)
目录
..............................................................................第一部分:课程设计名称、目的、要求
名称:学生选修课程系统设计
目的:运用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(){ 第四步,自己选课的时间,最好是再可以选了的第一天的`白天,这时候,还没有多少人选好,还是可以抢到自己喜欢的课的,到晚上的时候,基本上都选满了,真的只能捡课了,还很难捡得到。 选课的方向,主要是选自己有兴趣的课程,考试可以过的课程,不点名的课程,这样,学分基本就有十之七八的把握了。 结 业 论 文 题 目 大学生攀比问题探究 姓 名 孙秋月 学 号 2012030190 专 业 计算机科学与技术 哈尔滨师范大学 2014年12月 大学生攀比问题探究 孙秋月 摘 要 :随着我国市场经济的迅速发展, 人们的消费观念有了很大改变。处于“象牙塔”内的大学生深受攀比之风气影响。同时攀比心理是当代大学生群体里发现的新的心理问题,严重影响了大学生心理的健康成长。对大学生的攀比心理进行分析,找出产生大学生攀比心理的主要原因并分析高校攀比消费文化的成因,探索对策,结合家庭、学校和社会等多方面的力量,帮助大学生树立适度、合理、科学的消费观,有助于塑造良好的校园文化、培养大学生健全的人格。 关 键 词 大学生 攀比消费 心理问题 解决对策 从理论上讲,攀比是一种普遍存在的社会现象,也是一种文化、一种心理、一种行为。然而,生活中人们对攀比的理解常常局限在负面,汉语对攀比的权威解释是:“不顾自己的具体情况和条件,盲目与高标准相比”。从字面学解释看,以上界定是合理的,但从文化、心理和行为上解释,对学生攀比现象的理解则应该更宽广、更全面。这里所理解的攀比,一方面是指那些盲目与别人比较,而不顾自己实际、不求长远目标、不合教育要求的现象;另一方面也包括那些有明确的进取目标,有意识的、积极的、善意的、科学的与他人比较的现象。 一、直面大学生攀比现象 后出生在改革开放迅速发展时期,无论是生活环境,还是物质条件、精神文化等方面都比前几代人优越。他们生活在四位长辈、一对小夫妻再加一个孩子的 “4+2+1”家庭环境中,从小不缺乏长辈们的关爱。他们想要什么,长辈们就给什么,几乎是有求必应。在这样的社会环境与家庭环境下长大的90后,他们有着独自鲜明的特点,个性张扬,思想独立开放,追求非主流的时尚,追捧“火星文”,推崇民主平等。他们带着独自的特点进入大学学习生活,他们的个性特点影响着他们的言行举止。他们热衷于消费,除了基本的学习生活消费,他们越来越注重娱乐消费、时尚消费,以此满足他们的精神生活需求。但也因此形成了很多不良的消费习惯,而攀比消费,则是最为突出的消费问题。 二、攀比心理在大学生群体里得以产生与发展的原因 攀比心理严重改变了当代大学生的世界观与人生观,影响了大学生未来的发展。那么攀比心理是怎么形成的呢?导致大学生攀比心理的产生有多方面原因,既有内在大学生的动机、学习、认知、自我概念个人因素,但主要是外在社会,学校、家庭等因素。 (一)西方消费文化影响 费瑟斯通认为,伴随着消费文化的发展,人们已经从宣扬自己的美德转为宣扬自己的个性、人格。国家社会生活物质化,市场经济繁荣,“高尚”“节俭”“自助”等美德被“个性”“自我”“享乐”等代替。受这种西方消费思潮的影响,中国目前的消费观逐步西化,商品被赋予身份、地位、品味、荣耀等抽象标签,许多人通过消费商品来彰显势力。 (二)社会环境影响 改革开放近30 年,我国一直以经济建设为中心,经济持续快速增长,人民生活水平也不断的提高。部分先富起来的家庭消费方式有了很大的变化,传统的消费观念不断受到冲击。另外,市场经济条件下容易诱发拜金主义,因为市场经济离不开商品交换,商品交换离不开货币,作为中介的货币因而成为财富、商品的化身,成为普遍价值的代表,拥有了货币似乎就可以购买一切、占有一切。这就容易使人产生一种错觉,以为货币无所不能,使人产生对货币、金钱的崇拜,诱发对货币的无限制的追逐和占有,从而走向拜金主义。 (三)家庭教育缺失和家庭错误的引导 大家都知道父母是孩子的第一任老师,父母对孩子的教育影响着孩子的一生,由于现在大部分家庭都只有一个孩子,对于父母来说孩子就是他们的一切,家长对孩子呵护备至,愿意倾其所有、竭尽全力为孩子创造各种学习条件,但是缺乏对性格、生活理念和技能的培训,这种环境里的孩子缺乏实践锻炼,理财理念匮乏,不能体恤生活不易,因此很难形成合理消费观念和储蓄观念。而且现在的父母对孩子都是疼爱有加,有的父母甚至是溺爱。孩子想要的父母都会尽自己最大的努力去满足,甚至无论父母是有条件还是没条件都会想办法去满足孩子的要求。这也就导致了孩子们对新鲜事物的无尽追求,因为他们知道只要是自己喜欢的父母都会满足。其次,每位做父母的都希望自己的孩子无论在任何方面都不比别孩子差,所以别的孩子有的自己的孩子也必须有,其实父母之间也是在攀比,这也就导致了孩子攀比心理的产生,所以攀比心理的产生与家庭的引导也是分不开的。 (四)学校教育缺失 除了用于专业教学,高校鲜有指导大学生树立消费观的课程或指导,也无明确引导举措或建议。从整体来看,高校对大学生消费观念的研究和引导几乎为零。学校教育与校园文化塑造大学生消费价值观罗斯金曾对此有一个著名的论断:“教育并不是教导人知道他们以前求知的事,而是教导人们去做他们以前不会做的事情。”大学是大学生社会化过程的主要场所,是形成消费观的重要起点。没上大学之前,大部分学生处于被动接受消费状态。上大学之后,消费自主权在自己手中。而我国目前的教育体系中,没有将消费理财纳入到德育课程中来,缺少倡导大学生勤俭节约生活消费观的内容,高校“两课”教学中对大学生人生观、价值观、消费观的教育引导也不够。部分学校不良的消费现象日渐泛滥。学生盲目攀比手机,电脑等更新速度快,价格高等电子产品,追求名牌,甚至限量版的包包,鞋,不追求衣服的性价比和实用性,反而以奇装异服为美。有些女生使用与自己年龄身份不相称的昂贵化妆品包装自己。以出处高档餐厅,国外旅游作为彰显身份的筹码。每当自己的奢侈愿望实现时,更要在微信朋友圈,QQ 空间炫耀一番。 (五)大学生内在消费心理的驱使 有如下几种心理直接影响攀比行为: 1.炫耀心理 炫耀性消费出现在富裕的上层阶级通过对物品的超出实用和生存的消费向他人炫耀和展示自己的金钱财力和社会地位,以及这种地位所带来的荣耀、声望和名誉。在人际交往方面有些同学喜欢一掷千金,显示大方,而这种消费会对其他同学而言会出现“死要面子活受罪”,“打肿脸充胖子”的消费,甚至会出现频繁伸手向家里要钱的情况。 2.从众心理 学生进行攀比消费主要是一种“群体效应”,大学生受到群体压力而被动攀比,他们害怕被群体孤立、瞧不起。 3.补偿心理 有的学生与人攀比,其直接动机是求得心理的补偿。一个家庭经济不宽裕的学生,不一定能理解父母的疾苦,反而与人比物质享受;一个学业不良的学生.不在学业上提高自己,而与人比阔气、比文友、比网恋。这些都出于补偿心理。 4.虚荣心理 在学生的盲目攀比中,有相当大的部分是虚荣心在作祟,在学习生活中,他们特别爱面子,为了维护自己的所谓“面子”,常常不考虑自身的实际情况,与人比不该比的东西,与人比自己无法胜任的东西。 5.功利心理 有的学生斤斤计较于物质上的攀比,从而产生奢侈性消费,校园小资情调屡见不鲜。很多同学表示对LANCOME、DIOR、CK、D&G、LV、“苹果”手机等产品普遍认为价格还能承受得起,是由于他们只考虑功利化需求,认为人与人之间的关系是一种功利关系,而精神的追求是虚幻的。 6,模仿心理 对于年龄幼小的学生来说,攀比常常缘于模仿,别人有的,自己一定要有,别人没有的,自己也要设法拥有。在这种合理的直接支配下,学生的攀比行为也愈演愈烈。 三、对于攀比消费的解决对策 攀比消费文化对策初探攀比消费是一个相对普遍的现象,其外因与社会、学校、家庭等因素相关,而内因则与大学生人生观和价值观、虚荣心和自尊心、自控力等心理因素有关,因此除了结合社会、学校、家庭三方面,更需要依据攀比消费的心理成因,从学生个体本身探讨解决对策。 (一)学校、家庭和社会共同加强对学生的教育引导 高校需高度重视学生消费观教育引导,走出漠视消费观教育的认知误区,通过学生参与度广的网络微博、论坛和校刊等宣传途径,将合理消费理念融入日常教育管理中,在潜移默化中改变学生的不良消费理念;家庭是大学生消费的主要来源,也是基本的消费单位,其行为和观念对孩子有着很深的影响,家长自身要树立正确的消费观,合理引导孩子,注重培养孩子勤俭节约的习惯;社会要完善各项政策法规,将消费教育纳入高等教育教学当中;加大对舆论媒体监管,向学生传播正确的消费观念、行为和方式。 (二)将攀比文化向竞争意识提升 攀比是正常的心理活动,攀比的正确与否取决于人生观是否科学。一个追求卓越的人经常会把最优秀的人作为比较对象,用与他人的差距来激励自己,从而起到提高自身成就动机的作用。反之,比安逸享乐、排场阔绰,最终导致攀比消费。应改变传统的“说教——听从”教育模式,辅助科学的心理辅导,引导学生将攀比消费科学合理转移到“攀比”学业、能力等其它积极方面上来,学会理智“攀比”。 (三)加强个人及团体心理辅导 攀比消费文化是因认知上存在误区,导致极端行为结果,依据心理学理论,结合科学的心理治疗手段,改变个体不合理情绪和错误认知,能够纠正错误行为。因此可加大心理咨询机构建设,积极建立心理咨询室,开展心理健康教育,建立学生心理健康档案,通过科学的训练方法改变学生不健康心理。通过电话咨询、网络咨询等方式对全体学生进行心理辅导教育。另外,应积极建立心理健康教育队伍,培养一批有心理咨询师资格的高素质辅导员队伍。其次,大学生攀比消费群体特征明显,存在极大的相似性,可通过团体心理辅导、心理健康讲座、开设心理健康课程等途径对大学生心理健康进行群体辅导 除了社会、家庭、学校的共同维护,还需要学生主体配合三方的教育,增强自控力,自我约束,汲取正确的消费观,将主要精力放在学习上,不断提升自己,追求全面素质和精神内涵的提高,努力为社会经济的健康发展做贡献 参考文献 [1] 倪 科.基于当代大学生消费观视角下的高校美育实施创新研究 [J].中国电力研究, 2012(26).[2] 田 芯.消费主义影响下的大学生消费教育探析 [J].高校管理 , 2012(12).[3] 陈 莉.黑龙江省大学生消费现状及生态消费观的引导[J].中国校外教育, 2012(11).[4] 张 妍.太原市在校大学生消费行为研究 [D].山西财经大学硕士论文, 2012.课后总结: 1 选课系统数据库设计 数据库设计是在选定的数据库管理系统基础上建立数据库的过程。按照规范化设计的思想, 考虑数据库及其应用系统开发的全过程。 1.1 数据库的需求分析 数据库管理系统需要有后台数据库的支持, 数据库管理系统的应用开发过程的关键技术, 数据库设计和程序设计, 包括数据库设计, 数据源配置和连接, 数据源, 数据采集, 运行的查询语言的使用。基于高校实验室数据库管理系统的要求, 相应的数据表的设计与功能如下:课程表:存储课程的基本信息。实验室表:存储实验室的基本信息。操作员表:存储操作员的信息。权限表:存储权限的基本信息。实验室使用情况表:存储与实验室使用情况相关的具体条目信息。学生表:存储学生的基本信息。教师表:存储教师的基本信息。 1.2 数据库设计的数据字典 数据库设计的数据字典如下:操作员登录信息, 学生信息, 教师信息, 课程信息, 实验室信息等。 2 系统的概要设计 2.1 处理流程 首先启动服务器端的应用程序;客户端系统启动时, 激活身份验证模块;通过身份验证后对系统初始化。根据系统配置文件将数据库导入, 并设置各全局变量;系统进入消息循环状态, 通过事件驱动机制激活各功能模块, 并执行制定模块;由退出系统事件激活退出模块关闭系统。 2.2 系统的功能分析 使用数据库建立表, 创建相对应的索引并关联表间关系, 而后建立数据资料表, 装载基本数据资料。划分模块:通过流程图, 同时实验室管理功能架构, 了解该实验室管理系统要完成的功能, 划分出组成该系统的几大模块, 并分别描述模块的功能。 (1) 用户登录主界面。登录功能模块中所实现的功能有服务器设置、用户注册和退出, 本系统允许授权的用户登录, 其中包括普通用户和系统管理员。普通用户只能使用授权范围内的而不能擅自修改;管理员具备该软件的所有使用和修改的权限。 (2) 学生信息管理模块。它的主要功能包括录入、学生信息的修改和学生信息的查询。学生只要输入合法的学生编号, 即可以查出学生的各种信息。 (3) 任课教师模块。它主要实现的功能有任课老师信息录入、信息修改和信息查询功能。学生只要输入合法的教师编号, 就可以查出任课教师的所有信息。 (4) 课程信息管理模块。它包括实现的功能则有课程信息的录入、信息修改和信息查询功能。学生只要输入相关的课程名称, 就可以查出相关课程的所有信息。 (5) 实验室信息管理模块。它包括实现的功能包括选实验室信息的录入、实验室信息的修改和实验室信息的查询功能。学生只要输入合法的实验室名称, 就可以查出相关实验室的所有信息。 (6) 实验室管理模块。它主要实现功能有实验室设置和实验室查询。学生只要输入合法的学生编号、课程编号和实验室编号, 然后单击添加就可以完成添加一条实验室使用情况数据的功能, 并可以根据课程编号或者学生编号查询相关条目, 而这一功能也是此系统实现的最重要的功能之一。 3 后台数据库详细信息 后台数据库系统选用SQL Server2005, 根据管理系统的功能要求, 以及功能模块的划分数据需要存储的信息如下:所有课程信息;所有学生资料;管理员的资料;所有老师资料;实验室的资料;权限设置;实验室情况。因此, 实验室管理系统的后台数据库需要建立7个表, 分别是course表、lab表、operator表、operator-grade表、selectlab表、student表和teacher表。 3 选课系统模块设计 3.1 系统的模块设计 本管理系统总体包含两个子系统模块, 分别是学生查询设置子系统模块和管理员管理子系统模块。实验室管理子系统的客户端分为学生查询设置子系统模块和管理员管理子系统模块。例如管理员修改后台数据库上的课程信息, 这就会影响学生查看课程信息的结果。 3.2 子系统模块的设计 学生查询设置子系统包含查看学生信息查询、任课老师信息查询、课程信息查询、实验室信息查询、实验室使用情况查询和实验室使用情况设置6个功能模块。管理员管理子系统模块包含6个功能模块。允许管理员增加、删除和修改学生记录、老师信息、管理员记录、课程信息和实验室信息, 可以查看实验室使用情况等。 3.3 系统用户界面设计 用户第一次登录的时候需要进行服务器设置, 学生用户和管理员用户登录后所显示的界面是基本一样的。不一样的是他们所拥有的权限不同, 其中学生对学生信息管理、教师信息管理、课程信息管理和实验室信息管理功能只有查询功能, 登录模块只有退出功能, 而管理员其它功能几乎都有, 包括对各种信息的录入、修改和查询等。 3.3.1 学生查询设置子系统的用户界面设计 学生信息查询功能界面设计。学生只要输入合法的学生编号, 即可以查出学生的各种信息。教师信息查询功能界面设计。学生只要输入合法的教师编号, 就可以查出任课教师的所有信息。课程信息查询功能界面设计, 只要输入合法的课程编号, 就可以查出该课程的所有信息。实验室信息查询功能界面设计, 只要输入合法的实验室名称, 就可以查出该实验室信息, 以上截图省略。 3.3.2 管理员管理子系统的用户界面设计 管理员管理子系统和学生查询设置子系统的窗体基本上是类似的, 只是管理员管理子系统增加了学生信息设置、教师信息设置、课程信息设置和实验室信息设置等功能。管理员只要输入学生合法的学号, 然后填入学生的个人信息, 单击添加就可以将学生的信息添入数据库中。课程信息设置。管理员可以填入正确的课程编号, 然后设置课程其他信息, 单击添加就可以完成课程信息的设置。基于网络选课系统的关键是系统的性能, 它必须解决选课过程中的各种冲突、公平性及大批量用户并发访问等问题。本文提出的网上选课系统在实现了基本的学生选课、教师查询及教务员管理等功能基础上, 具有学生落选几率小、选课结果公平及选课操作安全等特点, 使选课过程简单化、高效化。 摘要:近几年, 随着计算机网络技术的发展, 各高等院校校园网建设发展迅速, 办公室、学生机房、实验室等都已通过校园网实现了互连互通, 这就为实验室管理信息化、数字化、网络化提供了必要条件。基于上述情况, 为满足广大师生的需求, 提高机房管理老师的工作效率、节省管理时间和降低学校成本, 我选择用C#作为前台开发工具和SQLServer作为后台数据库开发此系统。它能够满足学生查看个人信息、查看老师信息、查看课程信息、查看实验室信息, 以及查看实验室使用情况的要求, 同时实现了管理员对实验室使用情况的管理。 “下午选课啦!下午选课啦!”选课的消息不胫而走。同学们早已按捺不住自己的“小激动”,想跃跃欲试了。 我一扫项目,可是多得数不清呢!我喜欢:剪纸,美食糕点,创意手工,编织,文学赏析。每个都想参加,怎么办呢?考虑再三,美食糕点!等我把选的项目报告老师时,全班已有60人(全部)已报。老师也没辙了,说这个要抓阄,六十分之一的可能性啊! 杨婕茹负责做了全班号次,先是林怡廷她抽了一小张纸团,全班人的目光都看在那里,我心里一直在祈祷着……杨婕茹宣布:“29!第一个被抽中的号次是——29号!”陆建廷一脸的兴奋,哼起了《小苹果》。我看到全班同学的脸上都写着还有三个名额的样子,我的心里也一样。没事,还有三个名额“19号!”“8号!”“5号!”随后,三个号次都出来了,“吃货们”个个垂头丧气。 “我放弃!”突然,一个响亮的声音打破了沉闷。是5号同学,他宣布他不参加美食糕点!“吃货们”心里燃起了一丝希望,每个都渴望抽到自己的号次,时间一秒一秒地过去……“16号!是16号!”“幸运儿”16号欣喜若狂,紧紧地抱住5号同学。教室里瞬间又沸腾。 没有抽到号次的同学,只能选择其它的项目,选课还在继续…… 浙江省温岭市泽国小学 【选课系统】推荐阅读: 软件工程学生选课系统06-16 学生选课管理信息系统规划07-08 论文博客系统05-24 营销系统论文06-07 浙江诚信系统06-10 系统考察报告06-16 量化考核系统07-03 道闸系统方案07-04 学生评语系统07-07 物流系统案例07-18大学选课怎么选选课技巧有哪些 篇5
公选课 篇6
基于网络选课系统的开发与研究 篇7
选课进行时 篇8