大一软工第十三周学习总结
考核
我们学校的爪哇部落一轮考核是我这周主要做的事,我校爪哇部落分为五个组(前端、后端、产品、设计、算法),一番思索过后,我决定我要同时进入两个组,所以我就做了两份考核。
这次举行的是第一轮考核,好像一共有三轮加面试。
后端组:
GitHub仓库链接:点击跳转
对语言进行考核,做一个个人记账系统
个人记账系统
前言
脑子抽了才会用swing写考核…….
登录和注册界面用的是swing ui designer插件,这个东西可能是我没用习惯,我感觉还没手搓好用,然后我主界面以及几个功能面板都是手搓的,饼图用到了jfree,这个还挺好用,就是找不到什么资料。整个考核我写的非常简陋,就只完成了基础功能,以及考核进阶要求里面的数据持久化,一共写了刚好两天半,最后半天用来写这个README和完善了一些细节。
项目介绍与完整功能
这是一个个人记账系统(纯垃圾,有写ui是因为本来想着自己用的,越写越觉得愚蠢)
- 有登录界面
- ui功能完整,自己看:

- 登录需要符合账号和密码,否则无法登录,会有弹窗提示
- 有跳转注册功能
- 账号密码正确可以正确登录
- ui功能完整,自己看:
- 有注册界面
- ui完整,自己看:
(突然发现标题忘改了,现在已经改过来了) - 进入注册界面,登录界面自动关闭
- 点击返回按钮返回登录界面,并且自动关闭注册界面
- 输入各种错误信息都无法注册,都有对应不同的弹窗提示
- ui完整,自己看:
- 登录成功进入主界面
- ui完整:

- 有各个面板之间的按钮进行跳转
- 记账面板:
- 可以输入金额,选择日期,选择收入还是支出,选择收入类型或者消费类型
- 可以保存或者重置,保存信息不正确有弹窗提醒(原生的swing弹窗比插件好用)
- 收支明细面板:

- 上方有信息总览:
- 账户余额
- 本月收入
- 本月支出
- 本年收入
- 本年支出
- 每次来到这个页面都会刷新一次信息
- 存放了收支明细的表格
- 按照时间进行排序,每次来到这个界面都会刷新
- 下方有删除按钮,选中信息之后点击删除,会删除表格中这一条信息的显示,并且删除文件中的数据。
- 上方有信息总览:
- 收入来源:

- 放了个饼图,记录各种收入类型的占比,下方有图例
- 依旧每次点击都刷新
- 消费习惯:
自己看
- 记账面板:
- ui完整:
使用技术
- Java语言基础
- 这破东西就是个面向对象特训
- swing,javax包下的,界面由这个提供
- 处理数据的话集合用的比较多
- 储存读取数据用的IO流
- 还有很多零散的知识,如:异常,一些常用的API……
- maven,方便我加插件,以及打jar包(结果最后因为File路径的的问题没打成)
- swing ui designer,登录和注册这两个界面是用的这个插件搞的,主界面不是(因为后来感觉不好用)
- jfree这是用来生成图表的,饼图由这个生成
- 好像也没什么技术含量了…….就是用Java写ui点烦人……
使用提醒:
GitHub仓库链接:点击跳转
项目main分支的accountSystem1里,其他的文件不是。
程序入口在accountingSystem1/src/main/java/cn/ayeez/App.java
提供一个样板账号密码:
- 账号:阿叶Ayeez
- 密码:123456
第一轮考核题目
考核形式
本轮考核对语言没有限制,师弟师妹们可以选择主流开发语言实现考核内容。
- 无论师弟师妹们选择哪个方向,第一件要做的事情就是熟悉语言基础。因此,第一轮考核的要求是使用自己选择的语言完成一个 “个人记账软件”。
题目描述
- 设计一个个人记账系统,帮助用户记录零花钱收支并分析消费习惯。系统需要支持多用户使用,并提供基础记账功能和进阶管理功能。
完成基础功能,进阶功能为可选功能
可以自行发挥,添加其他功能,但需要保证业务逻辑正确。
基础功能
- 用户管理
- 用户注册、登录
- 用户数据隔离(不同用户数据互不干扰)
- 记账功能
- 记录收入/支出(金额、类型、日期、备注)
- 查看所有记录
- 收入/支出的增删改查
- 统计功能
- 统计总余额
- 按类型统计收支(如 购物-200元, 餐饮-150元)
- 统计消费类型及次数
进阶功能
- 预算管理
- 设置本月预算
- 计算剩余预算
- 类型管理
- 预设消费类型(如预设 购物 餐饮 工资收入 等消费/收入场景)
- 用户通过选择预设的消费类型存入记录
管理员身份
管理员可以对类型进行增删
管理员可以修改用户密码
- 数据持久化
- 也即程序关闭之后,用户、记录的账单等的信息不会消失,而是被保存到磁盘中,下次运行程序时可以被重新加载。
要求
- 不要求好看的前端界面,可以使用命令行窗口代替,如下:

