用户管理的小项目

  之前学习链表数据结构的时候,写过(相信很多人都做过)dos窗口版的学生管理系统,通过输入数字来实现CURD学生的信息,顶多就是把数据写入文件来存储数据。这次决定用Qt来实现,虽然不是学生管理,但是也类似,数据保存使用的是mysql数据库。之前,学习Qt只是单一的练习某一块知识,这次做个小项目,算是把之前学的做一下综合,感受颇多。

  使用Qt的原因不多说了,方便,快捷,最重要和吸引人的就是跨平台性,代码无需修改或者少量的修改,再用相关平台的编译器重新编译下,就可以在windows,linux,android等系统上运行。当然也要推荐下,Qt for Python,是Qt官方出品,必属精品。下次有机会,还是要用python实现一下。

  开发工具:Qt5.14.1版本

  编译器版本:MSVC2015 64位

  直接上图,简单说下实现的功能,这次使用了QTabWidget和QStackWidget来实现了分页功能,共分了3页,每页实现相应的功能。

  当然,第一个界面还是写烂了的登陆窗口:

  

  这个很简单了,不做过多的描述,不过这次登陆没有做数据库验证,直接使用的本地验证。

  分页1:

  

  第一页的功能如图所示,一目了然,主要是连接数据库的,点击连接数据库,连接成功就可以展示数据库里的客户信息了。这里比较方便的是可以将表格和数据库模型建立连接(即数据库数据改变,表格会自动更新),这里面使用的是MVC模式,对数据的展示和操控非常的方便。还有添加了一个根据手机号码模糊查询的功能,会根据输入的手机号实时查询相似的数据,其实就是用了mysql语法里的like查询语句。最后还有一个短信群发,可以选中表格里一个或多个用户,来群发短信,具体在第三页说明。

  分页2:

  

  同样,第二页也很清晰,实现了增加客户和修改用户的消费和积分等,说到底就是对数据库的CURD,对数据库操作使用的是QSqlDatabase这个类,这里面有个坑点,我已经在之前的文章提到过了,并做了记录,就是缺少mysql的相关插件,需要自己去编译好并添加到相应的目录。

  分页3:

  

  这一页的功能是对接的短信云平台的,根据云平台提供的接口,将功能嵌入到应用中,方便了使用者,可以不用再登录网页做相关设置和查询,直接在这里面一目了然。

  1. 主要的功能还是短信群发,比如店铺里有优惠活动,或者可以积分兑换物品等促销方式,可以再次吸引客户前来消费和兑换东西。

  2. 对接使用的https协议,使用的QSslConfiguration这个类做相关的配置,相关的源代码会在文末贴出。这里面也有个坑,也是缺少dll,不过qt里面有自带的,不需要自己编译,所以只要复制到相应目录就不会报错了。

平台服务器返回的是json格式的数据,这里面qt有相关处理json格式数据的类,会使用就好。

  3. 网络请求使用的是QNetworkAccessManager,QNetworkReply和QNetworkRequest三剑客,分三步走,具体操作请看文末源代码。顺便插一句,用这个做爬虫也是蛮有意思的,不过之前玩爬虫都是用的python,用python只是更方便了些。

  4. 这一页在实现功能调试的时候,会遇到程序崩溃的状况,仔细分析下来是因为,我只用了一个reply变量来处理网络请求响应,可使用者不一定中规中矩等一个查询完了,再去点另外一个,比如,我点完短信剩余条数查询,程序还没来得及处理完,我立刻就点了模板查询,这会造成紊乱,故而会崩溃。因此,改进了下,每个请求对应一个reply来处理,再将这些申请的reply放置到list链表中统一管理,当reply处理完之后,将该堆内存及时释放,节约内存。所以,就算使用者狂点查询按钮,程序也不会崩溃。当然,还有别的解决方法。

  

  总结:

  1. 总体感受是什么?

  整个小项目做下来,不算界面代码才9百多行代码,量有点少,但收获还是蛮大的,之前没有系统的将所学知识融合起来,这次正好有个磨合,学到了很多东西,一直是在不断遇坑,不断找解决方法填坑,乐在其中,很痛苦,也很享受。

  2. 学到了哪些?

  学会了要注意处理细节,这个很重要,遗漏了一些地方,可能达不到想要的效果或者程序会崩溃,同时心态很重要,有时候一个问题一直调试不出来,心态可能会炸,那就更难找到症结所在了。当然,这也是一个经验的积累,一个随时间积累沉淀的过程,那同时我也希望自己能够尽快入行,不断积累和沉淀,因为这一条路本身就是永不止步的过程。

  3. 本次项目的缺点?

  首先最大的短板就是样式,可以看到上面的界面截图,基本上都是白板,没有过多的使用样式,说通俗点就是有点难看,之前看到过一个大佬用qt设计出来的界面,那叫一个好看,甚至惊艳,最近也在恶补这方便的知识,后期会补上。还有一点是,在短信模块中,还要添加新的功能,比如,新增自定义短信内容模板功能,这里面会用到多线程来处理。要做到功能齐全和完善,最起码能用吧。

  最后一点是,虽然这个小项目很简单,我将所有的功能实现和逻辑都放在一起了,我觉得还是应该将项目中不同的功能细分,用不同的类来实现,这是一个很好的习惯,也方便将来客户如有需求的增加和改动而方便代码的维护。

  

