目 录
摘 要 1
Abstract 2
1 系统概述 5
1.1 毕业设计目的 5
1.2 开发背景 5
1.3 开发环境 6
2 目的与任务 7
2.1 目的 7
2.2 任务 7
3 系统功能结构设计 9
3.1 登录功能 9
3.2 首页 9
3.3 社团信息功能 9
3.4 社团成员功能 9
3.5 社团活动功能 9
3.6 个人信息功能 10
3.7 职位信息功能 10
3.8 注销功能 10
4 系统数据库设计 11
4.1 E-R模型 11
4.2 数据库表结构 11
5 系统实现 14
5.1 index 14
5.1 Framework 14
5.2 View 14
5.3 Controller 18
5.4 Model 18
6系统测试与性能分析 19
6.1 测试计划 19
6.2 系统测试 19
6.2.1基础测试 19
6.2.2 社团管理测试 20
总 结 22
参考文献 24
致 谢 25
3 系统功能结构设计
3.1 登录功能
用户通过用户名和密码进入系统并获得相应的权限。系统采用自动注册功能,用户进入了某社团(该社团管理员将该用户信息录入系统)后,即可用学号登录,密码默认为学号(若有用户的身份证信息更好,可以设身份证后6位为默认密码),相应的,若用户信息未被录入系统,则该用户无法登录。现实中有可能出现用户参加了两个社团,在一个社团身份是主席,而另一个社团身份是会员,因此用户权限会根据操作的社团发生变化。
3.2 首页
首页仅显示所有社团的大致信息。
3.3 社团信息功能
社团信息功能包括对社团和部门的增加删除修改和查询。在社团信息页面可选择社团,除教师用户外,其他用户均只能选择自己参加的社团。显示所选择社团以及其所有部门的所有详细信息,具有权限的即可对相应信息进行增加删除修改。
3.4 社团成员功能
社团成员功能包括对成员的增加删除修改和查询。在社团成员页面选择社团和部门,除教师用户外,其他用户均只能选择自己参加的社团,而除教师、主席、副主席外,其他用户均只能选择自己参加的部门。显示所选择部门的所有成员的详细信息,具有权限即可对相应信息进行增加删除修改。
3.5 社团活动功能
社团活动功能包括对活动的增加删除修改和查询。在社团活动页面可选择社团,除教师用户外,其他用户均只能选择自己参加的社团。显示所选择社团的所有活动的大致信息,教师、主席、副主席、部长、副部长均可查看活动详细信息和添加活动。并在详细信息页面可对该活动进行修改和删除操作。
3.6 个人信息功能
个人信息功能包括对个人信息的修改以及修改密码操作。在个人信息页面可显示所参加的社团部门的大致信息,以及在社团内的个人信息。考虑到若一个人参加了多个社团多个部门,那么在录入信息的时候可能会有冲突,因此设置每个部门录入的信息互不干扰,即成员表中,以(用户学号,部门id)为主键。因此在个人信息页面中,显示了所有参加的部门中的个人信息。
3.7 职位信息功能
职位信息仅教师用户进入,用于管理各职位的权限等级。权限值越低等级越高:教师-0、主席-2、副主席-4、部长-6、副部长-8、会员-10、干事-10。目的是为了方便日后添加新的职位。
3.8 注销功能
注销当前账号以登录其他账号。

<?php
/**
 * User: Leammin
 * Date: 2016/12/11
 */
$p = !empty($_GET['p']) ? $_GET['p'] : "front";//确定使用哪个平台,默认front
$c = !empty($_GET['c']) ? $_GET['c'] : "Login";//确定使用哪个控制器,默认Login
$a = !empty($_GET['a']) ? $_GET['a'] : "login";

