基于PHP与MYSQL的公共课平时成绩查询系统

Birty

发布日期: 2018-12-22 13:46:34 浏览量: 2479
评分:
star star star star star star star star star_border star_border
*转载请注明来自write-bug.com

摘 要

众所周知,现代信息技术是现代教育技术的基础和核心,培养和创新型的人才必须依靠现代教育技术。从这一层意义上讲,我们说掌握一定的计算机应用技能已经成为国家未来的合格建设者的必备素质,所以现在在大学中对非计算机系的学生开设了计算机文化基础课,并且通过这门课的学习使同学们能顺利的通过计算机等级考试。由于学习这门课的人很多,平时查看成绩就非常的麻烦。本系统就是为了方便老师和同学查看平时成绩而编写的,它具有快速、准确、方便的特点。本系统是学校WEB站点的一个子系统,具有很好的外部接口,能够很好的配合站点的其它子系统服务于学校的成绩管理。

关键字:LAMP;查询;平时成绩

Abstract

It is well known that the modern information technology is foundation and the core of the modern educational technique, trained and the innovation talented person must depend on the modern educational technique.Says from this significance,it is extremely important to grasps the certain computer skill.so each school has all opened the compute culture basic class.with the help of the study the computer cultue basic class,all students can through computer rank test smoothly.Because there is so many students study this class,the result of usually search are very trouble.This system is compiles for teacher and the schoolmate,with the help of this system,searche the result of text is very easy.The characteristic of this system is fast accurate and convenient.This system is a school WEB stand sub- system, has the very good exterior connection, coordinate stand other subsystems serve the school result management.
Key words:LAMP; Query; Usual result

第一章 引言

伴随着网络的出现,网页逐渐融入人们的生活。快速及时的新闻浏览,五彩缤纷的网上信息,使网络与人们的生活息息相关,于是世界上又出现了第三媒体——Internet。它打破了地域限制,真正使信息得以共享,改变了人们的工作和生活方式。制作网页是企业和个人的宣传自己的重要手段,同时也是学习者获取学习信息的重要手段。尤其是在教育领域,在素质教育与终身教育成为必然的今天,人们对信息的需求有了更新,更高的要求,而网页由于本身所具有的信息量大,传递快速,没有时空限制等特点恰好满足这种要求。所以网页也逐渐成为一种新兴的教育资源。也正是由于网络实现网站的数据信息能够进行实时交互,保证网站数据的实时性。

随着Internet的进一步发展,静态Web站点的开发与维护变得越来越困难,一方面信息的不断增加和变化,使站点维护人员不得不经常修改他们的网页,特别是基于数据库驱动的Web站点更是如此,随着Internet上信息量的增多和交互性的加强使HTML显得越来越难以胜任。另一方面静态网页由于不能与浏览者进行有效交互,使人们感到越来越乏味,而不愿意再一次地进入同一站点。所以开发动态网页或动态内容成了越来越多的站点所追求目标。所谓动态内容是由每一个用户按照自己的需求发出请求而特殊制作的Web网页。

网络发展前景无限,及早与网络结合,与信息时代同步,与高科技汇合,定会给社会各行各业的发展注入新鲜的活力。站在网络时代的前夜,我们清晰地听到了网络时代的宣言:谁掌握了网络,谁就掌握了未来。

1.1 PHP简介:

PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。

PHP代表:超文本预处理器(PHP: HypertextPreprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.net)自由下载。PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC机器或Unix机器上安装PHP的资料可以在PHP官方站点上找到。安装过程很简单。

1.2 PHP的先进之处

应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP有那些优点:

学习过程

PHP的学习过程非常简单。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。

PHP的语法与C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了。

你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。

数据库连接

PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。

可扩展性

就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。

面向对象编程**

PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。

可伸缩性

传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。

更多特点

PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能!

1.3 MySQL数据库简介

MySQL数据库可以称得上是目前运行速度最快的SQL语言数据库。除了具有许多其它数据库所不具备的功能和选择之外,MySQL数据库是一种完全免费的产品,用户可以直接从网上下载数据库,用于个人或商业用途,而不必支付任何费用.

