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