第4篇Scrum冲刺博客

news/2024/11/17 18:07:26/文章来源:https://www.cnblogs.com/shanhuo31/p/18550834

1.站立式会议

1.1 会议照片

1.2 会议内容

昨天已完成的工作:
已初步完成主界面设计和数据库编写记录
今天计划完成的工作

项目模块 需要实现的功能 负责人 预计用时
数据库模块 数据库记录的备份、恢复和退出 王伊若 2h
主界面模块 账目记录的增删改功能及界面 王伊若 6h
主界面模块 完善主界面设计,报告界面前期准备 黄锐 3h
主界面模块 查询界面功能 黄锐 5h
主界面模块 软件帮助说明功能 江佳哲 3h
主界面模块 用户信息界面 叶尔森 3h

工作中遇到的困难:
在添加账目的监听器方法中忘记考虑支出分类和收入分类的不同,还需要“分类”下拉列表框的事件监听器,下拉列表框的监听事件就是为了动态获取用户所选择的分类名称。

2.项目燃尽图

3.模块的最新(运行)截图:

数据库的备份
备份事件处理代码如下:

/*** “备份”菜单项的事件监听器** @param actionEvent 事件*/@FXMLpublic void backupMenuItemEvent(ActionEvent actionEvent) throws IOException {//实例化文件选择器FileChooser fileChooser = new FileChooser();//设置打开文件选择框默认输入的文件名fileChooser.setInitialFileName("Database_Backup_" + dateTools.dateFormat(new Date(), "yyyy-MM-dd") + ".sql");//打开文件选择框File result = fileChooser.showSaveDialog(null);if (result != null) {String savePath = result.getAbsolutePath();// 实例化Properties对象Properties properties = new Properties();// 加载properties配置文件FileInputStream fis = new FileInputStream(new File("tally_book\\src\\tallybook_system\\properties\\db.properties"));properties.load(fis);// 通过键名获取对应的值String databaseName = properties.get("databaseName").toString();String user = properties.get("user").toString();String password = properties.get("password").toString();// 调用备份方法需要提供MySQL的用户名、密码和数据库名,这些数据从properties文件中读取boolean b = JDBCUtils.backup(user, password, savePath, databaseName);if (b) {SimpleTools.informationDialog(Alert.AlertType.INFORMATION, "提示", "信息", "备份数据库成功!");} else {SimpleTools.informationDialog(Alert.AlertType.ERROR, "提示", "错误", "备份数据库失败!");}// 关闭流fis.close();}}

运行程序:

备份成功后用记事本打开,可以看到如下信息:

添加账目
添加功能的实现在AddAccountFrameController的addButtonEvent()方法中,代码如下:

        // 类型String type = selectedRadioButton;// 金额,把从文本框得到的string类型数据转换为float类型float money = Float.parseFloat(moneyTextField.getText());// 分类String classification = selectedCoboboxItem;// 备注String memo = memoTextArea.getText();// 日期String date = datePickerTextField.getValue().toString();// 将用户输入的数据封装到Record实体类中Record record = new Record(Session.getUser().getUserId(), type, money, classification, memo, date);// 实例化RecordDao对象RecordDao recordDao = new RecordDao();// 添加数据到数据库boolean b = recordDao.addRecord(record);// 对添加操作的结果进行判断处理if (b) {SimpleTools.informationDialog(Alert.AlertType.INFORMATION, "提示", "信息", "添加账目成功!");// 清空用户选择outputRadioButton.setSelected(false);inputRadioButton.setSelected(false);moneyTextField.setText("");classificationComboBox.getItems().clear();memoTextArea.setText("");datePickerTextField.getEditor().setText("");} else {SimpleTools.informationDialog(Alert.AlertType.ERROR, "提示", "错误", "添加账目失败!");}

选中“收入”单选按钮,下面的分类全都是“收入”的分类名称:

选中“支出”单选按钮,下面的分类全都是“支出”的分类名称:

选中“日期”单选按钮,下面表格方便用户选时间:

收入和支出成功添加:

可以在主界面查看添加成功的记录:

删除账目
查询、删除按钮的事件监听器代码如下:

    /*** ”查询“按钮的事件监听器** @param actionEvent 事件*/@FXMLpublic void checkButtonEvent(ActionEvent actionEvent) {// 实例化Record对象Record record = new Record();// 实例化RecordDao对象RecordDao recordDao = new RecordDao();// 通过记录ID和用户ID查询账目记录Record checkedRecord = recordDao.selectRecordByIdAndUserId(Integer.parseInt(idTextField.getText()), Session.getUser().getUserId());String info = "";if (checkedRecord.getRecordType() == null && checkedRecord.getRecordClassification() == null) {info = "无此查询结果!";} else {info ="类型:\t\t" + checkedRecord.getRecordType() + "\n"+ "金额:\t\t" + checkedRecord.getRecordMoney() + "\n"+ "分类:\t\t" + checkedRecord.getRecordClassification() + "\n"+ "备注:\t\t" + checkedRecord.getRecordMemo() + "\n"+ "日期:\t\t" + checkedRecord.getRecordDate() + "\n";}// 显示查询结果contentLabel.setText(info);}/*** ”删除“按钮的事件监听器** @param actionEvent 事件*/@FXMLpublic void deleteButtonEvent(ActionEvent actionEvent) {// 将string类型数据转换为int类型数据int id = Integer.parseInt(idTextField.getText());// 实例化RecordDao对象RecordDao recordDao = new RecordDao();// 根据ID删除记录boolean b = recordDao.deleteRecord(new Record(id));if (b) {SimpleTools.informationDialog(Alert.AlertType.INFORMATION, "提示", "信息", "删除数据成功!");// 删除成功后就清除窗体数据idTextField.setText("");contentLabel.setText("");} else {SimpleTools.informationDialog(Alert.AlertType.ERROR, "提示", "错误", "删除数据失败!");}}

界面:

输入序号查询如下:

运行程序,执行功能如下:

数据库前后对比:

修改账目
查询按钮的事件处理代码如下:

    /*** ”更改“按钮的事件监听器** @param actionEvent 事件*/@FXMLpublic void alterButtonEvent(ActionEvent actionEvent) {// 序号int id = Integer.parseInt(idTextField.getText());//类型String type = "";if (inputRadioButton.isSelected()) {type = inputRadioButton.getText();} else if (outputRadioButton.isSelected()) {type = outputRadioButton.getText();}// 金额,把从文本框得到的string类型数据转换为float类型float money = Float.parseFloat(moneyTextField.getText());// 分类String classification = classificationComboBox.getSelectionModel().getSelectedItem().toString();// 备注String memo = memoTextArea.getText();// 日期String date = datePickerText.getValue().toString();// 将用户修改的数据封装到实体类中Record record = new Record(Session.getUser().getUserId(), id, type, money, classification, memo, date);// 实例化RecordDao对象RecordDao recordDao = new RecordDao();// 执行修改操作boolean b = recordDao.updateRecord(record);// 对修改结果进行判断if (b) {SimpleTools.informationDialog(Alert.AlertType.INFORMATION, "提示", "信息", "修改账目成功!");} else {SimpleTools.informationDialog(Alert.AlertType.ERROR, "提示", "错误", "修改账目失败!");}}

界面:

查询功能测试如下:

修改账目,运行程序成功:

数据库前后对比:

4.每人每日总结

成员 总结
王伊若 由于明确的分工,我们的效率提高了很多,希望再接再厉
黄锐 明天继续努力
江佳哲 在团队协作方面不太熟练,进度有点慢,会尽力加快步伐
叶尔森 熟悉了github的团队协作,初步尝试了代码的签入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/835434.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

闲话 11.17(附『模拟赛』多校A层冲刺NOIP2024模拟赛23)(更新模拟赛 T3)

杂项乱写 11.17$settle\ into\ ash$ 好大雷 EP,真的耐听。The embers settle into ash 残火中 余温成灰 Refuse to bend, to break, look back 不屈 不折 不曾回眸往昔 It’s all decided in the moment we both choose to fight it 在那决断时刻 我们选择了抗争 You don’t n…

申论答案

应用文 城市建设当平衡好“有”和“无”的关系“凿户牖以为室,当其无,有室之用。故有之以为利,无之以为用。”几千年前老子就指出建造房屋当平衡好“有”与“无”的关系,“有”和“无”才能共同构成宜居的屋子,其中“有”是指四壁和门窗等硬件,“无”是指为居住…

TYPE-C PD供电协议消息格式

TYPE-C PD供电协议消息格式 PD定义了两种消息类型,分别为控制消息(Control Messages)、数据消息(Data Messages )和扩展消息(Extend Messages)。 PD控制消息 控制消息属于短消息类型,用于管理端口与设备之间的消息流或交换不需要额外数据的消息。控制消息的长度为16位长。…

高级程序语言设计课程第七次作业

这个作业属于哪个课程:https://edu.cnblogs.com/campus/fzu/2024C/ 这个作业要求在哪里: https://edu.cnblogs.com/campus/fzu/2024C/homework/13304 学号:102400127 姓名:王子涵 q1 第一题比较基础 没什么问题 q2 查阅了网上的类似题目才找到思路 q3 没什么问题 q4 没什么…

高级程序语言设计第七次个人作业

2024高级语言程序设计:https://edu.cnblogs.com/campus/fzu/2024C 高级语言程序设计课程第七次个人作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13304 学号:102400213 姓名:范自亮 1.2. 问题:无从下手,不知道怎么做 解决方案:上网查阅,询问同学3.4.5.6.7. 问…

团队项目4——项目冲刺-7

每日站立式会议昨天已完成的工作: 杨睿:完成住户物业报修页面木萨江:完成住户车位查询页面巴音才次克:对接车位管理接口李佳聪:测试报修相关接口今天计划完成的工作: 杨睿:对接人员管理接口木萨江:处理物业报修模块bug巴音才次克:处理车位查询模块bug李佳聪:测试人员…

第二篇Scrum冲刺博客

1 站立式会议 1.1会议照片1.2 会议内容 昨天已完成的工作: 已明确分配的任务,并进行了环境配置,特别是mysql的配置. 今天计划完成的工作项目模块 需要实现的功能 负责人 预计用时初始化模块 环境搭建 王伊若 4h登录模块 用户注册、登录 黄锐 7h登录模块 数据库连接 江佳哲 4…

20222320 2024-2025-1 《网络与系统攻防技术》实验6实验报告

目录 目录目录1.实验目标2.实验内容3.实验过程3.1 前期渗透3.2 Vsftpd源码包后门漏洞(21端口)3.3 SambaMS-RPC Shell命令注入漏洞(端口139)3.4 Java RMI SERVER命令执行漏洞(1099端口)3.5 PHP CGI参数执行注入漏洞(80端口)4.问题及解决方案5.学习感悟、思考等 1.实验目…

IMPRINT:通过学习身份保持表示进行生成对象合成

IMPRINT:通过学习身份保持表示进行生成对象合成生成对象合成作为合成图像编辑的一种有前景的新途径出现了。然而,对象身份保存的要求带来了重大挑战,限制了大多数现有方法的实际使用。作为回应,介绍了IMPRINT,这是一种基于扩散的生成模型,采用两阶段学习框架进行训练,将…

联邦学习开山之作Communication-Efficient Learning of Deep Networks from Decentralized Data

1 介绍 1.1 背景 越来越多的手机和平板电脑成为许多人的主要计算设备。这些设备上强大的传感器(包括摄像头、麦克风和GPS),加上它们经常被携带的事实,意味着它们可以访问前所未有的大量数据,其中大部分本质上是私人的。根据这些数据学习的模型持有承诺通过支持更智能的应用…

高级语言程序设计课程第7次个人作业

2024高级语言程序设计:https://edu.cnblogs.com/campus/fzu/2024C/ 高级语言程序设计课程第7次个人作业:https://edu.cnblogs.com/campus/fzu/2024C/homework/13304 学号:102400128 姓名:吴俊衡 1: 问题:无2: 问题:刚开始没想出来怎么弄,后面递归不会就用了多个for循环3:…

TYPE-C PD浅谈(四)

TYPE-C PD浅谈(四) 当对接识别完成后,Provider会先在VBUS上提供5V,接着会在CC脚位上送出Source Capability(SRC_CAP),格式如下:内容定义了供电的各种选项,如共有几组电源可选,相对应的电压电流等。 当Consumer接收到SRC_CAP封包后,会针对电源列表的内容,挑选一组电压…