一、项目要求
小学、初中和高中学生。
因为个人项目我们小组都是C++写的,所以大致上没有基于谁的代码,都是重新开始。
首先我们思考了java一切都是类的概念,想到了用户类和出题类两个方向,最后还有一个界面类。
在用户类中,实现登录、注册、短信验证、密码重置等有关用户信息的函数。
在出题类中,主要实现个人编程中的内容,在这个基础上,实现计分、得出正确答案的功能。
和队友商量过后,我负责用户类,队友负责出题类。
根据讨论结果,我们书写了设计文档,根据文档进行各自接下来的编程。
1. user—part
完成用户方面的各项功能的类
设立了以下的函数
在jar包同一路径下的usermessage.txt内存入用户信息,在注册时需要写入信息,在登录时需要匹配信息,在重置密码时需要修改信息,重置密码部分比较复杂,因为想要修改文档中一个地方的内容,就需要将整个文档读出来再写进去,这里用到了StringBuffer,是一个很好的技巧。
因为打包jar包之后无法得到jar包的绝对路径,所以我们被迫在登录界面设计一个“安装地址”的输入框,将输入内容传送到路径参数中。
在验证码发送这部分中,我选择的阿里云短信服务,这部分要好好阅读阿里云提供的API文档,借鉴其他博客的方法,完成短信验证码服务。
其他部分比较简单,就是文件输入输出流,密码的格式判断,以及短信验证码的匹配。
2. SetQuestion
完成出题方面的各项功能
3. 图形化界面
完成图形化界面时,主要是类继承JFrame,在构造函数中添加各类组件,在监听中实例化user_part,调用user_part中的方法,在事例话近下来的界面类,将当前的界面设为不可见。
4. 结果
文件输入输出
在用户类的几个方法中,最难的可能就是文件的读取和写入,也实实在在的练习到了这类方法。java中有很多输入输出流,其中也有很多继承关系,名字也很详细,想要完完全全理清楚记下来还是有些困难,但是多加练习实践还是很多收获的,至少不会害怕此类问题。
图形化界面
在结对编程中,我承接了所有的图形化界面美化的工作,对于图形化界面的设置、基础美化也有了自己的心得,到了后面几个界面,流程都很熟悉,对于字体、背景颜色、各类组件的使用都得心应手了。
参数传递
在所有类的衔接过程中,参数传递极为重要,这个时候最需要的就是理清思路、沉下心。
在整个项目完成后,打包成jar包发送给队友测试时,发现登录注册功能都无法使用,原因就是在java程序里有一个调用当前路径的函数,但是打包成jar包后这个函数获取不到jar包的路径,也就无法完成文件的读取和写入。
尝试了很多办法之后发现都不行,最后得出两种办法:要么设立绝对路径,在每个测试电脑的固定位置新建一个txt文档,要么就是让测试者手动注入路径。我选择了第二种方法,因为我自己也很不喜欢电脑不知道的地方多出来一个文档。
选择了这个方法,就意味着要在整个过程中传递路径,对参数传递也有了自己的经验。
团队合作
合作确实是1+1>2的一个过程,队友不仅仅是帮你分担一部分工作量,更多的是两个人要互相理解配合,互相理清思路,稳定心绪,大大提高效率!
个人学习
因为我自己对于java没有那么熟练,所以在这个项目工程中很大的锻炼了自学的能力,有不会的就学,出现问题就改。
实践出真知,我现在觉得这种锻炼方式要比从基础开始慢慢磨要好得多。
上图是我们整个的程序包,一共13个类,加起来应该要上千行代码,我和队友用了差不多4天时间。
整个过程肯定不是一帆风顺的,这四天都是早起、熬夜,整天整天地研究代码,在最后临近ddl的时候还出现了很多bug,但是在邮件顺利发过去的时候,我和队友不约而同的拍了一下掌。
没有一蹴而就的成果。非常感谢队友帮助我理清思路,分工明确。我们的分工可能没有任何科学依据,也不是课本里介绍的什么模型,但是在这个项目中应用地很好,在两种代码对接的时候也没有遇到太多的困难。
最后,完成一个符合自己要求的项目,可能是程序员工作中最快乐的事,那一刻满满的成就感,是比的无法比拟的。
希望世界所有程序员,天天开心。
原文:https://www.cnblogs.com/ZouXyouyoouyi/p/13789624.html