基于php+mysql的学生签到考勤系统设计与实现(毕业论文+程序源码)
大家好,今天给大家介绍基于php+mysql的学生签到考勤系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。
文章目录:
基于php+mysql的学生签到考勤系统设计与实现(毕业论文+程序源码)1、项目简介2、资源详情3、关键词:4、毕设简介5、资源下载
1、项目简介
公共课网上考勤系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。对于前者要求建立起数据一致性和完整性强、数据安全性好的库。而对于后者则要求应用程序功能完备,易使用等特点。经过分析,我使用 PHP+MySQL作为开发工具,并将APACHE作为服务器平台。利用其提供的各种优越性,首先在短时间内建立系统应用原型,然后,对初始原型系统进行需求迭代,不断修正和改进,直到形成用户满意的可行系统.本系统完成了如下主要功能:学生及教师的注册与安全登录,签到并防止冒名签到,平时成绩的统计,及老师及学生对总成绩及个人成绩的查询。从而使系统完全能满足经济性、灵活性、系统性及可靠性的要求2、资源详情
项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:9457个字34页
包含内容:整套源码+完整毕业论文+答辩PPT
3、关键词:
安全登录,冒名签到,统计,查询,php4、毕设简介
提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。
第一章 概 述
1.1 PHP的概念
PHP: Hypertext Preprocessor (超文本预处理器) 的缩写,它是一种服务器端的 HTML 脚本/编程语言,是一种简单的、面向对象的、解释型的、健壮的、安全的、性能非常之高的、独立于架构的、可移植的、动态的脚本语言
PHP是一种功能强大的脚本语言。PHP将击败PERL/Python并取而代之。PHP是下一代的PERL/Python脚本。PHP可以胜任任何PERL/Python做的工作,并且做的更多,更好,更简洁!!
1.2 PHP在网络编程方面的优越性
1995年时,Rasmus在用PHP写他的个人主页;今天,PHP成为风靡全球的脚本语言,越来越多的站点选择使用PHP,连Yahoo都放弃了自己的脚本而改用PHP支持它的网站。可以说,PHP是一个奇迹。我一直认为,任何奇迹背后都有它的原因。现在,就让我们透过这个奇迹,来看看PHP的成功之道。
1 简单易用
PHP的入门门槛很低,它对使用者的要求微乎其微。学过C语言的人,使用PHP几乎不需要什么时间。它们的语法是如此相似,以至于我常常想,是不是在C语言变量前加个$就能改成PHP。这使得大量C程序员在网络脚本中选择了PHP。另外,比起ASP的组件系统和Java庞大的类库来,PHP的函数库要好学多了。在编程风格上,PHP更是自由,你可以使用N种风格来写你的脚本程序。这些特性使得PHP成为初学者的首选语言。抢占初学者市场是很重要的策略。如同任何人都会对自己的初恋记忆犹新一样,人们往往会对最初学习的语言有很深的感情。即使后来自己成长了,改用其他语言了,还是会时时记起最初学习的语言。在这点上,PHP做得很出色。
2 剪裁得当
PHP开发组是最了解网络的一群人,他们非常清楚用户要的是什么。PHP就是要做一个出色的网络脚本语言,而且,它只是要做一个网络脚本语言。PHP提供的函数集在网络方面相当强大,而且重点均专注于网络应用。像PHP中的无组件文件上传,超多数据库支持等特性都表现出这个特点。顺便说一句,PHP甚至支持ACCESS数据库。专注使得PHP在网络上表现出极其优秀的性能。有失才能有得。
3 支持强大
PHP有强大的OpenSource团体支持,在网络上有数以万计的开源代码。你可以整合几个现有程式来实现你的应用,也可以分析大师级的代码来得到提高。PHP还有很多扩展性的项目来增强PHP在某个方面的功能。像注重编程规范化和代码重用的PEAR,提供可编译模板技术的Smarty,甚至开发桌面程序的GTK。
分析完这几个理由,我们可以看出,PHP的成功得益于PHP开发组的战略眼光。PHP提供了一个最小工作集,使用户能用最简单的方式高效地完成自己需要的应用。这正是初学者需要的。然后它通过方便的扩展来提供各个方面的解决方案,这样,你只需要学你要用到的那个领域的东西。当你涉及的领域越来越多时,你的水平也随之提高,当你熟悉了大多领域时,回头看看,会发现不知不觉已到山腰。PHP也提供了我们一种学习态度。
1.3系统开发环境
一、 操作系统—Windows xp
本系统使用的操作系统为Windows xp作为底层操作系统,界面友好,性能稳定。
二、 数据库—MYSQL
MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和很多不同的客户程序和库组成。
SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。
MySQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。
三、 务器平台—APACHE
Apache 伺服器则是目前最多 WWW 网站所采用伺服器。您可以至 下载最新版的程式及相关文件,若您觉得从国外下载要很久的话,也可以用它的 Mirror 站台下载。
PHP 则可以去它的官方网站 下载所需要的程式。
虽然目前 WindowsNT 或者 Windows98 等 Win32 的作业平台也能安装 PHP 及 Apache 伺服器,不过这似乎没什么道理,因为 PHP 和 Apache 在 UNIX下可以跑得更快更好。
当然,若想使用商业化的作业平台,SUN、IBM、HP、DEC、SGI、NEC 等公司都有提供相关的 UNIX 或者是 WindowsNT 的作业平台。加上高安全性调整过后的 Apache 伺服器:Stronghold 或是其它支援 SSL 的 Apache 版本。这种组合,相信能满足商业化的需求。而 PHP 就扮演着快速方便的 CGI 角色,让客户对站台的服务品质更加满意。
四、 发语言—PHP
PHP是一种简单的,面向对象的,解释型的,健壮的,安全的,性能非常之高的,独立于架构的,可移植的,动态的脚本语言。PHP具有和JAVA类似的Class关键字。因为不需要虚拟机,以致速度比JAVA快5倍。PHP正迅速变成一种标准的,多用途的,面向对象的脚本语言。PHP不仅可用来开发Web应用程序,也可以开发普通应用程序。
PHP是一种功能强大的脚本语言。PHP将击败PERL/Python并取而代之。PHP是下一代的PERL/Python脚本。PHP可以胜任任何PERL/Python做的工作,并且做的更多,更好,更简洁!!
PHP是Hypertext Pre-Processor(超文本预处理器)的缩写,它是一种服务器端的HTML脚本/编程语言。PHP语法上与C相似,可运行在Apache, Netscape/iPlanet, 和 Microsoft IIS Web 服务器上。PHP作为一种工具,可以让你创建动态的Web页面。应用PHP的网页与常规的HTML页面并无二致,你可以用同样的方式来创建、编辑它们。PHP允许你直接在HTML文件里写入简单的脚本,这一点与Javas cript非常相似。而不同的是,PHP不依赖于浏览器,是服务器端的语言,而Javas cript却是一种客户端的嵌在HTML中的语言。概念上,PHP与Netscape的LiveWire Pro产品,Microsoft的ASP以及SunMicrosystem 的JSP相似。
PHP不仅可以用来创建Web应用程序,也可以用来开发普通的单机应用程序。
PHP的强劲之处在于:
·PHP是一项最优秀的技术。其它技术,如PERL,Python, Tcl, VB s cript, ASP 相对来说,都是陈旧低劣的。即使是Java/JSP,也在PHP之下。
·开放源码
·广泛的数据库连接
·大量的扩展库
·作为一种多用途的脚本语言,比PERL,VB s cript, ASP, JSP都要优秀
第二章 系统的需求分析
2.1 系统需求分析
需求分析的基本任务是准确的回答“ 系统必须做什么?”这个问题。在需求分析这个阶段,需要仔细的研究系统所实现的功能,并进一步将他们具体化。
1.任务概述
目标
将学生考勤、平时成绩的评定、以及成绩查询的大量业务,用计算机系统操作完成,对它进行全面现代化管理,以便提高信息管理效率。
运行环境
软件:Microsoft Windows 2000 Server及Windows 2000 SPI
或更高版本
IE5.5以上
硬件:64 MB RAM 鼠标或其他定点设备
系统要完成的任务
实现学生安全登录
实现网上签到
通过技术手段,避免学生冒名签到。
统计学生平时成绩。
实现网上成绩的查询。
2.功能需求
系统必须完成的功能包括:
注册与登录功能
该功能主要实现学生与老师的安全登录。
签到功能
该功能主要实现学生上课网上签到,以减少老师点名签到的时间,提高上课效率。
统计功能
系统中的统计功能可以根据学生签到次数,统计学生的平时成绩。
查询功能
该功能从不同的角度进行查询,多层次地满足老师及学生对总成绩及个人成绩的查询要求。
2.2 总体设计
1.本课题研究的内容
本论文从网站设计的基本原理出发,使用php+mysql技术,PHP是一个类似微软ASP的服务器端的嵌入式超文本处理语言,是建立动态网站的强大工具。MySQL是一个真正的多用户、多线程SQL数据库服务器。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysql和很多不同的客户程序和库组成。由于其源码的开放性及稳定性,且与网站流行编徎语言PHP的完美结合,现在很多站点都利用其当作后端数据库,使其获得了广泛应用。而MySQL是一个轻型SQL数据库服务器,可运行在多种平台上,包括Windows NT和Linux,它还有一个GPL版本,MySQL被认为是建立数据库驱动的动态网站的最佳产品。PHP、MySQL和Apache是Linux平台网站的最佳拍档。
通过对公共课网上系统的分析、设计与具体实施,从而具体介绍了基于Internet/Intranet的网站应用系统的分布式架构模式及实现机理。最后采用了PHP+MYSQL,设计并实现了公共课网上系统系统设计模型
2.此系统共分为六个较大的模块:
(一). 注册模块 (二). 身份验证模块 (三).学生查询模块 (四)、学生签到模块 (五)、教师控制台模块 (六)、学生出勤统计模块
在这七个模块当中共完成19项功能,分别如下:
(一) 注册模块
i. 新用户注册(教师或学生)
ii. 用户登陆(教师或学生)
图2-1 流程示意
(二) 身份验证模块
i. 教师注册身份验证
ii. 学生注册身份验证
iii. 回答信息库中的个人信息
图2-2 流程示意
(三)学生查询模块
iv. 用户输入学号
v. 用户出勤信息查看
图2-3流程示意
(三) 学生签到模块
i. 个人信息提取
ii. 签到结果查看
图2-4流程示意
(四)教师控制台模块
iii. 开始学生签到
iv. 停止学生签到
v. 查看本次签到信息
流程示意图2-5
(五)师期末统计模块
vi. 统计专业
vii. 统计年级
viii. 点名次数
ix. 每次点名分数
流程示意图2-6
学生(表间关系) 主键
第三章 设计与实施
3.1系统数据库设计
3.2系统基本流程
1.注册
(1)下面是学生注册页:
图3-1
(2)学生注册验证页:
通过提出随机问题,实现用户安全注册。防止他人注册。
图3-2
如果问题回答正确,显示“您已成功通过验证” 返回主页。
如果问题回答错误,显示“请仔细检查您的确认密码和学号是否正确”。
如果帐号已被注册,显示“此用户帐号已经被注册了,您无法再次进行注册”。
2.登录
(1)用户登录页
图3-3
注册后,系统将用户的帐号和密码插入数据库,用户正确输入帐号和密码,即可登录。
若输入的帐号和密码不正确。显示“你输入的帐号或密码不正确,请重新输入”。
☆教师登录,进入教师控制台
图3-4
☆学生登录
如果教师点击开始签到,学生登录进入签到页。
如果教师点击停止签到,学生登录进入成绩查询页。
3.签到
(1)学生签到页
图3-5
通过ip防止冒名签到,限定每个ip再同一节课只能有一个人签到,并且通过对时间的限制防止同一人在同一节课多次签到。
(2)冒名签到页
如果有人冒名签到,教师可以在冒名签到页中查看到,IP地址出现相同的,证明学生曾试图在一台电脑上给两个人签到。
图3-6
4.统计
每签到一次,系统记录在数据库中。期末教师输入每次签到的分数,
分数*统计次数=平时成绩
图3-7
5.查询
教师输入专业,查询整个专业的成绩。
图3-8
6.学生输入学号,查询个人的成绩。
图3-9
3.3系统主要功能模块的实现
下面将对以上六个模块中的14项功能的实现做具体详细地阐述。
(二)主要功能:
(1) 新用户来访须知,简介系统将为用户提供本系的基本介绍;
(2) 新用户注册,为新用户建立一个信息输入环境,同时系统将保存新的用户个人资料;
(3) 检验身份,是用来检验用户的身份,防止别人冒名注册;
(三) 实现方式
用户初访须知:
这是一个版面,即告诉每一个新来到本系统访问的用户,怎样进行注册,能让学生和老师一目了然,正确注册个人信息。我在这里用一个名称为index.php的页面来简单地介绍了本系的一些概况和信息。
第一, 选择自己的身份,老师或者学生
第二, 登录用户名和登录密码为进入系统的必添资料
第三, 如果没有进行注册,需在这里进行注册
新用户注册:
这是一个为新用户提供输入个人资料的界面窗口,同时,根据学校信息库的特点,为每一个用户设计了准确的个人信息。在这里这些个人资料将输入到数据库(ts_signup)中的用户记录表(t_singup或s_signup)当中。在设计过程当中,使用了t_signup和s_signup两个文件来完成此项功能,它们的执行步骤如下:
教师填写如下个人资料(t_signup.php)
学生填写如下个人资料(s_signup.php)
(四) 程序解析:
(1) 学生用户注册(s_signup.php):
在此系统当中,自始自终都是以php技术当中服务器的表单变量作为操作的标识,而且,在不同的功能当中,通过它来实现参数的传递,完成特定的功能。系统只有通过它才能调用,但我们可以对使用的系统变量进行定义和初始化,具体实现如下:
$s_sno ‘为学生的学号,在这里它是唯一可以标示某一个人的身份;
$s_name '注册者姓名;
$s_pro 注册者专业
$s_zh 注册者帐号;
$s_pasw '注册者密码;
$textfield '注册者的确认密码
页面进行分析:
i. 用户个人资料填写(s_signup.jsp)
在此页面当中,主要由两部分组成,一部分是显示输入信息界面,另一部分为函数控制部分,由javascript语言实现。function sub()语句主要是控制注册者填写的内容不能为空。例如下:
function sub(){if(document.form1.s_name.value==""){window.alert("请填写你的登录名!");window.form1.id.focus();return false;}if(document.form1.s_pasw.value==""){window.alert("请填写密码!");window.form1.pwd.focus();return false;}……
余下的内容为HTML的设计页面。例如下:
<style type="text/css"><!--h1,h2,h3,h4,h5,h6 {font-family: 学生注册;}h1 {font-size: 10px;color: #006699;}--></style></HEAD>
关键的语句在与取得表单输入信息,语句如下:
ii. 注册表单输入(s_answer.php)
在此页面,主要完成数据向数据库中的操作:选择数据库表(s_signup),填加一条记录,即新用户生成,返回主页面。
重名用户的控制,即注册用户的用户名称如果在系统中存在,那么将返回信息告诉用户重新填写用户名称。实现此功能,首先,从数据库中确认申请的用户名称是否重复,代码如下
<?phpmysql_select_db($database_conn, $conn);$query_Recordset2 = "SELECT * FROM s_signup where s_sno='$s_sno'";$Recordset2 = mysql_query($query_Recordset2, $conn) or die(mysql_error());$row_Recordset2 = mysql_fetch_assoc($Recordset2);$totalRows_Recordset2 = mysql_num_rows($Recordset2);if($totalRows_Recordset2>0)echo "此学号已经被注册了,您无法再次进行注册";else {mysql_select_db($database_conn, $conn);$query_Recordset2 = "SELECT * FROM s_signup where s_sno='$s_zh'";$Recordset2 = mysql_query($query_Recordset2, $conn) or die(mysql_error());$row_Recordset2 = mysql_fetch_assoc($Recordset2);$totalRows_Recordset2 = mysql_num_rows($Recordset2);if($totalRows_Recordset2>0)echo "此用户帐号已经被注册了,您无法再次进行注册";其次是将数据输入输入库中:$insert_query="insert into s_signup values(\"$field1\",\"$field2\",\"$field3\",\"$field4\",\"$field5\");";mysql_query($insert_query, $conn);}
3 身份验证模块
(一) 主要功能
(1) 防止他人冒名注册个人帐户;
(2) 不同的用户具有不同的管理功能
(3) 输入成功后,具有返回的功能;
(二)实现方式
身份验证
$row=mysql_fetch_row($Recordset1);$i=mt_rand(7,11);if($i==7)print "请准确回答你的\"电话号码\" ?";else if($i==8)print "请准确回答你的\"家庭地址\" ?";else if($i==10)print "请准确回答你的\"父亲名\" ?";else if($i==9)print "请准确回答你的\"母亲名\" ?";else if($i==11)print "请准确回答你的\"个人爱好\" ?";$field=$row[$i];$field1=$s_sno;$field2=$s_name;$field3=$s_pro;$field4=$s_zh;$field5=$s_pasw;}elseheader("Location:s_fail.php");}}?>
◆ 成绩输入存储模块(cjsr_ok.jsp)
第一,查找的信息不能为空,否则视为无效。
第二,连接数据库(chengji),输入信息。如果有信息正确,写入。代码如下:
String asql="SELECT * FROM chengji where id='"+id+"'";ResultSet RS=connben.executeQuery(asql);……(id,name,rgzn,hbyy,jkjs,sjjg,sjksj,java,xhxt,dmtjs) Values('"+id+"','"+name+"','"+rgzn+"','"+hbyy+"','"+jkjs+"','"+sjjg+"','"+sjksj+"','"+java+"','"+xhxt+"','"+dmtjs+"')";
成绩修改输入模块(cjsrup.jsp)
第一, 输入要修改学生的学号和姓名等待系统确认后,将进入修改主页面。
第二,将要修改是成绩输入到表单中,由表单提交到数据库中。
name=“id” '为了建立不同的纪录而设定的代号,在这里它是唯一可以标示某一个学生的身份;
name=“pwd” '学生密码;
name=“rgzn” '代表课程人工智能;
name=“hbyy” '代表课程汇编语言
name=“jkjs” '代表课程接口技术;
name=“sjjg” '代表课程数据结构;
name=“sjksj” '代表课程数据库设计;
name=“java” '代表课程java语言;
name=“xhxt” '代表课程信号系统;
name=“dmtjs” '代表课程多媒体技术;
function sub()定义到表中姓名和学号不能为空。例子如下:
function sub()
{
if(document.form1.id.value==“”)
{
window.alert(“请填写你的学号!”);
window.form1.id.focus();
return false;
}
4 学生查询模块
(一)主要功能
(1) 查询功能是面向全体用户的查询功能;
(2) 查找的对象主要包括数据库中签到信息表(s_login)中的全部内容。
(3) 查找对象与数据库匹配的字符,如不相符不予以查找。
(4) 查询的结果显示在查询结果页面(sss_infor.php)上。
(二)实现方式
成绩查询模块(sss_infor.php)
查找学生学号(sss_infor.php)
第一, 要求输入学生的学号,这部分由标准的HTML代码生成;
第二, 关键的语句在与取得数据库信息,语句如下:
。
显示成绩模块(sss_infor.php)
第一, 连接数据库,查找信息。如果有正确的信息显示出来
mysql_select_db($database_conn, $conn);
queryRecordset1="SELECT∗FROMsloginwheressno=′query_Recordset1 = "SELECT * FROM s_login where s_sno='queryRecordset1="SELECT∗FROMsloginwheressno=′field’ ";
第二, 把要显示的信息输入出来
$maxRows_Recordset1 = 20;
$pageNum_Recordset1 = 0;
queryRecordset1="SELECT∗FROMsloginwheressno=′query_Recordset1 = "SELECT * FROM s_login where s_sno='queryRecordset1="SELECT∗FROMsloginwheressno=′field’ “;
$query_limit_Recordset1 = sprintf(”%s LIMIT %d, %d", $query_Recordset1,
5学生签到模块
(一)主要功能
(1) 根据用户帐号,从数据库中学生信息表中提取数据;
(2) 将提取的信息放到签到信息页上;
(二)实现方式
根据用户帐号提取个人信息
mysql_select_db($database_conn, $conn);
queryRecordset2="SELECTsinfor.∗FROMsinfor,ssignupwheresinfor.ssno=ssignup.ssnoandssignup.szh=′query_Recordset2 = "SELECT s_infor.* FROM s_infor ,s_signup where s_infor.s_sno= s_signup.s_sno and s_signup.s_zh='queryRecordset2="SELECTsinfor.∗FROMsinfor,ssignupwheresinfor.ssno=ssignup.ssnoandssignup.szh=′s_zh’";
实现签到
第一, 连接数据库,查找信息。如果有正确的信息输入进去
mysql_select_db($database_conn, $conn);
KaTeX parse error: Expected group as argument to '\"' at end of input: …login values(\"s_sno",“KaTeX parse error: Expected group as argument to '\"' at end of input: s_name\",\"s_pro”,“KaTeX parse error: Expected group as argument to '\"' at end of input: s_gra\",\"cc”,“$ip”);";
Recordset1=mysqlquery(Recordset1 = mysql_query(Recordset1=mysqlquery(query, $conn) or die(mysql_error());
header(“location: pp.php?flag=2”);
第二,把要显示的信息转到s_infor.php页面输出来
<?php$maxRows_Recordset1 = 20;$pageNum_Recordset1 = 0;mysql_select_db($database_conn, $conn);$query_Recordset1 = "SELECT * FROM s_login where s_sno='$field' ";?>
6教师控制台模块
(一)主要功能
(1)教师允许签到,设置数据库(t_control)中控制标志位;
(2)停止签到,设置数据库中(t_control)控制标志为;
(二) 实现方式
设置标志为
第一, 教师允许签到
if(!strcmp($button,"开始")){//使标志位值为1 开始签到$query_Recordset1 = "insert into t_control(falg) values(\"1\");";$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());}
第二, 停止签到
if (!strcmp($button,"停止")){//清除标志位$query_Recordset1 = "delete from t_control where falg=\"1\";";$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());
使其他学生下次正常签到
$query_Recordset1 = "update s_login set ip=\"1\";";$Recordset1 = mysql_query($query_Recordset1, $conn) or die(mysql_error());}
7学生出勤统计模块
(一)主要功能
(1)教师期末统计学生出勤信息
(2)了解学生本学期学习状态;
(3)正确录入期末成绩;
(二)实现方式
◆ 教师登录(t_last.php)
第一, 要统计的信息不能为空。
第二,显示统计信息
maxRows_Recordset1 = 20;
$pageNum_Recordset1 = 0;
$query_Recordset1 = “SELECT * FROM statistic”;
$query_limit_Recordset1 = sprintf(“%s LIMIT %d, %d”, $query_Recordset1, $startRow_Recordset1, $maxRows_Recordset1);
第四章 测 试
省略
4.1 模块测试
4.1.1 测试方案
我采用了白盒测试(又称结构测试),即按照程序内部的逻辑结构,检验程序中的每条通路是否能够按照预定要求正常工作。
由于设计过程当中,不免会出现很多意想不到的结果发生,为了减少不必的错误出现,同时,为了能够使不同的文件之间正确和有效的衔接,我在设计模块的过程,对于每一个文件的执行和模块的执行都做了认真地测试,以求达到设计要求。
4.1.2 测试过程
主要检查模块的两个方面,一个是各个模块之间的接口,另一个是模块的运行是否正常。
对于检验各个模块之间的接口,所做的测试工作有:
每个被调用模块之间是否能够正常接受参数(包括系统变量);每个被调用模块之间能否正常地而且有效地衔接上;
对于检验模块的运行是否正常,所做的测试工作有:对每一个模块中各个执行过程严格地进行检查与检测;对每一个模块中各个文件内所设计的函数逐个进行达标测试;对每一个模块在调用的过程中,时刻检测系统变量的过程性变化;
4.1.3 测试结果
测试结果表明,每一个模块都能够正常独立地运行,各个模块之间的接口亦能正确地吻合,同时每个模块基本上达到了设计的要求。
4.2 系统测试
4.2.1 测试方案
这个部分由我的导师在设计过程当中和结束是不断地进行黑盒测试(又叫功能测试),即检查程序功能是否按照规格说明书的规定正常使用,程序是否能够适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性。
在这次的设计当中,对于每一个模块的功能实现上和设计风格上,我的导师都做了细致的检测和提出建设性的意见,并且尽力去找出系统的纰漏之处。
4.2.2 测试过程
主要由我的导师在不同的时间、不同机器和不同的系统状态下进行测试过程,利用特殊的参数和普通参数两种方式进行测试。
4.2.3 测试结果
测试结果表明,系统能够按照设计的要求实现其内部的各项功能,同时提前完成了设计的任务要求。
4.3 验收测试
4.3.1 测试方案
我采用黑盒测试,对系统的各个模块功能进行了随机抽样检验,同时作了相应的时间比较。
4.3.2 测试过程
我对所抽样后选择出的模块进行黑盒测试,从以下几个角度进行:
从用户自身的角度,进行了有个性的测试;从管理员的角度,对系统的维护与管理的效率进行了测试;从一个破坏者的身份,对系统的安全性进行测试;
4.3.3 测试结果
测试结果表明,尽最大地可能满足了不同用户的需求,同时保证了系统管理员的高效的管理工作,基本上有效地防止了破坏者的恶意攻击。
4.4 小结
在测试的过程当中,发现不少错误与不足之处,通过广泛的查找资料和导师的认真指导,基本上修正了存在的这些错误,能够达到设计的要求,同时,不断地完善了一些模块的功能。
通过这些的测试工作,我真正认识到了测试的重要性、必要性。同时提高了我对错误的分析能力和警惕性,增强了我的编程能力,增加了我的设计经验。测试结果表明,我的系统可以进行应用。
第五章 结束语
通过本次设计,学到了不少东西。不但对PHP+MYSQL这一开发工具有所掌握,更重要的是对进行软件设计的整体设计流程及思维方法有了深刻的认识。在期间,发现的许多问题都源于没有认真地按步骤进行设计,不重视需求分析,总体设计部分,对各个方面将会产生的问题考虑不周全。
总之,在整个设计完善的过程中,我学到了在书本里根本学不到的许多知识,体会到PHP+MYSQL的强大功能,总体把握系统的流程的为实现某个功能的各个程序的流程是多么的重要,再一次感谢老师的细心指导。
参考文献
《PHP语言,进阶和高级应用》 龙浩等编著 清华大学出版社《PHP & MYSQL Web数据库应用开发指南》 Hugh E.Williams等著 谢君英 欧阳宇译5月《php程序设计》 Programming PHP 中国电力出版社 7月
4.《php\mysql数据库开发指南》焦桐顺著电子工业出版社2001年9月
5.《php4交互网页数据库实战手册》清华大学出版社7月
5、资源下载
本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。
【php毕业设计】基于php+mysql的学生签到考勤系统设计与实现(毕业论文+程序源码)——学生签到考勤系统