版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 第14讲 选课系统分析7.2 项目引入与需求分析1任务5:系统的架构、功能和用户 “网上选课”的功能从用户角度上应该分两个层面,一个是使用该系统的学生,他们登录系统后,通过客户端浏览器浏览可选课程的信息,并根据自己的实际情况,按照一定意愿次序选课;另一个是教学秘书,他们可以通过客户端浏览器进行一些系统管理和维护的工作,例如对课程信息进行添加、修改和删除等。 无论是学生用户还是教学秘书用户,均不用在本地机安装客户端,只需要通过浏览器就可以进行上述的操作。 按照上述的项目概述,该系统应该是建立在B/S结构上的动态Web应用,如图7-1所示。2除此之外,还需按照学校的规模和条件,以及学生集中选课的
2、时间,选定服务器、相应的软硬件和网络设施。3任务6:系统的需求概述与分析 进行“网上选课”系统开发,首先要聆听客户(在这里是指教务部门)对系统的描述和需求。 教务部门希望教学秘书用户可以通过客户端浏览器登录到系统,对课程进行管理,例如添加课程、修改课程、删除课程、浏览课程、查询课程和查看课程的详细信息等;学生用户则可以通过客户端浏览器登录到系统,浏览课程、查询课程和查看课程的详细信息,并按志愿顺序预选自己想要选修的课程,也可显示自己已经预选的课程。 教务部门希望该系统可以让学生按照志愿顺序预选5门课程,也就是说每个学生至多选5门课程。 其次,进行网站开发,在做系统需求分析时,除了对功能的认知之
3、外,还必须按照学校的实际情况 ,确定系统架构和软硬件的选取。 4 对于硬件和网络设施,目前由于性价比都比较合适,硬件供应商的服务和水平也都比较专业。而服务器系统软件以及Web架构则需要进行商榷了。 当今服务器系统软件无外乎是Windows和基于开源技术的Linux。Windows及其开发工具作为商业软件,其使用的便利性和开发工具的完善性无疑是最好的;然而随着开源技术应用的普及,一些国家和地区的政府已经表明有计划把自己的服务器体系结构由Windows向Linux转移。5 LAMP(Linux+Apache+MySQL+PHP),一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,
4、但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。对于硬件和网络设施,目前由于性价比都比较合适,硬件供应商的服务和水平也都比较专业。而服务器系统软件以及Web架构则需要进行商榷了。 6 当今服务器系统软件无外乎是Windows和基于开源技术的Linux。Windows及其开发工具作为商业软件,其使用的便利性和开发工具的完善性无疑是最好的;然而随着开源技术应用的普及,一些国家和地区的政府已经表明有计划把自己的服务器体系结构由Windows向Linux转移。LAMP(Linux+Apache+MySQL+PHP),一组常用来搭建动态网站或者服务器的开源软件,
5、本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。 7 开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,市场份额已经超过60%。且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。 针对选课系统,可以考虑使用AMP(Apache+MySQL+PHP)架构,AMP无论是从系统稳定性和并发处理的能力来说,都可以胜任选课系统的要求。同时AMP与平台无关,可以非常方便地将代码转移到Linux平台上。87.3 功能分析9任务7:功能分析的方法和任务 当系统需求分析的环节完成后,则对用户期望的系统有所了
6、解,然后应该确定好对应的服务器架构、实现Web服务的编程语言和数据库管理系统。根据这些软硬件的配置,确定开发技术,这些确定好之后,则需要对系统所要实现的功能进行条理化、规范化。 功能分析的任务是要确定我们做出来的软件具有什么样的功能。前提条件是根据拟定的开发技术和软硬件特点,将用户的需求转化成系统可以实现的功能。10任务8:“网上选课”系统的功能分析针对系统的功能描述,可以知道该系统存在两种用户:教学秘书用户和学生用户。用户必须经过登录才能使用系统。在首页可以给用户提供一个登录的功能,同时显示本网站被浏览的次数,还随机显示课程的详细信息。系统功能模块图如图7-2所示。1112任务8:“网上选课
7、”系统的功能分析 具体的实现方案如下:1添加课程功能,给用户提供一个界面,用户在界面中填入规定的信息;2修改课程功能,首先给用户提供一个课程列表,列表里显示了课程的主要信息,用户点击需要修改的课程链接,进入修改课程信息的界面,用户修改了的有关信息,提交给服务器,服务器接收到新的信息后,将数据库对应表的相关内容进行修改;13任务8:“网上选课”系统的功能分析 3删除课程功能,用户一次可以删除多门课程。首先给用户提供一个课程列表,用户将需要删除的课程选定,然后提交给服务器,服务器接收到相关的删除信息后,将数据库对应表的相关内容进行删除;4浏览本系部课程功能,给用户提供一个课程列表,列表里显示了课程
8、的主要信息,用户点击需要显示详细信息的课程链接,进入显示课程详细信息的界面;14任务8:“网上选课”系统的功能分析 5查询课程功能,首先给用户提供一个界面,用户首先选择查询的范围,然后输入关键字,提交给服务器,服务器接收到查询的信息后,调用相关程序执行查询,然后将查询结果以列表的形式展示出来,列表里显示了课程的主要信息,用户点击需要显示详细信息的课程链接,进入显示课程详细信息的界面。 15任务8:“网上选课”系统的功能分析 5查询课程功能,首先给用户提供一个界面,用户首先选择查询的范围,然后输入关键字,提交给服务器,服务器接收到查询的信息后,调用相关程序执行查询,然后将查询结果以列表的形式展示
9、出来,列表里显示了课程的主要信息,用户点击需要显示详细信息的课程链接,进入显示课程详细信息的界面。 16任务8:“网上选课”系统的功能分析 学生用户则可以通过客户端浏览器登录到系统,浏览可选课程、显示已选课程和删除已选课程,并按志愿顺序预选自己想要选修的课程。 1浏览可选课程功能,首先给用户提供一个课程列表,列表里显示了该用户可以选择课程的主要信息,用户点击需要修改的课程链接,进入显示课程详细信息的界面,如果该用户还没有选够5门课程,则该用户可以选择此课程,此课程的志愿顺序自动为当前课程数加一;17 2显示已选课程和删除已选课程,给用户提供一个列表,列表显示了该用户已经选择的课程列表,按照志愿
10、顺序排序。用户可以点击其中的任何一门课程的链接,删除此课程的选课记录,同时,其他已选课程的志愿顺序将自动调整。 3查询课程功能,同教学秘书用户。 通过功能模块图,我们可以清楚地了解本系统的概貌,对其中的各个功能模块也十分清楚,针对后期的开发,程序员可以非常清楚地去按照功能模块规划页面和文件的设计。187.4 页面流图19任务9:页面流图的内容和作用 由于网站功能的实现往往必须借助页面来实现,这里所说的页面是广义的页面,把运行在服务器端的程序处理文件也包含在内。 例如,实现客户向服务器提交的请求,服务器向用户提供一个页面A,用户对此页面处理后,提交给服务器;服务器收到提交的数据后,调用程序处理文
11、件B,再把服务器执行的结果以网页C的形式显现在客户面前。这个过程就可以用“页面A页面B页面C”的方式进行描述。 20任务9:页面流图的内容和作用 所以,在进行完系统的功能分析和划分后,进行页面的规划非常重要。进行网站开发,在系统分析阶段,除了使用功能模块图来描述系统的功能模块划分之外,还使用页面流图描述为了实现某个功能,在功能模块内部,各个页面和文件之间的关系。同时也方便程序员按照系统和模块设计去实现各个模块的代码。21任务10:登录模块的页面流图样例 该页面流图告诉程序员,登录模块所需要4个文件(页面),首先是首页“login.php”,这个页面内应该包含一个供用户填写用户名和密码以及身份的
12、表单,表单提交的内容是“username”、“userpwd”和“role”三个变量,提交的目标文件是“用户检查ChkLogin.php”。 22任务10:登录模块的页面流图样例 文件ChkLogin.php是用来检查用户输入的用户名和密码的合法性。如果合法,身份是教师的话就引导到对应的“教学秘书页面teacher.html”,并把身份“teacher”、教师编码“TeaNo”和系部编码“DepartNo”保存在服务器的会话中,供以后使用。如果身份是学生的话,就引导到“学生页面student.html”,并把身份“student”、学生编码“StuNo”和班级编码“ClassNo”保存在服务器
13、的会话中,供以后使用。如果用户不合法,就重新引导到“首页index.html”。23任务10:登录模块的页面流图样例247.5 数据库和表设计25任务11:表及其之间的联系 要实现网上选课,则需要以下6个表来保存各方面的信息。图7-4表示了各个表间的联系。 班级表Class和系部表Department之间通过DepartNo(系部编号)进行连接,表示班级的系部编号来源于系部表。 教学秘书表Teacher和系部表Department之间通过DepartNo(系部编号)进行连接,表示教学秘书的系部编号来源于系部表。 课程表Course和系部表Department之间通过DepartNo(系部编号)
14、进行连接,表示课程的系部编号来源于系部表。 学生表Student与班级表Class之间通过ClassNo(班级编号)进行连接,表示学生的班级编号来源于班级表。 StuCou表与Student表通过StuNo(学号)进行连接,StuCou表与Course表通过CouNo(课程编号)进行连接,分别表示选课数据中的学号来源于学生表,课程编号来源于课程表。26任务11:表及其之间的联系27任务12:表的结构选课数据库xk包含6个用户表,他们是Department表(系部表)、Class表(班级表)、Student表(学生表)、Course表(课程表)、Teacher表(教学秘书表)StuCou表(学生
15、选课表)。系部表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教师/学生登录 选课系统
16、登录用户有两类:教师用户和学生用户,教师用户登录以后可以浏览课程信息、添加课程、修改和删除课程,学生用户登录以后可以浏览所有课程信息、进行选课、查看选课情况、删除所选课程的操作。(1)登录界面设计(login.php) 由于教师和学生用户通过一个登录页面进入选课系统,因此设计了一个下拉列表框供登录用户选择,登录界面(login.php)代码设计如下:36任务13:教师/学生登录与退出登录 用户名: 密 码: 身 份: 学生 教师 在浏览器地址栏输入http:/localhost/ xkxt / login.php,结果如图7-5所示:login.php3738(2)用户登录功能实现(ChkLo
17、gin.php)选课系统中教师用户的权限是: 1添加、2修改、3删除课程学生用户的权限是: 1选课、2查看选课情况、3删除所选课程。因此为了方便实现我们设计了两套页面,学生用户和教师用户登录成功后进入不同的页面,设计代码(ChkLogin.php)如下:39任务13:教师/学生登录与退出 0) if ($role=teacher) $_SESSIONusername=$username; $_SESSIONrole=teacher ; header(Location:tea/ShowCourse.php); else $_SESSIONusername=$username; header(Lo
18、cation:stu/ShowCourse.php); else echo ; echo alert(错误的用户名或密码,请重新登录); ; echo location.href = login.php ; echo ;?如果用户名和密码都正确,就可以进入学生选课端进行选课或进入教师端进行课程管理。ChkLogin.php40任务13:教师/学生登录与退出2教师/学生退出系统(logout.php)由于使用session属性可以防止使用者绕过登录,因此,退出系统时要清空session属性的值。退出系统操作非常简单,清空session属性的值,然后跳转到登录页面即可,退出系统代码(logout.
19、php)如下:41任务13:教师/学生登录与退出?phpsession_start(); /启动会话$_SESSION=array(); /清空保存会话的数组session_destroy(); /毁灭会话echo ;echo alert(您已经安全退出,如有需要请重新登录);echo location.href = login.php ;echo ;? 42任务14:学生选课1学生选课主页面当学生正确登录该系统后,就可以进入学生选课主页面(stu/ShowCourse.php),将未选课程信息通过表格分页显示出来,通过点击课程编码链接可以查看课程细节。同时该页面提供了查询课程、浏览已选课程、
20、退出系统的链接。在浏览器地址栏输入http:/localhost/ xkxt / login.php,输入学生用户名和密码,登录成功进入如图7-6所示页面。43任务14:学生选课其关键代码如下: 浏览课程 查询课程 浏览所选课程 退出系统 课程编码 课程名称 课程类别 学分 任课教师 上课时间 0) / 若表中有数据 $number = db_num_rows($ShowCourseResult); / 取得数据笔数 $p=$_GETp; $check = $p + 10; / 每页抓取 10 笔数据 for ($i = 0; $i = $p & $i $check) / 利用是否被整除来判断
21、字段的背景颜色 if ($i%2 = 0) echo ; stu/ShowCourse.php45任务14:学生选课2查看课程细节(stu/CourseDetail.php) 在学生选课主页面点击课程编码链接可以进入查看课程细节页面(stu/CourseDetail.php)查看课程细节,如果登录用户选过的课程低于5门会出现“选择该课程”按钮,单击该按钮即完成选课。其代码如下:46任务14:学生选课47任务14:学生选课在学生选课主页面点击课程编码链接可以进入查看课程细节页面,如图7-7所示,如果登录用户选过的课程低于5门会出现“选择该课程”按钮,单击该按钮跳转到选课stu/takecours
22、e.php页面完成选课操作,其代码如下:4849任务14:学生选课50任务14:学生选课3查询未选课程(stu/searchcourse.php)学生用户登录后还可以按照指定查询条件查询未选课程,在学生选课主页面点击“查询课程”链接可以进入查询未选课程页面,如图7-8所示:51任务14:学生选课52任务14:学生选课4浏览已选课程学生用户登录后还可以浏览自己已经选过的课程,在学生选课主页面点击浏览“已选课程”链接可以进入浏览已选课程页面(stu/showchoosed.php),在该界面点击课程编码链接可以进入查看已选课程细节页面(stu/CourseDetail1.php),点击“删除所选课
23、程”转到stu/delCourse.php页面即完成删除已选课程操作,如图7-9所示:53任务14:学生选课删除所选课程(stu/delCourse.php)代码如下:?session_start(); /必须登录后才可使用if (!isset($_SESSIONusername) header(Location: login.php); exit(); include(./conn/db_conn.php);include(./conn/db_func.php);$StuNo=$_POSTStuNo;$CouNo=$_POSTCouNo;$DeleteCourse = DELETE FROM
24、 stucou WHERE CouNo = $CouNo and StuNo=$StuNo ;$DeleteCourse_Result = db_query($DeleteCourse);if ($DeleteCourse_Result) echo ; echo alert(所选课程删除成功); ; echo location.href = showchoosed.php ; echo ; else echo ; echo alert(所选课程删除失败,请重新修改); ; echo location.href = DeleteCourse.php ; echo ;?54任务15:教师管理课程1
25、教师管理课程主页面教师管理课程主页面(tea/ShowCourse.php)将所有课程信息通过表格分页显示出来,通过点击课程编码链接可以查看课程细节。同时该页面提供了查询课程、添加课程、退出系统链接,如图7-10所示:55任务15:教师管理课程2添加课程在教师管理课程主页面点击“添加课程”链接可以进入添加课程页面(tea/ AddCourse.php),如图7-11所示:56任务15:教师管理课程添加课程页面(AddCourse.php)的代码如下:?phpsession_start(); if (!isset($_SESSIONusername) header(Location: ./log
26、in.php); exit(); else if ($_SESSIONroleteacher) header(Location:./login.php); exit();?添加课程 浏览课程 查询课程 添加课程 退出系统 请输入课程信息编号/td57任务15:教师管理课程在图7-11所示的界面中,输入课程信息并选择课程图片后单击“确定”按钮跳转到tea/ AddCourse1.php页面完成添加课程操作。其代码如下:?phpsession_start(); if (!isset($_SESSIONusername) header(Location: index.php); exit(); el
27、se if ($_SESSIONroleteacher) header(Location:student.php); exit();include(./conn/db_conn.php);include(./conn/db_func.php);$CouNo = $_POSTCouNo;$CouName = $_POSTCouName;$Kind = $_POSTKind;$Credit = $_POSTCredit;$Teacher = $_POSTTeacher;$SchoolTime = $_POSTSchoolTime;$LimitNum = $_POSTLimitNum;$CouNo
28、= trim($CouNo);$CouName = trim($CouName);$Kind = trim($Kind);$Credit = trim($Credit);$Teacher = trim($Teacher);$DepartNo = $_SESSIONdepartno;$SchoolTime = trim($SchoolTime);$LimitNum = trim($LimitNum);$AddCourse_SQL =58任务15:教师管理课程3修改课程在老师管理课程主页面点击要修改的课程右边的“修改”链接可以进入修改课程页面(tea/ ModifyCourse1.php),如图7
29、-12所示。59任务15:教师管理课程修改课程信息后单击“修改”按钮跳转到tea/ ModifyCourse2.php页面完成修改课程操作,其代码如下:?phpsession_start(); if (!isset($_SESSIONusername) header(Location: index.html); exit(); else if ($_SESSIONroleteacher) header(Location:student.php); exit();include(./conn/db_conn.php);include(./conn/db_func.php);$CouNo = $_
30、POSTCouNo;$CouName = $_POSTCouName;$Kind = $_POSTKind;$Credit = $_POSTCredit;$Teacher = $_POSTTeacher;$SchoolTime = $_POSTSchoolTime;$LimitNum = $_POSTLimitNum;/删除原来的图片if(file_exists($_FILESphototmp_name) $oldpic=./uploadpics/.$CouNo.jpg; unlink($oldpic); $target_path = ./uploadpics/.$CouNo.jpg; mov
31、e_uploaded_file($_FILESphototmp_name, $target_path); $CouNo = trim($CouNo);$CouName = trim($CouName);$Credit =60任务15:教师管理课程 在添加课程和修改课程中都具有上传图片的功能。这里我们在添加课程或修改课程的设计界面中定义了一个“”,在表单提交后,通过调用函数move_uploaded_file($_FILESphototmp_name, $target_path); 就可以实现图片的上传了。614删除课程在教师管理课程主页面点击要删除的课程右边的“删除”链接,弹出对话框确认后可以进入删除课程
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 分蜜机工安全生产规范知识考核试卷含答案
- 灯具零部件制造工班组协作竞赛考核试卷含答案
- 办公设备再制造工安全强化测试考核试卷含答案
- 照相机及器材制造工创新应用水平考核试卷含答案
- 钢渣处理工创新方法评优考核试卷含答案
- 稀土废液回收工岗前工作标准化考核试卷含答案
- 家居施工新革命-引领高效环保的施工趋势
- 2026八年级下语文傅雷家书名著导读
- 2026道德与法治一年级阅读角 阅读中国传统医学家故事
- 2026道德与法治四年级拓展空间 法治行为规范
- 精神科叙事护理案例分享
- 2025版幼儿园章程幼儿园办园章程
- 《物流经济地理》课件(共十二章)-下
- 西语入门发音教学课件
- 《大学英语》课程说课说课
- 2025年事业单位招聘考试职业能力倾向测验试卷(造价工程师类)
- 《技术经济》课件(共九章)
- 煤矿安全学习平台
- 推掌防御反击技术课件
- 异常工况处置管理制度
- 颅脑肿瘤切除手术技巧分享
评论
0/150
提交评论