首页 » 原創 » 正文

[原创]用JavaSE结合读卡技术实现邀请入场和抽奖程序

两天前,经管系的人找到我,说马上要开迎新晚会了,要我写个程序,事先录入学生数据,然后学生在会场门口刷卡,屏幕显示其学号姓名班等信息,并将所有到场的学生数据整合,参与接下来的抽奖。整个系统分为录入系统,迎宾系统,和抽奖系统,因为多人参与录入,不能使用固定的数据库,以简易为主
预览图

01

2

03

04

源代码
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);
	}
}

本文共 11 个回复

1 2

发表评论