在线问卷调查系统_0
在线问卷调查系统
课 程 设 计 报 告
课程
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
名称: 数据库系统概论 系 部: 学生姓名:
班 级:学 号: 成 绩:指导教师: 陈 林
开课时间:学年
数据库系统课程设计报告
目 录
1、需求分析 ............................................................................................... 2
2、概念结构设计....................................................................................... 4
3、逻辑结构设计....................................................................................... 5
4、物理结构设计....................................................................................... 6
5、系统的功能及界面设计 ...................................................................... 6
6、数据库实施及应用程序编制 .............................................................. 7
7、界面设计 ............................................................................................. 10
8、
心得体会
决胜全面小康心得体会学党史心得下载党史学习心得下载军训心得免费下载党史学习心得下载
............................................................................................. 13
9、参考资料 ............................................................................................. 13
第 1 页
数据库系统课程设计报告
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
目在线问卷调查系统
系统功能的基本要求:
组织者负责调查信息输入,包括问题序号、具体问题以及选择项的输入。
组织者能查看调查情况,能够查看所有的调查信息,能够查看指定问题序号的问题调查
统计信息。
被调查者用给定随机号(不用实名)进入系统,能够查看调查问题并进行回答。
若问题较多(如需调查150个问题),在线参与调查人员较多(如500个并发用户),则在数据库的选择及设计上应作哪些具体策略保证在线调查能顺利进行。
1、需求分析
1.1本系统的设计的主要功能
创建问卷、查看问卷、查看调查用户信息,查看调查结果等。组织者负责调查信息输入,包括问题序号、具体问题以及选择项的输入,并且能查看调查情况,能够查看所有的调查信息,能够查看指定问题序号的问题调查统计信息。被调查者用给定随机号(不用实名)进入系统,能够查看调查问题并进行回答。考虑到调查问题较多,在线参与调查人员较多,则考虑将问卷分为几份,被调查者随机回答一份问卷。图1-1详细描述了该系统的数据流图。
图1-1在线问卷调查系统数据流图
第 2 页
数据库系统课程设计报告
1.2数据字典 1.2.1数据项
第 3 页
数据库系统课程设计报告
2、概念结构设计
根据在线问卷调查系统的基本关系,分别找出实体:被调查者,问卷,题目,并且确定他
们之间的联系以及他们各自的属性。建出如图2-1所示的E-R图。
图2-1E-R图
第 4 页
数据库系统课程设计报告
3、逻辑结构设计
3.1将上面的E-R图转换为相应的关系模型
被调查者信息(编号,系部)
主码:编号
题目(题号,内容,选项1,选项2,选项3,选项4,选项5)
主码:题号
问卷(问卷序号,标题)
主码:问卷序号
问卷组成(问卷序号,题号)
主码:问卷序号+题号
外码:问卷序号,题号
做题(被调查者编号,问卷序号)
主码:被调查者编号+问卷序号
外码:被调查者编号,问卷序号
回答结果(题号,答案,被调查者编号)
主码:题号+答案+被调查者编号
外码:题号,被调查者编号
3.2对数据模型进行优化
根据题目要求判断出被调查者信息表为BCNF,问卷表为BCNF,题目表为BCNF,问卷组成表为BCNF,做题表为BCNF,回答结果表为BCNF。
第 5 页
数据库系统课程设计报告
4、物理结构设计
根据本系统的要求,该在线问卷调查系统需要建立多个查询过程。组织者与
被调查登录的系统的分开的。在查询被调查者回答结果时,组织者需要输入查询的内容,所以要建立变量将值放入变量中然后建立存储过程进行查询。被调查者登陆系统的时候,被调查者要输入登入编号,并进行验证。组织者登入时也需输入信息,登陆后可以进行查询所有调查信息。
5、系统的功能及界面设计
5.1根据题目的要求,设计前台和后台的功能模式图如图5-1和5-2
图5-1前台的功能图
图5-2后台的功能图
第 6 页
数据库系统课程设计报告
6、数据库实施及应用程序编制
用MYSQL建立数据库结构,此数据库我取名为:dbs1105,加载(测试/虚拟)数据,能体现对数据库的保护(安全性和完整性控制等)。实现各种查询、链接应用程序并能对数据库做简单的维护操作。
6.1数据库实施
建立数据库
create database dbs105
建立被调查者信息表
create table user (
sj_id char(6),
xibu char(4),
primary key(sj_id)
);
建立组织者信息表
create table admin(
username varchar(10),
password varchar(50),
primary key(username)
建立问卷表 create table infor(
c_id int AUTO_INCREMENT ,
title varchar(20),
primary key(c_id)
);
建立题目表 create table question(
q_id int AUTO_INCREMENT,
content varchar(200),
choice1 varchar(50),
choice2 varchar(50),
choice3 varchar(50),
choice4 varchar(50),
choice5 varchar(50),
primary key(q_id)
);
建立问卷组成表
create table inforcomp(
c_id int,
第 7 页
数据库系统课程设计报告
q_id varchar(10),
primary key(c_id,q_id)
);
建立做题表
create table ansinfor(
c_id int,
sj_id char(6),
primary key(c_id,sj_id)
);
建立回答结果表
create table answers(
sj_id char(6),
q_id int ,
answer varchar(50)
);
6.2应用程序的编制
整个系统的代码,我采用java的servlet和jsp进行设计,将sql代码嵌入到servlet当中,因为篇幅过大,所以只将sql代码和重要部分的代码列出。
连接数据库的代码 :
public static Connection getConnection() throws Exception{
Connection conn = null;
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(
"jdbc:mysql://localhost:3306/dbs1105?" +
"useUnicode=true&characterEncoding=utf8",
"root","root");
} catch (Exception e) {
e.printStackTrace();
throw e;
}
return conn;
}
第 8 页
数据库系统课程设计报告
前台
1.随机号的生成:
public static String genRandomNum(int pwd_len)
{
int count = 0;
char str[] = { ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’
};
StringBuffer pwd = new StringBuffer("");
Random r = new Random();
while (count < pwd_len) {
int i = Math.abs(r.nextInt(10));
if (i >= 0 && i < str.length)
{
pwd.append(str[i]); count++; } }
return pwd.toString();
}
2.被调查者的登录及其验证:select * from user where sj_id =‘suijihao’
select * from ansinfor where sj_id = ‘suijihao’
and c_id=5
3.问卷的显示:(1)select title from infor where c_id = 5
(2)select * from question where q_id in
(select q_id from inforcomp where cid = 5);
4.问卷的提交:insert into answer (sj_id,q_id,answer)values(?,?,?);
后台
1.组织者的登录:select username, password from admin
where username=? and password=?
2.题目的添加:insert into question (content,choice1,choice2,choice3,
choice4,choice5) values(?,?,?,?,?,?)
3.问卷的添加:(1)insert into infor (title) values(?)
(2)insert into inforcomp (c_id,q_id) values(?,?)
4.各系参评率的统计:(1)select count(*) as num,xibu from ansinfor,
user where ansinfor.sj_id = user.sj_id and c_id=‘5’
group by xibu
第 9 页
数据库系统课程设计报告
(2)select count(*) as sum,xibu from user group by xibu
5.统计某一题的调查情况:(1)select * from question where q_id=?
(2)select * from answers where q_id=?
7、界面设计
前台
前台登录界面即被调查者的登录界面如图7-1:
图7-1 前台被调查者登录界面
后台
(1)后台组织者登录即相当于后台管理员界面如图
7-2
图7-2 组织登录者界面
第 10 页
数据库系统课程设计报告
(2)添加题目的界面如图7-3
图7-3添加题目
(3)添加问卷界面如图7-4,在添加问卷之后,还有为问卷添加题目的操作。这里就省略了。
图7-4添加问卷
(4)统计各系的参评率如图7-5,要实现此功能,首先通过连接表查询,得到各系参加某个问卷调查的人数,在比上每个系所有的人数,就得到每个系的参评率,参评率的类型原本是float型的,在显示页面上的时候,我进行了截取。
第 11 页
数据库系统课程设计报告
图7-5各系的参评率
(5)查看某一题目的调查结果,实现的过程,先将该题的记录从数据库里面取出来,然后根据题目的q_id在 answers查出所有的记录,将所有的记录和原题的每个选项惊醒比较,这样能统计每个题目的选的人数。如图
7-6
图7-6搜索查询
第 12 页
数据库系统课程设计报告
8、
心得
信息技术培训心得 下载关于七一讲话心得体会关于国企改革心得体会关于使用希沃白板的心得体会国培计划培训心得体会
体会
通过这次课程设计,我独立地进行了一个完整的具有一定规模的数据库管理系统的设计和实践,是对于本学期理论知识学习的一次很好的运用和检验。不仅拓宽了自己的知识面,还在实践中巩固和加深了自己所学的理论知识,使自己的技术素质和实践能力有了进一步的提高,同时我的专业水平有了一定的进步。
在此次课程设计中,我设计的题目是在线问卷调查系统,这对我来说已经不是第一次设计这个系统。但由于我缺乏对数据库设计流程的认识,平时写程序,只注重对功能的实现,在编码的过程中如果需要添加什么功能或者字段,就会频繁的修改数据库。在一开始,对数据库没有完整的设计,以及对系统所有功能的分析,使得在后面的编码过程中产生障碍。向指导老师与同学请教后,渐渐有了设计的方向、思路和方法。从概念设计,逻辑、到物理结构,保证程序的使用价值。在具体的设计与实施中,我对数据库具体的设计步骤、思路、方法、技巧都有了进一步的了解,并感受深刻。在编码过程中,我遇到一些技术问题,比如生成随机数,在老师和同学的帮助下,以及在网上搜索,我逐步解决了这些问题,存在的问题是,调查问卷的显示,然后让被调查者回答并提交,这个界面需要用java.swing去编写,我的
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
是,先写一个选择题的模型,在将其循环显示,每个选项的id是动态的,题号+选择项,比如第一题,0014,在插入数据库之前,将其截取、判断,然后插入数据库,由于时间问题,没能实现。最后,对于这样一个系统,数据库的设计是很好的,但在功能的实现上还不够全面,还存在很多缺憾,希望以后有机会,将它做成一个完善的系统。
总体而言,本次课程设计是对本学期学习过程的一次检验,是学习收获的运用实践,是学习成果的展示,是一次宝贵的实践经历,教会我在以后的项目设计中,以及用更加规范的流程和更加严谨的逻辑去设计,形成良好的设计习惯。
9、参考资料
[1] 《数据库系统概论》王珊 萨师煊 高等教育出版社
[2] 《数据库原理与应用》何玉洁 梁琦 机械工业出版社
第 13 页