面向对象程序设计——福利彩票36选7系统

发布时间 2024-01-12 06:11:11作者: 刘倩_网安2211

#福利彩票36选7系统 [TOC] ##一、项目简介

###功能描述

该系统是一个彩票购买抽奖系统,该系统可以完成用户的注册、登录、充值等功能,在用户进行购彩时,可以选择投注数以及选择手动选号或是随机选号,管理员也可以选择手动或随机设置中奖号码。若用户中奖,则在下次登录时显示中奖信息,并可以领取奖金。

###表格

项目

内容

团队博客链接

https://blog.csdn.net/Qiannunu/article/details/135516817

个人负责任务

  1. 管理员登录时验证身份
  2. 管理员可以手动或随机设置中奖号码
  3. 管理员登录可查看中奖用户的信息及中奖号码
  4. 保存用户购买的彩票信息


##二、功能架构图

fb19328c3318485ab732db12a02382e5

##三、个人任务简述

###小组成员及分工

成员名 完成部分 备注
苏晨茜 图形化界面,统计并显示获奖情况,测试代码,git上传,团队博客撰写 组长
刘倩 管理员登录及管理员抽奖功能,彩票信息记录 组员
陈俐文 用户注册登录,用户名、密码余额等信息管理,用户抽奖功能 组员

###1. 完成的任务与功能

序号

完成功能与任务

描述

1

管理员登录

通过比较传入的管理员用户名和密码与预设的管理员用户名和密码进行验证。

2

面向对象设计

使用了面向对象技术设计系统。

3

管理员设置中奖号码

管理员可以选择手动或是随机生成中奖号码,并使用Swing的多线程机制,完成了滚动显示中奖号码的功能。

4

管理员查看中奖用户信息及中奖号码

管理员在生成中奖号码后,界面上随即出现中奖号码及中奖用户信息

5

保存用户的彩票信息

将用户的彩票号码和中奖信息保存到对应用户的彩票文件中

###2. Git提交记录截图:

git链接:福利彩票36选7抽奖系统: 基于java的福利彩票抽奖系统 (gitee.com)

d15cae0bf83c7231995a639e5673663

##四、代码展示

###Rolling类,主要完成滚动抽奖,显示抽奖结果,判断抽出的中将号码是否合法的功能。

 1 package Admin;
 2 
 3 public class Admin {
 4       private String adminName;
 5       private String adminPassword;
 6 
 7         public Admin(String adminName, String adminPassword) {
 8             this.adminName = adminName;
 9             this.adminPassword = adminPassword;
10         }
11 
12         public String getAdminName() {
13             return adminName;
14         }
15 
16         public void setAdminName(String adminName) {
17             this.adminName = adminName;
18         }
19 
20         public String getAdminPassword() {
21             return adminPassword;
22         }
23 
24         public void setAdminPassword(String adminPassword) {
25             this.adminPassword = adminPassword;
26         }
27         
28         // 验证管理员登录
29         public static boolean validateAdmin(String adminName, String adminPassword) {      
30             return adminName.equals("admin") && adminPassword.equals("123456");
31         }
32 }
Rolling

###NumbersRecord类,主要完成将用户抽取的号码保存到文件和从文件中提取当前用户抽取的号码到队列里的功能。每个文件以用户名位文件名,保存对应用户抽取的所有号码和对应的获奖情况。

 1 package record;
 2 
 3 import java.io.BufferedReader;
 4 import java.io.BufferedWriter;
 5 import java.io.FileReader;
 6 import java.io.FileWriter;
 7 import java.io.IOException;
 8 import java.util.ArrayList;
 9 import java.util.List;
10 
11 //彩票记录类
12 //保存彩票号码和中将信息
13 
14 public class NumbersRecord {
15 
16     private static final String NUMBER_RECORDS_FILE = "_number_records.txt";
17    // private static final String WINNING_RECORDS_FILE = "winning_records.txt";
18  // 将新彩票加入List<String> numbers
19     public static void addNumberstoList(List<String> numbers, List<String> newNumbers) {
20         for (String newNumber : newNumbers) {
21             numbers.add(newNumber + "," + "未获奖");
22         }
23     }
24 
25    // 将新彩票保存到对应用户的彩票文件中
26    public static void saveNumbersToFile(String username, List<String> newNumbers) {
27        try (BufferedWriter writer = new BufferedWriter(new FileWriter(username + NUMBER_RECORDS_FILE, true))) {
28            for (String newNumber : newNumbers) {
29                writer.write(newNumber + "," + "未获奖");
30                writer.newLine();
31            }
32        } catch (IOException e) {
33            e.printStackTrace();
34        }
35    }
36 
37    // 将彩票信息从文件中读到List
38    public static List<String> fileToList(String username){
39        List<String> numbers = new ArrayList<>();
40        try(BufferedReader reader=new BufferedReader(new FileReader(username+NUMBER_RECORDS_FILE))){
41            String line;
42            while((line=reader.readLine())!=null){
43                System.out.println(line);
44                numbers.add(line);
45            }
46       }catch(IOException e){
47           e.printStackTrace();  
48       }
49       return numbers; 
50   }
51 
52   // 将彩票信息从List中读到文件,并覆盖原有内容
53   public static void listToFile(List<String> numbers, String username) {
54       try (BufferedWriter writer = new BufferedWriter(new FileWriter(username+NUMBER_RECORDS_FILE))) {
55           for (String number : numbers) {
56               writer.write(number);
57               writer.newLine();
58           }
59      } catch (IOException e) { 
60          e.printStackTrace(); 
61      }
62   }
63 }
NumbersRecord

###Admin类,主要完成管理员的登录验证功能。

 1 package Admin;
 2 
 3 public class Admin {
 4       private String adminName;
 5       private String adminPassword;
 6 
 7         public Admin(String adminName, String adminPassword) {
 8             this.adminName = adminName;
 9             this.adminPassword = adminPassword;
10         }
11 
12         public String getAdminName() {
13             return adminName;
14         }
15 
16         public void setAdminName(String adminName) {
17             this.adminName = adminName;
18         }
19 
20         public String getAdminPassword() {
21             return adminPassword;
22         }
23 
24         public void setAdminPassword(String adminPassword) {
25             this.adminPassword = adminPassword;
26         }
27         
28         // 验证管理员登录
29         public static boolean validateAdmin(String adminName, String adminPassword) {      
30             return adminName.equals("admin") && adminPassword.equals("123456");
31         }
32 }
Admin

##五、运行结果

###系统界面

###用户注册

###用户登录

###充值

###用户选号

###用户查看已选号码

###管理员登录并抽奖

###用户登录后提醒中将并领取奖金