洛 阳 理 工 学 院
课 程 设 计 报 告
课程名称 物联网综合实训
设计题目 基于RFID的教室资源管理系统
专 业 计算机应用技术
完成日期 2015.1.4
课 程 设 计 任 务
书
关于书的成语关于读书的排比句社区图书漂流公约怎么写关于读书的小报汉书pdf
设计题目:基于RFID的教室资源管理系统
设计内容与要求:
1.通过教师上下课的刷卡而实时获得相关信息;2.对教室使用状况,使用时间,使用者详细信息进行统计管理;3.利用非接触式IC卡进行网上查询、确认、管理的校园教室使用状况管理系统。
小组分工:
张灿灿:配置课程表,配置教室。
王艳婷:教室管理,配置院系。
梁晓珂:系统管理,配置专业。
张康茹:教师管理,配置课程。
程海燕:终端管理,配置班级。
楚翠翠:卡片管理。
指导教师:
2014 年 12月 27日
课 程 设 计 评 语
成绩:
指导教师:_______________
年 月 日
目 录
1 概述 1
1.1课程设计的目的和意义 1
1.2任务及要求 1
2 系统总体
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
2
2.1系统总体方案分析 2
2.2基于RFID工作原理 3
2.3 数据库设计 3
3 软件设计 7
3.1系统分析 7
3.1.1 软件编译环境 7
3.2配置课程表 8
3.2.1 添加课程表 8
3.2.2 查看课程表 10
3.3配置教室 13
3.3.1 添加教室 13
3.3.2 查看教室 16
4 心得体会 20
参考文献 21
1 概述
1.1课程设计的目的和意义
学校在每个学期开学的时候,都要把所有理论课程、实验课程、上机操作课程、英语口语课程的上课时间、上课地点、主讲老师和上课人数安排好,并且与其它课程不发生冲突! 同时为了方便学生查询自己上课的时间、上课的地点、主讲老师,还要方便学生查询教室资源的空闲和相关感兴趣的课程。应该建立一个教室审批管理系统,把这些环节通过计算机处理一减轻学校的工作负担。
随着大学办学规模的不断扩大,学校的管理能力也需要同步得到发展!作为人才的培养基地,学校管理能力的进步与发展对整个教学系统起着巨大的作用,作为学校资源之一的教师资源管理也日益显得重要!与传统的管理手段相比,教室审批管理系统的应用使得学校由传统管理手段向现代化、科学化管理转变,大大提高了教学资源的利用能力,降低了学校在管理方面的费用与精力。开发出一个具有管理能力的教室审批管理系统,是学校提高自身资源利用的必要工具,作为学校从传统的管理向现代化、科学化管理转变的一个标志,具有相当重要的意义。首次基于现实生活进行系统的分析和开发,实现了教室审批管理系统的各个功能;结合现实生活,对各项系统的操作进行更加人性化的设计,使得用户能够通过本系统充分利用学校的教学资源。
1.2任务及要求
1. 登陆模块,具有系统用户登录检验功能。
2. 主界面模块,用于显示系统主要功能界面。
3. 用户管理模块,系统管理员分配用户名和密码,根据不同用户选择不同权限。
4. 基本信息管理模块,对基本信息、教师信息、学生信息、教室使用信息进行添加、删除、修改。
2 系统总体方案
2.1系统总体方案分析
本系统包括有教师管理,卡片管理,终端管理,系统管理,数据字典,教室管理六部分,每部分分别有增删改除的相应功能,可以再教室管理里面查看打卡记录,在卡片管理里面进行发卡和挂失的功能,系统管理里面来添加设置相关的用户信息,数据字典里面进行数据的添加,例如教室,院系,专业 等的相关配置信息。总体的流程图如图2-1
图2-1 总体流程图
2.2基于RFID工作原理
RFID技术的基本工作原理并不复杂:标签进入磁场后,接收解读器发出的射频信号,凭借感应电流所获得的能量发送出存储在芯片中的产品信息(Passive Tag,无源标签或被动标签),或者由标签主动发送某一频率的信号(Active Tag,有源标签或主动标签),解读器读取信息并解码后,送至中央信息系统进行有关数据处理。
一套完整的RFID系统,是由阅读器(Reader)与电子标签(TAG)也就是所谓的应答器(Transponder)及应用软件系统三个部份所组成,其工作原理是Reader发射一特定频率的无线电波能量给Transponder,用以驱动Transponder电路将内部的数据送出,此时 Reader便依序接收解读数据,送给应用程序做相应的处理。
以RFID卡片阅读器及电子标签之间的通讯及能量感应方式来看大致上可以分成:感应耦合(Inductive Coupling)及后向散射耦合(Backscatter Coupling)两种。一般低频的RFID大都采用第一种式,而较高频大多采用第二种方式。
阅读器根据使用的结构和技术不同可以是读或读/写装置,是RFID系统信息控制和处理中心。阅读器通常由耦合模块、收发模块、控制模块和接口单元组成。阅读器和应答器之间一般采用半双工通信方式进行信息交换,同时阅读器通过耦合给无源应答器提供能量和时序。在实际应用中,可进一步通过Ethernet或WLAN等实现对物体识别信息的采集、处理及远程传送等管理功能。应答器是RFID系统的信息载体,目前应答器大多是由耦合原件(线圈、微带天线等)和微芯片组成无源单元。
2.3 数据库设计
根据数据库的原理分析,本系统共建14个表,包括Band表,Card,表,Classes表Cours表
Courseinfo表,Depart 表,Device表,Major表,Record表,Rights表,Role表,Room表, Teacher表,User表。
表2-1 Band
Band表里面主要字段有bid表示绑定的id,bname表示绑定名称。
表 2-2 Card
Card表中cardid表示卡的id号,cardSerial表示卡号序列,cstate表示卡挂失。
表 2-3 Classes
Classes表中classid表示班级的id,classname表示班级名字,grade表示年级。
表 2-4 Course
Course表courseid表示课程id,tid表示教师id,classid表示班级id/。
表 2-5 Courseinfo
Courseinfo
表中courseid表示课程id,coursename表示课程名,cistate表示课程状态。
表2-6 Depart
Depart表中did表示院系id,dname表示院系名字,dstate表示院系状态。
表2-7 Device
Device表中deviceid表示装置id,dstate表示装置状态。
表 2-8 Major
Major表中mid表示专业id,mstate表示专业状态,did表示院系id。/
表2-9 Record
Record表中recordid表示记录id,tid表示教师id。
表2-10 Rights
Rights表中r_i权限id,表示rid表示角色id,bid表示绑定id。
表2-11 Role
Role 表中rid表示角色id,rname表示角色名字,rstate表示角色状态。
表2-12 Room
Room 表中roomid表示教室id,rstate表示教室的状态。
表2-13 Teacher
Teacher 表中tid表示教师id,tphone表示教师电话号。
表2-14 User
User表中userid表示用户id,uname表示用户名字,upawd表示用户密码。
3 软件设计
3.1系统分析
3.1.1 软件编译环境
1.编程软件MyEclipse
MyEclipse企业级工作平台(MyEclipseEnterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,JSP,CSS,Javascript,Spring,SQL,Hibernate。
MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持JavaServlet,AJAX,JSP,JSF,Struts,Spring,Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。
2.数据库 MySQL
MySQL(发音为"my ess cue el",不是"my sequel")是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语句(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在General Public License的许可下下载并根据个性化的需要对其进行修改。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
MySQL这个名字,起源不是很明确。一个比较有影响的说法是,基本指南和大量的库和工具带有前缀“my”已经有10年以上,而且不管怎样,MySQL AB创始人之一的Monty Widenius的女儿也叫My。这两个到底是哪一个给出了MySQL这个名字至今依然是个迷,包括开发者在内也不知道。
MySQL的海豚标志的名字叫“sakila”,它是由MySQL AB的创始人从用户在“海豚命名”的竞赛中建议的大量的名字表中选出的。获胜的名字是由来自非洲斯威士兰的开源软件开发者Ambrose Twebaze提供。根据Ambrose所说,Sakila来自一种叫SiSwati的斯威士兰方言,也是在Ambrose的家乡乌干达附近的坦桑尼亚的Arusha的一个小镇的名字。
MySQL,虽然功能未必很强大,但因为它的开源、广泛传播,导致很多人都了解到这个数据库。
3.2配置课程表
3.2.1 添加课程表
主要实现对课程的表的添加,包括专业、课程、教室、班级、星期、上课实现等功能,如图3-1:
图3-1 添加课程表
public class Course {
private int c_id;
private CourseInfo courseInfo;
private Teacher teacher;
private Classes classes;
private String date;
private String time;
public Course() {
super();
}
public Course(int c_id, CourseInfo courseInfo, Teacher teacher,
Classes classes, String date, String time) {
super();
this.c_id = c_id;
this.courseInfo = courseInfo;
this.teacher = teacher;
this.classes = classes;
this.date = date;
this.time = time;
}
/**
* @return the c_id
*/
public int getC_id() {
return c_id;
}
/**
* @param c_id the c_id to set
*/
public void setC_id(int c_id) {
this.c_id = c_id;
}
/**
* @return the courseInfo
*/
public CourseInfo getCourseInfo() {
return courseInfo;
}
/**
* @param courseInfo the courseInfo to set
*/
public void setCourseInfo(CourseInfo courseInfo) {
this.courseInfo = courseInfo;
}
/**
* @return the teacher
*/
public Teacher getTeacher() {
return teacher;
}
/**
* @param teacher the teacher to set
*/
public void setTeacher(Teacher teacher) {
this.teacher = teacher;
}
/**
* @return the classes
*/
public Classes getClasses() {
return classes;
}
/**
* @param classes the classes to set
*/
public void setClasses(Classes classes) {
this.classes = classes;
}
/**
* @return the date
*/
public String getDate() {
return date;
}
/**
* @param date the date to set
*/
public void setDate(String date) {
this.date = date;
}
/**
* @return the time
*/
public String getTime() {
return time;
}
/**
* @param time the time to set
*/
public void setTime(String time) {
this.time = time;
}
3.2.2 查看课程表
主要对课程表的查看,获取一些信息,同时还具有编辑,删除功能,来实现一个课表查看页面,如图3-2所示:
图3-2 查看课程表
public interface CourseService {
/**
* 保存课程表
* @param course
* @return
* @throws MyException
*/
public boolean saveCourse(Course course)throws MyException;
/**
* 更新课程表
* @param course
* @return
* @throws MyException
*/
public boolean updateCourse(Course course)throws MyException;
/**
* 删除数据
* @param c_id
* @return
* @throws MyException
*/
public void deleteCourse(int c_id,HttpServletResponse resp)throws Exception;
/**
* 根据Id获取课程表实体
* @param c_id
* @return
* @throws MyException
*/
public Course getCourseById(int c_id)throws MyException;
/**
* 分页查询
* @param pager
* @param request
* @param resp
* @throws Exception
*/
public void getListByPager(Pager pager,HttpServletRequest request,HttpServletResponse resp)throws Exception;
/**
* 根据院系ID得到专业信息
* @param did
* @param resp
* @throws Exception
*/
public void getMajorsByDid(int did,HttpServletResponse resp)throws Exception;
/**
* 根据专业ID得到教师信息
* @param mid
* @param resp
* @throws Exception
*/
public void getTeachersByMid(int mid,HttpServletResponse resp)throws Exception;
/**
* 根据专业ID得到课程信息
* @param mid
* @param resp
* @throws Exception
*/
public void getCourseInfoesByMid(int mid,HttpServletResponse resp)throws Exception;
/**
* 根据专业ID得到班级信息
* @param mid
* @param resp
* @throws Exception
*/
public void getClassesByMid(int mid,HttpServletResponse resp)throws Exception;
}
3.3配置教室
3.3.1 添加教室
添加教室ID,实现如图3-3显示:
图 3-3 添加教室
class Rooms {
private int roomid;
private String roomNo;
private String rstate;
private String op;
public Rooms(int roomid, String roomNo, String rstate, String op) {
super();
this.roomid = roomid;
this.roomNo = roomNo;
this.rstate = rstate;
this.op = op;
}
/**
* @return the roomid
*/
public int getRoomid() {
return roomid;
}
/**
* @param roomid the roomid to set
*/
public void setRoomid(int roomid) {
this.roomid = roomid;
}
/**
* @return the roomNo
*/
public String getRoomNo() {
return roomNo;
}
/**
* @param roomNo the roomNo to set
*/
public void setRoomNo(String roomNo) {
this.roomNo = roomNo;
}
/**
* @return the rstate
*/
public String getRstate() {
return rstate;
}
/**
* @param rstate the rstate to set
*/
public void setRstate(String rstate) {
this.rstate = rstate;
}
/**
* @return the op
*/
public String getOp() {
return op;
}
/**
* @param op the op to set
*/
public void setOp(String op) {
this.op = op;
}
}
3.3.2 查看教室
查看教室主要包括,序号、教室好、状态、以及操作编辑和禁用功能,实现效果如图3-4所示:
图3-4 查看教室
public class RoomServiceImpl implements RoomService {
@Resource
private RoomDao roomDao;
public boolean saveRoom(Room room) throws MyException {
int n=roomDao.save(room);
if (n>0) {
return true;
}else{
return false;
}
}
public boolean updateRoom(Room room) throws MyException {
int n=roomDao.update(room);
if (n>0) {
return true;
}else{
return false;
}
}
public void deleteRoom(int roomid, HttpServletResponse response)
throws Exception {
Room room=roomDao.findEntityById(roomid);
int n=roomDao.delete(room);
response.setCharacterEncoding("utf-8");
PrintWriter out=response.getWriter();
String str="";
if (n>0) {
str="{\"success\":true}";
}else{
str="{\"success\":false}";
}
out.print(str);
out.flush();
out.close();
}
public Room getRoomById(int roomid) throws Exception{
return roomDao.findEntityById(roomid);
}
public void getListByPager(Pager pager, HttpServletResponse resp)throws Exception {
List
list=roomDao.getRoomListByPager(pager);
pager.setRecordList(list);
int length=roomDao.getAllList().size();
pager.setiTotalRecords(length);
if (pager.getsSearch()==null||"".equals(pager.getsSearch())) {
pager.setiTotalDisplayRecords(length);
}else {
pager.setiTotalDisplayRecords(list.size());
}
resp.setCharacterEncoding("utf-8");
PrintWriter out=resp.getWriter();
String str=toJson(pager);
System.out.println(str);
out.print(str);
out.flush();
out.close();
}
@SuppressWarnings("unchecked")
public String toJson(Pager pager) throws Exception {
@SuppressWarnings("rawtypes")
ArrayList array=new ArrayList();
for (Room r:(List)pager.getRecordList()) {
if (r.getRstate()==0) {
String op="编辑 禁用";
Rooms rooms=new Rooms(r.getRoomId(), r.getRoomNo(), "启用", op);
array.add(rooms);
}else{
String op="编辑禁用";
Rooms rooms=new Rooms(r.getRoomId(), r.getRoomNo(), "启用", op);
array.add(rooms);
}
}
String jsonArr=JSONArray.fromObject(array).toString();
return"{\"sEcho\":"+pager.getsEcho()+",\"iTotalRecords\":"+pager.getiTotalRecords()+",\"iTotalDisplayRecords\":"+pager.getiTotalDisplayRecords()+",\"aaData\":"+jsonArr+"}"; }
4 心得体会
通过这次实训,了解了教室管理基本功能,我的主要部分是配置课程表和配置教室,其实现过程中,有对其控制器等不同的操作,包括对课程表的删除,修改等一系列的实现,对自己有很大的提高,对以后的学习有着很重要的影响,期间也遇到了很多的问题,如在在获取课程表时,的ID,以及教室,当时出现了很多不匹配,但经过不断的学习和询问,在团队中得到了解决,在同伴中学到很多,以后要不断的学习和发展,来提高自身。
参考文献
[1]王颖.对RFID在图书馆应用的思考[J]. 图书馆工作与研究, 2009,(02) .
[2]刘筱霞,陈春霞.现代电子标签及其印刷技术[J]. 包装工程, 2008,(05) .
[3]程雪,周修理,李艳军.射频识别(RFID)技术在动物食品溯源中的应用[J]. 东北农业大学学报, 2008,(10) .
[4]石蕾,陈敏雅. RFID系统中阅读器的设计与实现[J]. 电脑开发与应用, 2008,(07) .