基于Sinatra的选课系统设计与实现.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Sinatra的选课系统设计与实现.doc

基于Sinatra的选课系统设计与实现 摘要:为了使学生能够通过在线的方式选择学校开设的兴趣课程,该文设计并实现了基于Sinatra的选课系统。该文详细论述了选课系统设计与实现的相关技术,对关键技术进行剖析,对重要的业务逻辑进行分析,并在最后对该系统提出改进意见。 关键词:选课系统;Sinatra框架;Web开发 中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)08-0076-03 1 概述 随着“小学生减负”教育政策的推广和实施,越来越多的小学针对学生的爱好开设兴趣课程。由于课程资源的有限性,学校不能保证每个学生都能选上自己最想上的课,但学校必须保证选课的公平性。教育信息化的普及使得越来越多的学校领导选择通过在线选课的方式解决学生选课问题,不仅保证了学生选课的公平性,还减轻了相关负责人的工作量。 学校针对小学一、二年级的学生,开设了科技小制作、英语配音等十几门兴趣课程,想让学生和家长通过在线的方式进行选课。学校现有的课程系统还并不支持学生选课,因此,基于Sinatra设计和开发了一个选课系统,帮助学校解决在线选课问题。 2 系统需求分析及系统技术选型 2.1 系统需求分析 我校针对一二年级学生总共开设了13门兴趣课程,每门课程限制20人报名参与;参与选课的学生共有158人,每人选课数量没有限制,每人只有一次选课机会。系统要支持多种终端设备访问,最终生成一份记录学生选课结果信息的Excel文件。 2.2 系统技术选型 由于服务器限制,系统选择使用文本来存储所有应用数据,使用XML文件存储课程信息,使用CSV文件存储参与选课的学生信息和学生选课结果信息;为了支持多种终端设备访问,系统选择采用移动优先设计思想的Bootstrap前端框架实现用户界面;系统后台使用基于Ruby的Sinatra框架实现。 XML即可扩展标记语言(Extensible Markup Language),是一种基于纯文本的数据交换格式,适用于表现树形结构的数据,其解析工具不依赖于特定的语言[1];CSV即逗号分割值文件(Comma Separated value),是一种用来存储数据的纯文本文件格式,可以和Excel文件相互转换[2];Bootstrap 是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的WEB项目[3];Sinatra是一个基于Ruby语言的DSL(领域专属语言),可以轻松、快速地创建web应用[4];Ruby是一种令人快乐的编程语言。 3 系统页面流程设计 3.1 系统页面 系统选课须知页面,显示选课注意事项,是系统的入口;系统登录页面,让合法的用户登录到选课页面;系统选课页面,显示可以供学生选择的课程;系统选课结果页面,显示学生选择的课程;其他页面,包括告知学生登录信息不合法、告知学生已经选课、告知学生系统出错等页面。 3.2 系统页面流程 用户访问网址,进入选课须知页面,仔细阅读选课注意事项;单击“我已知晓须知”按钮,进入登录页面,如图1所示。 选择所在班级,并输入姓名;单击“登录”按钮,进入选课页面,如图2所示,选择合适自己的课程;单击“确认提交”按钮,进入选课结果页面,保存选课截图,直接退出浏览器即可。 4系统实现 4.1 系统文件结构 项目目录下共有15个文件。config.ru是rack 服务器配置文件;course.xml 存储了课程信息;Gemfile是Ruby包依赖配置文件;index.rb是项目文件,包含了所有接口的处理方法;result.csv中存储了选课结果信息;student.csv中存储了学生信息,views目录下都是视图文件。 4.2 关键技术 4.2.1 XML文档的处理 使用XML文件存储课程信息,course.xml 文件:course表示课程,name表示课程名称,limit表示课程限制人数,初始值为20,count表示选择该课程的人数,初始值为0。 使用Ruby的REXML模块来处理XML文件:使用REXML::Document类的new方法来加载XML文档;使用REXML::Element类的each方法并结合XPath来遍历符合条件的XML元素;使用REXML::Document类的write方法更新XML文档[5]。 4.2.2 CSV文档的处理 使用CSV文件存储学生信息和学生选课结果信息,使用Excel软件将包含学生信息的excel文件打开,选择导出格式为CSV,导出student.csv 文件;在项目目录下,创建result.csv文件,录入一下文字并保存,用以存储选课结果信息: 班级,姓名,周二所报课程,周三所报课程,周四所报课程 使用Ruby内置的CSV模块来处理CSV文件:使用CSV模块的foreach方法读取csv

文档评论(0)

ganpeid + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档