毕业设计(论文)开题报告
专 业: 通信工程
班 级: xx级通信工程一班
姓 名: XXX
指导教师姓名: XXX
指导教师职称: 讲师
20xx 年 xx 月
1 .本课题的研究意义,国内外研究现状、水平和发展趋势
本课题研究的意义
随着企业管理现代化意识的不断增强,普通意识上的门锁系统已经不能满足企业现代管理的要求。电子化门禁系统的出现,极大方便了人们对出入口的管理,并迅速开始普及应用。
近年来,门禁系统由于其本身的优势,已经悄然兴起,包括邮电系统,供电系统,银行系统,住宅小区,公司实体等各种类型的场所都已有使用门禁系统的范例,通过这套系统的使用极大地提高了管理者的工作效率和管理区域内的安全程度。
门禁系统采用个人识别卡的方式工作。给每个有权进入的人发一张个人识别卡,相当于一把钥匙。系统根据该卡的卡号和当前时间等信息,判断该卡持有人是否可以进入(或出去),如果可以,系统自动开门。对于企业、机关等需要考勤的场所,门禁系统还可以记录每个职工是否按时上下班。门禁系统的另一个优点是可以随时增加和删除某一卡而不必担心某一卡丢失后造成什么损失。
国内外研究现状、水平和发展趋势
门禁系统的基本含义就是出入口控制系统。它的作用在于管理人群进出管理区域,限制未经授权者进出特定区域,并使已授权者在进出上更便捷,而且根据实际需要来查询一系列记录。门禁系统是在建筑物内的主要管理区的出入口、电梯厅、主要设备控制中心机房、贵重物品库房等重要的部位的通道口安装磁门、电控锁或读卡器等控制装置,由中心控制器监控,系统采用计算机多重任务的处理,能够对各通道口的位置,通过对象及通行时间进行实时控制或设定程序控制,适应小区、办公楼的安全的管理。
传统的机械门锁仅仅是单纯的机械装置,无论结构设计多么合理,材料多么坚固,人们总能通过各种手段把它打开。在人员变更频繁的场所(如办公室,酒店客房)钥匙的管理很麻烦,在一些大型机关、企业,钥匙的管理成本很高,钥匙丢失或人员更换时往往要把锁和钥匙一起更换。特别是传统机械钥匙容易出现重复,而且出入没有记录,旗安全性非常差。为了弥补上述问题于是出现了电子磁卡锁,电子密码锁,这从一定程度上提高了人们对出入口通道的管理的程度。但他们本身的缺陷就逐渐暴露。磁卡锁的问题是信息容易复制,卡片与读卡机之间磨损大,故障率高,安全系数低。密码锁的问题是密码容易泄露。这个时期的门禁系统和高还停留在早期不成熟阶段,因此当时的门禁系统通常被人称为电子锁,应用也不广泛。
最近几年随着数字技术网络技术飞速进步和感应卡技术,生物识别技术的发展,门禁系统得到了飞跃式的发展,出现了感应式门禁系统,指纹门禁系统,虹膜门禁系统,面部识别门禁系统,乱序键盘门禁系统等各种技术的系统,而且门禁系统早已超越了单纯的门道及钥匙管理科,它已经逐渐发展成为一套完整的出入管理系统。门禁系统的应用领域也越来越广。是人们在公共场所实施进出口管理最有效的工具。它在工作环境安全、人事考勤管理、大规模人员出入等管理工作中发挥着巨大的作用。
随着电子芯片的高度集成化,门禁系统的功能也变得越来越完善和简捷,而且越来越容易操作。门禁系统的发展过程如下:
1、第一代门禁
单一的键盘输入密码方式。常常会有因忘记密码而被拒之门外的尴尬事情发生。
2、第二代门禁
接触式卡门禁系统。所用的接触式卡片有磁码卡和铁码卡。磁码卡是把磁质贴在塑料卡片上制成的。磁片可以改写,应用方便。其缺点是易消磁、易磨损。铁马卡片中间用特殊的金属线排列编码,采用金属磁烧的原理制成,不易被复制、铁码卡可有效的防磁、防水、防尘,是安全性较高的一种卡。这种非门禁系统虽然有些改进,但是如果卡片不小心被消磁或弄脏,进入人员将被拒之门外。
3、第三代门禁
感应卡,即非接触式IC卡一般指无源IC卡,卡片采用了先进的半导体制造技术和信息安全技术,利用电子回路及感应线圈在读卡器本身产生的特殊震荡频率,当卡片进入读卡器能量范围产生共振,感应电流使电子回路发射信号到读卡器,经读卡器将接受的信号转换成卡片资料,送到控制器对比。
4、第四代门禁
生物识别系统。它包括指纹机、掌纹机、视网膜识别机和声音识别装置等。指纹和掌纹识别用于安全性较高的出入口控制系统,视网膜识别机和声音识别装置在正常情况下安全性极高,但若视网膜充血或病变以及感冒等疾病会影响使用。
以上几代门禁系统中,磁码卡价格便宜,仍被使用;铁码卡和感应式保安性能好,现在比较流行;生物辨别技术安全极高,一般应用在军政要害部门或银行金库等场所。
由于磁卡、接触式IC卡对于操作环境的要求较高,磁卡及IC卡本身的工作有一定寿命期,再加之识别过程中操作者的动作和所需时间明显多于非接触式卡,因而,从目前全球门禁系统的前端输入设备的水平及发展方向来看,虽然磁卡、接触式IC卡、读卡器在门禁系统的应用中还有一部分市场,但从发展趋势上看,非接触式智能卡势必将全面取代磁卡、IC卡市场。
2 、本课题的基本内容,预计可能遇到的困难,提出解决问题的方法和措施
基本内容
本课题主要是在现有网站资源基础上,研究并设计出成本经济、安全可靠、方便迅速门禁系统。本课题研究的内容是:
1、研究分析门禁系统的基本组成结构,需要使用的开发工具以及各种参考资料。
2、了解用户的需求,能够快速准确的定位系统需要实现的功能以及系统的操作流程。
3、根据用户提供的需求说明,以及系统要实现的功能,设计出相应的系统功能模块、数据库、系统总体设计图。
4、确定系统开发的任务书,合理分配各阶段的时间。完成相关的技术文档,并给予详细的说明。
5、完成系统的详细设计,设计各个功能模块,以及各个模块之间的关系。
6、研究当前网络上资源和已有系统,为在开发后能结合相关系统做好准备。
可能遇到的困难,提出解决问题的方法和措施
本课题主要是介于struts等开发框架进行设计,结合javascript、oracle、apache进行开发。对于struts等开发框架的了解还不够深入,时常需要在网上查看资料。门禁系统的需求都是根据公司客户要求实现,对于一些特殊的要求需要特别的分析。还有对于一些误操作需要事先考虑到和设置相应的异常处理。
3 .本课题拟采用的研究手段(途径)和可行性分析
对本方案的可行性分析
本次软件项目可行性研究报告是对项目课题的全面通盘考虑,是项目分析员进行进一步工作的前提,是软件开发人员正确成功的开发项目的前提与基础.
写软件项目可行性研究报告可以使软件开发团体尽可能早的估计研制课题的可行性,可以在定义阶段较早的认识到系统方案的缺陷,就可以少花费时间和精力,并且避免了许多专业方面的困难.所以该软件项目可行性研究报告在整个开发过程中是非常重要的。
本系统从技术可行性、经济可行性、操作可行性、方案可行性四个方面分析研究。
1、技术可行性
应用Java技术进行系统开发。Apache是最通用的网络服务器;Oracle是强大的关系数据库;Java是目前最流行的编程语言。
鉴于目前成熟的Java技术,该系统可以完整的完成。
2、经济可行性
本系统使用Oracle数据库管理系统,前端采用eclipse作为应用开发工具,容易购买,价格低廉。开发此系统并投入使用,安装简单,成本低廉,易于维护和升级,开发周期短,经济效益高。
本系统要求的计算机配置不是很高,需要操作系统,应用软件和数据库管理等软件,基础投资建设成本不是很高。支持没有计算机使用经验、计算机使用经验较少及有较多计算机使用经验的用户均能方便地使用本系统。所以,在经济上是可行的。
3、操作可行性
本系统需要一台WEB服务器,配置要求与客户量相关,对于普通公司内使用,一台普通的服务器即可。当前的主流服务器完全可以满足要求。对于客户端,只需要客户端装有浏览器即可,对机器本身没有太高的要求,一般电脑都可满足要求。
4、方案可行性
本系统致力于设计出能够满足大楼管理需求,实现工作环境安全、人事考勤管理、大规模人员出入等管理工作,其带来的经济效益非常好,所以本方案是可行的。
我精心推荐
目 录一、概要设计……………………………………………………………3二、程序整体设计说明…………………………………………….…..4三、程序部分源代码及注释…………………………………………….9四、测试结果………………………………………………………….24五、设计心得…………………………………………………………25六、致 谢…………………………………………………………25七、参考文献…………………………………………………………25【摘 要】该程序是一个图形界面的java文档编辑器,其界面主要采用了awt包, 程序实现了文本编辑器的基本功能有:新建文件、打开文件、文件保存、文件另存为、剪切、复制、粘贴、删除、查找/替换、改变字体大小,另外还利用Time类的schedule方法实现了文件的定时自动更新功能,并创建备份文件,由于该编辑器是用的awt包,所以在技术上没有实现将Java的关键字以不同颜色显示功能。【关键字】java 编辑器一、概要设计Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。图形界面的实现:考虑到简单、实用、高效等特点,就选择了AWT来完成实现,在选择组件上,文本编辑区就选用了TaxtArea作为主要的部件。线程实现文件自动保存:在相关的参考书上查阅到在Time类中有一个schedule方法可以在后台自动完成一定的功能,而且调用起来相当简单,于是就用了Time类中的schedule方法来实现文件自动保存及备份功能。文件操作的实现:利用了字符文件流FileReader和FileWriter类来实现。由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。在设计类的时候,考虑到简单明了,就用了两个类,一个主类和一个默认属性类作为程序的整体框架,所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。主类完成对象的实例化及显示。这们设计的优点是:条理清晰,容易理解,容易修改。这样设计的缺点是:不利于共享类中的方法。二、程序整体设计说明、程序框架图、程序中所用类说明(1)用户自定义类类名:EditInstantiation作用:实例化对象继承的父类:WindowAdapter主要成员变量:Frame myFrm // 定义主窗体TextArea myText // 定义文本编辑区Dialog myDlgFind,myDlgFindont //查找及设置字体对话框TextField TFfind, TFreplace, TffontSize//查找对话框和字体窗体中的文本行Button BfontOK, Bfind, Breplace, Bnext, Bcancel //定义和创建各按钮Label Lf, Lr, Ls //定义和创建各标签MenuBar Mbbar //定义和创建主菜单Menu Mfile,Medit,Mformation,Mhelp //定义和创建主菜单中的选项Toolkit toolKitClipboard myCB //剪切板对象FileDialog myFDlg //定义文件对话框Choice ChfontName //定义和创建字体选择框private int VIindex = 1; //构成文件名后缀变量private String VSsubFixStr=".java"; //构成文件名扩展名变量private String VSmyFileName = "Document1",VSmyBFileName;//文件名及备份文件名变量private File VFmyFile=new File(VSmyFileName+VIindex+".java");//文件名变量private int VIsearchPosition=0; //查找位置指针private Timer VTtime; //实例化一个Time类private int VImin=1; // schedule方法中的一个时间参数private int VItype=;//提示对话框类型private String VStitle; //提示对话框标题private String VSmessage; //提示对话框信息private boolean VBchanged = true; //改变字体的一个标识private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2; //设置字体大小及步长主要成员方法:public void init() //初始化各部件菜单的定义和事件的监听public void displayEdit ()//显示窗体及调用Time中的schedule方法public void windowClosing () //关闭窗体public void save //保存文件方法a.内部类类名:KeyEvents作用:实现菜单的事件的响应功能继承的父类:KeyAdapter主要成员变量:无成员方法:actionPerformed()、keyPressed()b.内部类类名:FindKeyEvent作用:实现查找中各部件事件的响应功能继承的父类:无主要成员变量:无成员方法:actionPerformed ()c.内部类类名:fontEvent作用:实现字体中各部件事件的响应功能继承的父类:无主要成员变量:无成员方法:ItemListener(),ActionListener()(2)用户自定义类与Java类的继承关系图如下:自定义类 Java 类线程使用说明、实现接口方法本程序用到的方法有:schedule其方法描述如下:schedule(事件,启动时间,间隔时间);、线程应用本程序为文本编辑器,为实现自动更新,应用到了线程,每隔1分钟对文件进行自动更新、异常处理说明(1)打开文件时的异常处理需要处理的异常:IOException处理方法:捕获异常后,显示捕获的异常(2)保存文件时的异常处理需要处理的异常:IOException处理方法:捕获异常后,显示捕获的异常、程序运行效果及存在的问题(1)程序运行主要界面如下:a、主界面b、打开文件对话框c、保存文件对话框d、另存为文件对话框e、查找/替换对话框f.字体对话框.程序尚还存在的问题我花费了近一个多星期的时间,查阅了许多相关的资料,终于把这个Java编辑器,程序基本实现了该课程设计的基本要求。但由于自己水平有限,使得程序还有不是很完善,首先,最重要的一点是该设计的最重要的功能自动改变java关键字的颜色没有实现。三、程序部分源代码及注释//****************************************************// class name :Edit// implements :none// extends :none// attribute :public// founction :entrance of the class//*****************************************************public class Edit{ //主类public static void main(String args[]){EditInstantiation myEdit= new EditInstantiation();(); //初始化(); //显示窗体}//****************************************************// class name :EditInstantiation// implements :none// extends :WindowAdapter// attribute :default// founction :EditInstantiation of the main class//*****************************************************class EditInstantiation extends WindowAdapter{ //默认属性类//define sources 定义各部件Frame myFrm=new Frame("我的编辑器"); //定义窗体TextArea myText=new TextArea(); //定义窗体Dialog myDlgFind=new Dialog(myFrm,"查找",true); //定义查找对话框Dialog myDlgFindont=new Dialog(myFrm,"字体",true); //定义字体对话框TextField TFfind=new TextField(30);//定义查找对话中的查找输入框TextField TFreplace=new TextField(30); //定义查找对话中的替换输入框TextField TFfontSize,TFfontDemo;//定义字体大小文本框和示例框Choice CHfontName;//定义字体大小选择框List LTfontSize; //定义字体大小标签Button BfontOK,BfontCancel; //定义字体大小对话中的确定及取消按钮Button Bfind=new Button("查找");//定义查找对话中的查找按钮Button Breplace=new Button("替换");//定义查找对话中的替换及取消按钮Button Bnext=new Button("下一个");//定义查找对话中的下一个及取消按钮Button Bcancel=new Button("取消");//定义查找对话中的确定及取消按钮Label Lf=new Label("查找内容:");Label Lr=new Label("替换为: ");Label Ls=new Label("字体大小:");FileDialog myFDlg;Clipboard myCB=().getSystemClipboard(); //剪切板对象Menu Mfile,Medit,Mformation,Mhelp;MenuBar MBbar;//define varities //定义各变量private int VIindex = 1;private String VSsubFixStr=".java";private String VSmyFileName = "Document1",VSmyBFileName;private File VFmyFile=new File(VSmyFileName+VIindex+".java");private int VIsearchPosition=0;private Timer VTtime;private int VImin=1; // parameter in time schedulprivate int VItype=;private String VStitle;private String VSmessage;// flag of the changeingprivate boolean VBchanged = true;// the scope of the fontprivate int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2;//************************************************//founction name:init()//parameter :none//attribute :public//founction :initia all compont//************************************************public void init(){ //初始化各部件//------------------ set menu ------------------MBbar=new MenuBar();(MBbar);Mfile=new Menu("文件");Medit=new Menu("编辑");Mformation=new Menu("格式");Mhelp=new Menu("帮助");(Mfile);(Medit);(Mformation);(Mhelp);//文件菜单 add File (new MenuItem("新建",new MenuShortcut()));(new MenuItem("打开",new MenuShortcut()));(new MenuItem("保存",new MenuShortcut()));(new MenuItem("另存为"));();//分隔线(new MenuItem("退出",new MenuShortcut()));//编辑菜单 add Edit (new MenuItem("剪切"));//,new MenuShortcut()));(new MenuItem("复制"));//new MenuShortcut()));(new MenuItem("粘贴"));//new MenuShortcut()));(new MenuItem("删除"));//new MenuShortcut()));();//分隔线(new MenuItem("查找/替换",new MenuShortcut()));();//分隔线(new MenuItem("全选",new MenuShortcut()));//格式菜单 add Formation (new MenuItem("字体",new MenuShortcut()));//帮助菜单 add Formation (new MenuItem("关于作者"));//----------------- menu add end -------------------------//add Menu Action (new KeyEvents());(new KeyEvents());(new KeyEvents());(new FindKeyEvent());//--------------------------- Find (350,115);(250,150);(new FlowLayout());();(false);(false);(false);(Lf);(TFfind);(Lr);(TFreplace);(Bfind);(Breplace);(Bnext);(Bcancel);(new WindowAdapter(){public void windowClosing(WindowEvent e){(false);}});//为查找对话框窗体注册事件监听(new KeyEvents());//注册事件监听(new FindKeyEvent());(new FindKeyEvent());(new FindKeyEvent());(new FindKeyEvent());//--------------- end add action listener ------------//================set font dialog ==============//font size text fieldTFfontSize = new TextField("8",14);();//font size list fieldLTfontSize = new (5, false);(new fontEvent());for(int i = VIfontSizeMin; i <= VIfontSizeMax; i = i + VIfontSizeChangedStep)(i + "");//添加字体大小(0);//two Button Ok CancelBfontOK = new Button("确定");(new fontEvent());BfontCancel = new Button("取消");(new fontEvent());//a TextField for demo the fontTFfontDemo = new TextField("Java awt",37);(false);// my font dialog设置字体对话框(new FlowLayout());();(Ls);(TFfontSize);(BfontOK);(BfontCancel);(LTfontSize);(TFfontDemo);(300,200);(300,200);(false);(new WindowAdapter() {public void windowClosing(WindowEvent e) {(false);}}); //为字体对话框窗体注册事件监听//=============end set font dialog// =======set Edit frame设置编辑器窗休(myText,);(500,400);();(this);(500,400);(200,100);("Java编辑器");}//************************************************//founction name:displayEdit()//parameter :none//attribute :public//founction :initial and display the frame//************************************************public void displayEdit(){ //显示窗体(true);//---------------------- auto save ---------------------VTtime = new Timer(true);(new (){public void run(){if(VSmyFileName!=null){save(VSmyFileName+".java");VSmyBFileName=VSmyFileName+".bak";} //添加自动保存功能save(VSmyBFileName);}}, VImin*60*1000,VImin*60*1000);//parament 1 the task//parament 2 when to start the task//parament 3 set the interval time }//****************************************************// class name :KeyEvents// implements :ActionListener// extends :KeyAdapter// attribute :default// founction :implement the mouse and key action//*****************************************************class KeyEvents extends KeyAdapter implements ActionListener{//********************************************************//founction name:actionPerformed()//parameter :none//attribute :public//return :void//founction :realize the key action in the menu//*********************************************************public void actionPerformed(ActionEvent e){//完成菜单事件的功能// File Menuif (()=="新建"){//remind youJFrame aFrame=new JFrame();();JOptionPane optionPane=new JOptionPane();String choices[]={"是","否","取消"};int n=(aFrame,"文件正文已更改,是否保存更改","文本编辑器",[0]);//保存文件后新建if(n==0){//若文件存在,保存在原文件中,再新建文件try{if(()){save(VSmyFileName); // call the save ("");VIindex++;}else{//若文件不存在,则保存后再新建myFDlg=new FileDialog(myFrm,"保存文件",);(VSmyFileName);();VSmyFileName=()+();save(VSmyFileName);("");VIindex++;}}catch(Exception ne){}}//不保存文件新建if(n==1){("");VIindex++;}//取消新建if(n==0){return;}}//打开菜单 Open Menuif (()=="打开") {myFDlg=new FileDialog(myFrm,"打开",);();if (()!="") {VFmyFile=new File(()+());VSmyFileName=()+();if( ()){try{FileReader fr=new FileReader(VFmyFile);BufferedReader br=new BufferedReader(fr);String text;("");while ((text=())!=null)(text+"\r\n");();();}catch(IOException ioe){VStitle="提示";VSmessage="打开文件出错";(myFrm,VSmessage,VStitle,VItype);}}}}//保存菜单 Save Menuif (()=="保存"){myFDlg=new FileDialog(myFrm,"保存文件",);(VSmyFileName);();VSmyFileName=();if(VSmyFileName!=null){VSmyFileName=()+();save(VSmyFileName);}}//另存为菜单 SaveAs Menuif (()=="另存为"){myFDlg=new FileDialog(myFrm,"文件另存为",1);(VSmyFileName);();VSmyFileName=();if(VSmyFileName!=null){VSmyFileName=()+();save(VSmyFileName);}}//退出菜单 exit Menuif (()=="退出")(0);//编辑 Edit Menuif (()=="剪切"){//CutString text =();StringSelection selection = new StringSelection(text);(selection, null);("",(),());}if (()=="复制"){//copyString text=();if(text!=null){StringSelection selection=new StringSelect
(new MenuItem("剪切"));//,new MenuShortcut()));
一切一切…网上搜搜…给我分吧…
一切一切…网上搜搜…给我分吧…回答者: 不知道吧哈哈哈 - 高级魔法师 七级 5-11 08:53这个不知道吧哈哈哈就是垃圾厚脸皮跟人家要分
这个没有关系我可以推荐您几个好的题目,资料又多又容易理解,更容易通过毕设:基于SSM的少女心商城系统-javaweb商城系统MySQL数据源基于SSM的少女心商城系统-javaweb商城系统MySQL数据源 开发环境: Eclipse for J2EE ,基于SSM+Bootstrap卡通毕业设计管理系统-javaweb毕业设计管理MySQL数据源基于SSM的药品查询医药管理系统(简易)-java药店管理javaweb药房管理MySQL数据源基于SSM的药品查询医药管理系统(简易)-java药店管理javaweb药房管理MySQL数据源 基于SSH的实验室设备管理系统-javaweb实验室设备管理MySQL数据源基于SSH的实验室设备管理系统-javaweb实验室设备管理MySQL数据源 开发环境: Eclipse 基于SSM+LayUI的学生成绩管理系统-javaweb学生成绩管理MySQL数据源基于SSM+LayUI的学生成绩管理系统-javaweb学生成绩管理MySQL数据源 开发环境: Eclipse for J2EE基于SpringBoot+LayUI的医院门诊住院医疗管理系统-javaweb医院管理系统MySQL基于SpringBoot+LayUI的医院门诊住院医疗管理系统-javaweb医院管理系统MySQL 开发环境: Eclipse for J2EE
248 浏览 3 回答
342 浏览 3 回答
230 浏览 3 回答
200 浏览 3 回答
289 浏览 4 回答
147 浏览 6 回答
280 浏览 6 回答
171 浏览 4 回答
205 浏览 7 回答
266 浏览 4 回答
187 浏览 3 回答
186 浏览 4 回答
317 浏览 4 回答
141 浏览 7 回答
155 浏览 5 回答