毕业设计(论文)开题报告
专 业: 通信工程
班 级: xx级通信工程一班
姓 名: XXX
指导教师姓名: XXX
指导教师职称: 讲师
20xx 年 xx 月
1 .本课题的研究意义,国内外研究现状、水平和发展趋势
1.1 本课题研究的意义
随着企业管理现代化意识的不断增强,普通意识上的门锁系统已经不能满足企业现代管理的要求。电子化门禁系统的出现,极大方便了人们对出入口的管理,并迅速开始普及应用。
近年来,门禁系统由于其本身的优势,已经悄然兴起,包括邮电系统,供电系统,银行系统,住宅小区,公司实体等各种类型的场所都已有使用门禁系统的范例,通过这套系统的使用极大地提高了管理者的工作效率和管理区域内的安全程度。
门禁系统采用个人识别卡的方式工作。给每个有权进入的人发一张个人识别卡,相当于一把钥匙。系统根据该卡的卡号和当前时间等信息,判断该卡持有人是否可以进入(或出去),如果可以,系统自动开门。对于企业、机关等需要考勤的场所,门禁系统还可以记录每个职工是否按时上下班。门禁系统的另一个优点是可以随时增加和删除某一卡而不必担心某一卡丢失后造成什么损失。
1.2国内外研究现状、水平和发展趋势
门禁系统的基本含义就是出入口控制系统。它的作用在于管理人群进出管理区域,限制未经授权者进出特定区域,并使已授权者在进出上更便捷,而且根据实际需要来查询一系列记录。门禁系统是在建筑物内的主要管理区的出入口、电梯厅、主要设备控制中心机房、贵重物品库房等重要的部位的通道口安装磁门、电控锁或读卡器等控制装置,由中心控制器监控,系统采用计算机多重任务的处理,能够对各通道口的位置,通过对象及通行时间进行实时控制或设定程序控制,适应小区、办公楼的安全的管理。
传统的机械门锁仅仅是单纯的机械装置,无论结构设计多么合理,材料多么坚固,人们总能通过各种手段把它打开。在人员变更频繁的场所(如办公室,酒店客房)钥匙的管理很麻烦,在一些大型机关、企业,钥匙的管理成本很高,钥匙丢失或人员更换时往往要把锁和钥匙一起更换。特别是传统机械钥匙容易出现重复,而且出入没有记录,旗安全性非常差。为了弥补上述问题于是出现了电子磁卡锁,电子密码锁,这从一定程度上提高了人们对出入口通道的管理的程度。但他们本身的缺陷就逐渐暴露。磁卡锁的问题是信息容易复制,卡片与读卡机之间磨损大,故障率高,安全系数低。密码锁的问题是密码容易泄露。这个时期的门禁系统和高还停留在早期不成熟阶段,因此当时的门禁系统通常被人称为电子锁,应用也不广泛。
最近几年随着数字技术网络技术飞速进步和感应卡技术,生物识别技术的发展,门禁系统得到了飞跃式的发展,出现了感应式门禁系统,指纹门禁系统,虹膜门禁系统,面部识别门禁系统,乱序键盘门禁系统等各种技术的系统,而且门禁系统早已超越了单纯的门道及钥匙管理科,它已经逐渐发展成为一套完整的出入管理系统。门禁系统的应用领域也越来越广。是人们在公共场所实施进出口管理最有效的工具。它在工作环境安全、人事考勤管理、大规模人员出入等管理工作中发挥着巨大的作用。
随着电子芯片的高度集成化,门禁系统的功能也变得越来越完善和简捷,而且越来越容易 *** 作。门禁系统的发展过程如下:
1、第一代门禁
单一的键盘输入密码方式。常常会有因忘记密码而被拒之门外的尴尬事情发生。
2、第二代门禁
接触式卡门禁系统。所用的接触式卡片有磁码卡和铁码卡。磁码卡是把磁质贴在塑料卡片上制成的。磁片可以改写,应用方便。其缺点是易消磁、易磨损。铁马卡片中间用特殊的金属线排列编码,采用金属磁烧的原理制成,不易被复制、铁码卡可有效的防磁、防水、防尘,是安全性较高的一种卡。这种非门禁系统虽然有些改进,但是如果卡片不小心被消磁或弄脏,进入人员将被拒之门外。
3、第三代门禁
感应卡,即非接触式IC卡一般指无源IC卡,卡片采用了先进的半导体制造技术和信息安全技术,利用电子回路及感应线圈在读卡器本身产生的特殊震荡频率,当卡片进入读卡器能量范围产生共振,感应电流使电子回路发射信号到读卡器,经读卡器将接受的信号转换成卡片资料,送到控制器对比。
4、第四代门禁
生物识别系统。它包括指纹机、掌纹机、视网膜识别机和声音识别装置等。指纹和掌纹识别用于安全性较高的出入口控制系统,视网膜识别机和声音识别装置在正常情况下安全性极高,但若视网膜充血或病变以及感冒等疾病会影响使用。
以上几代门禁系统中,磁码卡价格便宜,仍被使用铁码卡和感应式保安性能好,现在比较流行生物辨别技术安全极高,一般应用在军政要害部门或银行金库等场所。
由于磁卡、接触式IC卡对于 *** 作环境的要求较高,磁卡及IC卡本身的工作有一定寿命期,再加之识别过程中 *** 作者的动作和所需时间明显多于非接触式卡,因而,从目前全球门禁系统的前端输入设备的水平及发展方向来看,虽然磁卡、接触式IC卡、读卡器在门禁系统的应用中还有一部分市场,但从发展趋势上看,非接触式智能卡势必将全面取代磁卡、IC卡市场。
2 、本课题的基本内容,预计可能遇到的困难,提出解决问题的方法和措施
2.1基本内容
本课题主要是在现有网站资源基础上,研究并设计出成本经济、安全可靠、方便迅速门禁系统。本课题研究的内容是:
1、研究分析门禁系统的基本组成结构,需要使用的开发工具以及各种参考资料。
2、了解用户的需求,能够快速准确的定位系统需要实现的功能以及系统的 *** 作流程。
3、根据用户提供的需求说明,以及系统要实现的功能,设计出相应的系统功能模块、数据库、系统总体设计图。
4、确定系统开发的任务书,合理分配各阶段的时间。完成相关的技术文档,并给予详细的说明。
5、完成系统的详细设计,设计各个功能模块,以及各个模块之间的关系。
6、研究当前网络上资源和已有系统,为在开发后能结合相关系统做好准备。
2.2可能遇到的困难,提出解决问题的方法和措施
本课题主要是介于struts等开发框架进行设计,结合javascript、oracle、apache进行开发。对于struts等开发框架的了解还不够深入,时常需要在网上查看资料。门禁系统的需求都是根据公司客户要求实现,对于一些特殊的要求需要特别的分析。还有对于一些误 *** 作需要事先考虑到和设置相应的异常处理。
3 .本课题拟采用的研究手段(途径)和可行性分析
对本方案的可行性分析
本次软件项目可行性研究报告是对项目课题的全面通盘考虑,是项目分析员进行进一步工作的前提,是软件开发人员正确成功的开发项目的前提与基础.
写软件项目可行性研究报告可以使软件开发团体尽可能早的估计研制课题的可行性,可以在定义阶段较早的认识到系统方案的缺陷,就可以少花费时间和精力,并且避免了许多专业方面的困难.所以该软件项目可行性研究报告在整个开发过程中是非常重要的。
本系统从技术可行性、经济可行性、 *** 作可行性、方案可行性四个方面分析研究。
1、技术可行性
应用Java技术进行系统开发。Apache是最通用的网络服务器Oracle是强大的关系数据库Java是目前最流行的编程语言。
鉴于目前成熟的Java技术,该系统可以完整的完成。
2、经济可行性
本系统使用Oracle数据库管理系统,前端采用eclipse作为应用开发工具,容易购买,价格低廉。开发此系统并投入使用,安装简单,成本低廉,易于维护和升级,开发周期短,经济效益高。
本系统要求的计算机配置不是很高,需要 *** 作系统,应用软件和数据库管理等软件,基础投资建设成本不是很高。支持没有计算机使用经验、计算机使用经验较少及有较多计算机使用经验的用户均能方便地使用本系统。所以,在经济上是可行的。
3、 *** 作可行性
本系统需要一台WEB服务器,配置要求与客户量相关,对于普通公司内使用,一台普通的服务器即可。当前的主流服务器完全可以满足要求。对于客户端,只需要客户端装有浏览器即可,对机器本身没有太高的要求,一般电脑都可满足要求。
4、方案可行性
本系统致力于设计出能够满足大楼管理需求,实现工作环境安全、人事考勤管理、大规模人员出入等管理工作,其带来的经济效益非常好,所以本方案是可行的。
我精心推荐
1、打开eclipse,建好工程,然后建好你的package,包名起bag012、建立你的class类,名字起JFrameDemo‘
3、删除掉class文件里所有内容,留出空白页
4、复制粘贴下面的代码
注:确保你的jdk版本里有swing图形化界面
package bag01
import java.awt.Color
import java.awt.Container
import java.awt.Font
import java.awt.event.ActionEvent
import java.awt.event.ActionListener
import java.util.ArrayList
import java.util.Iterator
import java.util.List
import javax.swing.JButton
import javax.swing.JFrame
import javax.swing.JLabel
import javax.swing.JPanel
import javax.swing.JTextField
/*
* 本计算器只能运算单次,不支持连等式和连续运算
*/
public class JFrameDemo extends JFrame {
JFrame jf = new JFrame()
Container u = jf.getContentPane()
JPanel mp = new JPanel()
JLabel jl = new JLabel("贼牛逼计算器")
JTextField jt = new JTextField()
int num1 //第一次按下运算符号按钮之前输入的数字
int num2 //第二次按下运算符号按钮之前输入的数字
int ks = 0 //若按下加号ks赋值1,减号赋值2,乘号赋值3,除号赋值4,并在最终根据ks的值选择运算方式
JButton bt1 = new JButton("1")
JButton bt2 = new JButton("2")
JButton bt3 = new JButton("3")
JButton bt4 = new JButton("4")
JButton bt5 = new JButton("5")
JButton bt6 = new JButton("6")
JButton bt7 = new JButton("7")
JButton bt8 = new JButton("8")
JButton bt9 = new JButton("9")
JButton bt10 = new JButton("+")
JButton bt11 = new JButton("-")
JButton bt12 = new JButton("=")
JButton bt13 = new JButton("0")
JButton bt14 = new JButton("X")
JButton bt15 = new JButton("/")
List<String>list = new ArrayList()
public void Chuangkou() {
// 设置窗口属性
jf.setSize(400, 500)
jf.setVisible(true)
jf.setDefaultCloseOperation(EXIT_ON_CLOSE)
jf.setLayout(null)
jf.setLocationRelativeTo(null)
jf.setTitle("非常好计算器")
jl.setBounds(120, 50, 200, 25)
jl.setFont(new Font("黑体", Font.BOLD, 25))
//设置容器属性
u.setBackground(Color.white)
//设置面板属性
mp.setSize(400, 500)
mp.setVisible(true)
mp.setBackground(Color.pink)
mp.add(jl)
mp.setLayout(null)
u.add(mp)
//设置输入框属性
jt.setBounds(100, 100, 200, 50)
jt.setFont(new Font("黑体", Font.BOLD, 25))
mp.add(jt)
//设置按钮属性
bt1.setBounds(50, 180, 100, 50)
bt1.setFont(new Font("黑体", Font.BOLD, 30))
bt2.setBounds(150, 180, 100, 50)
bt2.setFont(new Font("黑体", Font.BOLD, 30))
bt3.setBounds(250, 180, 100, 50)
bt3.setFont(new Font("黑体", Font.BOLD, 30))
bt4.setBounds(50, 230, 100, 50)
bt4.setFont(new Font("黑体", Font.BOLD, 30))
bt5.setBounds(150, 230, 100, 50)
bt5.setFont(new Font("黑体", Font.BOLD, 30))
bt6.setBounds(250, 230, 100, 50)
bt6.setFont(new Font("黑体", Font.BOLD, 30))
bt7.setBounds(50, 280, 100, 50)
bt7.setFont(new Font("黑体", Font.BOLD, 30))
bt8.setBounds(150, 280, 100, 50)
bt8.setFont(new Font("黑体", Font.BOLD, 30))
bt9.setBounds(250, 280, 100, 50)
bt9.setFont(new Font("黑体", Font.BOLD, 30))
bt10.setBounds(50, 330, 100, 50)
bt10.setFont(new Font("黑体", Font.BOLD, 30))
bt11.setBounds(50, 380, 100, 50)
bt11.setFont(new Font("黑体", Font.BOLD, 30))
bt12.setBounds(250, 380, 100, 50)
bt12.setFont(new Font("黑体", Font.BOLD, 30))
bt13.setBounds(150, 330, 100, 50)
bt13.setFont(new Font("黑体", Font.BOLD, 30))
bt14.setBounds(150, 380, 100, 50)
bt14.setFont(new Font("黑体", Font.BOLD, 30))
bt15.setBounds(250, 330, 100, 50)
bt15.setFont(new Font("黑体", Font.BOLD, 30))
mp.add(bt1)
mp.add(bt2)
mp.add(bt3)
mp.add(bt4)
mp.add(bt5)
mp.add(bt6)
mp.add(bt7)
mp.add(bt8)
mp.add(bt9)
mp.add(bt10)
mp.add(bt11)
mp.add(bt12)
mp.add(bt13)
mp.add(bt14)
mp.add(bt15)
//按钮事件监听
bt1.addActionListener(new ButtonAction())
bt2.addActionListener(new ButtonAction())
bt3.addActionListener(new ButtonAction())
bt4.addActionListener(new ButtonAction())
bt5.addActionListener(new ButtonAction())
bt6.addActionListener(new ButtonAction())
bt7.addActionListener(new ButtonAction())
bt8.addActionListener(new ButtonAction())
bt9.addActionListener(new ButtonAction())
bt10.addActionListener(new ButtonAction())
bt11.addActionListener(new ButtonAction())
bt12.addActionListener(new ButtonAction())
bt13.addActionListener(new ButtonAction())
bt14.addActionListener(new ButtonAction())
bt15.addActionListener(new ButtonAction())
}
public class ButtonAction implements ActionListener {
public void actionPerformed(ActionEvent e) {
Object s = e.getSource()
if (s == bt1) {
list.add("1")
System.out.println(list)
//定义一个迭代器k,值是迭代的list
Iterator<String>k = list.iterator()
String str1 = "" //定义一个空字符串
//定义一个循环,用来遍历list
while (k.hasNext()) { //判断k是否存在下一个值,如果是true则继续
String str = (String) k.next() //定义一个字符串str,值是k当前的遍历
str1 = str1 + str //将遍历出的字符串一个一个添加进str1字符串中
}
jt.setText(str1) //输出最终字符串实现按下的按钮都会显示出来
}
if (s == bt2) {
list.add("2")
System.out.println(list)
System.out.println(list)
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
jt.setText(str1)
}
if (s == bt3) {
list.add("3")
System.out.println(list)
System.out.println(list)
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
jt.setText(str1)
}
if (s == bt4) {
list.add("4")
System.out.println(list)
System.out.println(list)
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
jt.setText(str1)
}
if (s == bt5) {
list.add("5")
System.out.println(list)
System.out.println(list)
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
jt.setText(str1)
}
if (s == bt6) {
list.add("6")
System.out.println(list)
System.out.println(list)
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
jt.setText(str1)
}
if (s == bt7) {
list.add("7")
System.out.println(list)
System.out.println(list)
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
jt.setText(str1)
}
if (s == bt13) {
list.add("0")
System.out.println(list)
System.out.println(list)
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
jt.setText(str1)
}
if (s == bt8) {
list.add("8")
System.out.println(list)
System.out.println(list)
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
jt.setText(str1)
}
if (s == bt9) {
list.add("9")
System.out.println(list)
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
jt.setText(str1)
}
if (s == bt10) {
jt.setText("加上")
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
int a = Integer.parseInt(str1) //把字符串str1转换为数字类型
num1 = a
ks = 1
System.out.println(a)
list.removeAll(list)
}
if (s == bt11) {
jt.setText("减去")
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
int a = Integer.parseInt(str1)
num1 = a
ks = 2
System.out.println(a)
list.removeAll(list)
}
if (s == bt14) {
jt.setText("乘以")
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
int a = Integer.parseInt(str1)
num1 = a
ks = 3
System.out.println(a)
list.removeAll(list)
}
if (s == bt15) {
jt.setText("除以")
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
int a = Integer.parseInt(str1)
num1 = a
ks = 4
System.out.println(a)
list.removeAll(list)
}
if (s == bt12) {
Iterator<String>k = list.iterator()
String str1 = ""
while (k.hasNext()) {
String str = (String) k.next()
str1 = str1 + str
}
int a = Integer.parseInt(str1)
num2 = a
System.out.println(a)
list.removeAll(list)
if (ks == 1) {
int num3 = num1 + num2
System.out.println(num3)
Integer inta = Integer.valueOf(num3)
String q = inta.toString()
jt.setText(q)
}
if (ks == 2) {
int num3 = num1 - num2
System.out.println(num3)
Integer inta = Integer.valueOf(num3)
String q = inta.toString()
jt.setText(q)
}
if (ks == 3) {
int num3 = num1 * num2
System.out.println(num3)
Integer inta = Integer.valueOf(num3)
String q = inta.toString()
jt.setText(q)
}
if (ks == 4) {
if (num2 == 0) {
jt.setText("除数不能为0")
} else {
int num3 = num1 / num2
int num4 = num1 % num2
System.out.println(num3 + "……" + num4)
Integer inta = Integer.valueOf(num3)
String q = inta.toString()
Integer inta2 = Integer.valueOf(num4)
String q1 = inta2.toString()
jt.setText(q + "余" + q1)
}
}
}
}
}
public static void main(String[] args) {
new JFrameDemo().Chuangkou()
}
}
你好,按照你的要求代码如下,可以直接运行import java.io.BufferedReader
import java.io.IOException
import java.io.InputStreamReader
public class test {
public static void main(String[] args) {
int count = 0
BufferedReader in = new BufferedReader(new InputStreamReader(System.in))
for (int i = 0i <10i++) {
int a = (int) (Math.random() * 100)
int b = (int) (Math.random() * 100)
int c = (int) (Math.random() * 2)
int r = 0
switch (c) {
case 0:
if (a + b >= 100) {
a = 100 - b
}
System.out.print(a + " + " + b + " = ")
r = a + b
break
case 1:
if (a <b) {
int t = a
a = b
b = t
}
System.out.print(a + " - " + b + " = ")
r = a - b
}
int input
try {
input = Integer.valueOf(in.readLine())
} catch (Exception e1) {
System.out.println("答案错误\n")
continue
}
if (input == r) {
count++
System.out.println("答案正确\n")
} else {
System.out.println("答案错误\n")
}
}
if (null != in) {
try {
in.close()
} catch (IOException e) {
e.printStackTrace()
}
}
System.out.println("答对数量:" + count + "\n得分: " + count * 10)
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)