随着教育规模的不断壮大,信息变得越来越多。同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个B/S结构的学生选课管理系统来管理学校信息,会使管理工作系统化、规范化,也会提高学校形象,提高管理效率
PHP学生在线选课管理系统是一个典型的教务管理系统,它的出现可以帮助学生进行在线选课,可以让教务人员对学生的选课信息管理更加的方便灵活
管理人员是本系统内的最高权限用户,他登录之后可以对在线选课管理系统的所有功能进行管理。主要包括。
系统用户管理,管理学生在线选课系统的用户信息。
教师信息管理,管理本系统的内的教师用户信息,
学生信息管理,管理本系统内的学生用户信息。
课程信息管理,查看和管理课程相关信息。
学生选课成绩,查看学生选课之后的成绩内容。
教师用户管理
教师用户在登陆之后可以管理和查看自己的个人资料信息。可以发布和管理自己所任教的课程信息,方便学生进行选课。可以查看学生对自己发布课程的选课具体情况,并对学生成绩信息进行管理。
学生用户管理
学生用户在登录之后可以查看和管理自己的个人资料。可以查看教师用户发布的课程信息,并可进行在线选课以及查看自己的选课情况。此外,学生用户还可以查看自己的个人成绩信息。
作为选课管理系统,在系统中有学生信息和教师信息以及课程信息需要管理员分类管理。
(1)学生管理:管理员登录系统后可以添加学生,查询学生,修改学生,删除学生信息。
(2)教师管理:管理员登录系统后可以添加教师,查询教师,修改教师,删除教师信息。
(3)课程管理:管理员登录系统后可以登记新的课程信息,查询修改课程信息,删除课程信息.
(4)授课信息管理:管理员登录系统后可以分配课程由哪个老师教授。
(5)班级信息管理:管理员可以在系统其他功能运行前先把班级信息设置好。
(6)选课管理:学生登录系统后可以对课程进行选择。
(7)成绩管理:教师登录系统后,可以查询自己教授的课程并对学生的成绩打分。
(8)系统管理: 修改登录密码,关于系统说明
学生选课系统分为管理员,老师,和学生三个模块:
1.管理员包括:添加学生、老师、课程;
2. 老师可以查询自己的授课程信息以及输入所教学生的分数;
3.学生可以进行选课,查看及退选课程。
<?php
error_reporting(E_ALL ^ E_NOTICE);
$conn=@mysql_connect("localhost","root","root") or die("数据库链接失败".mysql_error());
mysql_select_db("daizu",$conn) or die("数据库链接失败".mysql_error());
mysql_query('set names utf8');
//设置时区
date_default_timezone_set('asia/shanghai');
define('SYS_ROOT', str_replace("\\", '/', dirname(__FILE__)));
define('File_ROOT', SYS_ROOT."/upload/");
define('IMG_ROOT', SYS_ROOT . "/upload/");
@extract($_POST);
@extract($_GET);
function getfirst($sql)
{
$res=mysql_query($sql);
$rows=mysql_fetch_array($res);
return $rows;
}
//
function getcount($sql){
$res=mysql_query($sql);
return mysql_num_rows($res);
}
function get_name($id,$table)
{
$sql="select * from $table where id='$id'";
$rows=getfirst($sql);
return $rows[name];
}
//遍历创建目录
function Remkdir($path) {
if (!file_exists($path)) {
Remkdir(dirname($path));
@mkdir($path, 0777);
}
}
//上传图片
function upload_image($inputname, $image=null, $type='upimages', $width=440) {
$n = time().rand(1000,9999).'.jpg';
$z = $_FILES[$inputname];
if ($z && strpos($z['type'], 'image')===0 && $z['error']==0) {
if (!$image) {
Remkdir( IMG_ROOT . '/' . "{$type}/" );
$image = "{$type}/{$n}";
$path = IMG_ROOT . '/' . $image;
} else {
Remkdir( dirname(IMG_ROOT .'/' .$image) );
$image = "{$type}/{$n}";
$path = IMG_ROOT . '/' .$image;
}
//echo $path ;
move_uploaded_file($z['tmp_name'], $path);
//echo $image;exit;
return $image;
}
return $image;
}
//获取文件后缀名
function get_extend($file_name)
{
$extend = pathinfo($file_name);
$extend = strtolower($extend["extension"]);
return $extend;
}
//文件上传实现
function upload_file($inputname, $file=null)
{
$year = date('Y'); $day = date('md');
$z = $_FILES[$inputname];
$file_ext=get_extend($z['name']);
$n = time().rand(1000,9999).".".$file_ext;
if ($z && $z['error']==0) {
if (!$file) {
Remkdir( File_ROOT . '/' . "{$day}" );
$file = "{$day}/{$n}";
$path = File_ROOT . '/' . $file;
} else {
Remkdir( File_ROOT . '/' . "{$day}" );
$file = "{$day}/{$n}";
$path = File_ROOT . '/' .$file;
}
//echo $path ;
move_uploaded_file($z['tmp_name'], $path);
//echo $file;exit;
return $file;
}
return $file;
}
//分页函数.
function get_pager($url, $param, $count, $page = 1, $size = 10)
{
$size = intval($size);
if($size < 1)$size = 10;
$page = intval($page);
if($page < 1)$page = 1;
$count = intval($count);
$page_count = $count > 0 ? intval(ceil($count / $size)) : 1;
if ($page > $page_count)$page = $page_count;
$page_prev = ($page > 1) ? $page - 1 : 1;
$page_next = ($page < $page_count) ? $page + 1 : $page_count;
$param_url = '?';
foreach ($param as $key => $value)$param_url .= $key . '=' . $value . '&';
$pager['url'] = $url;
$pager['start'] = ($page-1) * $size;
$pager['page'] = $page;
$pager['size'] = $size;
$pager['count'] = $count;
$pager['page_count'] = $page_count;
if($page_count <= '1')
{
$pager['first'] = $pager['prev'] = $pager['next'] = $pager['last'] = '';
}
else
{
if($page == $page_count)
{
$pager['first'] = $url . $param_url . 'page=1';
$pager['prev'] = $url . $param_url . 'page=' . $page_prev;
$pager['next'] = '';
$pager['last'] = '';
}
elseif($page_prev == '1' && $page == '1')
{
$pager['first'] = '';
$pager['prev'] = '';
$pager['next'] = $url . $param_url . 'page=' . $page_next;
$pager['last'] = $url . $param_url . 'page=' . $page_count;
}
else
{
$pager['first'] = $url . $param_url . 'page=1';
$pager['prev'] = $url . $param_url . 'page=' . $page_prev;
$pager['next'] = $url . $param_url . 'page=' . $page_next;
$pager['last'] = $url . $param_url . 'page=' . $page_count;
}
}
return $pager;
}
?>
论文从系统的研究意义,需求分析,总体设计,具体实现这几个角度对系统的开发过程进行介绍,重点针对需求分析和总体设计进行详细介绍,同时并对该系统所采用的开发工具及技术进行简单的介绍。
系统是利用php和mysql数据库开发的Web 应用程序。主要针对学生、老师、管理员三种不同用户的需求进行设计,最终实现毕业设计选题网上完成。系统使用起来操作简便快捷,具有管理员发布信息、管理用户、设置系统,学生选择课题、修改个人信息,教师添加课题、确定选题等基本功能。对减轻学生、老师负担,提高选题工作效率,都有显著效果。
关键字:教务管理;教务管理;php;选课;管理系统
目录:
第一章 引言 1
1.1 选题背景 1
1.2 系统功能概况 1
1.3 系统相关技术与环境简介 1
1.3.1 PHP 1
1.3.2 Apache 2
1.3.3 MySQL数据库 3
1.3.4 运行环境 Windows XP 3
1.3.5 WAMP5 3
1.3.6 Dreamweave8 3
1.3.7 EditPlus 4
第二章 需求分析 4
2.1 需求分析的基本任务 4
2.2 系统的性能需求 5
2.3 数据流程分析 5
2.4 系统运行环境 7
第三章 系统总体设计 7
3.1系统的总体框架 7
3.2 模块功能 8
3.2.2学生模块功能 9
3.1.2 管理员模块功能 10
3.2 数据库设计 11
3.2.1数据库概念结构设计 11
3.2.2数据库逻辑结构设计 13
第四章 详细设计 15
4.1 主页面设计 15
4.1.1 学生/教师/管理员登录功能设计 15
4.1.2 学生操作功能设计 17
4.2 管理员页面设计 19
4.3 教师界面设计 19
第五章系统运行测试 20
5.1 运行 20
5.2 测试 20
第六章 总 结 22
参考文献 22