首頁 » 原創 » 正文

[原創]用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

發表評論