考核

我们学校的爪哇部落一轮考核是我这周主要做的事,我校爪哇部落分为五个组(前端、后端、产品、设计、算法),一番思索过后,我决定我要同时进入两个组,所以我就做了两份考核。
这次举行的是第一轮考核,好像一共有三轮加面试。

后端组:

GitHub仓库链接:点击跳转
对语言进行考核,做一个个人记账系统

个人记账系统

前言

脑子抽了才会用swing写考核…….

登录和注册界面用的是swing ui designer插件,这个东西可能是我没用习惯,我感觉还没手搓好用,然后我主界面以及几个功能面板都是手搓的,饼图用到了jfree,这个还挺好用,就是找不到什么资料。整个考核我写的非常简陋,就只完成了基础功能,以及考核进阶要求里面的数据持久化,一共写了刚好两天半,最后半天用来写这个README和完善了一些细节。

项目介绍与完整功能

这是一个个人记账系统(纯垃圾,有写ui是因为本来想着自己用的,越写越觉得愚蠢)

  1. 有登录界面
    1. ui功能完整,自己看:
    2. 登录需要符合账号和密码,否则无法登录,会有弹窗提示
    3. 有跳转注册功能
    4. 账号密码正确可以正确登录
  2. 有注册界面
    1. ui完整,自己看:(突然发现标题忘改了,现在已经改过来了)
    2. 进入注册界面,登录界面自动关闭
    3. 点击返回按钮返回登录界面,并且自动关闭注册界面
    4. 输入各种错误信息都无法注册,都有对应不同的弹窗提示
  3. 登录成功进入主界面
    1. ui完整:
    2. 有各个面板之间的按钮进行跳转
      1. 记账面板:
        1. 可以输入金额,选择日期,选择收入还是支出,选择收入类型或者消费类型
        2. 可以保存或者重置,保存信息不正确有弹窗提醒(原生的swing弹窗比插件好用)
      2. 收支明细面板:
        1. 上方有信息总览:
          1. 账户余额
          2. 本月收入
          3. 本月支出
          4. 本年收入
          5. 本年支出
          6. 每次来到这个页面都会刷新一次信息
        2. 存放了收支明细的表格
          1. 按照时间进行排序,每次来到这个界面都会刷新
          2. 下方有删除按钮,选中信息之后点击删除,会删除表格中这一条信息的显示,并且删除文件中的数据。
      3. 收入来源:
        1. 放了个饼图,记录各种收入类型的占比,下方有图例
        2. 依旧每次点击都刷新
      4. 消费习惯:自己看

使用技术

  1. Java语言基础
    1. 这破东西就是个面向对象特训
    2. swing,javax包下的,界面由这个提供
    3. 处理数据的话集合用的比较多
    4. 储存读取数据用的IO流
    5. 还有很多零散的知识,如:异常,一些常用的API……
  2. maven,方便我加插件,以及打jar包(结果最后因为File路径的的问题没打成)
  3. swing ui designer,登录和注册这两个界面是用的这个插件搞的,主界面不是(因为后来感觉不好用)
  4. jfree这是用来生成图表的,饼图由这个生成
  5. 好像也没什么技术含量了…….就是用Java写ui点烦人……

    使用提醒:

    GitHub仓库链接:点击跳转

    项目main分支的accountSystem1里,其他的文件不是。

    程序入口在accountingSystem1/src/main/java/cn/ayeez/App.java

    提供一个样板账号密码:
  • 账号:阿叶Ayeez
  • 密码:123456

第一轮考核题目

考核形式

本轮考核对语言没有限制,师弟师妹们可以选择主流开发语言实现考核内容。

  • 无论师弟师妹们选择哪个方向,第一件要做的事情就是熟悉语言基础。因此,第一轮考核的要求是使用自己选择的语言完成一个 “个人记账软件”

题目描述

  • 设计一个个人记账系统,帮助用户记录零花钱收支并分析消费习惯。系统需要支持多用户使用,并提供基础记账功能和进阶管理功能。
  • 完成基础功能,进阶功能为可选功能

  • 可以自行发挥,添加其他功能,但需要保证业务逻辑正确。

