您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > 第14讲 PHP和MySQL数据库编程(选课系统)
1第14讲选课系统分析7.2项目引入与需求分析2任务5:系统的架构、功能和用户“网上选课”的功能从用户角度上应该分两个层面,一个是使用该系统的学生,他们登录系统后,通过客户端浏览器浏览可选课程的信息,并根据自己的实际情况,按照一定意愿次序选课;另一个是教学秘书,他们可以通过客户端浏览器进行一些系统管理和维护的工作,例如对课程信息进行添加、修改和删除等。无论是学生用户还是教学秘书用户,均不用在本地机安装客户端,只需要通过浏览器就可以进行上述的操作。按照上述的项目概述,该系统应该是建立在B/S结构上的动态Web应用,如图7-1所示。3除此之外,还需按照学校的规模和条件,以及学生集中选课的时间,选定服务器、相应的软硬件和网络设施。4任务6:系统的需求概述与分析进行“网上选课”系统开发,首先要聆听客户(在这里是指教务部门)对系统的描述和需求。教务部门希望教学秘书用户可以通过客户端浏览器登录到系统,对课程进行管理,例如添加课程、修改课程、删除课程、浏览课程、查询课程和查看课程的详细信息等;学生用户则可以通过客户端浏览器登录到系统,浏览课程、查询课程和查看课程的详细信息,并按志愿顺序预选自己想要选修的课程,也可显示自己已经预选的课程。教务部门希望该系统可以让学生按照志愿顺序预选5门课程,也就是说每个学生至多选5门课程。其次,进行网站开发,在做系统需求分析时,除了对功能的认知之外,还必须按照学校的实际情况,确定系统架构和软硬件的选取。5对于硬件和网络设施,目前由于性价比都比较合适,硬件供应商的服务和水平也都比较专业。而服务器系统软件以及Web架构则需要进行商榷了。当今服务器系统软件无外乎是Windows和基于开源技术的Linux。Windows及其开发工具作为商业软件,其使用的便利性和开发工具的完善性无疑是最好的;然而随着开源技术应用的普及,一些国家和地区的政府已经表明有计划把自己的服务器体系结构由Windows向Linux转移。6LAMP(Linux+Apache+MySQL+PHP),一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。对于硬件和网络设施,目前由于性价比都比较合适,硬件供应商的服务和水平也都比较专业。而服务器系统软件以及Web架构则需要进行商榷了。7当今服务器系统软件无外乎是Windows和基于开源技术的Linux。Windows及其开发工具作为商业软件,其使用的便利性和开发工具的完善性无疑是最好的;然而随着开源技术应用的普及,一些国家和地区的政府已经表明有计划把自己的服务器体系结构由Windows向Linux转移。LAMP(Linux+Apache+MySQL+PHP),一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。8开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,市场份额已经超过60%。且该软件开发的项目在软件方面的投资成本较低,因此受到整个IT界的关注。针对选课系统,可以考虑使用AMP(Apache+MySQL+PHP)架构,AMP无论是从系统稳定性和并发处理的能力来说,都可以胜任选课系统的要求。同时AMP与平台无关,可以非常方便地将代码转移到Linux平台上。97.3功能分析10任务7:功能分析的方法和任务当系统需求分析的环节完成后,则对用户期望的系统有所了解,然后应该确定好对应的服务器架构、实现Web服务的编程语言和数据库管理系统。根据这些软硬件的配置,确定开发技术,这些确定好之后,则需要对系统所要实现的功能进行条理化、规范化。功能分析的任务是要确定我们做出来的软件具有什么样的功能。前提条件是根据拟定的开发技术和软硬件特点,将用户的需求转化成系统可以实现的功能。11任务8:“网上选课”系统的功能分析针对系统的功能描述,可以知道该系统存在两种用户:教学秘书用户和学生用户。用户必须经过登录才能使用系统。在首页可以给用户提供一个登录的功能,同时显示本网站被浏览的次数,还随机显示课程的详细信息。系统功能模块图如图7-2所示。13任务8:“网上选课”系统的功能分析具体的实现方案如下:1.添加课程功能,给用户提供一个界面,用户在界面中填入规定的信息;2.修改课程功能,首先给用户提供一个课程列表,列表里显示了课程的主要信息,用户点击需要修改的课程链接,进入修改课程信息的界面,用户修改了的有关信息,提交给服务器,服务器接收到新的信息后,将数据库对应表的相关内容进行修改;14任务8:“网上选课”系统的功能分析3.删除课程功能,用户一次可以删除多门课程。首先给用户提供一个课程列表,用户将需要删除的课程选定,然后提交给服务器,服务器接收到相关的删除信息后,将数据库对应表的相关内容进行删除;4.浏览本系部课程功能,给用户提供一个课程列表,列表里显示了课程的主要信息,用户点击需要显示详细信息的课程链接,进入显示课程详细信息的界面;15任务8:“网上选课”系统的功能分析5.查询课程功能,首先给用户提供一个界面,用户首先选择查询的范围,然后输入关键字,提交给服务器,服务器接收到查询的信息后,调用相关程序执行查询,然后将查询结果以列表的形式展示出来,列表里显示了课程的主要信息,用户点击需要显示详细信息的课程链接,进入显示课程详细信息的界面。16任务8:“网上选课”系统的功能分析5.查询课程功能,首先给用户提供一个界面,用户首先选择查询的范围,然后输入关键字,提交给服务器,服务器接收到查询的信息后,调用相关程序执行查询,然后将查询结果以列表的形式展示出来,列表里显示了课程的主要信息,用户点击需要显示详细信息的课程链接,进入显示课程详细信息的界面。17任务8:“网上选课”系统的功能分析学生用户则可以通过客户端浏览器登录到系统,浏览可选课程、显示已选课程和删除已选课程,并按志愿顺序预选自己想要选修的课程。1.浏览可选课程功能,首先给用户提供一个课程列表,列表里显示了该用户可以选择课程的主要信息,用户点击需要修改的课程链接,进入显示课程详细信息的界面,如果该用户还没有选够5门课程,则该用户可以选择此课程,此课程的志愿顺序自动为当前课程数加一;182.显示已选课程和删除已选课程,给用户提供一个列表,列表显示了该用户已经选择的课程列表,按照志愿顺序排序。用户可以点击其中的任何一门课程的链接,删除此课程的选课记录,同时,其他已选课程的志愿顺序将自动调整。3.查询课程功能,同教学秘书用户。通过功能模块图,我们可以清楚地了解本系统的概貌,对其中的各个功能模块也十分清楚,针对后期的开发,程序员可以非常清楚地去按照功能模块规划页面和文件的设计。197.4页面流图20任务9:页面流图的内容和作用由于网站功能的实现往往必须借助页面来实现,这里所说的页面是广义的页面,把运行在服务器端的程序处理文件也包含在内。例如,实现客户向服务器提交的请求,服务器向用户提供一个页面A,用户对此页面处理后,提交给服务器;服务器收到提交的数据后,调用程序处理文件B,再把服务器执行的结果以网页C的形式显现在客户面前。这个过程就可以用“页面A→页面B→页面C”的方式进行描述。21任务9:页面流图的内容和作用所以,在进行完系统的功能分析和划分后,进行页面的规划非常重要。进行网站开发,在系统分析阶段,除了使用功能模块图来描述系统的功能模块划分之外,还使用页面流图描述为了实现某个功能,在功能模块内部,各个页面和文件之间的关系。同时也方便程序员按照系统和模块设计去实现各个模块的代码。22任务10:登录模块的页面流图样例该页面流图告诉程序员,登录模块所需要4个文件(页面),首先是首页“login.php”,这个页面内应该包含一个供用户填写用户名和密码以及身份的表单,表单提交的内容是“username”、“userpwd”和“role”三个变量,提交的目标文件是“用户检查ChkLogin.php”。23任务10:登录模块的页面流图样例文件ChkLogin.php是用来检查用户输入的用户名和密码的合法性。如果合法,身份是教师的话就引导到对应的“教学秘书页面teacher.html”,并把身份“teacher”、教师编码“TeaNo”和系部编码“DepartNo”保存在服务器的会话中,供以后使用。如果身份是学生的话,就引导到“学生页面student.html”,并把身份“student”、学生编码“StuNo”和班级编码“ClassNo”保存在服务器的会话中,供以后使用。如果用户不合法,就重新引导到“首页index.html”。24任务10:登录模块的页面流图样例257.5数据库和表设计26任务11:表及其之间的联系要实现网上选课,则需要以下6个表来保存各方面的信息。图7-4表示了各个表间的联系。班级表Class和系部表Department之间通过DepartNo(系部编号)进行连接,表示班级的系部编号来源于系部表。教学秘书表Teacher和系部表Department之间通过DepartNo(系部编号)进行连接,表示教学秘书的系部编号来源于系部表。课程表Course和系部表Department之间通过DepartNo(系部编号)进行连接,表示课程的系部编号来源于系部表。学生表Student与班级表Class之间通过ClassNo(班级编号)进行连接,表示学生的班级编号来源于班级表。StuCou表与Student表通过StuNo(学号)进行连接,StuCou表与Course表通过CouNo(课程编号)进行连接,分别表示选课数据中的学号来源于学生表,课程编号来源于课程表。27任务11:表及其之间的联系28任务12:表的结构选课数据库xk包含6个用户表,他们是Department表(系部表)、Class表(班级表)、Student表(学生表)、Course表(课程表)、Teacher表(教学秘书表)StuCou表(学生选课表)。系部表Department有两列:DepartNo(系部编号)、DepartName(系部名称)。表的结构如下:选课数据库xk包含6个用户表,他们是Department表(系部表)、Class表(班级表)、Student表(学生表)、Course表(课程表)、Teacher表(教学秘书表)StuCou表(学生选课表)。系部表Department有两列:DepartNo(系部编号)、DepartName(系部名称)。表的结构如下:29任务12:表的结构30任务12:表的结构31任务12:表的结构32337.6系统实现3436任务13:教师/学生登录与退出1.教师/学生登录选课系统登录用户有两类:教师用户和学生用户,教师用户登录以后可以浏览课程信息、添加课程、修改和删除课程,学生用户登录以后可以浏览所有课程信息、进行选课、查看选课情况、删除所选课程的操作。(1)登录界面设计(login.php)由于教师和学生用户通过一个登录页面进入选课系统,因此设计了一个下拉列表框供登录用户选择,登录界面(login.php)代码设计如下:37任务13:教师/学生登录与退出htmlheadmetahttp-equiv=Content-Typecontent=text/html;charset=gb2312/title登录/titlelinkrel=stylesheethref=style.CSS/headbodycentertableborder=0cellspacing=1width=90%trtdformmethod=postaction=ChkLogin.phptablewidth=45%border=1cellspacing=0cellpadding=1align=centerborde
本文标题:第14讲 PHP和MySQL数据库编程(选课系统)
链接地址:https://www.777doc.com/doc-4063338 .html