版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于PHP+MySql的学生选课系统的设计与实现引言1.1引言随着计算机科学技术的不断发展,计算机科学强大的计算功能已经让人们深刻认识到,计算机已经进入人类社会的各个领域,并且发挥着越来越重要的作用。它的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。尤其对于复杂的信息管理,计算机能够充分发挥它的优越性。计算机进行信息管理与信息管理系统的开发密切相关,系统的开发是系统管理的前提。高等院校作为一种信息资源的集散地,更是作为重要的社会人才培养基地,学生和课程繁多,计算机成为高校教学管理中不可或缺的工具。我国高校实习学分制,允许学生自由选课,而学生选课,管理员对课程管理等相互制约因素大,业务流程复杂,工作量很大。传统的信息管理方式主要是基于表格,文本的纸质手工处理,对于选课情况的统计也是基于人工的检查,人工计算学生选课权限,选课代号,数据信息的处理量特别大,而且由于限制条件太多,业务流程比较复杂,容易出错,而且数据繁多,查找困难。利用计算机互联网技术对信息进行管理是时代的趋势。国外的教学软件发展时间较早,相对于国内来说比较成熟。美国威斯康星大学在1892年最初提出“远程教育”这个名词,远程教育就是通过先进的互联网技术,实现资源共享,资源管理等,学生在线选课系统也是其中的一小部分。学生选课系统为用户提供充分的信息管理和方便查询功能,能够为老师,学生和教务管理员提供很大的方便,避免传统选课效率低、易出错、更新维护困难的缺点。随着互联网的普及,网上选课已不再是神话,相信会有更多的用户对网上选课改变认识。第2章系统功能分析2.1系统介绍本系统定位于高等院校,用户群体为高等院校在校学生、教师和教务管理员。系统包含三个模块,分别是管理员模块,教师模块,学生模块。2.2系统面向的用户群体本系统定位于高等院校,用户群体为高等院校在校学生、教师和教务管理员。2.3系统功能需求2.3.1管理员模块表2-1系统管理员模块功能表编号功能名称功能说明1资讯管理添加新资讯,查看、修改、删除已发表的资讯2专业课程管理添加课程,查看、修改、删除已添加的课程,并且可以添加对应课程的班级3班级管理修改、删除已添加班级信息4学生账号管理添加学生信息,查看、修改、删除学生信息5教师账号管理添加教师信息,查看、修改、删除教师信息6管理员账号管理添加管理员信息,查看、修改、删除管理员信息7课室管理添加课室,查看、修改、删除课室信息8专业管理添加专业,查看、修改、删除专业信息9修改密码修改当前登录用户的密码2.3.2教师模块表2-2系统教师模块功能表编号功能名称功能说明1资讯查看资讯2教师课表查看当前登录教师的课表信息3修改密码修改当前登录用户的密码2.3.3学生模块表2-3系统学生模块功能表编号功能名称功能说明1资讯查看资讯2本专业选课选择本专业课程或者退选已选课程3课表查询查看课表4修改密码修改当前登录用户的密码2.4系统非功能性需求界面:简洁,易用,美观,大气,一定兼容性。环境:服务器环境:windows+Apache+PHP+MySql。质量:易用性,稳定性,可拓展性。2.5系统开发环境前端页面开发环境用dreamweaver,它是是一个可视化的网页设计和网站管理工具,支持最新的web技术,例如检查HTML,HTML的格式控制,图像编辑,ftp,可视化网页编程等。PHP开发环境用的是ZendStudio,它是专业的开发人员使用的一套php集成开发环境。ZendStudio具有专业和企业开发者开发、配置、调试和管理关键商务PHP应用的易使用性、可伸缩性、可靠性和扩展性。数据库管理工具使用的是NavicatforMySQL。Navicateformysql为mysql数据库管理,开发和维护提供了强大的图形界面。可以连接任何本机或者远程的mysql服务器,支持大部分的功能,比如表,视图,函数,事件或过程等。它主要的功能包括sql创建工具,编辑器,数据模型工具,命令行工具,数据传输,数据同步,导入导出功能,报表功能能等。第3章可行性分析3.1技术可行性我在对计算机的学习过程中,很好地掌握了计算机的基础知识,并且能熟练地使用PHP+Mysql开发中小型网站。对系统的数据库设计,能够按照需求提取系统中的实体,建立E-R图,数据库服务器环境搭建并且创建数据库。系统分析与设计上,非常清楚该选课系统的需求,通过绘制系统总体结构图,更加直观地发现整个系统如何一步一步地实现,并且跟踪整个开发进度,把握开发的时间成本。开发工具上,该选课系统是属于web应用项目,有过web项目的开发经验,对于前端,后台,数据库的选择都有直观的认识,保证编码的过程中不会出现大问题。对于系统的后期维护上,由于采用的开发中选择互联网中应用开发中被广泛应用的MVC思想开发,而且工具选择上采用成熟的框架进行敏捷开发,对系统的修改扩展都可以很容易地实现。因此,该学生选课系统的实现在技术上是可行的。3.2时间、硬件设备可行性该选课系统的开发耗时大概一个月左右,所以时间很充分。硬件设备上,开发过程中使用自己的计算机,可以在自己的机子上搭建web服务器跟数据库服务器环境,编码测试等操作都可以实现。系统完成开发之后,可以将系统部署到专用的服务器上,专用服务器是托管至机房,有专门的人负责管理,保证系统7*24小时的运行,提高用户的体验。第4章系统工具介绍4.1HTML该选课系统是一个在线的web应用,它的前端页面应用到HTML开发。HTML(超文本标记语言)英文名为HyperTextMarkupLanguage,它是为“网页创建和其他可在浏览器看到的信息”设计的标记语言,被广泛用来构建web应用前端。HTML可以结构化信息,比如标题,段落,表格等,在一定程度上也描述文档的外观和语义。1982年由蒂姆·伯纳斯-李创建,由IETF用简化的SGML(标准通用标记语言)语法进行进一步发展的HTML,后来成为国际标准,由万维网联盟(W3C)维护。HTML文件的后缀名为.html,但是有一些比较旧的系统文件拓展名最多只能是三位,所以.htm也被允许使用,如今,基本上都是用.html作为后缀名。可以使用任何的文本编辑器编辑html文件,例如记事本,Notepad等,或者使用“所见即所得”的专业的HTML编辑器。4.2DIV+CSS4.2.1介绍DIV是HTML语言中的一个标签。CSS是层叠样式表(CascadingStyleSheets),用来定义HTML元素的表现,是W3C推出的格式化网页内容的标准技术。DIV+CSS被用来设计网页的布局。4.2.2DIV+CSS布局和表格布局的比较传统的网页布局采用表格(table)布局的方式。对于一个比较复杂的页面,使用表格布局会增加table的嵌套数量,不管是维护还是开发,都会带来巨大的成本。对于CSS+DIV布局的方式,CSS样式可以共用,减少垃圾代码量,并且它实现了结构与表象的分离,对于网站的维护和扩展,查看源代码时,很容易看出网页的结构,修改页面的结构就会变得直观方便。4.2ApacheApacheHTTPServer是Apache软件基金会的一个开源的网站服务器,是非常流行的网站服务器端软件,因为它快速、可靠,还可以通过简单的API扩展,被广泛地应用到web应用作为服务器软件。Apache通过编译模块的实现从而支持许多的特性。一些通用的语言接口支持perl,python,php等。因为Apache是开源的,所以任何人在都可以修改项目源代码,定制自己的网站服务器,更好地为自己的项目服务。4.3PHPPHP全称HyperPreprocessor(超文本处理器),是一种被广泛用来开发动态网页的服务器端脚本语言,底层使用了C语言。它是一种开源的计算机脚本语言,所以它是完全免费的,任何人都可以使用它开发自己的动态网站。一般来说,PHP是运行在服务器端,而且它可以运行在不同的服务器,操作系统平台上,并且还可以跟不同的数据库系统结合使用。4.4MySqlMySql是一个开放源代码的免费的关系型数据库,所以任何人没有许可的情况下可以使用它。它使用的是著名的数据库语言SQL的标准形式,它的作品在多种操作系统上,有许多种语言,包括php,perl,c,c++,java等。因为MySql性能高,成本低,可靠性好,被广泛用在各种大中型的网站建设中,相对于DB2,oracle等大型数据库来说,MySql有它的不足之处,例如规模小功能有限等,但是对于中小型的网站来说,使用MySql已经绰绰有余。4.5bootstrapBootstrap是Twitter开源的一整套前端解决方案,是一个用来快速开发Web应用程序的工具包。它是CSS跟Html的结合,使用了最新的浏览器技术,封装了一整套的组件,给网页提供时尚的元素,比如按钮,表单,列表,网格等,该系统选用的是用bootstrap制作的一个免费的管理员后台模板charisma,通过对这个模板的重新布局,制作选课系统的前端页面。4.6CodeIgniter后台框架用PHP的CodeIgniter框架。CodeIgniter是一个小巧的轻量级框架,采用单一入口,采用了MVC思想,一般用来开发中小型的网站项目。图4-1应用程序流程图其中,index.php是整个应用的入口文件,它负责初始化应用程序所需要的资源。Routing负责检查http请求,以确定谁负责处理请求。如果缓存文件存在,则绕过系统的一般执行程序,直接从缓存中获取数据,直接发送给浏览器。应用程序控制器装在所有数据之前,http请求和用户提交的数据都将被过滤。控制器接收用户请求的数据,并装载模型、辅助函数、核心库,以及处理其他特定请求的资源。最后视图渲染发送到web浏览器的内容。第5章数据库设计5.1数据库命名规范数据库名称:cs。数据表命名规范:cs_作为所有表名的前缀。5.2数据库逻辑设计实体:管理员,教师,学生,课程,教室,上课时间,新闻,专业关系:管理员:新闻=1:n教师:专业=n:1学生:专业=n:1教师:课程=m:n图5-1管理员E-R图图5-2课室E-R图图5-3课程E-R图图5-4新闻E-R图图5-5学生E-R图图5-6专业E-R图图5-7教师E-R图图5-8时间E-R图图5-9选课系统E-R图5.3数据库物理设计5.3.1数据库表总汇表5-1数据库表总汇编号名称说明1cs_admin系统管理员信息表2cs_student学生信息表3cs_teacher教师信息表4cs_course课程信息表5cs_news新闻资讯表6cs_subject专业信息表7cs_time上课时间表8cs_courseteacher教师与课程关系对应表,也即是班级表9cs_chooseinfo学生选课信息表10cs_classroom课室信息表5.3.2数据库表字段总汇表5-2cs_admin字段名称数据类型长度说明a_idint主键a_usernamevarchar255用户名a_passwordvarchar40密码a_righttext权限a_addtimeint添加时间表5-3cs_student字段名称数据类型长度说明s_idint主键s_usernamevarchar255学生姓名s_passwordvarchar40密码s_gradevarchar5年级s_classvarchar10班级s_subjectint专业s_addtimeint添加时间表5-4cs_teacher字段名称数据类型长度说明t_idint主键t_usernamevarchar255教师姓名t_passwordvarchar40密码t_subjectint专业t_addtimeint添加时间表5-5cs_course字段名称数据类型长度说明c_idint主键c_coursenamevarchar255课程名称c_subjectint课程所属专业c_creditsmallint课程学分c_describetext课程介绍c_addtimeint添加时间表5-6cs_news字段名称数据类型长度说明n_idint主键n_titlevarchar255新闻标题n_contenttext新闻内容n_adminint发布人n_addtimeint发布时间表5-7cs_subject字段名称数据类型长度说明su_idint主键su_subjectnamevarchar255专业名称su_addtimeint添加时间表5-8cs_time字段名称数据类型长度说明ti_idint主键ti_startvarchar15开始时间ti_endvarchar15结束时间ti_jieint第几节ti_addtimeint添加时间表5-9cs_classroom字段名称数据类型长度说明cl_idint主键cl_classroomnamevarchar255课室名称cl_seatint课室容量cl_addtimeint添加时间表5-10cs_courseteacher字段名称数据类型长度说明ct_idint主键ct_course_idint课程编号ct_teacher_idint教师编号ct_classroom_idint课室编号ct_weekint星期几ct_time_idint上课时间ct_numberint课程班级容量ct_addtimeint添加时间表5-11cs_chooseinfo字段名称数据类型长度说明ch_idint主键ch_studentint学生编号ch_courseint课程编号ch_courseteacherint班级编号ch_weekint星期几ch_time_idint上课时间ch_addtimeint添加时间第6章系统结构设计6.1系统总体结构图图6-1系统结构图6.2约束条件设计管理员增加课程班级的时候,同一个教师不能在同一个时间上不同的课程;管理员增加课程班级的时候,同一个教室同一时间不能有两个或两个以上的班级上课;学生选课的时候,同一时间不能选择不同的课程;第7章系统界面设计7.1登陆页面系统的三个模块共用一个登陆页面。输入账户名跟密码,不同的用户选择不同的身份,验证身份登陆之后分别跳转到不同的界面。图7-1登陆页面7.2管理员模块界面7.2.1管理员身份进入系统之后,跳转到管理员模块首页,即是资讯管理页,可以查看已经发布的资讯,点击“添加”按钮发布资讯,同时可以在每条资讯后面点击“删除”来删除资讯,或者点击“修改”来修改资讯信息。图7-2资讯管理界面7.2.2点击左键的导航栏中的“管理员账户管理”,跳转到管理员账户管理界面。可以查看当前系统的所有管理员信息,点击“管理员添加”按钮可以添加管理员,点击“删除”可以删除管理员,点击“修改”可以修改管理员信息。 图7-3管理员账户管理界面7.2.3点击左键的导航栏中的“教师账户管理”,跳转到教师账户管理界面。可以查看所有的教师信息,点击“教师账号添加”按钮可以添加教师信息,点击“删除”可以删除教师,点击“修改”可以修改教师信息。图7-4教师账号管理界面7.2.4点击左键的导航栏中的“学生账户管理”,跳转到学生账户管理界面。可以查看所有的学生信息,点击“学生账号添加”按钮可以添加学生信息,点击“删除”可以删除学生信息,点击“修改”可以修改学生信息。图7-5学生账号管理界面7.2.5点击左键的导航栏中的“专业管理”,跳转到专业管理界面。可以查看已添加的所有的专业信息,点击“专业添加”按钮可以添加专业,点击“删除”可以删除专业信息,点击“修改”可以修改专业信息。图7-6专业管理界面7.2.6点击左键的导航栏中的“专业课程管理”,跳转到专业课程管理界面。可以查看所有的课程信息,点击“课程添加”按钮可以添加课程信息,点击“删除”可以删除课程信息,点击“修改”可以修改专业课程信息,点击“添加班级”可以添加当前课程的班级信息。图7-7专业课程管理界面7.2.7点击左键的导航栏中的“班级管理”,跳转到班级管理界面。可以查看所有的班级信息,点击“删除”可以删除班级信息,点击“修改”可以修改班级信息。图7-8班级管理界面7.2.8点击左键的导航栏中的“课室管理”,跳转到课室管理界面。可以查看所有的课室信息,点击“课室添加”按钮可以添加课室,点击“删除”可以删除课室,点击“修改”可以修改课室信息。图7-9课室管理界面7.2.9点击左键的导航栏中的“修改密码”,跳转到修改密码界面。修改密码之前必须输入原密码。图7-10修改密码界面7.3教师模块界面7.3.1以教师身份登陆成功之后跳转到教师管理界面首页,即是“资讯”页面。首页显示资讯的标题,点击标题之后进入对应资讯的详细页。图7-11教师模块资讯界面7.3.2点击导航栏的“教师课表”跳转到教师课表页面。教师可以看到自己的课程安排,点击“查看名单”可以查看已经选择该课程的学生名单。图7-12教师模块教师课程表界面7.3.3点击左键的导航栏中的“修改密码”,跳转到修改密码界面。修改密码之前必须输入原密码。图7-13教师模块修改密码界面7.4学生模块界面7.4.1以学生身份登陆成功之后跳转到学生管理界面首页,即是“资讯”页面。首页显示资讯的标题,点击标题之后进入对应资讯的详细页。图7-14学生模块资讯界面7.4.2点击导航栏的“本专业选课”跳转到学生选课界面。本专业界面首先显示的是本专业的课程列表,点击“选课”跳转到对应课程的班级,学生选择唯一一个该课程的班级。点击“退选”之后,退选对应的课程。图7-15学生模块本专业选课界面7.4.3点击导航栏的“课表查询”跳转到学生课程表查询界面。学生可以查看已经选择的课程,以及上课时间、地点、课程学分以及课程老师。图7-16学生模块课表查询界面7.4.4点击左键的导航栏中的“修改密码”,跳转到修改密码界面。修改密码之前必须输入原密码。图7-17学生模块修改密码界面第8章编码8.1系统软件架构模式本系统的编码实现采用MVC的设计思想。MVC英文即是Model-View-Controller,通过这种思想将应用的逻辑和表现分离,实际上分为三层,即模型层,视图层和控制层。视图(View)即是和用户交互的界面。对于类似该学生选课系统的WEB应用来说,视图即是一些HTML界面。MVC的设计模式对视图的处理仅限制于数据的采集和处理,以及用户请求,不包括业务逻辑的处理。控制器(Controller)是系统处理所有用户请求的最初入口点。控制器接收、截取用户请求,对请求数据完成必要的处理之后,把请求委托给分发者类,分发者类负责视图的管理,它将选择哪个视图提供给用户。模型(Model)用于封装跟业务逻辑相关的数据以及对数据的处理,所以它有权直接访问数据,比如数据库。模型不依赖于控制器和视图,也就是说模型不关心数据会被如何处理和显示。8.2CodeIgniter框架CodeIgniter提供了一套丰富的标准库以及简单的接口和逻辑结构,其目的是使开发人员更快速地进行项目开发。并且使用了MVC的编程思想,使得系统的开发过程和后期维护或者功能扩展上变得方便可行。8.3模型设计考虑到该系统的数据库表比较多,而且不同模块可能调用同一类型的数据,所以,设计该系统的模型时,选择一个数据表对应一个模型的方法,模型对应的文件名为data_表名。表8-1模型总汇模型说明data_admin对管理员表的增删查改操作data_chooseinfo对学生班级关系表(即学生选课表)的增删查改操作data_classroom对课室表的增删查改操作data_course对课程表的增删查改操作data_courseteacher对教师课程关系表(即班级表)的增删查改操作data_news对资讯表的增删查改操作data_student对学生表的增删查改操作data_subject对专业表的增删查改操作data_teacher对教师表的增删查改操作data_time对时间表的增删查改操作8.4视图该学生选课系统一共分为三个模块,所以在应用视图下,将视图文件细分为三个模块,分别是admin,student和teacher。表8-2管理员模块视图视图说明admin_add.php管理员帐号添加页面admin_manage.php管理员账号管理页面admin_change.php管理员信息修改页面article_change.php资讯修改页面article_detail.php资讯详细页面article_add.php资讯添加页面change_password.php修改密码页面class_add.php班级添加页面class_change.php班级信息修改页面class_manage.php班级页面管理页面classroom_change.php课室信息修改页面classroom_manage.php课室管理页面classroom_add.php课室信息添加页面course_add.php专业课程添加页面course_change.php专业课程信息修改页面footer.php所有页面页尾header.php所有页面页首index.php首页,即是资讯管理页面student_add.php学生账号添加页面student_manage.php学生账号管理页面student_change.php学生信息修改页面subject.php专业课程管理页面subject_add.php专业添加页面subject_change.php专业修改页面subject_manage.php专业管理页面teacher_manage.php教师账号管理页面teacher_add.php教师账号添加页面teacher_change.php教师信息修改页面表8-3教师模块视图视图说明article_detail.php资讯详细页in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年企业间技术秘密转让与保密合同
- 2024《教育基金赠与合同》
- 2024年度二手挖掘机质量保证合同
- 2024年奶牛养殖收购合同
- 2024年度融资合同融资项目及融资金额
- 2024年建筑工程屋面分包协议
- 2024年度★店铺转让及培训协议
- 2024年度生物医药实验室安装内部承包合同
- 2024年企业间关于物联网技术研发与应用合作协议
- 2024供应链金融借款合同
- 中考语文复习专题7-口语交际
- MOOC 孙子兵法-湖南大学 中国大学慕课答案
- 八段锦比赛活动方案(一)
- 人力资源管理HR人力资源管理解决方案
- 第二单元大单元教学设计 2023-2024学年统编版高中语文必修上册
- 事业单位竞争上岗实施方案
- 生涯发展报告
- 管理评审输入材料
- VR游戏设计与制作智慧树知到期末考试答案2024年
- 2024年卫生系统招聘考试-卫生系统招聘考试(公共卫生管理)笔试历年真题荟萃含答案
- 工业机器人大学生职业生涯规划
评论
0/150
提交评论