基础功能

  1. 用户管理
    • 用户注册、登录
    • 用户数据隔离(不同用户数据互不干扰)
  2. 记账功能
    • 记录收入/支出(金额、类型、日期、备注)
    • 查看所有记录
    • 收入/支出的增删改查
  3. 统计功能
    • 统计总余额
    • 按类型统计收支(如 购物-200元, 餐饮-150元)
    • 统计消费类型及次数

进阶功能

  1. 预算管理
    • 设置本月预算
    • 计算剩余预算
  2. 类型管理
    • 预设消费类型(如预设 购物 餐饮 工资收入 等消费/收入场景)
    • 用户通过选择预设的消费类型存入记录
  3. 管理员身份

    • 管理员可以对类型进行增删

    • 管理员可以修改用户密码

  4. 数据持久化
  • 也即程序关闭之后,用户、记录的账单等的信息不会消失,而是被保存到磁盘中,下次运行程序时可以被重新加载。

要求

  • 不要求好看的前端界面,可以使用命令行窗口代替,如下:

image-cmd

编程规范

  • 使用有意义的变量名和函数名
  • 适当的函数拆分和模块化
  • 添加必要的注释
  • 简单错误处理和输入验证

其他要求

  1. 使用 git 作为本次项目的版本控制工具,并将源代码放到 github /gitee上面托管,请不要将IDE交上来。
    1. 什么是 git ? 请参考下列相关资料,加上自行谷歌。
      1. Git的介绍以及基本使用 - 掘金
      2. Git到底是什么?
    2. 什么是 github ?
      1. Github 是什么,有什么用?
    3. 其他资料
      1. 官方文档 : Git - Book
      2. 使用心得:git使用心得
  2. 使用 MarkDown 语法 书写考核(包括接下来所有考核)所需要的所有文档。并提交 .md 格式的文档
    1. 什么是 MarkDown ? 什么是 MarkDown
    2. 推荐的 MarkDown 语法编辑器:Typora

各个语言可能涉及到的关键特性

  • Java:类、封装、集合框架、IO流、异常处理
  • C:函数、指针、结构体
  • C++:类、继承、STL、文件IO
  • Go:结构体、切片、方法、接口、文件操作

提交内容

  1. github/gitee 仓库地址,仓库内容包括:
    1. 源代码 (Talk is cheap, show me the code)
    2. README.md 文件:使用 MarkDown 语法书写的项目介绍文档,内容包括:
      1. 项目介绍
      2. 项目使用的语言,用到了该语言的什么语法、特性等
      3. 完成的功能
    3. 注意:
      1. README.md 中的图片一定要确保可以被访问到,不要出现图片路径是本地路径这种低级错误。建议在仓库中开一个image文件夹来放置所有图片。
      2. 请确保你的仓库被设置为 public, 以便我们访问你的仓库。(gitee 的仓库默认为 private,记得修改)
  2. 请在第一轮考核截止日期之前,将仓库地址通过飞书问卷的方式发送给我们。

其他

前端组:

要我们仿一个飞书的官网,以下是成品展示以及GitHub地址
GitHub仓库链接:点击跳转

总结:

这两份考核的期限是40天,我连肝了五天,分别是后端两天,前端两天,周三写了半天文档玩了半天,也属于是速通了。

熬了几天,身体有点虚弱,周末出去走了走,运动了一下,休息够了就回来看看课,整理一下以前的知识。

收获很多,主要体现在代码的熟练度大幅度提升,Java的业务逻辑处理的比之前好了很多,这个是第一次完完整整自己搓,不抄任何东西做出来的玩意。AI的补全也关了
一共是后端1576行代码,前端3128行,共4704行(计算器手算的,发了张朋友圈,有个前辈问我有没有兴趣写个插件来计算代码量,我感觉挺有意思,打算忙完这段时间写一个)

前端的js就是一坨,没有系统学习,轮播图有bug。

后端单从代码的角度感觉写的还不错,业务基本完整,不知道过一个学期或者更久回来看代码会有什么感觉(已经想到了,到时候:这人写的什么玩意,就是一坨….哦…原来是我写的,哈哈哈)

最后附上我的博客链接!!!

欢迎来访我的小站:
https://blog.Ayeez.cn/