代码改变世界

课程设计之"网络考试系统"(php、Extjs)

2010-05-23 17:21  夜雨瞳  阅读(2237)  评论(8编辑  收藏  举报

1.TestSystem大概结构框图

2.数据库设计(11张表)

数据库名称:db_testsystem

数据库表:

tb_admin          记录题库管理员帐户信息

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_admin`;
CREATE TABLE  `db_testsystem`.`tb_admin` (
  `adm_login` 
varchar(20NOT NULL,
  `adm_name` 
varchar(10NOT NULL,
  `adm_id` 
varchar(20NOT NULL,
  `adm_password` 
varchar(20NOT NULL,
  `adm_sex` 
varchar(2NOT NULL,
  `adm_address` 
varchar(50NOT NULL,
  `adm_register` 
datetime NOT NULL,
  `adm_select` 
varchar(1NOT NULL,
  
PRIMARY KEY (`adm_login`,`adm_id`),
  
UNIQUE KEY `adm_login` (`adm_login`),
  
UNIQUE KEY `adm_name` (`adm_name`),
  
UNIQUE KEY `adm_id` (`adm_id`)
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

tb_allcontent        记录随机抽取题目的内容

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_allcontent`;
CREATE TABLE  `db_testsystem`.`tb_allcontent` (
  `sty_style` 
tinyint(4NOT NULL,
  `con_number` 
int(11NOT NULL,
  `con_content` 
varchar(1000NOT NULL,
  `con_answer` 
varchar(1000NOT NULL,
  `con_hard` 
varchar(10NOT NULL,
  `con_score` 
int(11NOT NULL,
  `con_kind` 
varchar(10NOT NULL,
  `con_select` 
varchar(1CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
  `con_time` 
datetime NOT NULL,
  
PRIMARY KEY (`sty_style`,`con_number`),
  
KEY `sty_style` (`sty_style`) USING BTREE,
  
KEY `con_number` (`con_number`) USING BTREE
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

tb_answer          记录考生答卷的答案

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_answer`;
CREATE TABLE  `db_testsystem`.`tb_answer` (
  `stu_login` 
varchar(20NOT NULL,
  `pap_number` 
int(11NOT NULL,
  `sty_style` 
tinyint(4NOT NULL,
  `con_number` 
int(11NOT NULL,
  `tes_number` 
tinyint(4NOT NULL,
  `ans_answer` 
varchar(1000DEFAULT NULL,
  `ans_score` 
smallint(6DEFAULT NULL,
  `tea_login` 
varchar(20DEFAULT NULL,
  
PRIMARY KEY (`sty_style`,`pap_number`,`con_number`,`stu_login`) USING BTREE,
  
KEY `stu_login` (`stu_login`) USING BTREE,
  
KEY `tea_login` (`tea_login`) USING BTREE
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

tb_paper          记录随机产生的试卷

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_paper`;
CREATE TABLE  `db_testsystem`.`tb_paper` (
  `pap_number` 
int(11NOT NULL,
  `pap_subject` 
varchar(20NOT NULL,
  `adm_login` 
varchar(20NOT NULL,
  `pap_time` 
datetime NOT NULL,
  `pap_write` 
varchar(1NOT NULL,
  `pap_select` 
varchar(1NOT NULL,
  
PRIMARY KEY (`pap_number`),
  
UNIQUE KEY `pap_number` (`pap_number`),
  
KEY `adm_login` (`adm_login`)
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

tb_parameter        记录客户登录的ip及帐户等附加信息

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_parameter`;
CREATE TABLE  `db_testsystem`.`tb_parameter` (
  `par_id` 
int(11NOT NULL AUTO_INCREMENT,
  `par_descript` 
varchar(20DEFAULT NULL,
  `par_time` 
datetime DEFAULT NULL,
  `par_ip` 
varchar(20DEFAULT NULL,
  
PRIMARY KEY (`par_id`)
) ENGINE
=InnoDB AUTO_INCREMENT=230 DEFAULT CHARSET=latin1;

tb_record          记录各个题目的题型、数量

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_record`;
CREATE TABLE  `db_testsystem`.`tb_record` (
  `pap_number` 
int(11NOT NULL,
  `sty_style` 
tinyint(4NOT NULL,
  `rec_content` 
varchar(1000NOT NULL,
  `rec_number` 
tinyint(4NOT NULL,
  `rec_score` 
smallint(6NOT NULL,
  `rec_kind` 
varchar(10NOT NULL,
  `sty_number` 
tinyint(3DEFAULT NULL,
  
PRIMARY KEY (`pap_number`,`sty_style`),
  
KEY `sty_style` (`sty_style`),
  
KEY `pap_number` (`pap_number`) USING BTREE
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

tb_selfanswer        记录考生自测的答案

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_selfanswer`;
CREATE TABLE  `db_testsystem`.`tb_selfanswer` (
  `stu_login` 
varchar(20NOT NULL,
  `pap_number` 
int(11NOT NULL,
  `sty_style` 
tinyint(4NOT NULL,
  `con_number` 
int(11NOT NULL,
  `tes_number` 
tinyint(4NOT NULL,
  `ans_answer` 
varchar(1000DEFAULT NULL,
  `ans_score` 
smallint(6DEFAULT NULL,
  
PRIMARY KEY (`sty_style`,`pap_number`,`con_number`,`stu_login`) USING BTREE,
  
KEY `stu_login` (`stu_login`) USING BTREE
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

tb_student          记录考生帐户信息

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_student`;
CREATE TABLE  `db_testsystem`.`tb_student` (
  `stu_login` 
varchar(20NOT NULL,
  `stu_name` 
varchar(10NOT NULL,
  `stu_id` 
varchar(20NOT NULL,
  `stu_password` 
varchar(20NOT NULL,
  `stu_sex` 
varchar(2NOT NULL,
  `stu_address` 
varchar(50NOT NULL,
  `stu_register` 
datetime NOT NULL,
  `stu_select` 
varchar(1NOT NULL,
  
PRIMARY KEY (`stu_login`,`stu_id`),
  
UNIQUE KEY `stu_login` (`stu_login`),
  
UNIQUE KEY `stu_name` (`stu_name`),
  
UNIQUE KEY `stu_id` (`stu_id`)
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

tb_style          记录题目类型

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_style`;
CREATE TABLE  `db_testsystem`.`tb_style` (
  `sty_style` 
tinyint(4NOT NULL,
  `sty_name` 
varchar(10NOT NULL,
  `sty_select` 
varchar(1NOT NULL,
  `sty_content` 
varchar(1000NOT NULL,
  `sty_number` 
tinyint(3) unsigned NOT NULL,
  `sty_score` 
smallint(5) unsigned NOT NULL,
  
PRIMARY KEY (`sty_style`)
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

tb_teacher          记录改卷老师帐户信息

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_teacher`;
CREATE TABLE  `db_testsystem`.`tb_teacher` (
  `tea_login` 
varchar(20NOT NULL,
  `tea_name` 
varchar(10NOT NULL,
  `tea_id` 
varchar(20NOT NULL,
  `tea_password` 
varchar(20NOT NULL,
  `tea_sex` 
varchar(2NOT NULL,
  `tea_address` 
varchar(50NOT NULL,
  `tea_register` 
datetime NOT NULL,
  `tea_select` 
varchar(1NOT NULL,
  
PRIMARY KEY (`tea_login`,`tea_id`),
  
UNIQUE KEY `tea_login` (`tea_login`),
  
UNIQUE KEY `tea_name` (`tea_name`),
  
UNIQUE KEY `tea_id` (`tea_id`)
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

tb_testpaper        记录随机产生的考试试卷内容

代码
DROP TABLE IF EXISTS `db_testsystem`.`tb_testpaper`;
CREATE TABLE  `db_testsystem`.`tb_testpaper` (
  `pap_number` 
int(11NOT NULL,
  `sty_style` 
tinyint(4NOT NULL,
  `con_number` 
int(11NOT NULL,
  `tes_number` 
tinyint(4NOT NULL,
  
PRIMARY KEY (`pap_number`,`sty_style`,`con_number`),
  
KEY `sty_style` (`sty_style`,`con_number`),
  
KEY `pap_number` (`pap_number`) USING BTREE
) ENGINE
=MyISAM DEFAULT CHARSET=utf8;

 3.文件大致安排和管理

TestSystem---admin(题库管理)---add_admin---add_admin.js      Extjs界面

                        ---delete_admin.php    删除

                        ---read_admin.php     读取

                        ---search_adm_login.php  搜索帐户

                        ---search_adm_name.php  搜索名字

                        ---update_admin.php    更新帐户信息

               ---add_student--....

               ---add_style---....

                      ---bar.gif

                      ---charts.js

                      ---charts.swf

               ---add_teacher---....

               ---add_homepage---show_admin.php

                         ---show_rules.html

               ---insert---....

               ---new_paper---....

               ---old_paper---....

               ---add_admin.php

               ---add_student.php

               ---add_style.php

               ---add_style_number.php

               ---add_teacher.php

               ---admin.js

               ---homepage.php

               ---insert.php

               ---new_paper.php

               ---old_paper.php

      ---login(登录)---....

      ---public(公用库)---ext

              ---pictures

              ---add_pictures.css    图标等

              ---PagingMemoryProxy.js Extjs一次性分页用

              ---RowExpander.js     题目显示展开用

              ---SliderTip.js       滑动分页用

              ---SlidingPager.js     滑动分页用

      ---register(注册)---...

      ---student(考试)---....

      ---student_self(自测)---....

      ---teacher(改卷)---....

      ---admin.php

      ---login.html

      ---register.php

      ---student.php

      ---student_self

      ---teacher

 

 

 

 4.系统运行及功能

 

 

5. 心得总结

  5.1 设计在整个系统形成非常重要。

  5.2 在命名规范性要统一

  5.3 在设计系统时,要学会以界面、业务、数据库操作、数据库这样的形式进行设计和编码。

6. 不足之处

  6.1 由于课程设计是自己对自己定立需求,把握度不够好。

  6.2 数据库的设计不够好,联系太多

  6.3 设计的整体思路不够清晰,不能完全把握

  6.4 不懂得为各个功能模块建立相应的模型

  6.5 自己太懒,课程设计结束期,该重构的懒得重构,数据库该建立触发器的地方懒得建立,该建立储存过程也懒得做。

7. 感悟

  7.1 与人合作时,得承认每个人都有隋性

  7.2 大道至简中的道理应该好好领悟

  7.3 模式建立的重要性影响到未来发展的方向