2024秋软件工程现场编程作业

作业所属课程 班级链接
作业要求 [作业要求](2024秋软件工程现场编程作业 - 作业 - 软件工程2024 - 班级博客 - 博客园 (cnblogs.com))
作业的目标 开发一个个人记账APP
团队名称 先天软工圣体队
团队成员 102201312-陈言泷
102201313-陈尚冰
052206123-柯鸿毅
102201311-张硕
102201531-周炳辉
102201308-何愉心
102201306-邱雨涵
102202133-郑奇键
102202125-陈思宇
102201237-赖锴彬

一、团队职责分工

成员姓名 学号 职责模块 描述
邱雨涵 102201306 前端模块1:图表设计 利用库函数,提供各种图表类型的组件,实现本地数据图表具象化,同时实现生成图表的自适应布局、动态交互和数据绑定,使数据展示更具美观性和功能性。
何愉心 102201308 前端模块1:图表设计
张硕 102201311 前端模块1:图表设计,博客撰写
陈言泷 102201312 前端模块2:记账 该模块包含便捷的收支记录、分类管理、统计分析等功能,帮快速记录日常收支情况,便于用户管理个人或家庭的财务。
陈尚冰 102201313 存储逻辑实现 通过调用UNI函数实现书籍在存储存储。
陈思宇 102202125 前端模块3:总览 收支总览用于呈现用户的收入和支出情况,帮助用户快速了解其财务健康状况。实现对收支数据的可视化、分类和时间筛选。
郑奇键 102202133 前端模块3:总览
赖锴彬 102201237 前端模块4:我的 统一的个人资料和偏好设置入口,个人信息和设置管理的界面,汇集了用户的基本信息、账户设置、通知管理、安全中心等功能。
周炳辉 102201531 前端模块4:我的
柯鸿毅 052206123 前端模块5:首页 设计程序的首页界面,显示流水情况,以及详细收支时间,金额。

二、程序运行环境

  • 操作系统:windows10
  • 开发语言:Vue/ PHP/html/CSS/JavaScript
  • 依赖库:ECharts(基于JavaScript的开源可视化图表库)
  • 开发软件:HbuilderX
  • 存储格式:json

三、软件功能截图和视频

3.1首页

最顶端是该日的支出、收入的记录次数,还有结余金额

  • 查看数据: 用户可以查看最近的几笔记录。

image-20241102223452714

  • 首页可以选择日期,查询该日期的总收入和总支出
    • 收支统计: 用户可以根据日期,类别,金额等查看总支出和收入情况。

image-20241102223507647

3.2图表

图表可以为查询日期的金额进行可视化分析

image-20241102223524010

3.3记账

实现基础功能

  • 基础记账: 用户可以记录每笔支出或收入,包括:日期、金额、类别(如饮食、交通、工资等)。

image-20241102223536862

image-20241102223545230

3.4总览

包括月度财务报表和年度财务报表。查询总账单

image-20241102223552994

image-20241102223600556

3.5我的

对用户注册登录和账本导出进行管理

image-20241102223609718

3.6 运行视频

发布到b站,可点击查看


四、关键代码实现

代码示例1:折线图数据分析模块

解析:

这段代码模板使用了 ui-echarts 组件来生成图表,并提供了导出图片的功能。