夜深了,就到这里了,最后放上源码地址:https://gitee.com/dianzhui/userManager,里面的member文件夹里是源码,zip压缩包里是编译好的exe,直接可以打开看效果。最最后期待和这里的伙伴们一起学习,一起进步,一起分享。

原文地址:https://www.cnblogs.com/dz-study/p/12405534.html

时间: 2024-08-29 03:36:22

用户管理的小项目的相关文章

Web应用——驾培管理系统之系统—用户管理(作者:小圣)

Web应用--驾培管理系统之系统-用户管理(作者:小圣) 本节展示本次Web应用的系统管理下的用户管理功能. 笔者会把大概实现过程贴出来,有看不懂过程且需要项目源码的请戳:http://download.csdn.net/detail/xie_xiansheng/9486872,需要数据库表格的请留言.有些小细节没完善,有些代码冗余,初学请见谅! 结果演示: 数据库的t_user表 代码对应的UserBean: public class UserBean { private int user_i

java客房管理小项目,适合java小白练手的项目!

java客房管理小项目 这个客房管理小项目,适合java初学者练手.功能虽然不多,但是内容很齐全! 喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私信我! 祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早生贵子,从不掉发!共有5层,每层10间客房,以数字101--509标示:具有入住,退房,搜索,退出四个简单功能: public class Hotel { static final int floor = 5; static fina

java客房管理小项目,适合小白练手

java客房管理小项目这个客房管理小项目,适合java初学者练手.功能虽然不多,但是内容很齐全!喜欢这样文章的可以关注我,我会持续更新,你们的关注是我更新的动力!需要更多java学习资料的也可以私信我!共有5层,每层10间客房,以数字101--509标示:具有入住,退房,搜索,退出四个简单功能:public class Hotel {static final int floor = 5;static final int order = 10;private static int countFlo

第七天 :用户管理小全

小Q :圆规为什么能画圆,因为脚在走,心不变: 好多人为什么不能圆梦,因为脚不走,心在变. 一 . 用户配置文件 1 .用户信息文件:  /etc/passwd                                  可 cat 可 vi 格式 : 用户名:密码:UID:GID:用户说明:家目录:shell 形式 : toot : x : 1 : 0 : root : /root : /bin/bash(/sbin/nologin) 2 .影子文件信息: /etc/shadow    

项目构建之maven篇:8.maven发布web工程及基于spring mvc,jetty实现的用户管理demo

web工程目录结构 pom/pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd&qu

BOS项目 第8天(权限管理添加、角色管理添加、用户管理添加、shiro权限框架使用ecache缓存)

BOS项目笔记 第8天 今天内容安排: 1.权限管理(初始化.查询.添加) 2.角色管理(添加.查询) 3.用户管理(添加.查询) 4.修改自定义Realm中的授权方法(基于数据库实现) 5.使用ehcache缓存权限数据 6.系统左侧菜单根据登录人的权限动态展示 1. 权限管理 1.1 初始化权限数据 执行sql脚本文件初始化权限数据: 1.2 权限分页查询 第一步:修改页面中datagrid的URL地址,访问FunctionAction的pageQuery的分页查询方法 第二步:创建Func

【SSH项目实战】国税协同平台-4.用户管理需求分析&amp;CRUD方法1

上次我们完成了日志模块的配置和基础增删改查类,下面我们根据用户的需求来正式开发项目的业务模块. 下面我们主要来开发系统用户管理的模块 我们有用户的功能说明书,打开功能说明书来看看这个模块需要什么功能: 功能说明 用户管理:可以根据用户名查询系统用户:在页面中点击"新增"可以添加用户.点击删除可以批量删除选中的用户."导出"则导出所有的用户列表到excel文件中并弹出下载提示框给用户下载:"导入"将需要用户将本地的用户列表按照一定格式将excel中

OA项目12:系统管理之用户管理

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 之前在第8节时已经将User实体及映射文件建立好了,所以设计实体已经完成了,下面来做功能了. 二 我们对照静态页面看用户管理页面分析发现,增删改查功能跟之前一样,多了一个初始化密码的请求.当然,这不是问题,下面开始做功能吧! 三 开发: 1.写action及struts2映射,具体如下: 1)UserAction.java: 1 package cn.

OA项目13:系统模块之用户管理密码加密等

首注:本学习教程为传智播客汤阳光讲师所公布的免费OA项目视频我的文字版实践笔记,本人用此来加强巩固自己开发知识,如有网友转载,请注明.谢谢. 一 上节遗留了一个错误,在用户管理list.jsp页面显示岗位时这句<s:iterator value="#roles">是无法将岗位显示的,必须将#去掉便OK了. 二 密码MD5加密: 引入包:commons-codec.jar 在userAction中涉及到密码的add()方法和initPassword()方法中将设置密码的代码改