体来说,MySQL数据库具有以下主要特点:

  • 同时访问数据库的用户数量不受限制

  • 可以保存超过50,000,000条记录

  • 是目前市场上现有产品中运行速度最快的数据库系统

  • 用户权限设置简单、有效

如今,包括Siemens和Silicon Graphics这样的国际知名公司也开始把MySQL作为其数据库管理系统,这就更加证明了MySQL数据库的优越性能和广阔的市场发展前景。

1.4 PHP连接MySQL数据库

  1. $dbh =mysql_connect(\' \',\'您的用户名\',\'您的密码\'); (如果用域名无法联结,可以用LOCALHOST
  2. mysql_select_db(\'数据库名\');
  3. query =\"insert into requests(date, request, email, priority,status) values (NOW(),\'description\',\'email\', \'priority\',
  4. \'NEW\')\";
  5. res =mysql_query(query, $dbh);
  6. $query =\"select max(id) from requests\";
  7. res =mysql_query(query, $dbh);
  8. $err =mysql_error();
  9. if($err){
  10. echo \
  11. }
  12. row =mysql_fetch_row(res);
  13. echo \"未来您使用的号码为: \".$row[0];
  14. ?>

1.4 Apache简介

Apache是根据NCSA的服务器发展而来的,NCSA是最早出现的Web服务器程序之一,由伊利诺斯大学Urbana-Champaign分校的美国国家超级计算应用中心开发。在发展初期,Apache主要是一个基于UNIX系统的服务器,它的宗旨就是建成一个基于UNIX系统的、功能更强、效率更高并且速度更快的WWW服务器,这就决定了它是从其他的服务器演变而来的,并且添加了大量补丁来增强它在某一方面的性能,所以它就被命名为“APAtCHy Server(一个补丁组成的服务器)”。**

1.5 Linux简介

简单地说,Linux是一套免费使用和自由传播的类Unix操作系统,它主要用于基于Intel x86系列CPU的计算机上。这个系统是由世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。

第二章 需求分析

需求分析大致可分为三步来完成,即需求信息的收集、分析整理和评审通过。

2.1 需求信息的收集

公共课平时成绩查询系统要涉及到平时成绩的信息、老师和学生的基本信息和租借过程中的具体操作。

平时成绩的基本信息:平时成绩的组成(考勤成绩和网上作业成绩)、详细信息(出勤次数、缺勤次数、网上作业提交情况、作业成绩情况)

老师和学生的基本信息:教师编号、所教专业、年级、学号、专业等。

基本操作信息:查询

2.2 分析整理

2.2.1调查的目的

首先,要了解平时成绩查询工作的工作流程。其次,要确定设计的目标,大致管理流程和任务范围划分。

因此,平时成绩查询系统主要是通过对现在实际教学中成绩查询工作的调查、研究,并且通过和老师同学的交流来完善的。

2.2.2调查的内容

了解公共课平时成绩查询系统的作用、现状、存在的问题,及是否适应计算机管理。

2.2.3 调查方式

通过对老师和同学的访问、交谈可获得成绩查询的需求,以及成绩查询的管理目标。
并且,还可通过具体的查询工作对查询有一个更深的了解。

2.3评审通过

2.3.1 任务概述

目标将老师和同学共同操作的成绩查询工作转为老师和同学跟计算机系统共同完成操作,提高成绩查询效率,节省查询时间,降低人的工作强度。

2.3.2 数据描述

数据库描述

数据库作为公共课平时成绩查询系统的基础之一,主要是完成对平时成绩数据的存储,并且通过计算机来快速的查询成绩,辅助教师和学生快速准确的完成成绩的查询工作。

数据采集

基础数据从网站的另外两个系统(考勤系统和网上作业系统)取得。

2.3.3 功能需求

公共课平时成绩查询系统主要实现对公共课平时成绩的查询功能,教师能察看所教专业的全体学生的成绩,一般学生能查看自己的平时成绩。并通过扩展功能是教师和同学都可以查看平时成绩的详细情况。例如考勤的详细情况和网上作业的详细情况。

2.3.4 运行要求

正常使用时不应出错,若运行时遇到不可恢复的系统错误,也必须保证数据完好无损,对数据的精确度、时间特性、适应性等都有一定要求,要求系统运行时能够保证正确性、可靠性、高效性、完整性、易使用性、可维护性、可测试性、复用性、安全保密性、可移植性、互联性。

第三章 总体设计

在确定了软件需求和进行可行性研究之后,就进入了开发阶段。系统的主要功能与性能指标有了明确的标准,下面详细介绍总体设计的内容。

3.1 系统组成

本系统的主要功能是实现查询功能,所以主要模块就一个,查询模块。
下面是系统的模块图:
教师查询

学生查询

查询模块的主要功能:实现教师和学生对公共课平时成绩的查询,并且实现查看平时成绩的详细情况。例如考勤情况、网上作业情况。

3.2 系统数据库的设计

系统数据库名称:成绩管理数据库

此系统所需要的数据库表有2个,所有表的结构列举如下:

学生考勤信息表

字段名 中文含意 类型
num 学号 Char(10)
name 姓名 Varchar(20)
pro 专业代码 Varchar(20)
Pre_times 出勤次数 Varchar(2)
Absent_times 缺勤次数 Varchar(2)
scores 分数 Int
主键 学号

教师发布作业成绩表

字段名 中文含意 类型
chengjiID 成绩编号 Char(20)
teachID 教师姓名 Varchar(20)
xuehao 学号 Char(10)
proID 专业代码 Varchar(20)
filetitle 作业标题 Varchar(100)
fenshu 网上作业分数 Int(2)
useID 用户编号 Char(10)
主键 成绩编号

提交作业表

字段名称 中文含意 数据类型
xinxiID 作业编号 Smllint(5)
xuehao 学号 Char(10)
name 姓名 Varchar(20)
nianji 年级 Varchar(20)
proID 专业代码 Varchar(20)
tijiaodate 提交作业时间 date
zuoyeAddr 作业地址 Varchar(30)
piyue 批阅 Varchar(100)
filetitle 作业标题 Varchar(100)
主键 作业编号

上传作业表

字段名 中文含意 数据类型
UseID 用户编号 Char(10)
Filetitle 作业标题 Varchar(100)
Filetyle 作业类型 varchar(10)
Fabuduixiang 发布对象 varchar(20)
fabudate 发布日期 date
jiezhiDate 作业截止日期 date
faburen 发布人 Char(10)
beizhu 备注 vatchar(100)
主键 作业标题

以上各表之间的关系如下:

第四章 详细设计

本系统的主要功能是实现公共课平时成绩的查询功能,它又分为教师对所教专业全体学生的查询和每个学生对自己个人平时成绩的查询。查询的结果除了要求能看到平时成绩总的分数外,还要求可以查看每个学生平时成绩的详细情况。因为每个人的平时成绩是由考勤成绩和网上作业成绩组成的,所以在详细情况中需要考勤情况和网上作业情况。

4.1 教师查询

本系统是计算机希网站中的一个子系统,所以它是和别的系统有联系的。比如用户登陆系统。当教师登陆后,点击成绩查询就会进入教师查询界面,如下:

每个教师所教的所有专业会在下拉列表中出现,教师在下拉列表中选择想要查询的专业后,再点击查询按钮后就可以查看出全体学生的平时成绩。

  1. 请选择专业:</p>
  2. <form name="form1" method="post" action="teacher_chaxun_answer.php">
  3. <select name="select" size="1">
  4. <option value="计算机系">计算机系</option>
  5. <option value="数学系">数学系</option>
  6. <option value="电子系">电子系</option>
  7. </select>
  8. <input type="submit" name="Submit" value="查询">
  9. </form>
  10. <p>&nbsp;

在form中输入action=”teacher_chaxun_answer.php”实现查询按钮的功能。teacher_chaxun_answer.php是全体学生平时成绩页面的名称。这样在下拉列表中选择所要查询的专业后,然后点击查询按钮后就能进人全体学生平时成绩的界面。
下面介绍全体学生的平时成绩界面:

在全体学生平时成绩界面调用调用SQL语句从数据库中取出要显示的数据放入数据集,然后绑定数据集,这时我们就可以从数据集中取出我们想要的自断了。

有时我们并不会将所有的数据都记录在同一个数据表中,而会依每种数据内容的特性,将它分别记录在不同的数据表中。但是有时我们在分析某些数据时,却必须同时使用到这两个不同的数据表来处理,有什么办法可以将它们结合在一起呢?在SQL语法中若是要结合一个以上的数据表,必须在这些数据表中拥有一个相同的字段,即可以使用这个字段的纪录将不同的数据表关联起来,语法如下:

  1. SELECT<数据表名称.字段>,<数据表名称.字段>,…….
  2. FROM<数据表名称1>INNER JOIN<数据表名称2 >
  3. ON<数据表名称1.字段名称>=<数据表名称2.字段>

进入这个页面要显示学生的学号、姓名、专业、网上作业分数、考勤分数和总分。这些字段从两张表中取得,一个是考勤信息表,另一个是教师发布作业表。这两个表都有学号这个字段,所以通过学号字段将两个表连接起来,连接情况如下:

所使用的MySQL语句如下:

  1. SELECT teacher_fbchengji.suozaiXi, teacher_fbchengji.xuehao, teacher_fbchengji.fenshu, statistic.name, statistic.scores FROM teacher_fbchengji, statistic WHERE teacher_fbchengji.suozaiXi = '%s' AND teacher_fbchengji.xuehao = statistic.num ORDER BY teacher_fbchengji.xuehao ASC"

以目前的设定若是预览,只会读出数据库中的第一笔数据。如果要显示数据库中的所有数据,我加入了以下代码:

  1. <?php do { ?>
  2. <tr>
  3. <td height="30"><a href="teacher_chaxun_detail.php?recordID=<?php echo $row_Recordset1['xuehao']; ?>"><?php echo $row_Recordset1['xuehao']; ?></a></td>
  4. <td><?php echo $row_Recordset1['suozaiXi']; ?> &nbsp; </a> </td>
  5. <td><?php echo $row_Recordset1['name']; ?></td>
  6. <td><?php echo $row_Recordset1['fenshu']; ?>&nbsp; </td>
  7. <td><?php echo $row_Recordset1['scores']; ?></td>
  8. <td><?php echo $row_Recordset1['fenshu']+$row_Recordset1['scores']; ?>&nbsp; </td>
  9. </tr>
  10. <?php } while ($row_Recordset1 = mysql_fetch_assoc($Recordset1)); ?>

mysql_fetch_assoc函数的功能是从结果集中取得一行作为关联数组。

要看每个学生成绩的详细情况,我设计的是点击每个学生的学号进入详细界面,然后可以看到学生成绩的详细情况。实现这个功能的代码如下:

  1. recordID=<?php echo $row_Recordset1['xuehao'];

点击学生的学号可以查看每个学生成绩的详细情况。详细界面如下:

进入这个页面要显示学生的学号、姓名、专业、出勤次数、缺勤次数、作业明、作业分数。这些字段都不在一个表中,得从两个表中获得,这两个表的连接如下:

所使用的SQL语句如下:

  1. SELECT * FROM statistic, teacher_fbchengji WHERE num = '%s' AND teacher_fbchengji.xuehao = '%s
  1. <td><?php echo $row_Recordset2['num']; ?></td>
  2. <td><?php echo $row_Recordset2['name']; ?></td>
  3. <td><?php echo $row_Recordset2['pro']; ?></td>
  4. <td><?php echo $row_Recordset2['pre_times']; ?></td>
  5. <td><?php echo $row_Recordset2['absen_times']; ?></td>
  6. <td><?php echo $row_Recordset2['scores']; ?></td>
  7. <td><?php echo $row_Recordset2['teacherName']; ?></td>
  8. <td><?php echo $row_Recordset2['fileTitle']; ?></td>
  9. <td><?php echo $row_Recordset2['fenshu']; ?></td>

在这个界面调用SQL语句从数据库中取出要显示的数据放入数据集,然后绑定数据集,在HTML中加入以上代码,在表格中加入要显示的字段。

4.2 学生查询

当学生用自己的用户名和密码登陆后,点击成绩查询,就会进入成绩查询界面。

在HTML中加入以上语句实现实现查询并跳转到平时成绩界面。

在这个页面的表格中需要显示学生的学号、姓名、考勤分数、网上作业分数和平时总分数。

与教师的全体学生成绩页面一样,只不过学生的页只显示自己的一个人的记录就可以了,所以不用设置重复选区。其他的和教师的一样,也需要将两个表连接起来,然后从两个表中获取所要的数据。

所使用的SQL语句如下:

  1. SELECT teacher_fbchengji.suozaiXi, teacher_fbchengji.xuehao, teacher_fbchengji.fenshu, statistic.name, statistic.scores FROM teacher_fbchengji, statistic WHERE teacher_fbchengji.suozaiXi = '%s' AND teacher_fbchengji.xuehao = statistic.num ORDER BY teacher_fbchengji.xuehao ASC"

然后点击学号进入详细界面:

加入下面的代码使所有字段都显示出来。

  1. <td><?php echo $row_Recordset2['num']; ?></td>
  2. <td><?php echo $row_Recordset2['name']; ?></td>
  3. <td><?php echo $row_Recordset2['pro']; ?></td>
  4. <td><?php echo $row_Recordset2['pre_times']; ?></td>
  5. <td><?php echo $row_Recordset2['absen_times']; ?></td>
  6. <td><?php echo $row_Recordset2['scores']; ?></td>
  7. <td><?php echo $row_Recordset2['fileTitle']; ?></td>
  8. <td>&nbsp;</td>
  9. <td><?php echo $row_Recordset2['fenshu']; ?></td>

第五章 测试报告

软件测试在开发过程中是一个不可缺少的部分,因为在开发软件系统的漫长过程中,面对着极其错综复杂的问题,人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺。因此,在软件生命周期的各个阶段都不可避免地产生差错;但是,经验表明审查并不能发现所有差错,此外在编码过程中还不可避免地会引入新的错误。如果在软件投入生产性运行之前,没有发现并纠正软件中的大部分差错,则这些差错迟早会在生产过程中暴露出来,那时不仅改正这些错误的代价更高,而且往往会造成很恶劣的后果.测试的目的就是在软件投入生产运行之前,尽可能多地发现并纠正软件中的错误。基于上述的原因,我在编码过程中进行了模块测试,编码结束后又进行了系统测试和验收测试。下面一一讲述测试方案测试过程以及测试结果:

  • 测试方案:采用了白盒测试(又称结构测试),即按照程序内部的逻辑结构,检验程序中的每条通路是否都能按预定要求正常工作

  • 测试过程:主要检验各个模块之间的接口.每个被调用模块是否正确接收参数.每个调用模块是否能调用每个自己想要调用的模块

  • 测试结果:测试结果表明,每个模块之间的接口都吻和.既被调用模块都能正确接收参数,调用模块能调用自己想要调用的每个模块

系统测试和验收

  • 测试方案:采用了黑盒测试(又称功能测试),即检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且保持外部信息的完整性

  • 测试过程:主要检验是否能正确实现每个功能.每个功能是否能按照规格说明书的要求正常使用。数据库的记录是否符合要求

上传的附件 cloud_download 公共课平时成绩查询系统PHP.zip ( 976.13kb, 51次下载 )
error_outline 下载需要15点积分

发送私信

只愿岁月静好,别无所求

26
文章数
15
评论数
最近文章
eject