IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> 码农的自我管理系统 -> 正文阅读

[C++知识库]码农的自我管理系统

?作为一个非科班的码农,大学期间一直没有机会像科班生一样,无论是出于个人练手还是交作业的原因而写一个xx管理系统,工作后写管理系统也是和工作不搭边的事情!不过本人还是一个比较喜欢动手和立flag的程序员。于是,在日常的生活中,就逐渐的产生了一种需要。
?第一阶段,作为一个比较喜欢买书的程序员,本人希望将这些书籍管理起来,譬如买了多少本了,花了多少钱了,啥时候买的,在哪里买的,二手还是新书,读了多少页等。于是本人就想着写一个图书管理系统呗,就是设计一张表,配套增删查改的接口即可。于是我的图书管理系统在2020年,经过几天的时间,每天下班后coding一会儿,就诞生了。
功能演示如下:
在这里插入图片描述这就是一个终端下的书籍管理系统,包含增,删,查,改,导入记录,导出记录的功能,使用sqlite3数据库和c语言实现,这里也可以看到,一切操作都是在终端下执行,视觉效果还是差一些。
?第二阶段,也即是最近一年,由于自己一直有做一些计划的习惯,做好一个计划,需要包含学习动机,学习步骤,学习周期,以及记录周期内的每一天的学习情况,这样将自己的计划执行过程给可视化以后,就能清楚自己到底有没有用心做一件事。此时我使用LibreOffice电子表格设计了一个计划表,来完成所有的规划。
如下为我学习微积分的计划表以及执行情况:
在这里插入图片描述

?可以看到,我认为表格做的很好,非常好地呈现了学习动机,起始日期,学习计划,学习行为,学习反馈,以及学习周期内的打卡表等。但是缺陷也很明显,比如我今天学习了2个小时的微积分,那么我要打卡,就需要打开表格,从打卡日记处选择打卡日期,然后为该日期所在的cell设置表示时间的背景色。这样是很麻烦的,我作为一个程序员,怎么可能有耐心去做如此机械重复的工作。我就想能不能通过LibreOffice提供的自定义脚本功能来完成这个功能,但是网上查了一圈,貌似是没有找到能够如此custom的功能。遂放弃此方向。
?再结合我的许多计划,都包含读书,读我买的书,也即是,如果我有需要买一本书,我就应该为其规划出一个阅读计划。那么,我想着如果能把我的图书管理和计划执行两个需求结合,做一个GUI的软件来呈现,那么就是真的可以省去我的很多时间,当然我明白,为了达到这个目的,我必将花掉很多时间,不过一旦做好,我以后将节省很多的时间,我为这种巨大的诱惑所驱动,以及想到自己可以自定义一切所需要的功能而感到高兴。可是无论我在大学期间,还是工作后,几乎没有接触过GUI开发,
我唯一的GUI学习经历,就是大三时买过一本<<C++ GUI Qt 4编程>>,当时对c++的理解太浅,不了解封装、继承,多态,也不会用指针,所以看完第一部分后感觉没多大收获,就不再看了。现在我也转到c++开发上来了,系统地学习了c++开发,以及这几年也在持之以恒地curd,想着应该可以上手Qt,于是就在的我ubuntu上就安装了Qt creator等套件,并通过网上翻一下别人写的小demo,就开始我的程序的构建了。coding之前只有个大体的概念,就是两个QWidget,一个呈现书籍,另一个呈现计划。想到要实现的功能就google一下看看可以用Qt的什么组件来实现,再使用Qt assistant查一下该组件的细节就可以了。
于是每天下班后就coding,一直coding,终于完成了。功能演示如下:
(1) 启动程序,数据导入。
在这里插入图片描述

(2) 计划查看和创建
在这里插入图片描述

(3) 计划打查看和打卡。
在这里插入图片描述

(4) 记录导出。
在这里插入图片描述
?整个过程,没有提前设计,都是按照心里想的功能来写,所以比较耗时间。对于计划栏,设计了一个json格式,来给GUI提供展示的数据以及数据保存时的保存格式。一开始用的是nlohmann的model c++json库,这个库是以几乎等同c++的语法来操作json,非常好用,但是由于Qt的数据一般是Unicode,这个json库只支持utf-8,我之前没有处理好编码格式的转换,导致json中包含非utf-8的数据后,只要对json执行dump()就会导致程序core dump,而我自己的json文件其实只有一种格式而且结构简单,所以我就自己写了针对该json格式的解析和保存接口而不再使用nlohmann json。
?整个项目每天下班后coding一会儿,20+天的时间,每天coding两三个小时,就完成了。我做一个自己要真正使用的东西,就不能将它只做成一个demo,功能必须非常实用,能被触发的bug或者使用缺陷,都必须解决,并在日后使用的过程中,遇到需要优化的地方就进行优化,这样就逐渐地成为一个健壮且实用的程序。以下是git的commit history在这里插入图片描述

在这里插入图片描述

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-05-05 10:59:30  更:2022-05-05 11:01:45 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:37:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码