资源描述
数据库课程设计
目 录
1 引言 1
1.1课题来源 1
本课程设计题目为<<大学生心理健康监测与辅导网络平台>>,通过数据库系统课程设计,熟悉了关系型数据库管理系统的结构与组成;掌握了数据库管理系统的应用技术和的使用;进行数据库系统的管理与维护。最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。 1
1.2课题研究主要内容 1
1.3主要工作 1
1.4术语定义 1
2 命名约定 2
2.1物理命名约定 2
2.2数据实体命名约定 2
3 需求分析 2
3.1信息要求分析 2
3.2处理要求分析 3
用例图: 3
角色:心理工作者 6
数据流图: 14
3.3数据字典及安全性、完整性要求分析 14
4 概念结构设计 17
4.1数据实体描述及分ER图 17
4.2整体ER图 19
5 系统概要设计 19
5.1数据库逻辑结构设计 19
5.2数据库物理设计 20
[数据库的结构、系统的大小、索引的设定、使用与管理、数据分布、数据存储方面的考虑、数据设备的设计,与用途的说明等] 20
数据库表设计 21
5.3系统总体框架 22
6 系统详细设计 23
6.1数据库实施 23
6.2数据库的数据完整性设计 26
6.3数据的安全设计 27
6.4系统功能模块的设计与实现 28
6.5系统功能测试 36
6.6数据库性能检测与备份设计 43
6.7系统安装使用说明 43
7 回顾与展望 43
参考文献 44
1 引言
1.1课题来源
本课程设计题目为<<大学生心理健康监测与辅导网络平台>>,通过数据库系统课程设计,熟悉了关系型数据库管理系统的结构与组成;掌握了数据库管理系统的应用技术和的使用;进行数据库系统的管理与维护。最终达到掌握数据库管理系统的使用和开发,提高分析问题、解决问题和实践应用能力。
1.2课题研究主要内容
主要研究大学生心理健康监测与辅导网络平台的构建和管理,方便学校对学生心理状况的了解,帮助对学生的心理健康状况进行观察,有利于及早发现学生的心理问题,及早预防学生心理疾病的发生。
随着计算机技术的发展和互联网时代的到来,人们已经进入了信息时代,亦或是数字化时代。在此环境下,研究开发一款,适合学生使用的网络应用软件,同时满足心理健康教育和辅导工作者对同学们的心理状况进行总体上的认识,方便心理健康教育的开展,提高心理健康教育的针对性。
1.3主要工作
研究大学生心理健康监测与辅导的一般工作过程,并将其具体到该平台上
研究大学生心理健康监测与辅导设计的数据及其关系
数据库设计
网络后台开发
Android客户端开发
1.4术语定义
[说明本文档使用的术语的定义]
Spring:一个轻量级的Java Web开发框架
2 命名约定
2.1物理命名约定
心理问卷:一份含多个心理问题和答案选择的问卷
心理教育工作者:从事学生的心理状况的分析和对学生进行心理方面的教育,以改善学生的心理状态的人。
心理辅导工作者:从事心理疾病的预防和治疗的人
心理工作者:包含心理教育工作者和心理辅导工作者
平台管理者:管理该平台的心理工作者的账号数据的人
大学生:正在大学接受教育的人
学生:代指大学生
2.2数据实体命名约定
[说明概念模型和逻辑设计中数据实体的命名约定。如:表名、索引名等]
问卷(Paper):代表心理问卷
问题(Question):心理问卷中的问题,一个心理问卷有不限数量个问题
选项(Option):问题中的选项、一个问题有不限数量的选项
3 需求分析
3.1信息要求分析
[指出用户需要从数据库中获得的信息内容与性质。由此到处数据库中需要存储哪些数据]
由于大学生心理健康监测与辅导网络平台主要为监测大学生的心理健康状况和分析大学生的心理状况,所以必须保存大学生的基本数据,如学号、姓名等,
由于需要对大学生心理状况有一个数据化,或指标化的表现,所以,需要心理工作者设计出心理问卷,及选项和选项对应的分数。因此,需要存储问卷的基本信息。
由于大学生需要填写心理问卷,并应该记录该信息,供心理工作者进行使用 ,所以需要对大学生填写的心理问卷内容进行保存。
由于心理教育工作者和心理辅导工作者对大学生心理问卷数据进行分析观测,并且使用大学生的基本信息,但大学生的基本信息及填写的心理问卷内容不可公开,必须受到保护,所以心理教育工作者和心理辅导工作者必须得到验证,为此需要保存心理教育工作者和心理辅导工作者的基本信息。
由于需要对学生的账号和心理工作者的账号进行管理,所以需要有一些特殊的账号用于管理学生和心理工作者的账号。所以需要保存这些管理者的账号信息。
3.2处理要求分析
[说明用户要完成什么处理功能,对响应时间有什么要求,给出用例图、数据流图等分析图表]
用例图:
角色:大学生
用户注册
功能
用户注册
简要说明
大学生注册自己在该平台上的账号
前置条件
无
事件流
基本流
1、 用户点击注册
2、 用户填写基本信息
3、 用户点击提交信息
4、 显示提示信息
备选流
3a用户点击退出,返回前界面
后置条件
生成学生账号申请表
备注
无
用户登录
功能
用户登录
简要说明
大学生登录自己在该平台上的账号
前置条件
账号审核通过
事件流
基本流
1、 用户点击登录
2、 用户填写账号和密码
3、 用户选择学生登录
4、 点击登录
5、 显示提示信息
备选流
无
后置条件
登录成功后,学生可点击填写问卷按钮,进行问卷填写
备注
无
填写问卷
功能
填写问卷
简要说明
大学生填写心理问卷
前置条件
已登录
事件流
基本流
1、 用户点击填写问卷
2、 用户填写问卷答案
3、 用户点击提交
4、 显示提示信息
备选流
无
后置条件
生成问卷信息表,并保存
备注
无
用户退出
功能
用户退出
简要说明
大学生退出登录的账号
前置条件
账号已登录
事件流
基本流
1、 用户点击退出
2、 显示提示信息
备选流
无
后置条件
无
备注
无
角色:心理工作者
用户注册
功能
用户注册
简要说明
心理工作者注册自己在该平台上的账号
前置条件
无
事件流
基本流
1、 用户点击注册
2、 用户填写基本信息
3、 用户点击提交信息
4、 显示提示信息
备选流
3a用户点击退出,返回前界面
后置条件
生成心理工作者账号申请表
备注
无
用户登录
功能
用户登录
简要说明
心理工作者登录自己在该平台上的账号
前置条件
账号审核通过
事件流
基本流
1、 用户点击登录
2、 用户填写账号和密码
3、 用户选择心理工作者登录
4、 用户点击确定
5、 显示提示信息
备选流
无
后置条件
登录成功后,可进行其他心理工作
备注
无
用户退出
功能
用户退出
简要说明
大学生退出登录的账号
前置条件
账号已登录
事件流
基本流
3、 用户点击退出
4、 显示提示信息
备选流
无
后置条件
无
备注
无
设计问卷
功能
设计问卷
简要说明
心理工作者设计心理问卷
前置条件
已登录
事件流
基本流
1、 用户点击设计问卷
2、 用户填写心理问卷问题及选项、选项分数
3、 用户点击提交
4、 显示提示信息
备选流
无
后置条件
生成心理问卷
备注
无
查看学生信息
功能
查看学生信息
简要说明
查看学生基本信息,以及学生填写的问卷的概括信息
前置条件
心理工作者已登录
事件流
基本流
1、 查看学生信息
2、 输入学生学号,并点击确定
3、 显示该学生的信息
备选流
2a点击查看所管理的所有学生信息
3a显示所管理的所有学生的信息
后置条件
无
备注
无
查看学生心理
功能
查看学生心理
简要说明
查看学生填写的心理问卷信息,以及其他相关的信息
前置条件
心理工作者已登录
事件流
基本流
1、 查看学生心理
2、 选择某一问卷
3、 输入分数上限和分数下限,点击查询
4、 显示该问卷分数在该区间的学生信息和分数
备选流
3a点击查看所管理的所有学生心理
4a显示所管理的所有学生学生信息和分数
后置条件
无
备注
无
管理学生
功能
管理学生
简要说明
添加、删除、查看所管理的学生
前置条件
心理工作者已登录
事件流
基本流
1、 点击管理学生
2、 进入学生列表查看界面
3、 选择部分学生
4、 点击删除
5、 显示操作结果
备选流
4a点击查看
5a进入查看界面
3b点击增加
4b进入增加界面,输入学生学号,点击添加
后置条件
所管理的学生变更
备注
无
心理状况统计
功能
心理状况统计
简要说明
查看所管理的所有学生的心理状况的各项统计数据,如心理优、良、中、差分别对应的学生人数
前置条件
心理工作者已登录
事件流
基本流
1、 点击心理状况统计
2、 选择某一问卷
3、 点击统计
4、 显示该心理工作者负责的所有学生的问卷分数的统计结果
备选流
无
后置条件
无
备注
无
角色:平台管理员
用户登录
功能
用户登录
简要说明
平台登录自己在该平台上的账号
前置条件
预先已插入了平台管理员账号
事件流
基本流
1、 用户点击登录
2、 用户填写账号和密码
3、 用户选择平台管理员登录
4、 点击登录
5、 显示提示信息
备选流
无
后置条件
登录成功后,可进行该平台用户的管理工作
备注
无
审核用户
功能
审核用户
简要说明
审核该平台上的心理工作者
前置条件
平台管理者已登录
事件流
基本流
1、 用户点击审核用户
2、 显示某一未审核过的心理工作者申请表
3、 点击审核通过
4、 显示提示信息
5、 点击继续审核,跳转到2,选择返回,回到前一页面,结束
备选流
2a如果无未审核的心理工作者,跳转到4
后置条件
审核通过的心理工作者账号,可以登录,并开展工作
备注
无
用户退出
功能
用户退出
简要说明
平台管理者退出登录的账号
前置条件
账号已登录
事件流
基本流
1、 用户点击退出
2、 显示提示信息
备选流
无
后置条件
无
备注
无
管理用户
功能
管理用户
简要说明
管理心理工作者的账号,包括增、删、查、改
前置条件
账号已登录
事件流
基本流
1、 用户点击管理用户
2、 显示所有心理工作者的概述信息
3、 点击其中一个心理工作者
4、 系统显示该心理工作者信息
5、 在此界面上修改信息,点击保存
6、 保存并退出当前界面
备选流
3a、点击增加按钮
4a、显示增加心理工作者界面
5a、填写信息
6a、点击保存,保存并返回前界面
5b、点击删除
6b删除该用户并退出
后置条件
无
备注
无
数据流图:
3.3数据字典及安全性、完整性要求分析
[确定大致的模块分类与人机界面之后,给出数据字典,以及对应的安全性的完整性要求。]
1、 数据流的描述
序号
数据流名
来源
流向
组成
说明
1
填写问卷
学生
填写问卷
学号
2
查看学生心理
心理工作者
查看某学生的心理问卷信息操作
学号
3
管理学生
心理工作者
查看、修改所管理的学生信息操作
心理工作者编号+学号
4
设计问卷
心理工作者
设计问卷操作
心理工作者编号
5
查看学生信息
心理工作者
查看某学生的信息
心理工作者编号+学号
6
管理学生
心理工作者
查看自己管理的学生信息操作
心理工作者编号
7
心理状况统计
心理工作者
心理状况统计
心理工作者编号+问卷编号+分数范围
8
管理用户
平台管理者
查看心理工作者信息操作
2、
序号
数据文件
文件组成
关键标识
组织
1
学生信息
学号+学生姓名+出生年月+性别
学号
降序排序
2
心理工作者信息
心理工作者编号+姓名+出生+性别
心理工作者编号
3
问卷信息
问卷编号+心理工作者编号+问卷问题+加选项+选项分数
问卷编号
4
学生问卷
学号+问卷编号+选择选项
学号+问卷编号
3、 加工定义表
序号
处理过程
输入
输出
处理逻辑
1
填写问卷
学号
所有该学生未填写的教师的问卷信息
根据学号得到对应的教师,
该教师的问卷-该学生已填写的问卷
2
设计问卷操作
心理工作者编号+问卷信息
无
自动生成问卷编号,并根据此编号插入问题,对应选项,对应分数
3
心理状况统计
心理工作者编号+问卷编号
所有管理的学生的学号+问卷分数+分数范围
获取该心理工作者的学生,在获取这些学生的分数在分数范围内的学生信息和分数
4、 数据项
序号
数据项
数据类型
长度
取值范围
1
学号
字符
10
2
姓名
字符
4
3
出生日期
日期
4
性别
字符
1
男/女
5
密码
字符
6
心理工作者编号
字符
10
7
问卷编号
整型
8
问卷说明
字符
50
9
问题编号
整型
10
问题内容
字符
50
11
问题选项编号
整型
12
问题选项内容
字符
30
13
问题选项分数
整型
14
平台管理员账号
字符
10
15
电话
字符
11
4 概念结构设计
4.1数据实体描述及分ER图
[数据实体中文名、数据实体描述,详细的各个分部ER图,包括属性]
实体
1、 大学生实体属性有:学号、姓名、出生年月、性别。
2、 心理工作者实体属性有:心理工作者编号、姓名、性别、出生年月、电话。
3、 平台管理者的实体属性有:平台管理者账号、密码。
4、 心理问卷的实体属性:问卷编号、问卷说明
5、 问卷问题的实体属性:问题编号、问题内容
6、 问题选项的实体属性:问题选项编号、问题选项内容、问题选项分数
图1 “心理问卷-问卷问题”实体间的关系
图2 “问卷问题-问题选项”实体间的关系
图3 “大学生-心理问卷”实体间的关系
图4 “心理工作者-心理问卷”实体间的关系
图5 “平台管理者-心理工作者”实体间的关系
图6 “心理工作者-大学生”实体间的关系
4.2整体ER图
[分ER图向整体ER图合并,说明合并过程中是否消除了冲突]
5 系统概要设计
5.1数据库逻辑结构设计
[ER图向逻辑结构转化后形成的逻辑表结构,说明表结构、索引结构、约束——包括主外码约束,自定义完整性约束以及表与表之间的联系]
将数据库的概念模型转换为关系模型:
问题选项(问题选项编号,问题选项内容、问题选项分数、问题编号)
问卷问题(问题编号、问题内容、问卷编号)
心理问卷(问卷编号、问卷说明、心理工作者编号)
填写问卷(学号、问卷编号、分数)
大学生(学号、姓名、出生年月、性别)
管理学生(心理工作者编号、学号)
心理工作者(心理工作者编号、姓名、性别、出生年月、电话)
平台管理者(平台管理者账号、密码)
带下划线的属性为各关系模式的外码,字体为粗体的属性为各关系模式的主码。
关系规范式 :大学生心理健康监测与辅导网络平台∈1NF 每个属性均不可再分
5.2数据库物理设计
[数据库的结构、系统的大小、索引的设定、使用与管理、数据分布、数据存储方面的考虑、数据设备的设计,与用途的说明等]
序号
数据项
列名
数据类型
允许空
备注
1
学号
student_num
varchar(10)
否
2
姓名
name
varchar(10)
否
3
出生日期
birthday
date
否
4
性别
sex
varchar(1)
否
m(男)/f(女)
5
密码
password
varchar(50)
否
加密后的密码
6
心理工作者编号
work_num
varchar(10)
否
7
问卷编号
paper_num
int
否
8
问卷说明
paper_instructions
varchar(50)
否
9
问题编号
question_num
int
否
10
问题内容
question_content
varchar(50)
否
11
问题选项编号
option_num
int
否
12
问题选项内容
option_content
varchar(50)
否
13
问题选项分数
option_grade
int
否
14
平台管理员账号
manager_num
varchar(10)
否
15
电话
phone
varchar(11)
否
数据库表设计
序号
关系名
表名
包含列
1
问题选项
option
option_num
option_content
option_grade
question_num
2
问卷问题
question
question_num
question_content
paper_num
3
心理问卷
paper
paper_num
paper_instructions
work_num
4
填写问卷
write_paper
student_num
paper_num
grade
5
大学生
student
student_num
name
birthday
sex
password
state
6
管理学生
manage_student
work_num
student_num
7
心理工作者
work
work_num
name
birthday
sex
password
phone
state
8
平台管理者
manager
manager_num
password
5.3系统总体框架
[模块结构、功能的说明,给出系统结构图]
手机客户端:是安装在android平台上的一个与本平台交互的应用
服务器:是接收手机客户端的请求并返回特定格式数据的个体
数据库:保存了该平台的相关数据
6 系统详细设计
6.1数据库实施
[DDL语句编写数据库逻辑对象,装载数据过程,视图设计,存储过程设计,触发器设计]
创建表:
创建选项表:
CREATE TABLE `pmh`.`option` (
`option_num` INT NOT NULL AUTO_INCREMENT,
`option_content` VARCHAR(50) NOT NULL,
`option_grade` INT NULL DEFAULT 0,
`question_num` INT NOT NULL,
PRIMARY KEY (`option_num`));
创建问题表:
CREATE TABLE `pmh`.`question` (
`question_num` INT NOT NULL AUTO_INCREMENT,
`question_content` VARCHAR(50) NOT NULL,
`paper_num` INT NOT NULL,
PRIMARY KEY (`question_num`));
创建问卷表:
CREATE TABLE `pmh`.`paper` (
`paper_num` INT NOT NULL AUTO_INCREMENT,
`paper_instructions` VARCHAR(50) NOT NULL,
`work_num` INT NOT NULL,
PRIMARY KEY (`paper_num`));
创建填写问卷表:
CREATE TABLE `pmh`.`write_paper` (
`student_num` INT NOT NULL,
`paper_num` INT NOT NULL,
`grade` INT NULL DEFAULT 0,
PRIMARY KEY (`student_num`, `paper_num`));
创建大学生管理表:
CREATE TABLE `pmh`.`manage_student` (
`work_num` VARCHAR(10) NOT NULL,
`student_num` VARCHAR(10) NOT NULL,
PRIMARY KEY (`work_num`, `student_num`));
创建大学生基本信息表:
CREATE TABLE `pmh`.`student` (
`student_num` VARCHAR(10) NOT NULL,
`name` VARCHAR(10) NULL,
`birthday` DATE NULL,
`sex` VARCHAR(1) NULL,
`password` VARCHAR(50) NULL,
PRIMARY KEY (`student_num`));
添加一些非空约束:
ALTER TABLE `pmh`.`student`
CHANGE COLUMN `name` `name` VARCHAR(10) NOT NULL ,
CHANGE COLUMN `birthday` `birthday` DATE NOT NULL ,
CHANGE COLUMN `sex` `sex` VARCHAR(1) NOT NULL ,
CHANGE COLUMN `password` `password` VARCHAR(50) NOT NULL ;
添加表示大学生状态的state列:
ALTER TABLE `pmh`.`student`
ADD COLUMN `state` INT NOT NULL DEFAULT 0 AFTER `password`;
创建心理工作者基本信息表:
CREATE TABLE `pmh`.`work` (
`work_num` VARCHAR(10) NOT NULL,
`name` VARCHAR(10) NOT NULL,
`birthday` DATE NOT NULL,
`sex` VARCHAR(1) NOT NULL,
`password` VARCHAR(50) NOT NULL,
`phone` VARCHAR(11) NOT NULL ,
PRIMARY KEY (`work_num`));
创建平台管理者账户表:
CREATE TABLE `pmh`.`manager` (
`manager_num` VARCHAR(10) NOT NULL,
`password` VARCHAR(50) NULL,
PRIMARY KEY (`manager_num`));
6.2数据库的数据完整性设计
[实体完整性、参照完整性、自定义完整性设计与实现。违反完整性约束时的解决办法,比如触发器、存储过程等]
创建好表后,需要在增加一些完整性约束
为需要添加外键的表添加外键,因为选项并不能单独存在,所以设置级联删除,如果包含选项的问题被删除了,则选项也将会被删除,同理,问题表,问卷表,填写问卷表,管理学生表均需要设置外键,并且设置为级联删除。
设置选项表外键
alter table pmh.option add constraint fk_option foreign key(question_num) REFERENCES pmh.question(question_num) on update cascade
设置问题表外键
alter table pmh.question add constraint fk_question foreign key(paper_num) REFERENCES pmh.paper(paper_num) on delete cascade
设置问卷外键:
alter table pmh.paper add constraint fk_paper foreign key(work_num) REFERENCES pmh.work(work_num) on delete cascade;
设置填写问卷表外键:
alter table pmh.write_paper add constraint fk_write_paper_student_num foreign key(student_num) REFERENCES pmh.student(student_num) on delete cascade
alter table pmh.write_paper add constraint fk_write_paper_paper_num foreign key(student_num) REFERENCES pmh.student(student_num) on delete cascade
设置管理学生表:
alter table pmh.write_paper add constraint fk_write_paper_student_num foreign key(student_num) REFERENCES pmh.student(student_num) on delete cascade
alter table pmh.write_paper add constraint fk_write_paper_paper_num foreign key(student_num) REFERENCES pmh.student(student_num) on delete cascade
6.3数据的安全设计
[用户角色划分,角色的权限设定,在数据库或者应用程序中的实施办法]
该平台分三种角色:大学生、心理工作者、平台管理员。平台管理员账号为事先插入到数据库里的。心理工作者和学生均有一个表示状态的列state,用来标识用户的状态,心理工作者和学生注册后,并不能登录进行对应角色的功能,而必须先得到审核先,审核通过则激活该用户账号,可以登录,并且进行操作,心理工作者由平台管理者审核,而学生则通过心理工作者添加管理学生后,才可激活。
登录时,只有激活的账号才可以登录。平台管理者,默认已激活,无状态位。
并且角色登录后,会将登录用户保存在客户端,以后的每次操作请求,后台都先分析该用户的登录角色,相同的请求,不同用户可以有不同的处理,部分操作只能由特定角色处理的,则非该角色的用户请求该操作则,不会进行处理。比如:设计问卷只有心理工作者才可以进行,那么学生和平台管理员请求该操作都无法进行。
6.4系统功能模块的设计与实现
[各个功能模块的关键性功能的流程图,每个模块给出关键性的程序编码与说明]
问卷的数据插入是本平台中比较复杂的模块,因为一个问卷可以有不限数量的问题,一个问题可以有不限数量的选项,并且每个问卷、问题、选项的主码均是自增的主键,这么设计可以充分使用主码所能容纳的标识数量。所以在每次插入问卷数据时都不知道问卷的主码是多少,但问题又必须和问卷联系,所以必须获得问卷的主码,插入问题后,则需要获得问题的主码,来供问题选项的使用。
关键代码:插入问卷
@Override
public int createPaper(Paper paper, String workNum) {
// TODO Auto-generated method stub
int paperId = paperDao.createPaper(paper, workNum);// 插入数据库一条问卷基本信息,并获得问卷编号
if (paperId >= 0) {// 如果插入成功
for (int i = 0; i < paper.questions.size(); i++) {
Question question = paper.questions.get(i);
int questionId = paperDao.createQuestion(question,
String.valueOf(paperId));// 调用插入数据库一条问题的方法,并且获得问题编号
if (questionId >= 0) {// 如果插入成功
for (int k = 0; k < question.options.size(); k++) {
if (paperDao.createOption(question.options.get(k),
String.valueOf(questionId)) < 0) {//调用插入一条选项进数据库
return FinalValue.FAIL;
}
}
} else {
// 插入失败需记录问卷信息,以后可将之前插入的问题删除
return FinalValue.FAIL;
}
}
} else {
return FinalValue.FAIL;
}
// 全部插入成功
return FinalValue.SUCCESS;
}
获取学生未填写的所有问卷内容:
@Override
public List<Paper> getStudentNotWritePaper(String studentNum) {
// TODO Auto-generated method stub
//获取学生已填写的表的主键后返回
String sql = "select paper_num,paper_instructions from pmh.paper where(paper_num not in ("
+ "select paper_num from pmh.write_paper where(student_num = ?)))";
List<Map<String, Object>> result = getJdbcTemplate().queryForList(sql,
new String[] { studentNum });
List<Paper> resultList = new ArrayList<Paper>();
for (int i = 0; i < result.size(); i++) {//从数据库返回数据中填充问卷基本信息
Paper paper = new Paper();
paper.paperNum = Integer.parseInt(result.get(i).get("paper_num")
.toString());
paper.instructions = result.get(i).get("paper_instructions")
.toString();
resultList.add(paper);
}
return resultList;
}
@Override
public List<Paper> getStudentNotWritePaper(String studentNum) {
// TODO Auto-generated method stub
List<Paper> papers = paperDao.getStudentNotWritePaper(studentNum);//获取学生未填写的问卷
for (int i = 0; i < papers.size(); i++) {
Paper paper = papers.get(i);
paper.questions = paperDao.getQuestion(String
.valueOf(paper.paperNum));//添加问卷的问题
for (int k = 0; k < paper.questions.size(); k++) {
paper.questions.get(k).options = paperDao.getOption(String
.valueOf(paper.questions.get(k).questionNum));//添加问题的选项
}
}
return papers;//返回所有未填写的问卷
}
//与网络相关的Activity基类
public abstract class HttpActivity extends BaseActivity {
private List<PostPacket> requestList = new ArrayList<PostPacket>();
protected Map<String, String> paramsList=new HashMap<String, String>();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
}
//发送请求关键函数
public synchronized void sendPostRequest() {
if (requestList.size() == 0) {
return;
}
new Thread() {
@Override
public void run() {
// TODO Auto-generated method stub
final PostPacket pp = requestList.get(0);
requestList.remove(0);
try {
final String result = HttpUtil
.doPost(ShareUtil.BASE_URL+pp.url+ShareUtil.TAIL, pp.params
展开阅读全文