目 录
摘 要 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 注销功能
注销当前账号以登录其他账号。
";
echo DS."
";
echo ROOT."
";
echo APP."
";
echo FRAMEWORK."
";
echo PLAT_PATH."
";
echo CTRL_PATH."
";
echo MODEL_PATH."
";
echo VIEW_PATH."
";
*/
/*
* 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 "";
$test = ModelFactory::mf('ActiModel');
$result = $test->getActiByid('1');
echo "";
if ($result === false) {
echo "
";
$e = $test->getErrorInfo();
echo "$e[2]";
echo "
";
}
var_dump($result);
echo "";
#*/
/*
$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 "";
if ($result === false) {
echo "
";
$e = $pdo->errorInfo();
echo "$e[2]";
echo "
";
}
if ($stmt === false) {
echo "
";
$e = $pdo->errorInfo();
echo "$e[2]";
echo "
";
}
var_dump($stmt);
echo "
";
var_dump($result);
echo "";
#*/
/*
$membTable = TableFactory::membTable('123456789012','2','test','会员');
$test = ModelFactory::mf("MembModel");
$result = $test->insertMemb($membTable);
echo "";
if ($result === false) {
echo "
";
$e = $test->getErrorInfo();
echo "$e[2]";
echo "
";
}
var_dump($result);
echo "";
#*/
//*
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














