结对编程:带ui设计的学生答题系统

带ui的学生答题系统

1.功能

(1)实现登录和注册,可以通过手机验证码进行验证

(2)根据类型和数量出题,生成试卷并且题目不重复

(3)计算分数

2.方法

(1)利用二叉树生成题目,直接计算(答案为小数)

(采用逆波兰表达式也可以计算)

(2)利用xml存储账户信息

(3)利用正则表达式筛选题目,匹配密码

(4)利用c#的可视化开发工具做界面

3.个人项目复用

(1)虽然个人项目使用的是java,结对项目使用的是c#,但这两门语言有太多相似之处,复制后直接能用。

主要复用了个人项目里的二叉树结构类

(2)两门语言在细节方面有点区别,文件操作等代码均不可复用。

4.总结

(1)由于数据长度限制,计算机的计算会有误差。

(2)初期用java swing 做了一个,发现做出来的ui界面不太好看,转而使用c#,浪费了不少时间(java也有可视化开发工具,但安起来太麻烦)。在开发之前选对方向很重要。

(3)算法+结构

¥结构

在做结对项目时,各种类之间功能没有明显区分导致结构不清晰,重写类并进行功能分门别类后情况有所改观,编程语言是工具,但还不能算学问,如何组织结构才是难点。

(1)强大的正则表达式

在进行密码格式验证时采用正则表达式可以简化代码量,比如匹配6-10位包含大小写字母和数字的密码

采用正则表达式中的环视和零宽断言都可以解决这一问题。

环视:^(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])[0-9A-Za-z]{6,10}$

(2)Xml

Xml和json都是对数据的组织方法

Xml中的数据存储行式就和计算机上的目录树差不多,一个标签套另一个标签,在你知道里面的数据存储形式时会非常好用(不知道就炸了)

¥算法

本次项目较为简单,但简单之中算法也无处不在

(1)根据正确答案生成其他三个错误选项

问题转化为生成三个随机但不重复不为0的数字

----我的方案

生成一个随机数存储在数组中

重复生成随机数,与数组中的元素进行对比,不相同便采用。

重复此过程

----解决方案:

算法导论教程生成不重复的随机数算法

New 一个int[n]数组,赋值0-n-1(初值可以定具体需要的值)

在后n-i个数中随机选一个数与第i个交换

重复此过程即可完成。

--感想:我真的low爆了

(2)如何计算答案

波兰表达式和逆波兰表达式,具体可以自行百度

主要采用了栈和队列,将中缀表达式转化为后缀表达式便可以利用运算符的位置来表征运算顺序,从而去掉括号。

示例

中缀表达式:a + bc + (d * e + f) * g

后缀表达式:a b c * + d e * f + g * +

从中可以看出在表达式中括号并不是必须的,采用后缀表达式去掉了括号,但还保证了计算顺序与中缀表达式一致。

--感想:???我家大括号成了冗余数据

数学家真强,五体投地.jpg

原文地址:https://www.cnblogs.com/huangxingping/p/11602877.html

时间: 2024-08-01 10:51:31

结对编程:带ui设计的学生答题系统的相关文章

结对编程——带UI的小初高数学出题软件