<ui-echarts>:这是一个图表组件,基于 echarts实现。通过:option="option"` 绑定了图表的配置选项。

## 代码示例2:数据记录模块(add.vue)

Snipaste_2024-11-02_22-44-26

代码示例3:图表分析部分代码

<template>
	 <view>
	        <ui-echarts ref="chart" :option="option" exportBase64></ui-echarts>
	        <image v-if="image" :src="image"></image>
	        <button type="primary" size="mini" @click="toImage">导出图片</button>
	    </view>
</template>

<script>
	export default {
	    data () {
	        return {
	            image: null,
	            option: {}
	        }
	    },
	    onReady() {
	        this.option = {
	            grid: {
	                right: 20
	            },
	            xAxis: {
	                type: 'category',
	                data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
	            },
	            yAxis: {
	                type: 'value'
	            },
	            series: [{
	                data: [150, 230, 224, 218, 135, 147, 260],
	                type: 'line'
	            }]
	        }
	    },
	    methods: {
	        toImage () {
	            this.$refs?.chart.toImageFile({
	                /**
	                 * tempFilePath 图片路径, H5导出也是base64
	                 * base64 图片base64
	                 */
	                success: ({ tempFilePath, base64 }) => {
	                    this.image = base64;
	                }
	            })
	        }
	    }
	}
</script>

<style>
</style>


五、软件亮点

  1. 用户友好型界面:程序界面简洁易用,支持基本的输入提示,用户操作流畅。
  2. 本地数据存储:采用 JSON/CSV 文件进行本地数据存储,便于快速访问和修改。
  3. 简单的统计图表:提供数据可视化功能,便于用户直观了解收支状况。

六、项目中的收获和挑战

  1. 文件存储格式选择:在选择 JSON 与 CSV 文件存储格式时,团队进行了多次讨论,最终选用 JSON 以便于结构化数据的保存和读取。
  2. 界面交互设计:界面设计过程中,确保用户能够流畅进行输入、查询、统计操作,为用户友好型设计做出了一些创新。
  3. 模块化编程:团队在开发过程中严格遵循模块化设计原则,使每位组员独立完成各自模块的同时,也便于代码合并和查错。

七、团队编程体验

102201312-陈言泷:真的很好玩~~bushi

102201313-陈尚冰:与队友交流充分,克服了需求上的技术障碍

052206123-柯鸿毅:团队编程体验:
1.框架的搭建与团队分工十分关键。框架的合理组织有助于各个代码模块的设计,好的分工可以使每个人都能发挥自己的长处,提高开发效率。
2.遇到问题时多与组员沟通,他人的经验有时可以为解决问题带来许多帮助。
3.代码多写注释,有助于理解他人的代码,减少沟通成本,同时也方便自己代码的编写。

102201311-张硕:被压力了,真的很难,菜菜带带。😭😭

102201531-周炳辉:在这次编程过程中,我深刻体会到了代码构建的精细与乐趣。从设计界面到实现功能,每一步都需要细心思考和精确操作。特别是添加鼠标悬停效果和线条时,通过CSS伪元素实现了优雅的视觉效果,这种即时反馈让人感到非常满足。调试过程中遇到的小问题也成为了提升技能的机会。最终看到功能项整齐排列、交互流畅,感到十分满足。

102201308-何愉心:我首次接触到了Hbuilder,这款集成开发环境(IDE)以其强大的功能和用户友好的界面给我留下了深刻的印象,极大地提高了我的编程效率。在这次活动中,我尝试将echarts插件集成到我们的Vue项目中,以便制作动态的折线图。虽然在集成过程中遇到了不少挑战,比如插件配置、数据绑定和样式调整等问题,但通过团队的协作和不断尝试,我们最终克服了这些困难。这个过程不仅锻炼了我的技术能力,也加深了我对Vue框架和echarts库的理解。

102201306-邱雨涵:队友们都很强!

102202133-郑奇键 :参与现场小组编程项目是一次充满挑战与成长的经历,它不仅锻炼了我的技术能力,还极大地提升了我的团队合作和沟通技巧。在与团队成员紧密合作、解决实际问题的过程中,我学会了如何快速适应新环境、有效分配任务,并在压力下保持高效工作。此外,通过代码审查和集体讨论,我获得了宝贵的反馈和不同的视角,这不仅丰富了我的编程实践,也增强了我的自信心和职业发展潜力。总的来说,这次经历让我深刻体会到团队协作的力量和持续学习的重要性。

102202125-陈思宇:这次的任务让我接触到了 Vue 框架的基础知识。通过这次,我学习到了 HTML 的基本结构和如何用 Vue 进行数据绑定。在 Vue 中,

posted @ 2024-11-02 22:56  DriOgon  阅读(24)  评论(0编辑  收藏  举报