带UI 的小初高数学学习系统 —结对编程项目总结
一、 项目综述
本系统是基于QT Creator 4.3.0开发环境,开发语言C++,能够实现用户注册,发送短信验证码,用户登陆,用户选择题目类型和数量,显示用户本次答题基本功能。支持对用户账号查重,账号密码以及验证码的准确性检测。
二、 项目实现
项目主要分成了7个模块,每个模块都有对应的ui以及cpp代码实现
0x01 系统登陆页面
file LoginUser.cpp & LoginUser.h & LoginUser.ui
点击 "登录",成功时跳转至主菜单页面,失败时提示 “账户或密码错误” (此时需要注册新用户,或检查一下是否输入错误)
点击 "注册",跳转至注册界面
0x02 系统注册页面
file RegWindow.cpp & RegWindow.h & RegWindow.ui、
点击 "获取短信验证码",成功时会弹出提示框"正在发送验证码",等待手机接收得验证码,填入框内
点击 "注册",成功时会弹框提示"注册成功,点击跳转至登陆界面",
点击 "注册",失败时如果弹出"该手机号已被注册",则需要更改手机号注册,如果提示"验证码错误",需要检查验证码输入是否正确
0x03 设置密码界面(注册后)
file SetPassword.cpp & SetPassword.h & SetPassword.ui
输入密码两次,点击“确认”
成功会显示“跳转至主界面”
失败会显示“请重新输入”
0x04 主菜单页面(选择界面)
file MainWindow.cpp & MainWindow.h & MainWindow.ui
点击 "小学"或"初中","高中" 跳转到生成题目的界面,生成对应类型题目
点击“修改密码”跳转至改密码界面
0x05改密码界面
file ChangePassword.cpp & ChangePassword.h & ChangePassword.ui
输入账号、旧密码、两次新密码,点击“确认”
0x06 生成题目页面
file CreatProblems.cpp & CreatProblems.h & CreatProblems.ui
点击选项旁边按钮会记录用户选择的答案,首次四个按钮是没有被选,之后的题目,每次进入选项会和上次选的一样,用户需要重新点击要选的答案
点击"下一题" 继续生成题目,当全部题目数量超过输入时,跳转至分数页面
0x07 分数页面
file CheckGrade.cpp & CheckGrade.h & CheckGrade.ui
点击 "查看分数" 显示用户所得分数
点击 "退出" 退出本系统
点击“跳转至主界面”跳转至主界面(选择界面)
三、 项目经验及教训
由于结对两人的都是C++语言,虽然要带ui,也决定用C++开发。于是选择了从未接触过的QT。经过这次项目,也算是边学边入门了QT,从而得出要快速掌握一个工具,通过边写实例项目,边查找QT文档是比较快的,能够快速满足自己对工具功能的需求。不过一周下来,虽然用QT实现了项目,但是系统化的对QT认识依旧不够深入。如果需要熟悉,还是需要学习QT的基本功能文档这些。其次通过这次项目,真正体会到了类的模块化编程的优点,通过分模块编程,不仅可以让自己开发是思路逻辑清晰,还会减少bug的产生。
在开发过程中,也因为一些开发规范,导致了很多bug,比如类之间得互相包含,导致类型错误,发送post请求不成功等等。耗费了大量的时间
不过总体开发下来,和队友的合作,以及在开发过程中不断的查询资料,学习到了很多东西,包括短信验证码实现,QT的C++语法,以及对面向对象编程的理解深刻了。
带UI 的小初高数学学习系统 —结对编程项目总结的更多相关文章
- 结对编程——带UI的小初高数学学习软件
一.简介 本次项目要求: 1.所有功能通过图形化界面操作,可以是桌面应用,可以是网站(编程语言和技术不限): 2.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: ...
- 带UI的小初高数学学习软件—艰难地用C++(QT库)实现的过程
从互相了解对方的代码思路然后确定用C++编写,到用win32写界面时变得摇摆不定的考虑着要不要改变语言,再到用QT写完界面后发现短信接口一般都不提供C++,最后到QT打包出来的可执行文件在别的设备上无 ...
- 带UI的小初高数学学习软件
结对编程项目总结 一.项目需求分析与功能总结 (1)用户注册功能 用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册. (2)设置密码功能 密码6-10位,必须含大小写字母和数 ...
- 结对编程项目复盘:带UI的小初高数学学习软件
实现个人项目时,由于我当时的Java GUI编程基础还比较薄弱,所以我选择通过命令行实现,并将编程开发的重点放到了算法效率上去.没能设计出用户体验更佳的UI成为了我在个人项目阶段最大的遗憾. 在这次结 ...
- HNU_小初高数学学习软件_功能说明
结对编程项目主要功能: 1.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: 2.用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功.密码6-1 ...
- ASP.NET MVC4 学习系统一(项目模板)
项目模板 1.空模板 空模板用于创建ASP.NETMVC 4网站的架构,包含基本的文件夹结构,以及需要引用的asp.netmvc程序集,也包含可能要使用的javaScript 库.模板同样包 ...
- C#【结对编程作业】小学数学习题助手
一.软件成品展示 软件本体下载(包括程序及其更新日志,源码工程包,UML图,API接口文档,算法介绍文档,算式计算excel实例,浅查重程序) 链接: http://pan.baidu.com/s/1 ...
- 使用Java带你打造一款简单的英语学习系统
[一.项目背景] 随着移动互联网的发展,英语学习系统能结构化的组织海量资料.针对用户个性需求,有的放矢地呈现给用户,从而为英语学习者提供便利,提升他们的学习效率. [二.项目目标] 1. 实现美观的界 ...
- 小C的数学问题 【单调栈】
问题 J: 小C的数学问题 时间限制: 1 Sec 内存限制: 128 MB 提交: 565 解决: 141 [提交] [状态] [命题人:外部导入] 题目描述 小C是个云南中医学院的大一新生,在 ...
随机推荐
- 基于模板特化的Lua自动绑定系统
LuaBind http://www.rasterbar.com/products/luabind.html http://blog.sina.com.cn/s/blog_646817c00100gk ...
- 【jmespath】—4. 进阶 Flatten Projections
这里要怎么翻呢?扁平投影? 一.Flatten Projections 1. 核心1 这个可以暂时忽略,一个重要的核心是:对于列表/对象投影,在投影中创建投影时,原始文档的结构将保留. 说人话就是,比 ...
- Linux服务器关联Git,通过执行更新脚本实现代码同步
1.在Linux服务器安装Git yum install git -y tips: 卸载Git : yum remove git 2.在Linux生成ssh key 1)创建用户 git ...
- ORA-01033错误解决方案-九五小庞
Microsoft Windows [版本 6.3.9600](c) 2013 Microsoft Corporation.保留所有权利. C:\Users\Administrator>sqlp ...
- 【Maven】maven脚本中的maven.test.skip和skipTests的区别
命令 两种方式跳过编译 test mvn clean install -DskipTests mvn clean install -Dmaven.test.skip=true -DskipTests, ...
- basicInterpreter1.02 增加对for循环的支持
源码下载:https://files.cnblogs.com/files/heyang78/basicInterpreter102-20200531-2.rar 输入: for x= to print ...
- ansible中定义变量的若干方法
Ansible支持十几种定义变量的方式 根据优先级排序的定义方式: Inventory变量 Host Facts变量 Playbook变量 Playbook提示变量 变量文件 命令行变量 1.Inve ...
- Java反序列漏洞
序列化:WriteObject 反序列化:readObject() Jd-gui.exe 最简单的打开java文件方式 Intellij idea 编辑工具 演示案例: WebGoat_Javaweb ...
- Python3 学习笔记之 运算符
- hystrix(5) 延时检测
hystrix在执行命令的同事,会对执行延时进行检测,如果超过设置的延时时间,那么将停止执行,并返回fallback执行结果. if (properties.executionTimeoutEnabl ...