版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第14讲选课系统分析
7.2项目引入与需求分析1任务5:系统的架构、功能和用户“网上选课”的功能从用户角度上应该分两个层面,一个是使用该系统的学生,他们登录系统后,通过客户端浏览器浏览可选课程的信息,并根据自己的实际情况,按照一定意愿次序选课;另一个是教学秘书,他们可以通过客户端浏览器进行一些系统管理和维护的工作,例如对课程信息进行添加、修改和删除等。无论是学生用户还是教学秘书用户,均不用在本地机安装客户端,只需要通过浏览器就可以进行上述的操作。按照上述的项目概述,该系统应该是建立在B/S结构上的动态Web应用,如图7-1所示。2除此之外,还需按照学校的规模和条件,以及学生集中选课的时间,选定服务器、相应的软硬件和网络设施。3任务6:系统的需求概述与分析进行“网上选课”系统开发,首先要聆听客户(在这里是指教务部门)对系统的描述和需求。教务部门希望教学秘书用户可以通过客户端浏览器登录到系统,对课程进行管理,例如添加课程、修改课程、删除课程、浏览课程、查询课程和查看课程的详细信息等;学生用户则可以通过客户端浏览器登录到系统,浏览课程、查询课程和查看课程的详细信息,并按志愿顺序预选自己想要选修的课程,也可显示自己已经预选的课程。教务部门希望该系统可以让学生按照志愿顺序预选5门课程,也就是说每个学生至多选5门课程。其次,进行网站开发,在做系统需求分析时,除了对功能的认知之外,还必须按照学校的实际情况,确定系统架构和软硬件的选取。4对于硬件和网络设施,目前由于性价比都比较合适,硬件供应商的服务和水平也都比较专业。而服务器系统软件以及Web架构则需要进行商榷了。当今服务器系统软件无外乎是Windows和基于开源技术的Linux。Windows及其开发工具作为商业软件,其使用的便利性和开发工具的完善性无疑是最好的;然而随着开源技术应用的普及,一些国家和地区的政府已经表明有计划把自己的服务器体系结构由Windows向Linux转移。5
LAMP(Linux+Apache+MySQL+PHP),一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。对于硬件和网络设施,目前由于性价比都比较合适,硬件供应商的服务和水平也都比较专业。而服务器系统软件以及Web架构则需要进行商榷了。
6当今服务器系统软件无外乎是Windows和基于开源技术的Linux。Windows及其开发工具作为商业软件,其使用的便利性和开发工具的完善性无疑是最好的;然而随着开源技术应用的普及,一些国家和地区的政府已经表明有计划把自己的服务器体系结构由Windows向Linux转移。LAMP(Linux+Apache+MySQL+PHP),一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。
7开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,市场份额已经超过60%。且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。针对选课系统,可以考虑使用AMP(Apache+MySQL+PHP)架构,AMP无论是从系统稳定性和并发处理的能力来说,都可以胜任选课系统的要求。同时AMP与平台无关,可以非常方便地将代码转移到Linux平台上。87.3功能分析9任务7:功能分析的方法和任务当系统需求分析的环节完成后,则对用户期望的系统有所了解,然后应该确定好对应的服务器架构、实现Web服务的编程语言和数据库管理系统。根据这些软硬件的配置,确定开发技术,这些确定好之后,则需要对系统所要实现的功能进行条理化、规范化。功能分析的任务是要确定我们做出来的软件具有什么样的功能。前提条件是根据拟定的开发技术和软硬件特点,将用户的需求转化成系统可以实现的功能。10任务8:“网上选课”系统的功能分析针对系统的功能描述,可以知道该系统存在两种用户:教学秘书用户和学生用户。用户必须经过登录才能使用系统。在首页可以给用户提供一个登录的功能,同时显示本网站被浏览的次数,还随机显示课程的详细信息。系统功能模块图如图7-2所示。1112任务8:“网上选课”系统的功能分析
具体的实现方案如下:1.添加课程功能,给用户提供一个界面,用户在界面中填入规定的信息;2.修改课程功能,首先给用户提供一个课程列表,列表里显示了课程的主要信息,用户点击需要修改的课程链接,进入修改课程信息的界面,用户修改了的有关信息,提交给服务器,服务器接收到新的信息后,将数据库对应表的相关内容进行修改;13任务8:“网上选课”系统的功能分析
3.删除课程功能,用户一次可以删除多门课程。首先给用户提供一个课程列表,用户将需要删除的课程选定,然后提交给服务器,服务器接收到相关的删除信息后,将数据库对应表的相关内容进行删除;4.浏览本系部课程功能,给用户提供一个课程列表,列表里显示了课程的主要信息,用户点击需要显示详细信息的课程链接,进入显示课程详细信息的界面;14任务8:“网上选课”系统的功能分析
5.查询课程功能,首先给用户提供一个界面,用户首先选择查询的范围,然后输入关键字,提交给服务器,服务器接收到查询的信息后,调用相关程序执行查询,然后将查询结果以列表的形式展示出来,列表里显示了课程的主要信息,用户点击需要显示详细信息的课程链接,进入显示课程详细信息的界面。
15任务8:“网上选课”系统的功能分析
5.查询课程功能,首先给用户提供一个界面,用户首先选择查询的范围,然后输入关键字,提交给服务器,服务器接收到查询的信息后,调用相关程序执行查询,然后将查询结果以列表的形式展示出来,列表里显示了课程的主要信息,用户点击需要显示详细信息的课程链接,进入显示课程详细信息的界面。
16任务8:“网上选课”系统的功能分析
学生用户则可以通过客户端浏览器登录到系统,浏览可选课程、显示已选课程和删除已选课程,并按志愿顺序预选自己想要选修的课程。
1.浏览可选课程功能,首先给用户提供一个课程列表,列表里显示了该用户可以选择课程的主要信息,用户点击需要修改的课程链接,进入显示课程详细信息的界面,如果该用户还没有选够5门课程,则该用户可以选择此课程,此课程的志愿顺序自动为当前课程数加一;17
2.显示已选课程和删除已选课程,给用户提供一个列表,列表显示了该用户已经选择的课程列表,按照志愿顺序排序。用户可以点击其中的任何一门课程的链接,删除此课程的选课记录,同时,其他已选课程的志愿顺序将自动调整。
3.查询课程功能,同教学秘书用户。通过功能模块图,我们可以清楚地了解本系统的概貌,对其中的各个功能模块也十分清楚,针对后期的开发,程序员可以非常清楚地去按照功能模块规划页面和文件的设计。187.4页面流图19任务9:页面流图的内容和作用
由于网站功能的实现往往必须借助页面来实现,这里所说的页面是广义的页面,把运行在服务器端的程序处理文件也包含在内。例如,实现客户向服务器提交的请求,服务器向用户提供一个页面A,用户对此页面处理后,提交给服务器;服务器收到提交的数据后,调用程序处理文件B,再把服务器执行的结果以网页C的形式显现在客户面前。这个过程就可以用“页面A→页面B→页面C”的方式进行描述。
20任务9:页面流图的内容和作用
所以,在进行完系统的功能分析和划分后,进行页面的规划非常重要。进行网站开发,在系统分析阶段,除了使用功能模块图来描述系统的功能模块划分之外,还使用页面流图描述为了实现某个功能,在功能模块内部,各个页面和文件之间的关系。同时也方便程序员按照系统和模块设计去实现各个模块的代码。21任务10:登录模块的页面流图样例
该页面流图告诉程序员,登录模块所需要4个文件(页面),首先是首页“login.php”,这个页面内应该包含一个供用户填写用户名和密码以及身份的表单,表单提交的内容是“username”、“userpwd”和“role”三个变量,提交的目标文件是“用户检查ChkLogin.php”。
22任务10:登录模块的页面流图样例
文件ChkLogin.php是用来检查用户输入的用户名和密码的合法性。如果合法,身份是教师的话就引导到对应的“教学秘书页面teacher.html”,并把身份“teacher”、教师编码“TeaNo”和系部编码“DepartNo”保存在服务器的会话中,供以后使用。如果身份是学生的话,就引导到“学生页面student.html”,并把身份“student”、学生编码“StuNo”和班级编码“ClassNo”保存在服务器的会话中,供以后使用。如果用户不合法,就重新引导到“首页index.html”。23任务10:登录模块的页面流图样例247.5数据库和表设计25任务11:表及其之间的联系
要实现网上选课,则需要以下6个表来保存各方面的信息。图7-4表示了各个表间的联系。班级表Class和系部表Department之间通过DepartNo(系部编号)进行连接,表示班级的系部编号来源于系部表。教学秘书表Teacher和系部表Department之间通过DepartNo(系部编号)进行连接,表示教学秘书的系部编号来源于系部表。课程表Course和系部表Department之间通过DepartNo(系部编号)进行连接,表示课程的系部编号来源于系部表。学生表Student与班级表Class之间通过ClassNo(班级编号)进行连接,表示学生的班级编号来源于班级表。
StuCou表与Student表通过StuNo(学号)进行连接,StuCou表与Course表通过CouNo(课程编号)进行连接,分别表示选课数据中的学号来源于学生表,课程编号来源于课程表。26任务11:表及其之间的联系27任务12:表的结构选课数据库xk包含6个用户表,他们是Department表(系部表)、Class表(班级表)、Student表(学生表)、Course表(课程表)、Teacher表(教学秘书表)StuCou表(学生选课表)。系部表Department有两列:DepartNo(系部编号)、DepartName(系部名称)。表的结构如下:选课数据库xk包含6个用户表,他们是Department表(系部表)、Class表(班级表)、Student表(学生表)、Course表(课程表)、Teacher表(教学秘书表)StuCou表(学生选课表)。系部表Department有两列:DepartNo(系部编号)、DepartName(系部名称)。表的结构如下:28任务12:表的结构29任务12:表的结构30任务12:表的结构31327.6系统实现333435任务13:教师/学生登录与退出1.教师/学生登录选课系统登录用户有两类:教师用户和学生用户,教师用户登录以后可以浏览课程信息、添加课程、修改和删除课程,学生用户登录以后可以浏览所有课程信息、进行选课、查看选课情况、删除所选课程的操作。(1)登录界面设计(login.php)由于教师和学生用户通过一个登录页面进入选课系统,因此设计了一个下拉列表框供登录用户选择,登录界面(login.php)代码设计如下:36任务13:教师/学生登录与退出<html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"/><title>登录</title><linkrel="stylesheet"href="style.CSS"></head><body><center><tableborder="0"cellspacing="1"width="90%"><tr><td>
<formmethod="post"action="ChkLogin.php"><tablewidth="45%"border="1"cellspacing="0"cellpadding="1"align="center"bordercolordark="#ecf5ff"bordercolorlight="#6699cc"><tr><td><tablewidth="100%"border="0"cellspacing="1"cellpadding="1"><tr><tdwidth="33%"align="right"height="30">用户名:</td><tdwidth="67%"><inputname="username"maxlength="20"size="20"></td></tr><tr><tdwidth="33%"align="right"height="30">密
码:</td><tdwidth="67%"><inputtype="password"name="userpwd"maxlength="16"size="20"></td></tr> <tr><tdwidth="33%"align="right"height="30">身
份:</td><tdwidth="67%"><selectname=role><optionvalue=student>学生<optionvalue=teacher>教师</select></td></tr><tr><tdcolspan="2"height="15"></td></tr></table></td></tr><tralign="center"><tdheight="40"><inputtype="submit"name="Submit"value="确定"> <inputtype="reset"name="Submit2"value="重写"></td></tr></table></form>
</td></tr></table></center></body></html>在浏览器地址栏输入http://localhost/xkxt/login.php,结果如图7-5所示:login.php3738(2)用户登录功能实现(ChkLogin.php)选课系统中教师用户的权限是:1添加、2修改、3删除课程学生用户的权限是:1选课、2查看选课情况、3删除所选课程。因此为了方便实现我们设计了两套页面,学生用户和教师用户登录成功后进入不同的页面,设计代码(ChkLogin.php)如下:39任务13:教师/学生登录与退出<?phpsession_start();include("conn/db_conn.php");include("conn/db_func.php");$role=$_POST[role];$username=$_POST[username];$userpwd=$_POST[userpwd];if($role=="teacher"){$ChkLogin="SELECT*FROMteacherWHERETeaNo='$username'andPwd='$userpwd'";}else{$ChkLogin="SELECT*FROMstudentWHEREStuNo='$username'andPwd='$userpwd'";}$ChkLoginResult=db_query($ChkLogin);$number=db_num_rows($ChkLoginResult);$row=db_fetch_array($ChkLoginResult);if($number>0){if($role=="teacher"){$_SESSION["username"]=$username;$_SESSION["role"]="teacher";header("Location:tea/ShowCourse.php");}else{$_SESSION["username"]=$username;header("Location:stu/ShowCourse.php");}}else{echo"<script>";echo"alert(\"错误的用户名或密码,请重新登录\");";echo"location.href=\"login.php\"";echo"</script>";}?>如果用户名和密码都正确,就可以进入学生选课端进行选课或进入教师端进行课程管理。ChkLogin.php40任务13:教师/学生登录与退出2.教师/学生退出系统(logout.php)由于使用session属性可以防止使用者绕过登录,因此,退出系统时要清空session属性的值。退出系统操作非常简单,清空session属性的值,然后跳转到登录页面即可,退出系统代码(logout.php)如下:41任务13:教师/学生登录与退出<?phpsession_start();//启动会话$_SESSION=array();//清空保存会话的数组session_destroy();//毁灭会话echo"<script>";echo"alert(\"您已经安全退出,如有需要请重新登录\");";echo"location.href=\"login.php\"";echo"</script>";?>42任务14:学生选课1.学生选课主页面当学生正确登录该系统后,就可以进入学生选课主页面(stu/ShowCourse.php),将未选课程信息通过表格分页显示出来,通过点击课程编码链接可以查看课程细节。同时该页面提供了查询课程、浏览已选课程、退出系统的链接。在浏览器地址栏输入http://localhost/xkxt/login.php,输入学生用户名和密码,登录成功进入如图7-6所示页面。43任务14:学生选课其关键代码如下:<?phpsession_start();//必须登录后才可使用if(!isset($_SESSION["username"])){header("Location:../login.php");exit();}include("../conn/db_conn.php");include("../conn/db_func.php");$StuNo=$_SESSION['username'];$ShowCourse_sql="SELECT*FROMcourseWHERECouNoNOTIN(SELECTCouNoFROMstucouWHEREStuNo='$StuNo')ORDERBYCouNo";$ShowCourseResult=db_query($ShowCourse_sql);?><tablealign="center"> <tr> <td> <ahref="showcourse.php">浏览课程</a> </td> <td> <ahref="SearchCourse.php">查询课程</a> </td> <td> <ahref="showchoosed.php">浏览所选课程</a> </td> <td> <ahref="../logout.php">退出系统</a> </td> </tr></table><tablewidth="610"border="0"stu/ShowCourse.php44align="center"cellpadding="0"cellspacing="1"><trbgcolor="#0066CC"><tdwidth="80"align="center"><fontcolor="#FFFFFF">课程编码<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖南九嶷职业技术学院单招综合素质笔试模拟试题带答案解析
- 2026年安徽医学高等专科学校单招综合素质考试参考题库带答案解析
- 2026年广东南华工商职业学院高职单招职业适应性测试备考题库有答案解析
- 2026年福建生物工程职业技术学院高职单招职业适应性测试模拟试题有答案解析
- 2026年鹤岗师范高等专科学校高职单招职业适应性考试备考题库有答案解析
- 2026年北京戏曲艺术职业学院高职单招职业适应性测试参考题库有答案解析
- 投资咨询服务合同协议2025年稳健收益保障
- 投资合作意向协议2025年条款
- 2026年毕节医学高等专科学校高职单招职业适应性测试参考题库有答案解析
- 2026年川北幼儿师范高等专科学校单招综合素质考试模拟试题带答案解析
- 2025年翔安区社区专职工作者招聘备考题库及一套参考答案详解
- 2025年及未来5年市场数据中国别墅电梯市场发展前景预测及投资战略咨询报告
- 2026年中级注册安全工程师之安全实务化工安全考试题库300道及答案【考点梳理】
- 请人收钱办事协议书
- 2025年融资融券业务模拟考试题库及答案
- 2025年北京大学招聘真题(行政管理岗)
- 初二历史上册期末真题试卷附答案解析
- 八年级上册语文期末重难点文言文字词梳理
- 药品零售监管培训课件
- 教育培训机构招生方案设计与落地执行
- 功血中医护理方案
评论
0/150
提交评论