博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
福大软工1816 · 团队现场编程实战(抽奖系统)
阅读量:6237 次
发布时间:2019-06-22

本文共 4857 字,大约阅读时间需要 16 分钟。

Division of Labor:

柯奇豪 : 文本导入、切割文本、数据库处理、活跃度统计

黄毓明 : 切割文本、文本匹配
杨礼亮、丁水源:实现三种不同程度的筛选投票算法
蒋熊、黄志铭:前端界面编写
林翔宇:接口定义、前后端交互

Github: 

Program:(unfinish)

程序运行环境:eclipse+mysql

GUI Interface:

  • 主界面截图,有设置抽奖和查看抽奖结果两个选项

  • 设置抽奖弹窗

  • 抽奖有三个选项:普通抽奖,过滤抽奖和深度抽奖。 下面是深度抽奖的运行结果。

Code:

  • 文本处理(文本导入,文本切割,文本匹配)
public static void setFileContext(String path) throws Exception {        FileReader fileReader =new FileReader(path);        @SuppressWarnings("resource")        BufferedReader bufferedReader =new BufferedReader(fileReader);        list =new ArrayList
(); String str=null; String term=""; Pattern pattern = Pattern.compile("[0-9]{4}[-][0-9]{1,2}[-][0-9]{1,2}[ ][0-9]{1,2}[:][0-9]{1,2}[:][0-9]{1,2}"); while((str=bufferedReader.readLine())!=null) { if(str.trim().length()>=0) { term+=str+" "; Matcher matcher = pattern.matcher(str); if(!matcher.find()) { list.add(term + "\n"); term=""; } } for(String item:Inputtext.list.toArray(new String[Inputtext.list.size()])) { Mysql.matchSort(item); } }// System.out.println(list); }

  

 
  • 三种不同程度的筛选投票算法
    普通抽奖
private Set
namelist=new TreeSet<>(); private int repeat=1; private String list[]; public void getlist() {} public void put_Qname() { while(repeat!=0) { repeat--; int l=0; Iterator
iter = namelist.iterator(); while (iter.hasNext()) { list[l]= iter.next(); l++; } Random rand = new Random(); int cur=(int)(Math.random()*500); cur=cur%l; String QName=list[cur]; System.out.print(QName); namelist.remove(QName); } }

  

 

过滤抽奖

public void put_Qname()    {        while(repeat!=0)        {            repeat--;             int l=0;             int f=0;             Iterator
iter = namelist.iterator(); while (iter.hasNext()) { String s=iter.next(); for(int i=0;i

  

 

深度抽奖

public void put_Qname()    {        while(repeat!=0)        {            repeat--;             int l=0;             int f=0;             Iterator
iter = namelist.iterator(); while (iter.hasNext()) { String s=iter.next(); for(int i=0;i

  

 

Experiences:

  • 组员1 黄毓明

    困难:
    1.前后端数据交互,如何将前端需要计算的数据送到后端,如何将后端计算好的数据送到前端
    2.一些写代码时的异常情况处理
    解决办法:
    1.前后端数据交互正在学习
    2.异常情况的话主要还是靠平时的积累,还是要多敲代码啊!

  • 组员2 杨礼亮

    困难:
    1.对Java语言不熟,和c语言上的语法虽然相似,但是在一天内写出程序不太现实。
    2不知道怎么从数据库中返回数据到代码,所以一直无法得到能参与抽奖人的名单以及相关出现次数。
    3没有与负责上一层编码的同学对接好,对于队友设计的相关的结构体内部变量不清晰。
    4在讨论中花费了很多时间,一开始对代码无从下手,浪费大量时间
    解决办法:
    1对Java不熟只能上网搜相关的函数使用
    2数据返回目前还没弄好,因为完全不懂怎么调用
    3将得到数据的代码先设成一个函数,先编写抽奖算法

  • 组员3 林翔宇
    困难:
  1. java语言掌握不够,写代码的时候磕磕碰碰
  2. 不知道怎么进行前后端的数据交互
    解决办法:
    现在在继续学习java,了解前后端数据交互
  • 组员4 丁水源

    困难:
    1.java不熟悉,因此遇到了一些语法上的困难。
    2.一开始组长分配给我的任务不熟悉,沟通上出现了一定的偏差。
    3.对项目的框架理解不透彻,发生框架理解上的偏差。
    4.由于是第一次团体的现场编程,可能在全局和局部以及时间等的把握上出现了些许的mistakes。
    解决办法:
    1.通过之前学习的知识,再结合上互联网,以及小伙伴的帮助,还是比较顺利地熟悉了java语言。
    2.通过和组长的多次交流以及和其他组员的交流,比较顺利地明白了自己的任务。
    3.通过互联网以及和组员们交流,能够收获一些对此项目框架的感悟和理解。
    4.吸取这次的教训,希望在接下来的实践里,乃至今后的工作、生活里能够更进一步,减少发生这次的错误,力争避免。加油鸭~~

  • 组员5 柯奇豪

    困难:
    虽然有一个明确的思路,但是没考虑到每个人的个人情况,导致项目后期没办法进展,自己的能力不够
    解决办法:
    本次的作业没能够做好,但是接下来希望在有限的时间里尽可能的去学习,带领团队有所成果

  • 组员6 蒋雄

    困难:
    做前端过程中首先遇到的是页面图片格式不对,叠加图片过程中出现错误,
    解决办法:
    通过查了一些开源代码解决了。后来主要的是前后端交互问题,现在还在学习

  • 组员7 黄志铭

    困难:
    1.用html写网页界面,在写到跳转窗口的时候,由于不太熟悉Notepad,所以耗费比较多的时间找跳转小窗口
    2.最后的前端与后端的交互最终未能实现,没有提前考虑到这个数据处理问题
    3.用Notepad与后端调用存在问题,下次使用得考虑其他编译器,VS之类的。
    解决:
    1.前端与后端的交互看了很多篇博客,现在可以大致理解操作
    2.前端的编译器没有选好,得改用VS或者微信小程序的编译器

Feelings:

 如果能够提前打好基础,比如java以及框架的话,那么这次的实践就不会做得这么狼狈和紧张啦。

Evaluation:

以下部分计入个人得分:

PSP Table:

 

PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟)
Planning 计划 5 30
· Estimate · 估计这个任务需要多少时间 5 30
Development 开发 200 305
· Analysis · 需求分析 (包括学习新技术) 60 60
· Design Spec · 生成设计文档 0 0
· Design Review · 设计复审 10 10
· Coding Standard · 代码规范 (为目前的开发制定合适的规范) 0 0
· Design · 具体设计 10 15
· Coding · 具体编码 120 220
· Code Review · 代码复审 0 0
· Test · 测试(自我测试,修改代码,提交修改) 0 0
Reporting 报告 80 135
· Test Repor · 测试报告 60 90
· Size Measurement · 计算工作量 5 10
· Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 15 35
  合计 305 470

 

 

Schedule:

第N周 新增代码(行) 累计代码(行) 本周学习耗时(小时) 累计学习耗时(小时) 重要成长
1 500 500 15 15 学习VS2017,GitHub使用,复习C++相关知识
2 500         1000 20 35 阅读《构建之法》,从零开始学Java语言
3 1000 2000  15  50  阅读《构建之法》,学习Java,学习墨刀等工具使用 
4 700 2700 35 85 复习C++知识,学习STL的使用。
5 300 3000 20 105 学习STL相关知识,以及使用VS,Process On 等工具
6 0 3000 35 140 学会如何设计软件的相关细节。
7 0 3000 30 170 学会如何写一份完整的“需求分析报告”。
8 0 3000 20 190 入门java,学会分析任务
9 0 3000 15 205 熟悉了本软件的框架,为接下来的代码做好准备。
10 50 3050 12 217 熟悉了ssm框架、Java语言
11     250 3300 3 220 熟悉了软件开发过程、java语言

转载于:https://www.cnblogs.com/littlenorthwest/p/9978988.html

你可能感兴趣的文章
java中异常抛出后代码还会继续执行吗
查看>>
oracle 学习摘记
查看>>
IOS代码布局(一) UIView
查看>>
如何解决开机出现Missing operating system的故障
查看>>
Android AudioPolicyService服务启动过程
查看>>
SVG的a链接
查看>>
MSSQL查找前一天,前一月,前一年的数据,对比当前时间记录查找超过一年,一月,一天的数据...
查看>>
基于三星I9250演示自己弄的Miracast功能-手机对手机
查看>>
【转】MOCK测试
查看>>
pyhon——进程线程、与协程基础概述
查看>>
Centos 7配置LAMP
查看>>
重载与重写
查看>>
SQLite学习笔记(十二)&&虚拟机指令
查看>>
UVALive 4221 Walk in the Park 扫描线
查看>>
在vc中使用xtremetoolkit界面库-----安装及环境配置
查看>>
[Redux] Extracting Presentational Components -- Footer, FilterLink
查看>>
将数据写入TXT文件中,file_put_contents与fwrite
查看>>
Win 2008 r2 远程桌面多用户登陆,一用户多登陆配置
查看>>
ANTLR4权威參考手冊(一)
查看>>
【UVA 11462】 Age Sort(基数排序)
查看>>