ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-09-28 13:56:57  阅读:195  来源: 互联网

标签:结对 中缀 答题 重复 生成 正则表达式 算法 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

标签:结对,中缀,答题,重复,生成,正则表达式,算法,ui,表达式
来源: https://www.cnblogs.com/huangxingping/p/11602877.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有