基于 PHP + MySQL学生信息管理系统【100010766】
学生信息管理系统
一、引言
1.1 1 设计开发的意义
学生信息档案的管理对于学校的管理者来说至关重要。作为计算机应用的一部分,使用计算机对学生档案进行管理,有着手工管理所无法比拟的优点。这些优点能够极大地提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要条件,更是各个高等院校与世界接轨的重要条件。系统针对学校学生信息的特点以及管理中实际需要而设计,能够有效地实现学生信息管理的信息化,减轻管理人员的工作负担,高效率、规范化地管理大量的学生信息,并避免人为操作的错误和不规范行为。通过学生管理系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量。毋庸置疑,切实有效地把计算机管理引入学校教务管理中,对于促进学校管理制度,提高学校教学质量与办学水平有着显著意义。
1.2 2 所设计应用系统的任务及目标
学生信息管理传统的手工管理主要包括学生档案管理,学生成绩管理。其中学生信息管理对大数据量要求较高,而教师排课系统由于需要十分专业的算法并且系统需求不断的变化,因此在实际应用时,往往会遇到很大的问题,需要进一步研究,目前一般的学校管理系统都包含了学生信息管理的功能。本系统不包含教师排课管理和教师管理的详细业务,只提供学生相关信息的查询。本系统以学校的学生信息管理为依托,结合教务教学管理,设计并开发一个学生信息管理系统,提供一个信息更新快捷、管理方便、功能设置合理的学生信息管理解决方案。针对学校大量的学生信息,就学生管理的几个方面,提供一个互动式的学生管理平台。系统目标如下:
通过学生信息管理系统的实现,使学校的学生信息管理更加科学化。
提供灵活、方便的操作。
节约学生信息管理的成本,提高学校管理的效率。
对系统提供必要的权限管理。
为学校考核学生的综合素质提供必要的数据支持。
1.3 3 设计开发及运行的软硬件环境
操作系统:Windows 7
数据库软件:MySQL
开发语言:PHP
开发 IDE:Zend Studio 10.1.0
二、系统分析与设计
2.1 1 系统需求分析
2.2 系统的目标任务
学生基本信息的增删改查,包括学生姓名、学号,出生日期,性别,电话,电子邮箱,地址,专业。
学生成绩信息的增删改查,包括数据结构,高等数学,计算机结构,大学英语,数据库设计。
对于新用户的登录注册,其中包括用户名,密码,以及用户的邮箱。
用户根据自己注册时的邮箱进行找回密码,以及根据用户名修改密码。
2.3 2 数据流图:
2.3.1 顶层数据流图
输出数据流和输入数据流为系统的输入数据和输出数据,表明系统的范围,以及与外部环境的数据交换关系。
2.3.2 数据字典:
数据字典可以用来对数据流图中的各部分进行定义,为系统的分析,设计及以后的实现提供有关元素一致性定义和详细的描述。
名字: 学生姓名;别名:name;描述:唯一学生姓名;定义:姓名=1{varchar}4 | 名字:学号;别名:stuNum;描述:标识每一个学生;定义:学号=1{char}8 |
---|---|
名字:出生日期;别名:age;描述:学生的年龄;定义:出生日期=1{char}32 | 名字:性别;别名:sex;描述:学生的性别;定义:性别=1{char}4 |
名字:电话;别名:phone;描述:描述学生的联系方式;定义:电话={varchar}11 | 名字:电子邮箱;别名:email;描述:描述学生的电子邮箱;定义:电子邮箱={char}64 |
名字:地址;别名:address;描述:学生住址;定义:地址={char}128 | 名字:专业;别名:major;描述:标识学生所在的专业;定义:专业=1{char}128 |
名字:数据结构;别名:shuju;描述: 数据结构课程成绩;定义: 数据结构=1{tinyint}4 | 名字:高等数学;别名:math;描述: 高等数学课程成绩;定义: 高等数学=1{tinyint}4 |
名字:计算机结构;别名:computer;描述: 计算机结构课程成绩;定义: 计算机结构=1{tinyint}4 | 名字:大学英语;别名:engish;描述: 大学英语课程成绩;定义: 大学英语=1{tinyint}4 |
名字:数据库设计;别名:db;描述: 数据库设计课程成绩;定义: 数据库设计=1{tinyint}4 |
2.4 数据库概念结构设计
2.4.1 实体之间的 E-R 图
2.4.2 用户实体 E-R 图:
2.4.3 学生信息实体 E-R 图
2.4.4 学生成绩信息 E-R 图
2.5 4 数据库逻辑结构设计
2.5.1 根据以上 E-R 图,可以转换成如下逻辑结构:
学生表(姓名,学号,出生日期,性别,电话,电子邮箱,地址,专业)
成绩表(学号,数据结构,高等数学,计算机结构,大学英语,数据库设计)
学生表:
字段名 | 数据类型 | 字段长度 | 是否为空 |
---|---|---|---|
姓名 | Int | 4 | 否 |
学号 | Varchar | 8 | 否 |
出生日期 | Varchar | 32 | 否 |
性别 | Char | 4 | 否 |
电话 | Varchar | 11 | 否 |
电子邮箱 | Char | 64 | 否 |
地址 | Char | 128 | 否 |
专业 | char | 128 | 否 |
2.5.2 数据库物理结构设计
学生基本信息表:
CREATE TABLE `student` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(4) NOT NULL DEFAULT '',
`stuNum` char(8) NOT NULL DEFAULT '',
`age` char(32) DEFAULT NULL,
`sex` char(4) DEFAULT NULL,
`phone` varchar(11) NOT NULL DEFAULT '',
`email` char(64) NOT NULL DEFAULT '',
`address` char(128) NOT NULL DEFAULT '',
`major` char(128) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
2.6 5 数据库创建(创建表的界面、创建外码的界面)
2.7 6 系统总体结构设计(给出系统总体结构图)
系统层次框图:
三、系统开发及实现
3.1 论述设计开发采用的技术及设计效果
1 用户注册模块:
新用户输入用户名和密码邮箱进行注册。其中两次密码必须输入一致。
学生信息浏览模块
该模块可以对学生的基本信息进行浏览,修改,或者删除
学生信息录入模块
四、总结
数据库课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。理论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
通过这次数据库课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
五、参考文献
周佩德 《数据库原理及应用》 电子工业出版社
王要武 管理系统 电子工业出版社 2003
Web 程序设计(第 6 版) 清华大学出版社
周之英 现代软件工程 科学出版社 2003
UML 面向对象建模与设计 人民邮电出版社
六、附录(附部分源代码)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html;charset=utf-8"/></head>
<style type="text/css">
body{background-color:#ececec;}
.main{position:absolute;top:40px;left:450px;font:white;}
</style>
<body>
<div class="main">
<h1>登录系统</h1>
<form action="loginProcess.php" method="post">
用户名<input type="text" name="username">
<p>密  码<input type="password" name="password"></p>
验证码<input type="text" name="checkCode" size="5"/>
<img src="checkCode.php" οnclick="this.src='checkCode.php?aa='+Math.random()" title="看不清,换一张" style="cursor:pointer"/><br/>
<p><input type="submit" name="submit" value="登录"></p>
</form>
<a href="forgot.php">忘了密码?</a>
<a href="SignUp.php">注册新用户</a>
</body>
</html>
<?php
//接收errno
require_once 'cookie.php';
if(!empty($_GET['errno'])){
//接收错误编号
$errno=$_GET['errno'];
if($errno==1){
echo "<br/><font color='red' size='3'>你的用户名或者密码错误</font>";
}elseif($errno==2){
echo "<br/><font color='red' size='3'>验证码错误</font>";
}
}
?>
</div>
<html>
<head>
<title>用户注册</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<script src="js/log_in.js"></script>
</head>
<body style='background-color:yellow'>
<form action="log_inProcess.php" method="post" id="logForm">
<h1>新用户注册</h1><br>
<table width="400" border="0">
<tr>
<td align="center">用户名</td>
<td><input name="username" type="text" size="20" id="username"></td>
</tr>
<tr>
<td align="center">密码</td>
<td><input type="password" name="password" size="20" id="password"></td>
</tr>
<tr>
<td align="center">确认密码</td>
<td><input type="password" name="Confirm_password" id="Confirm_password" size="20"></td>
</tr>
<tr>
<td align="center">Email</td>
<td><input type="text" name="email" id="email" size="20"></input></td>
</tr>
</table>
<input type="button" οnclick="validate()" style="cursor:pointer" value="注册"></input><br>
</form>
如果您已经有账号,请点击这里登陆
</body>
</html>
<body style='background-color:#ccc'>
<?php
header("Content-type:text/html;charset=utf-8");
require_once 'cookie.php';
require_once 'SqlHelper.class.php';
session_start();
if(!isset($_SESSION['username'])) {
header("Location:index.php");
exit();
}
if(!empty($_GET['username'])) {
echo "登录成功!!";
echo "欢迎你".$_SESSION['username'].".</br>";
getLastTime();
}
?>
<hr/>
<script src="js/jquery.1.4.2-min.js" type="text/javascript"></script>
<script src="js/studentAdd.js"></script>
<script type="text/javascript" >
$(document).ready(function() {
$(".left ul li").click(function() {
var index = $(this).index();
$(this).addClass("selected").siblings().removeClass("selected");
$(".right div").eq(index).show().siblings().hide();
});
});
</script>
<link rel="stylesheet" href="css/main.css">
<div class="left">
<ul>
<li>首页</li>
<li>学生基本信息</li>
<li>增加学生</li>
<li>学生成绩登记</li>
<li>成绩显示</li>
<li><a href="index.php" style="text-decoration:none;color:black;">退出系统</a></li>
</ul>
</div>
<div class="right">
<div>欢迎进入学生管理系统</div>
<div class="hide">
<?php
$sqlhelper = new SqlHelper();
$sql = "select * from student";
$res = $sqlhelper->execute_dql2($sql);
echo "<table border=1 width=100% cellpadding=2 cellspacing=0 >";
echo "<tr><td align='center'>姓名</td><td align='center'>学号</td><td align='center'>出生日期</td><td align='center'>性别</td><td align='center'>电话</td><td align='center'>电子邮箱</td><td align='center'>地址</td><td align='center'>专业</td><td></td><td></td></tr>";
while($row = mysql_fetch_assoc($res)) {
echo "<tr><td align='center'>{$row['name']}</td><td align='center'>{$row['stuNum']}</td><td align='center'>{$row['age']}</td><td align='center'>{$row['sex']}</td><td align='center'>{$row['phone']}</td><td align='center'>{$row['email']}</td><td align='center'>{$row['address']}</td><td align='center'>{$row['major']}</td><td align='center'><a href='studentUpdate.php?id={$row['id']}'>修改</a></td><td align='center'><a href='studentDel.php?id={$row['id']}'>删除</a></td></tr>";
}
echo "</table>";
?>
</div>
<div class="hide">
<form action="stuProcess.php" method="post" id="stuForm">
<h1>学生信息录入</h1><br>
<table width="400" border="0">
<tr>
<td align="center">姓名</td>
<td><input name="name" type="text" size="40" id="name"></td>
</tr>
<tr>
<td align="center">学号</td>
<td><input type="text" name="stuNum" size="40" id="stuNum"></td>
</tr>
<tr>
<td align="center">性别</td>
<td>男<input type="radio" name='sex' value='男' checked> 女<input type="radio" name='sex' value="女" ></td>
</tr>
<tr>
<td align="center">出生年月</td>
<td><input type="text" name="age" id="age" size="40"></input></td>
</tr>
<tr>
<td align="center">电话</td>
<td><input type="text" name="phone" id="phone" size="40"></input></td>
</tr>
<tr>
<td align="center">email</td>
<td><input type="email" name="email" id="email" size="40"></input></td>
</tr>
<tr>
<td align="center">地址</td>
<td><input type="text" name="address" id="address" size="40"></input></td>
</tr>
<tr>
<td align="center">专业</td>
<td><input type="text" name="major" id="major" size="40"></input></td>
</tr>
</table>
<input type="button" οnclick="studentvalidate()" style="cursor:pointer" value="提交"></input><br>
</form>
</div>
<div class="hide">
<form action="gradeProcess.php" method="post" id="gradeForm">
<h1>学生成绩登记</h1><br>
<table width="400" border="0">
<tr>
<td align="center">学号</td>
<td><input type="text" name="stuNum" size="40" id="gradeNum"></td>
</tr>
<tr>
<td align="center">数据结构</td>
<td><input type="text" name="shuju" id="shuju" size="40"></input></td>
</tr>
<tr>
<td align="center">高等数学</td>
<td><input type="text" name="math" id="math" size="40"></input></td>
</tr>
<tr>
<td align="center">计算机结构</td>
<td><input type="email" name="computer" id="computer" size="40"></input></td>
</tr>
<tr>
<td align="center">大学英语</td>
<td><input type="text" name="english" id="english" size="40"></input></td>
</tr>
<tr>
<td align="center">数据库设计</td>
<td><input type="text" name="database" id="database" size="40"></input></td>
</tr>
</table>
<input type="button" οnclick="gradevalidate()" style="cursor:pointer" value="提交"></input><br>
</form>
</div>
<div class="hide">
<?php
$grade = new SqlHelper();
$sql1 = "select s.name,g.* from student s,grade g where s.stuNum=g.stuNum";
$res1 = $grade->execute_dql2($sql1);
echo "<table border=1 width=100% cellpadding=0 cellspacing=0 >";
echo "<tr><td align='center'>姓名</td><td align='center'>学号</td><td align='center'>数据结构</td><td align='center'>高等数学</td><td align='center'>计算机结构</td><td align='center'>大学英语</td><td align='center'>数据库设计</td></tr>";
while($row = mysql_fetch_assoc($res1)) {
echo "<tr><td align='center'>{$row['name']}</td><td align='center'>{$row['stuNum']}</td><td align='center'>{$row['shuju']}</td><td align='center'>{$row['math']}</td><td align='center'>{$row['computer']}</td><td align='center'>{$row['engish']}</td><td align='center'>{$row['db']}</td></tr>";
}
echo "</table>";
?>
</div>
<div class="hide">退出系统</div>
</div>
<?php
require_once 'SqlHelper.class.php';
$id = $_GET['id'];
$stuDel = new SqlHelper();
$sql = "delete from student where id=$id";
$res = $stuDel->execute_dml($sql);
if($res) {
echo "删除成功!";
}
echo '<a href="manage.php?username=$username">返回</a>';
?>
<?php
require_once 'SqlHelper.class.php';
$name = $_POST['name'];
$stuNum = $_POST['stuNum'];
$sex = $_POST['sex'];
$age = $_POST['age'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$address = $_POST['address'];
$major = $_POST['major'];
$sql = "insert into student values (null,'$name','$stuNum','$age','$sex','$phone','$email','$address','$major')";
$stuAdd = new SqlHelper();
$res = $stuAdd->execute_dml($sql);
if($res==1) {
echo "添加成功";
} else {
echo "添加失败";
}
$stuAdd->close_connect();
session_start();
$username=$_SESSION['username'];
echo '<a href="manage.php?username=$username">返回</a>';
?>
<?php
require_once 'log_inService.class.php';
$username=$_POST['username'];
$password=$_POST['password'];
$email = $_POST['email'];
$log_inservice=new log_inService();
$res=$log_inservice->addMenber($username,$password,$email);
if($res==1) {
header("Location: ok.php");
exit();
} else {
header("Location: error.php");
exit();
}
$sqlhelper->close_connect();
?>
<?php
require_once 'SqlHelper.class.php';
class log_inService {
function addMenber($username,$password,$email) {
$sql="insert into user (username,password,email) values ('$username','$password','$email')";
$sqlhelper=new SqlHelper();
$res=$sqlhelper->execute_dml($sql);
$sqlhelper->close_connect();
return $res;
}
}
?>
<?php
require_once 'loginService.class.php';
$username=$_POST['username'];
$password=$_POST['password'];
//验证码
$checkCode=$_POST['checkCode'];
session_start();
if($checkCode!=$_SESSION['myCheckCode']) {
header("Location: index.php?errno=2");
exit();
}
$loginservice = new loginService();
if($username=$loginservice->checkAdmin($username,$password)) {
session_start();
$_SESSION['username']=$username;
header("Location:manage.php?username=$username");
exit();
} else {
header("Location:index.php?errno=1");
exit();
}
?>
♻️ 资源
大小: 49.0KB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87450269
注:如当前文章或代码侵犯了您的权益,请私信作者删除!
相关文章
- Mysql加锁过程详解(3)-关于mysql 幻读理解
- 11.PHP与MySQL
- mysql 内置函数大全 mysql内置函数大全
- MySQL + Laravel 中使用 GROUP BY 分组查询
- centos7环境下在线安装mysql
- MySQL无法启动报 Error: could not open single-table tablespace file ./mysql/innodb_table_sta
- PHP 错误与异常 笔记与总结(3)PHP 配置文件(php.ini)中与错误相关的选项 与 设置错误级别
- 《深入浅出MySQL:数据库开发、优化与管理维护(第2版)》一一1.5 小结
- 《PHP、MySQL和Apache入门经典(第5版)》一一2.4 在Mac OS X上安装MySQL
- 《PHP、MySQL和Apache入门经典(第5版)》一第2章 安装和配置MySQL2.1 MySQL的当前版本和未来版本
- 《PHP、MySQL和Apache入门经典(第5版)》一2.3 在Linux/UNIX上安装MySQL
- 《PHP、MySQL和Apache入门经典(第5版)》一2.7 基本安全规则
- 基于PHP+MySQL实现(Web)英语学习与测试平台【100010284】
- 基于Java+MySQL 实现(Web)日程管理系统【100010222】
- [mysql]MySQL数据库如何导出
- mySql 查询最大、最小值及子查询
- python操作mysql数据库系列-操作MySql数据库(二)
- php.ini中safe_mode开启之后对于PHP系统函数的影响
- MySQL中group_concat函数用法总结
- MySql利用case when实现批量更新多条记录的不同值实现方法
- PHP开发者常犯的10个MySQL错误
- kali启动apache和mysql服务