课程设计之"网络考试系统"(php、Extjs)
2010-05-23 17:21 夜雨瞳 阅读(2237) 评论(8) 编辑 收藏 举报1.TestSystem大概结构框图
2.数据库设计(11张表)
数据库名称:db_testsystem
数据库表:
tb_admin 记录题库管理员帐户信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_admin` (
`adm_login` varchar(20) NOT NULL,
`adm_name` varchar(10) NOT NULL,
`adm_id` varchar(20) NOT NULL,
`adm_password` varchar(20) NOT NULL,
`adm_sex` varchar(2) NOT NULL,
`adm_address` varchar(50) NOT NULL,
`adm_register` datetime NOT NULL,
`adm_select` varchar(1) NOT 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 记录随机抽取题目的内容
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_allcontent` (
`sty_style` tinyint(4) NOT NULL,
`con_number` int(11) NOT NULL,
`con_content` varchar(1000) NOT NULL,
`con_answer` varchar(1000) NOT NULL,
`con_hard` varchar(10) NOT NULL,
`con_score` int(11) NOT NULL,
`con_kind` varchar(10) NOT NULL,
`con_select` varchar(1) CHARACTER 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 记录考生答卷的答案
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_answer` (
`stu_login` varchar(20) NOT NULL,
`pap_number` int(11) NOT NULL,
`sty_style` tinyint(4) NOT NULL,
`con_number` int(11) NOT NULL,
`tes_number` tinyint(4) NOT NULL,
`ans_answer` varchar(1000) DEFAULT NULL,
`ans_score` smallint(6) DEFAULT NULL,
`tea_login` varchar(20) DEFAULT 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 记录随机产生的试卷
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_paper` (
`pap_number` int(11) NOT NULL,
`pap_subject` varchar(20) NOT NULL,
`adm_login` varchar(20) NOT NULL,
`pap_time` datetime NOT NULL,
`pap_write` varchar(1) NOT NULL,
`pap_select` varchar(1) NOT NULL,
PRIMARY KEY (`pap_number`),
UNIQUE KEY `pap_number` (`pap_number`),
KEY `adm_login` (`adm_login`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
tb_parameter 记录客户登录的ip及帐户等附加信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_parameter` (
`par_id` int(11) NOT NULL AUTO_INCREMENT,
`par_descript` varchar(20) DEFAULT NULL,
`par_time` datetime DEFAULT NULL,
`par_ip` varchar(20) DEFAULT NULL,
PRIMARY KEY (`par_id`)
) ENGINE=InnoDB AUTO_INCREMENT=230 DEFAULT CHARSET=latin1;
tb_record 记录各个题目的题型、数量
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_record` (
`pap_number` int(11) NOT NULL,
`sty_style` tinyint(4) NOT NULL,
`rec_content` varchar(1000) NOT NULL,
`rec_number` tinyint(4) NOT NULL,
`rec_score` smallint(6) NOT NULL,
`rec_kind` varchar(10) NOT NULL,
`sty_number` tinyint(3) DEFAULT 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 记录考生自测的答案
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_selfanswer` (
`stu_login` varchar(20) NOT NULL,
`pap_number` int(11) NOT NULL,
`sty_style` tinyint(4) NOT NULL,
`con_number` int(11) NOT NULL,
`tes_number` tinyint(4) NOT NULL,
`ans_answer` varchar(1000) DEFAULT NULL,
`ans_score` smallint(6) DEFAULT 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 记录考生帐户信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_student` (
`stu_login` varchar(20) NOT NULL,
`stu_name` varchar(10) NOT NULL,
`stu_id` varchar(20) NOT NULL,
`stu_password` varchar(20) NOT NULL,
`stu_sex` varchar(2) NOT NULL,
`stu_address` varchar(50) NOT NULL,
`stu_register` datetime NOT NULL,
`stu_select` varchar(1) NOT 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 记录题目类型
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_style` (
`sty_style` tinyint(4) NOT NULL,
`sty_name` varchar(10) NOT NULL,
`sty_select` varchar(1) NOT NULL,
`sty_content` varchar(1000) NOT 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 记录改卷老师帐户信息
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_teacher` (
`tea_login` varchar(20) NOT NULL,
`tea_name` varchar(10) NOT NULL,
`tea_id` varchar(20) NOT NULL,
`tea_password` varchar(20) NOT NULL,
`tea_sex` varchar(2) NOT NULL,
`tea_address` varchar(50) NOT NULL,
`tea_register` datetime NOT NULL,
`tea_select` varchar(1) NOT 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 记录随机产生的考试试卷内容
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
CREATE TABLE `db_testsystem`.`tb_testpaper` (
`pap_number` int(11) NOT NULL,
`sty_style` tinyint(4) NOT NULL,
`con_number` int(11) NOT NULL,
`tes_number` tinyint(4) NOT 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 模式建立的重要性影响到未来发展的方向