java-课程设计-彩票购买抽奖程序(个人部分)
彩票抽奖(个人部分)
一、团队课程设计博客链接
二、个人负责的功能(图中黄色部分)
三、Git代码提交记录截图
四、个人负责模块说明(及代码)
-
用户登陆
代码:
public static boolean login(String username, String password) { File file = new File("C:\\Users\\lxx599\\Desktop\\user.txt"); int temp = 0; try ( BufferedReader br = new BufferedReader(new FileReader(file));) { String strin; while((strin=br.readLine())!=null) { String[] stri = strin.split("\\s+") ; for (int i = 0; i < stri.length; i++) { User u1 = new User(); u1.id=stri[0]; u1.username=stri[1]; u1.password=stri[2]; u1.money=Integer.parseInt(stri[3]); u1.tel=stri[4]; if(stri[1].equals(username)&&stri[2].equals(password)) { temp++; u=u1; break; } } } if (temp >= 1) return true; } catch (NumberFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return false; }
功能介绍:使用static修饰login(String username, String password )方法是因为static能够实现在不同的包中被调用。该方法中的两个参数分别是用户名和密码,通过判断用户名和密码是否匹配,且能在文件中找到,则登陆成功,否则提示登录错误的信息。
-
用户注册
代码:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { // TODO add your handling code here: File file = new File("C:\\Users\\lxx599\\Desktop\\user.txt"); boolean temp = user.User.repeatUser(jTextField2.getText(),jTextField1.getText()); if(!temp&&file.exists()) {//还有注意txt文件是否为空 try ( BufferedWriter bw = new BufferedWriter(new FileWriter(file,true));) { bw.write(jTextField1.getText()); bw.write(" "); bw.write(jTextField2.getText()); bw.write(" "); bw.write(jTextField3.getText()); bw.write(" "); bw.write(jTextField4.getText()); bw.write(" "); bw.write(jTextField5.getText()); bw.newLine(); bw.flush(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } JOptionPane.showMessageDialog(null, "注册成功"); } else JOptionPane.showMessageDialog(null, "该账户已经存在"); new Login().setVisible(true);dispose(); }
功能介绍:在账号和id不是已有账号的情况下,通过BufferedWriter的flush将获取到的信息写入文件中。
-
手动彩票抽奖
代码:
public static int getReward(String string) { Lottery lo = new Lottery(); int specialNumber = 0;//特殊数字 String[] str = string.split("\\s+"); lo.setNumber(string); System.out.println(string); specialNumber = (int)(1+ Math.random()*36); System.out.println(specialNumber); int count=0;//中奖号码个数 //String valueNum; int[] arr = new int[7]; int k = 0; while (k < 7) { arr[k] = (int) (1+Math.random() * 36); for(int j=0;j<k;j++) { if(arr[k]==arr[j]) k--;//随机产生不重复的七个数字 } k++; } //valueNum = arr.toString(); int j=0; for (int i = 0; i < arr.length; i++) { for (j = 0; j < str.length; j++) { if(arr[i]>Integer.parseInt(str[j])) { j++; } else if(arr[i]<Integer.parseInt(str[j])) { i++; } else count++; } if(j==str.length) break; } int special =0;//判断是否有特殊数字 for (int i = 0; i < arr.length; i++) { if(arr[i]==specialNumber) { special=1; break; } } int award=0; /*此处省略了判断中奖金额的设置*/ return award; }
功能介绍:将传入的字符串与中奖的号码一一进行比对同时创建一个lo用来存储该用户在购票时所选择的号码。若中奖则award的值为相应的金额,反之award的值为0。
五、课程设计总结
在本次的课程设计中,虽然我们团队的彩票抽奖程序并没有很完善,但是总体上实现了用户的登陆、注册和手动选号购票等。课程设计是一个将课堂是的理论知识付诸于实践的一个良好机会,有效促进我的编写函数的能力,同时也对static修饰的方法有了更加深刻的印象,static修饰的方法能够被不同包访问(类名.方法名),但是不能在static修饰的方法中调用非静态变量或者方法,同时也不能使用this关键字。