编程规范
- 使用有意义的变量名和函数名
- 适当的函数拆分和模块化
- 添加必要的注释
- 简单错误处理和输入验证
其他要求
- 使用 git 作为本次项目的版本控制工具,并将源代码放到 github /gitee上面托管,请不要将IDE交上来。
- 什么是 git ? 请参考下列相关资料,加上自行谷歌。
- 什么是 github ?
- 其他资料
- 官方文档 : Git - Book
- 使用心得:git使用心得
- 使用 MarkDown 语法 书写考核(包括接下来所有考核)所需要的所有文档。并提交 .md 格式的文档
- 什么是 MarkDown ? 什么是 MarkDown
- 推荐的 MarkDown 语法编辑器:Typora
各个语言可能涉及到的关键特性
- Java:类、封装、集合框架、IO流、异常处理
- C:函数、指针、结构体
- C++:类、继承、STL、文件IO
- Go:结构体、切片、方法、接口、文件操作
提交内容
- github/gitee 仓库地址,仓库内容包括:
- 源代码 (Talk is cheap, show me the code)
- README.md 文件:使用 MarkDown 语法书写的项目介绍文档,内容包括:
- 项目介绍
- 项目使用的语言,用到了该语言的什么语法、特性等
- 完成的功能
- 注意:
- README.md 中的图片一定要确保可以被访问到,不要出现图片路径是本地路径这种低级错误。建议在仓库中开一个
image文件夹来放置所有图片。 - 请确保你的仓库被设置为 public, 以便我们访问你的仓库。(gitee 的仓库默认为 private,记得修改)
- README.md 中的图片一定要确保可以被访问到,不要出现图片路径是本地路径这种低级错误。建议在仓库中开一个
- 请在第一轮考核截止日期之前,将仓库地址通过飞书问卷的方式发送给我们。
其他
- 无论选择什么语言,让别人看懂你的代码都非常重要,因此
- 按照一定的规范书写你的代码,例如正确的变量命名,方法命名等。
- 在关键的代码写上注释。
- 代码规范参考:
- Java:《阿里巴巴 Java 开发手册》
- C: 《OpenHarmony C语言编程规范》
- C++: 《Google C++ 风格指南》
- Golang: 《Go 语言编码规范》
- 如果你已经熟悉了一门语言的基本语法,并且产出过类似的项目,觉得这份考核过于简单。或者你想要走的方向,使用的语言不在上述提到的语言中。可以及时跟我们联系,我们会进行特殊处理。
前端组:
要我们仿一个飞书的官网,以下是成品展示以及GitHub地址
GitHub仓库链接:点击跳转
总结:
这两份考核的期限是40天,我连肝了五天,分别是后端两天,前端两天,周三写了半天文档玩了半天,也属于是速通了。
熬了几天,身体有点虚弱,周末出去走了走,运动了一下,休息够了就回来看看课,整理一下以前的知识。
收获很多,主要体现在代码的熟练度大幅度提升,Java的业务逻辑处理的比之前好了很多,这个是第一次完完整整自己搓,不抄任何东西做出来的玩意。AI的补全也关了
一共是后端1576行代码,前端3128行,共4704行(计算器手算的,发了张朋友圈,有个前辈问我有没有兴趣写个插件来计算代码量,我感觉挺有意思,打算忙完这段时间写一个)
前端的js就是一坨,没有系统学习,轮播图有bug。
后端单从代码的角度感觉写的还不错,业务基本完整,不知道过一个学期或者更久回来看代码会有什么感觉(已经想到了,到时候:这人写的什么玩意,就是一坨….哦…原来是我写的,哈哈哈)
最后附上我的博客链接!!!
欢迎来访我的小站:
https://blog.Ayeez.cn/






















