两天前,经管系的人找到我,说马上要开迎新晚会了,要我写个程序,事先录入学生数据,然后学生在会场门口刷卡,屏幕显示其学号姓名班等信息,并将所有到场的学生数据整合,参与接下来的抽奖。整个系统分为录入系统,迎宾系统,和抽奖系统,因为多人参与录入,不能使用固定的数据库,以简易为主
预览图
源代码
import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.Reader; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; import javax.swing.JTextField; public class face extends JFrame { public static void main(String[] args) { JFrame jf = new JFrame("欢迎参加2015经管系迎新晚会"); jf.setBounds(250, 100, 1350, 700); Container c = new Container(); JLabel title = new JLabel("欢迎参加2015经管系迎新晚会"); title.setFont(new Font("宋体", 1, 50)); JLabel staticNo = new JLabel("学号:"); JLabel no = new JLabel("2014233333"); JLabel staticName = new JLabel("姓名:"); JLabel name = new JLabel("测试"); JLabel staticSex = new JLabel("性别:"); JLabel sex = new JLabel("男"); JLabel staticCla = new JLabel("班级:"); JLabel cla = new JLabel("人力二班"); JLabel staticIde = new JLabel("身份:"); JLabel ide = new JLabel("初始账户"); JLabel staticVer = new JLabel("防伪码:"); JLabel ver = new JLabel("23333333"); JLabel state = new JLabel(" 通过"); state.setOpaque(true); state.setBackground(Color.GREEN); JLabel tip = new JLabel("输入数据请直接回车:"); JTextField enter = new JTextField(); JButton button = new JButton("确认"); JTextArea copyRight = new JTextArea("指令参数: admin/(密码)---后台数据管理\n" + "lottery---启动抽奖程序 exit---退出程序"); staticNo.setFont(new Font("宋体", 2, 24)); no.setFont(new Font("宋体", 1, 40)); staticName.setFont(new Font("宋体", 2, 24)); name.setFont(new Font("宋体", 1, 40)); staticSex.setFont(new Font("宋体", 2, 24)); sex.setFont(new Font("宋体", 1, 40)); staticCla.setFont(new Font("宋体", 2, 24)); cla.setFont(new Font("宋体", 1, 40)); staticIde.setFont(new Font("宋体", 2, 24)); ide.setFont(new Font("宋体", 1, 40)); staticVer.setFont(new Font("宋体", 2, 24)); ver.setFont(new Font("宋体", 1, 40)); state.setFont(new Font("宋体", 1, 60)); copyRight.setFont(new Font("宋体", 2, 15)); title.setBounds(300, 50, 900, 50); staticNo.setBounds(80, 140, 100, 50); no.setBounds(150, 140, 250, 50); staticName.setBounds(450, 140, 100, 50); name.setBounds(530, 140, 150, 50); staticSex.setBounds(750, 140, 100, 50); sex.setBounds(830, 140, 100, 50); staticCla.setBounds(930, 140, 100, 50); cla.setBounds(1000, 140, 200, 50); staticIde.setBounds(300, 200, 100, 50); ide.setBounds(380, 200, 200, 50); staticVer.setBounds(700, 200, 150, 50); ver.setBounds(800, 200, 300, 50); state.setBounds(460, 310, 400, 100); enter.setBounds(550, 450, 200, 25); tip.setBounds(550, 420, 200, 30); copyRight.setBounds(495, 550, 330, 40); copyRight.setEnabled(false); enter.addKeyListener(new KeyListener() { @Override public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { System.out.println("2333"); String eStu = enter.getText(); if (eStu.equals("xxx")) { Toy2.main(null); return; } if (eStu.equals("lottery")) { Toy.main(null); return; } if (eStu.equals("admin/xxx")) { entering.main(null); return; } if (eStu.equals("exit")) { System.exit(0); return; } if (eStu.equals("xxxxx")) { no.setText("2333333333"); name.setText("xxx"); sex.setText("男"); cla.setText("软件二班"); ide.setText("内置账户"); ver.setText("66666"); state.setBackground(Color.pink); state.setText(" 欢迎"); enter.setText(""); enter.requestFocus(); return; } File f = new File("stu/" + eStu + ".stu"); if (!f.exists()) { no.setText("查无此人"); name.setText("无效"); sex.setText("无效"); cla.setText("无效"); ide.setText("无效"); ver.setText("无效"); state.setBackground(Color.RED); state.setText(" 拒绝"); enter.setText(""); enter.requestFocus(); } else { Reader reader = null; BufferedReader br = null; StringBuffer sb = null; try { reader = new FileReader("stu/" + eStu + ".stu"); br = new BufferedReader(reader); sb = new StringBuffer(); String data = null; try { while ((data = br.readLine()) != null) { sb.append(data); } } catch (IOException e1) { e1.printStackTrace(); } } catch (FileNotFoundException e1) { e1.printStackTrace(); } InputStream inStream = null; try { inStream = new FileInputStream("stu/" + eStu + ".stu"); } catch (FileNotFoundException e2) { e2.printStackTrace(); } FileOutputStream fs = null; try { fs = new FileOutputStream("come/" + eStu + ".stu"); } catch (FileNotFoundException e2) { e2.printStackTrace(); } byte[] buffer = new byte[1444]; // xxx int bytesum = 0; int byteread = 0; try { while ((byteread = inStream.read(buffer)) != -1) { bytesum += byteread; System.out.println(bytesum); fs.write(buffer, 0, byteread); } } catch (IOException e2) { e2.printStackTrace(); } try { inStream.close(); } catch (IOException e2) { e2.printStackTrace(); } String s = sb.toString(); String ss[] = s.split("@"); no.setText(ss[0]); name.setText(ss[1]); sex.setText(ss[2]); cla.setText(ss[3]); ide.setText(ss[4]); ver.setText(ss[5]); if (ss[2].startsWith("女")) { state.setBackground(Color.PINK); } state.setBackground(Color.GREEN); state.setText(" 通过"); enter.setText(""); enter.requestFocus(); try { br.close(); reader.close(); } catch (IOException e1) { enter.setText(""); enter.requestFocus(); e1.printStackTrace(); } } } } @Override public void keyReleased(KeyEvent arg0) { } @Override public void keyTyped(KeyEvent arg0) { } }); c.add(title); c.add(staticNo); c.add(no); c.add(name); c.add(staticName); c.add(staticSex); c.add(sex); c.add(staticCla); c.add(cla); c.add(tip); c.add(staticIde); c.add(staticVer); c.add(ide); c.add(ver); c.add(copyRight); jf.add(state); c.add(enter); jf.add(c); jf.setVisible(false); jf.setVisible(true); } } import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.Reader; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Toy extends JFrame { public static void main(String[] args) { JFrame jf = new JFrame("2015经管系迎新晚会抽奖系统"); jf.setBounds(100, 50, 750, 450); Container c = new Container(); jf.setVisible(true); JLabel title = new JLabel("2015经管系迎新晚会 抽奖系统"); title.setFont(new Font("宋体", 1, 40)); title.setBounds(80, 20, 600, 100); c.add(title); JLabel t1 = new JLabel("学号:"); t1.setFont(new Font("宋体", 1, 35)); t1.setBounds(150, 100, 100, 100); c.add(t1); JLabel t2 = new JLabel("等待抽奖"); t2.setFont(new Font("宋体", 1, 35)); t2.setBounds(250, 125, 200, 50); c.add(t2); JLabel t3 = new JLabel("姓名:"); t3.setFont(new Font("宋体", 1, 35)); t3.setBounds(150, 180, 100, 100); c.add(t3); JLabel t4 = new JLabel("等待抽奖"); t4.setFont(new Font("宋体", 1, 35)); t4.setBounds(250, 200, 200, 50); c.add(t4); JButton jb = new JButton("抽奖"); jb.setBounds(280, 300, 150, 50); t2.setOpaque(true); t2.setBackground(Color.YELLOW); t4.setOpaque(true); t4.setBackground(Color.YELLOW); jb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { String result = "come/" + ListFilesInDirectory("come"); Reader reader = null; // xxx BufferedReader br = null; StringBuffer sb = null; try { reader = new FileReader(result); br = new BufferedReader(reader); sb = new StringBuffer(); String data = null; try { while ((data = br.readLine()) != null) { sb.append(data); } } catch (IOException e1) { e1.printStackTrace(); } } catch (FileNotFoundException e1) { e1.printStackTrace(); } String s = sb.toString(); System.out.println(s); String ss[] = s.split("@"); t2.setText(ss[0]); t4.setText(ss[1]); t2.setBackground(Color.GREEN); t4.setBackground(Color.GREEN); } }); c.add(jb); jf.add(c); } private static String ListFilesInDirectory(String string) { int count = 0; String result = null; String s[] = new String[600]; File file = new File(string); File[] files = file.listFiles(); for (File fl : files) { if (fl.isDirectory()) ListFilesInDirectory(fl.toString()); else { count++; s[count - 1] = fl.getName(); System.out.println(fl.getName()); } } result = s[(int) (Math.random() * count)]; return result; } } import java.awt.Color; import java.awt.Container; import java.awt.Font; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextArea; public class entering extends JFrame { public static void main(String[] args) { JFrame jf = new JFrame("2015经管系迎新晚会录入系统"); jf.setBounds(100, 50, 800, 450); Container c = new Container(); jf.setVisible(true); JLabel title = new JLabel("2015经管系迎新晚会 录入系统"); title.setFont(new Font("宋体", 1, 40)); title.setBounds(80, 20, 600, 100); c.add(title); JLabel t1 = new JLabel("学号:"); t1.setFont(new Font("宋体", 1, 35)); t1.setBounds(100, 100, 100, 100); c.add(t1); JLabel t2 = new JLabel("姓名:"); t2.setFont(new Font("宋体", 1, 35)); t2.setBounds(450, 135, 150, 35); c.add(t2); JLabel t3 = new JLabel("性别:"); t3.setFont(new Font("宋体", 1, 35)); t3.setBounds(100, 150, 100, 100); c.add(t3); JLabel t4 = new JLabel("班级:"); t4.setFont(new Font("宋体", 1, 35)); t4.setBounds(340, 175, 200, 50); c.add(t4); JLabel t5 = new JLabel("身份:"); t5.setFont(new Font("宋体", 1, 35)); t5.setBounds(100, 195, 100, 100); c.add(t5); JLabel t6 = new JLabel("防伪码:"); t6.setFont(new Font("宋体", 1, 35)); t6.setBounds(410, 225, 200, 50); c.add(t6); JTextArea t7 = new JTextArea("提示:开始使用时请将焦点放置于学号处,输好请回车,焦点将自动调至下一项," + "输完班级回车后自动保存,需要修改身份,请先修改此项,最后完成班级输入。" + "因为时间仓促,本程序并没有选项或固定功能,为了多人协作和简单易用," + "也没有使用大型数据库,不足之处,请多包涵。有问题可以联系我(然而你并不知道如何联系我233)"); t7.setLineWrap(true); t7.setBounds(100, 320, 600, 60); t7.setEnabled(false); c.add(t7); JLabel t8 = new JLabel("准备就绪,等待数据录入..."); t8.setFont(new Font("宋体", 1, 20)); t8.setBounds(100, 280, 600, 25); t8.setOpaque(true); t8.setBackground(Color.GREEN); c.add(t8); JTextArea jt1 = new JTextArea(); jt1.setFont(new Font("宋体", 1, 35)); jt1.setBounds(200, 135, 230, 40); c.add(jt1); JTextArea jt2 = new JTextArea(); jt2.setFont(new Font("宋体", 1, 35)); jt2.setBounds(550, 135, 150, 40); c.add(jt2); JTextArea jt3 = new JTextArea(); jt3.setFont(new Font("宋体", 1, 35)); jt3.setBounds(200, 180, 100, 40); c.add(jt3); JTextArea jt4 = new JTextArea(); jt4.setFont(new Font("宋体", 1, 35)); jt4.setBounds(450, 180, 200, 40); c.add(jt4); JTextArea jt5 = new JTextArea("参观学生"); jt5.setFont(new Font("宋体", 1, 35)); jt5.setBounds(200, 227, 200, 40); c.add(jt5); JTextArea jt6 = new JTextArea(); jt6.setFont(new Font("宋体", 1, 35)); jt6.setBounds(550, 230, 200, 40); jt6.setEnabled(false); c.add(jt6); int r = (int) (Math.random() * 100000000); jt6.setText(r + ""); jt1.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { jt2.requestFocus(); } } @Override public void keyReleased(KeyEvent e) { } @Override public void keyTyped(KeyEvent e) { } }); jt2.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { jt3.requestFocus(); } } @Override public void keyReleased(KeyEvent e) { } @Override public void keyTyped(KeyEvent e) { } }); jt3.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e2) { if (e2.getKeyCode() == KeyEvent.VK_ENTER) { jt4.requestFocus(); } } @Override public void keyReleased(KeyEvent e3) { } @Override public void keyTyped(KeyEvent e4) { } }); jt4.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { int r = (int) (Math.random() * 100000000); jt6.setText(r + ""); String s = jt1.getText() + "@" + jt2.getText() + "@" + jt3.getText() + "@" + jt4.getText() + "@" + jt5.getText() + "@" + jt6.getText(); if (jt1.getText().length() < 10) { // xxx t8.setText("拒绝录入:学号位数不对!"); t8.setBackground(Color.RED); return; } try { if (Integer.parseInt(jt1.getText().substring(0, 10)) < 2010000000 || Integer.parseInt(jt1.getText().substring(0, 10)) > 2016000000) { t8.setText("拒绝录入:学号格式不对!"); t8.setBackground(Color.RED); return; } } catch (Exception e3) { t8.setText("拒绝录入:学号格式不对!"); t8.setBackground(Color.RED); return; } // if(!jt3.getText().equals("男")||!jt3.getText().equals("女")){ // t8.setText("拒绝录入:性别请输入男或女中文单字!"); // t8.setBackground(Color.RED); // return; // } File f = new File("stu/" + jt1.getText().substring(0, 10) + ".stu"); System.out.println("Done"); BufferedWriter output = null; try { output = new BufferedWriter(new FileWriter(f)); } catch (IOException e1) { e1.printStackTrace(); } try { output.write(s); } catch (IOException e1) { e1.printStackTrace(); } try { output.close(); } catch (IOException e1) { e1.printStackTrace(); } jt1.setText(""); jt2.setText(""); jt3.setText(""); jt4.setText(""); jt1.requestFocus(); t8.setBackground(Color.GREEN); t8.setText("成功存入数据:" + s); } } @Override public void keyReleased(KeyEvent e) { } @Override public void keyTyped(KeyEvent e) { } }); jt5.addKeyListener(new KeyListener() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) { jt4.requestFocus(); } } @Override public void keyReleased(KeyEvent e) { } @Override public void keyTyped(KeyEvent e) { } }); jf.add(c); jf.setVisible(false); jf.setVisible(true); } }
御坂网络 2015/11/05 23:05
大家说这么一长串的是什么?我怎么看不懂 😡
admin 博主 2015/11/06 09:21
@ 神秘代码哦,是开启新世界♂的钥匙233
阿贵 2015/11/11 12:30
一个字,屌屌屌屌屌 😆
admin 博主 2015/11/11 19:25
@ 谢谢>_<
啊雷 2015/11/14 22:54
灰常不错
admin 博主 2015/11/15 12:02
@ 谢谢
西道 2015/12/01 23:09
666... 用java实现的有点高端。 之前用node做过一个类似的系统,用的是微信的扫一扫接口扫二维码来代替刷卡
admin 博主 2015/12/02 23:37
@ 嘿嘿 谢谢 也有一些人希望我做一些和微信相关的软件 然而我一直没用微信 感觉好陌生 所以也没完成TAT
某宅部 2015/12/04 17:49
表示。。。感觉java完全学不懂啊,不如C语言更简单... .net才是我信仰