带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是个云南中医学院的大一新生,在 ...
随机推荐
- iOS NSOperation
iOS NSOperation 一.简介 除了,NSThread和GCD实现多线程,配合使用NSOperation和NSOperationQueue也能实现多线程编程 NSOperation和NSOp ...
- Tiled and Unity
https://www.mapeditor.org https://assetstore.unity.com/packages/tools/integration/tiled-to-unity-172 ...
- linux下P2P协议(BitTorrent)-libtorrent库编译,测试
1.libtorrent 简介,下载和编译 libtorrent简介 libtorrent是功能齐全的C ++ bittorrent的p2p协议实现,专注于效率和可伸缩性.它可以在嵌入式设备和台式机上 ...
- C++类重载函数的function和bind使用
在没有C++11的std::function和std::bind之前,我们使用函数指针的方式是五花八门,结构很繁琐难懂.C++11中提供了std::function和std::bind统一了可调用对象 ...
- 使用java.io.RandomAccessFile更改文本文件的内容
原文本内容: 2020-01-21 08:31:08.520 [main] INFO logbackCfg.App -秦时明月汉时关 2020-01-21 08:31:08.521 [main] ER ...
- mysql通过经纬度查询400公里范围内的小区
mysql距离计算,单位m,以及排序 lng 经度 lat 纬度 一般地图上显示的坐标顺序为,纬度在前(范围-90~90),经度在后(范围-180~180) 传入参数 纬度 40.0497810000 ...
- PHP 类的构造方法 __construct()
1. 构造方法简介 构造方法 __construct() 是一种类结构特有的特殊方法,该方法由系统规定好 实例化一个类时:先调用该方法,再返回类的对象 构造方法也是普通方法,不同之处就是在实例化类时会 ...
- 微信开发者工具集成GitHub,多人协调开发,上传拉取等
一,准备环境 1,提前安装git环境和GitHub做集成,不做多解释: 1,准备微信项目代码: 2,创建GitHub仓库: 二,创建GitHub仓库 1,创建一个空的GitHub仓库,不要任何文件和不 ...
- Coneology(POJ 2932)
原题如下: Coneology Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 4937 Accepted: 1086 D ...
- Axios源码深度剖析
Axios源码深度剖析 - XHR篇 axios 是一个基于 Promise 的http请求库,可以用在浏览器和node.js中,目前在github上有 42K 的star数 分析axios - 目录 ...