define("PLAT", $p);
define("DS", DIRECTORY_SEPARATOR);//DIRECTORY_SEPARA TOR表示“目录分隔符”,
define("ROOT", __DIR__ . DS);	//index.php目录:
define("APP", ROOT . 'Application' . DS);	//Application的完整路径
define("FRAMEWORK", ROOT . 'Framework' . DS);	//框架基础类所在路径
define("PLAT_PATH", APP . PLAT . DS);	//当前平台所在目录
define("CTRL_PATH", PLAT_PATH . "Controller" . DS);//当前控制器所在目录
define("MODEL_PATH", PLAT_PATH . "Model" . DS);//当前模型所在目录
define("VIEW_PATH", PLAT_PATH . "View" . DS);//当前视图所在目录
/*
echo PLAT."<br />";
echo DS."<br />";
echo ROOT."<br />";
echo APP."<br />";
echo FRAMEWORK."<br />";
echo PLAT_PATH."<br />";
echo CTRL_PATH."<br />";
echo MODEL_PATH."<br />";
echo VIEW_PATH."<br />";
*/
/*
 * PLAT=front
 * DS=\
 * ROOT=F:\Programming\web\com\commllm\
 * APP=F:\Programming\web\com\commllm\Application\
 * FRAMEWORK=F:\Programming\web\com\commllm\Framework\
 * PLAT_PATH=F:\Programming\web\com\commllm\Application\front\
 * CTRL_PATH=F:\Programming\web\com\commllm\Application\front\Controller\
 * MODEL_PATH=F:\Programming\web\com\commllm\Application\front\Model\
 * VIEW_PATH=F:\Programming\web\com\commllm\Application\front\View\
*/
function __autoload($class){
    $base_class = array('TableFactory','BaseModel','ModelFactory','BaseController');
    if(in_array( $class, $base_class)) {
        require FRAMEWORK . $class . '.class.php';	//加载基础模型类
    }
    else if(substr($class, -5) == "Model") {//所需要的类的名字最后5个字符是"Model”时
        require  MODEL_PATH  .  $class  . ".class.php";
    }
    else if( substr($class, -10) == "Controller"){//所需要的类的名字最后10个字符是"Controller”时
        require  CTRL_PATH  .  $class  . ".class.php";
    }
}

/*
echo "<pre>";
$test = ModelFactory::mf('ActiModel');
$result = $test->getActiByid('1');
echo "<pre>";
if ($result === false) {
    echo "<br />";
    $e = $test->getErrorInfo();
    echo "$e[2]";
    echo "<br />";
}
var_dump($result);
echo "</pre>";
#*/
/*
$config = array(
    'host' => "localhost",
    'port' => 3306,
    'user' => "root",
    'pass' => "root",
    'charset' => "utf8",
    'dbname' => "asso_db"
);
$dsn = "mysql:host=$config[host]; port=$config[port]; dbname=$config[dbname]";
$opt = array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names " . $config['charset']);
$pdo = new PDO($dsn, $config['user'], $config['pass'], $opt);

$stmt = $pdo->query("select * from asso_info where asso_id = '10'");
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
echo "<pre>";
if ($result === false) {
    echo "<br />";
    $e = $pdo->errorInfo();
    echo "$e[2]";
    echo "<br />";
}
if ($stmt === false) {
    echo "<br />";
    $e = $pdo->errorInfo();
    echo "$e[2]";
    echo "<br />";
}
var_dump($stmt);
echo "<br />";
var_dump($result);
echo "</pre>";
#*/
/*
$membTable = TableFactory::membTable('123456789012','2','test','会员');
$test = ModelFactory::mf("MembModel");
$result = $test->insertMemb($membTable);
echo "<pre>";
if ($result === false) {
    echo "<br />";
    $e = $test->getErrorInfo();
    echo "$e[2]";
    echo "<br />";
}
var_dump($result);
echo "</pre>";
#*/
//*
session_start();
if (!isset($_SESSION['admin'])) {
    $p = "front";
    $c = "Login";
    if ($a!='check') {
        $a = 'login';
    }
}

$ctrl_name = $c . "Controller";		//构建控制器的类名
$ctrl = new  $ctrl_name ();	//可变类
$action = $a . "Action";
$ctrl->$action();
#*/
//开启session

MYSQL学生社团管理系统 社团数据库管理系统_MYSQL学生社团管理系统


MYSQL学生社团管理系统 社团数据库管理系统_社团管理系统_02


MYSQL学生社团管理系统 社团数据库管理系统_社团管理系统_03


MYSQL学生社团管理系统 社团数据库管理系统_源码_04


MYSQL学生社团管理系统 社团数据库管理系统_php_05


MYSQL学生社团管理系统 社团数据库管理系统_MYSQL学生社团管理系统_06


MYSQL学生社团管理系统 社团数据库管理系统_MYSQL学生社团管理系统_07


MYSQL学生社团管理系统 社团数据库管理系统_源码_08


MYSQL学生社团管理系统 社团数据库管理系统_mysql_09


MYSQL学生社团管理系统 社团数据库管理系统_MYSQL学生社团管理系统_10


MYSQL学生社团管理系统 社团数据库管理系统_MYSQL学生社团管理系统_11


MYSQL学生社团管理系统 社团数据库管理系统_mysql_12


MYSQL学生社团管理系统 社团数据库管理系统_社团管理系统_13


MYSQL学生社团管理系统 社团数据库管理系统_社团管理系统_14


MYSQL学生社团管理系统 社团数据库管理系统_php_15