>>>功能要求 1.用户注册功能.用户提供手机号码,点击注册将收到一个注册码,用户可使用该注册码完成注册: 2.用户完成注册后,界面提示设置密码,用户输入两次密码匹配后设置密码成功.密码6-10位,必须含大小写字母和数字.用户在登录状态下可修改密码,输入正确的原密码,再输入两次相同的新密码后修改密码成功: 3.密码设置成功后,跳转到选择界面,界面显示小学.初中和高中三个选项,用户点击其中之一后,提示用户输入需要生成的题目数量: 4.用户输入题目数量后,生成一张试卷(同一张卷子不能有相同题

结对编程-带UI的小初高数学学习软件-分析总结

开发环境选择的是VS2015,使用Win32 API进行开发.我主要负责软件UI的设计和实现,队友负责算式的计算,最后一起实现短信验证码的发送功能,再进行整合. 代码复用的主要部分是生成题目的部分. UI界面的实现: 并没有使用 已经将已经将Windows界面程序的创建过程完全封装的Qt或者MFC进行实现,而是比较底层的使用Win32 API 手动创建窗口以及各种需要用到的窗口控件和手写消息处理函数.怎样做的坏处很明显,就是会导致巨大的代码量以及长久的开发周期,但对于理解Windows窗口程序的

结对编程——带UI的小初高数学学习软件

因为和队友在写个人项目时使用的都是C++语言,所以在结对编程时使用Qt平台创建图形化界面.结对编程的工作量还是很大的,感觉近一周的大部分时间和精力都花在项目上,脑子里都是代码orz. 看到结对编程的项目需求后,我们对接下来的要做的事情有了一定的计划.首先是熟悉开发环境,因为是我们都是第一次做图形化界面,选择了Qt作为开发工具.一开始对于Qt都是没有接触过完全一头雾水的状态.所以我们决定先花一天的时间学习Qt的一些基本操作和了解相关的内容.当大概了解清楚Qt的操作和实现一些简单的功能操作之后,我们

【现代软件工程】结对编程 —— 四则运算UI

结对作业 -- 用户界面设计 徐楠青 PB16120408 王馨儿 PB16060765 项目简介: 本次结对编程的任务是写一个能自动生成小学四则运算题目并给出答案的软件,分为core组和ui组.我们抽到的是ui组,负责用户界面设计. 目录 1.1 需求分析 1.2 功能设计 1.3 界面设计 1.4 代码架构 1.5 测试运行 1.6 PSP 1.7 总结 1.1 需求分析 在core组的基础上完成Windows和Linux电脑图形界面的程序,使其有一定的界面和辅助功能,最终交付给用户使用.

结对编程---带界面的数学题练习题(强烈安利windowbuilder)

一:个人项目模块-出题模块 本次结对项目是以队友的个人项目为基础,只是开始我们是以c++写的,然后由于结对项目中需要短信验证码功能,而阿里云没有c++的接口,再加上我们了解过java的UI界面,于是就把原个人项目改为了java.改为java版的代码的主要就是生成题目的类. 之前队友的个人项目是全都在主函数里实现的,在Java中我们将每个年级的题目生成单独出来实现 二:解题模块 本模块在实现的时候本来是想自己写类进行计算的,后来了解到Java中有计算Java的字符串中的算式的函数,只不过只能计算出

结对编程之原型设计

零.前言 ThinMoon:031702541 破碎南瓜: 031702543 附:同门师生们长久以来的困扰: 老师的困扰:都说铁打的营盘流水的兵.老师,总会经历结识新生.相处多年的本科生和研究生毕业.又一批新生加入等年复一年周而复始的过程.这既是老师这个职业的悲哀,也许也是老师这个职业有活力的地方.作为老师,夜深人静时,偶尔会想,几年前毕业的某某学生,现在怎么样了啊:某某学生,在哪里工作啊,发展如何啊.但是又不好主动去问.不知道是不便打扰,还是老师太矜持,还是想想就够了而答案不重要.也许默默地

从零开始iOS8编程【UI设计之按钮加强版的HelloWold】

郝萌主倾心贡献,尊重作者的劳动成果,请勿转载. 如果文章对您有所帮助,欢迎给作者捐赠,支持郝萌主,捐赠数额随意,重在心意^_^ 我要捐赠: 点击捐赠 Cocos2d-X源码下载:点我传送 加强版Hello World 实现步骤 1.创建HelloHaoMengZhu工程 在Xcode中创建HelloHaoMengZhu工程, 基于iPhone视图基础应用程序. iPhone OS ->Application ->Single View Application 2.修改HelloHaoMengZ

结对编程总结——基于QT的UI设计

之前在做个人项目的时,使用的是C++语言,因此在结对编程的UI设计选用了QT来进行处理. 用户注册功能实现:将用户名及密码储存在当前目录的一个txt文件中,通过文件的读写操作来进行用户的注册.其中验证码的发送使用的是秒赛云系统, 在添加Libcurl时QT对于外部库的链接遇到了不少麻烦. 修改密码功能实现:通过文件读写与一些判断语句实现. 题目生成:没有采取个人项目随机数生成题目的方式,而是建立题库,对于题库中的题目进行随机生成.这对于试卷系统的管理,题目正确的判断, 查重等方面都更加方便. Q

实验二:结对编程 第一阶段

一.实验目标: 1)体验敏捷开发中的两人合作. 2)进一步提高个人编程技巧与实践. 二 .实验内容: 1)根据以下问题描述,练习结对编程(pair programming)实践: 2)要求学生两人一组,自由组合.每组使用一台计算机,二人共同编码,完成实验要求. 3)要求在结对编程工作期间,两人的角色至少切换 4 次: 4)编程语言不限,版本不限.建议使用 Python 或 JAVA 进行编程. 三.问题描述 四则运算:开发一个自动生成小学四则运算题目的命令行 “软件”.实现 输入你要出题的个数,